<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

<author contact="mailto:zbrown@tumblerings.org">Zack Brown</author>

<issue num="224" date="30 Jul 2003 00:00:00 -0800" />

<headquote>

<p>If you like Kernel Traffic and want to send me a little money, click
here:</p>
   
<p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
  <input type="hidden" name="cmd" value="_xclick"/>
  <input type="hidden" name="business" value="zbrown@tumblerings.org"/>
  <input type="hidden" name="no_shipping" value="1"/>
  <input type="hidden" name="return" value="http://www.kerneltraffic.org"/>
  <input type="hidden" name="cancel_return" value="http://www.kerneltraffic.org"/>
  <input type="image" src="http://images.paypal.com/images/x-click-but04.gif" height="31" width="62" alt="https://www.paypal.com/xclick/business=zbrown%40tumblerings.org&amp;no_note=1&amp;tax=0&amp;currency_code=USD" border="0" name="submit"/>
</form>
</p>

</headquote>

<stats posts="3207" size="17182" contrib="738" multiples="416" lastweek="205">

<person posts="207" size="1424" who="Alan Cox" />
<person posts="67" size="198" who="Greg KH" />
<person posts="66" size="233" who="Davide Libenzi" />
<person posts="60" size="179" who="Jeff Garzik" />
<person posts="59" size="309" who="William Lee Irwin III" />
<person posts="58" size="199" who="Jamie Lokier" />
<person posts="56" size="189" who="Andrew Morton" />
<person posts="46" size="187" who="Jens Axboe" />
<person posts="45" size="188" who="Dave Jones" />
<person posts="43" size="290" who="Marcelo Tosatti" />
<person posts="41" size="211" who="Con Kolivas" />
<person posts="41" size="123" who="Christoph Hellwig" />
<person posts="34" size="237" who="&quot;Martin J. Bligh&quot;" />
<person posts="33" size="146" who="Andrea Arcangeli" />
<person posts="33" size="102" who="&quot;David S. Miller&quot;" />
<person posts="30" size="137" who="Michael Frank" />
<person posts="30" size="115" who="Russell King" />
<person posts="28" size="97" who="Daniel Phillips" />
<person posts="27" size="115" who="Pavel Machek" />
<person posts="25" size="142" who="Adrian Bunk" />
<person posts="24" size="84" who="&quot;Randy.Dunlap&quot;" />
<person posts="22" size="100" who="Mike Fedyk" />
<person posts="22" size="78" who="Zwane Mwaikambo" />
<person posts="20" size="91" who="Chris Mason" />
<person posts="20" size="77" who="Stephan von Krawczynski" />
<person posts="19" size="78" who="Bartlomiej Zolnierkiewicz" />
<person posts="18" size="413" who="Michael Hunold (LinuxTV.org CVS maintainer)" />
<person posts="18" size="59" who="Takashi Iwai" />
<person posts="18" size="54" who="&quot;J.A. Magallon&quot;" />
<person posts="17" size="57" who="Christian Axelsson" />
<person posts="16" size="105" who="Bernardo Innocenti" />
<person posts="16" size="66" who="Linus Torvalds" />
<person posts="16" size="57" who="Nigel Cunningham" />
<person posts="15" size="91" who="Francois Romieu" />
<person posts="15" size="52" who="Mikael Pettersson" />
<person posts="15" size="48" who="Marc-Christian Petersen" />
<person posts="14" size="87" who="Rusty Russell" />
<person posts="14" size="53" who="David Mosberger" />
<person posts="14" size="41" who="Felipe Alfaro Solana" />
<person posts="14" size="36" who="James Simmons" />
<person posts="13" size="119" who="Anders Gustafsson" />
<person posts="13" size="45" who="(Valdis.Kletnieks)" />
<person posts="13" size="44" who="Andries Brouwer" />
<person posts="13" size="42" who="Martin Schlemmer" />
<person posts="13" size="42" who="Vojtech Pavlik" />
<person posts="12" size="97" who="Trond Myklebust" />
<person posts="12" size="73" who="Gene Heskett" />
<person posts="12" size="50" who="Andrey Borzenkov" />
<person posts="12" size="47" who="&quot;Richard B. Johnson&quot;" />
<person posts="12" size="44" who="Larry McVoy" />
<person posts="12" size="39" who="Arjan van de Ven" />
<person posts="11" size="281" who=" (Miles Bader)" />
<person posts="11" size="160" who="Herbert =?iso-8859-1?Q?P=F6tzl?=" />
<person posts="11" size="127" who="Jan Dittmer" />
<person posts="11" size="36" who="Ivan Gyurdiev" />
<person posts="10" size="238" who="Tom Zanussi" />
<person posts="10" size="119" who="Max Valdez" />
<person posts="10" size="42" who="Mike Galbraith" />
<person posts="10" size="41" who="Jan Rychter" />
<person posts="10" size="36" who="Andi Kleen" />
<person posts="10" size="34" who="Peter Osterlund" />
<person posts="10" size="32" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="10" size="31" who="Geert Uytterhoeven" />
<person posts="10" size="30" who="Benjamin Herrenschmidt" />
<person posts="10" size="30" who="Pekka Savola" />
<person posts="10" size="29" who="Ben Collins" />
<person posts="9" size="99" who="Wiktor Wodecki" />
<person posts="9" size="64" who="Frank Cusack" />
<person posts="9" size="42" who="Pavel Machek" />
<person posts="9" size="32" who="Thomas Schlichter" />
<person posts="9" size="29" who="Nikita Danilov" />
<person posts="9" size="25" who="Oleg Drokin" />
<person posts="8" size="96" who="Nicolas" />
<person posts="8" size="79" who="Michael Kristensen" />
<person posts="8" size="68" who="Alan Cox" />
<person posts="8" size="42" who="Albert Cahalan" />
<person posts="8" size="39" who="Steven Cole" />
<person posts="8" size="36" who="Samuel Flory" />
<person posts="8" size="30" who="&quot;David griego&quot;" />
<person posts="8" size="30" who="Tomas Szepe" />
<person posts="8" size="28" who="&quot;Robert L. Harris&quot;" />
<person posts="8" size="28" who="Mika Liljeberg" />
<person posts="8" size="27" who="Martin Zwickel" />
<person posts="8" size="27" who="Jeff Sipek" />
<person posts="8" size="24" who="(jiho)" />
<person posts="8" size="22" who="Diego Calleja =?ISO-8859-15?Q?Garc=EDa?=" />
<person posts="7" size="52" who="Martin Schwidefsky" />
<person posts="7" size="37" who="Ruth Ivimey-Cook" />
<person posts="7" size="37" who="george anzinger" />
<person posts="7" size="32" who="&quot;Miller, Mike (OS Dev)&quot;" />
<person posts="7" size="30" who="Helge Hafting" />
<person posts="7" size="29" who="&quot;David Schwartz&quot;" />
<person posts="7" size="27" who="Nick Piggin" />
<person posts="7" size="26" who="Ricardo Galli" />
<person posts="7" size="22" who="Jakub Jelinek" />
<person posts="7" size="18" who="Oliver Neukum" />
<person posts="6" size="107" who="Rudo Thomas" />
<person posts="6" size="80" who="Mark Watts" />
<person posts="6" size="42" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="6" size="39" who="Guillaume Chazarain" />
<person posts="6" size="30" who="Art Haas" />
<person posts="6" size="26" who="Steven Dake" />
<person posts="6" size="24" who="Piet Delaney" />
<person posts="6" size="22" who="Stephen Hemminger" />
<person posts="6" size="22" who="Hugh Dickins" />
<person posts="6" size="22" who="&quot;Grover, Andrew&quot;" />
<person posts="6" size="20" who="Michael Buesch" />
<person posts="6" size="20" who="&quot;Trever L. Adams&quot;" />
<person posts="6" size="20" who="Petr Vandrovec" />
<person posts="6" size="20" who="Alan Stern" />
<person posts="6" size="18" who="Horst von Brand" />
<person posts="6" size="18" who="Eugene Teo" />
<person posts="6" size="18" who="John Levon" />
<person posts="6" size="18" who="Patrick Mochel" />
<person posts="6" size="17" who="Krzysztof Halasa" />
<person posts="6" size="16" who="Paul Nasrat" />
<person posts="6" size="15" who="Jaakko Niemi" />
<person posts="6" size="14" who="Robert Love" />
<person posts="5" size="113" who="Joe Thornber" />
<person posts="5" size="66" who="&quot;J. Hidding&quot;" />
<person posts="5" size="52" who="Mattia Dongili" />
<person posts="5" size="43" who="Miguel Sousa Filipe" />
<person posts="5" size="39" who="Matthias Andree" />
<person posts="5" size="38" who="&quot;Barry K. Nathan&quot;" />
<person posts="5" size="35" who="Gerd Knorr" />
<person posts="5" size="28" who="Alex Tomas" />
<person posts="5" size="26" who="=?iso-8859-1?Q?J=F6rn?= Engel" />
<person posts="5" size="25" who="(Andries.Brouwer)" />
<person posts="5" size="23" who="Ingo Molnar" />
<person posts="5" size="21" who="&quot;Miquel van Smoorenburg&quot;" />
<person posts="5" size="20" who="Walt H" />
<person posts="5" size="20" who="Eric Varsanyi" />
<person posts="5" size="19" who="Carl Thompson" />
<person posts="5" size="18" who="Roland Dreier" />
<person posts="5" size="17" who="Fredrik Tolf" />
<person posts="5" size="17" who="Ryan Underwood" />
<person posts="5" size="17" who="Werner Almesberger" />
<person posts="5" size="16" who="Peter Chubb" />
<person posts="5" size="16" who="Lars Marowsky-Bree" />
<person posts="5" size="15" who="=?iso-8859-1?q?Mike=20Martin?=" />
<person posts="5" size="14" who="Gregoire Favre" />
<person posts="5" size="14" who="Ronald Jerome" />
<person posts="5" size="13" who="Lou Langholtz" />
<person posts="5" size="13" who="John Bradford" />
<person posts="5" size="12" who="James Morris" />
<person posts="5" size="12" who="Roman Zippel" />
<person posts="4" size="352" who="Dely Sy" />
<person posts="4" size="117" who="(steven.newbury1)" />
<person posts="4" size="84" who="Jean Tourrilhes" />
<person posts="4" size="56" who="Ruben Puettmann" />
<person posts="4" size="45" who="Kronos" />
<person posts="4" size="36" who="Flameeyes" />
<person posts="4" size="31" who="Vince" />
<person posts="4" size="30" who="&quot;Bhavesh P. Davda&quot;" />
<person posts="4" size="27" who="John Wong" />
<person posts="4" size="26" who="Alistair J Strachan" />
<person posts="4" size="22" who="&quot;Chuck Luciano&quot;" />
<person posts="4" size="21" who="Luiz Capitulino" />
<person posts="4" size="20" who="jw schultz" />
<person posts="4" size="18" who="Michael Hunold" />
<person posts="4" size="18" who="Sven Dowideit" />
<person posts="4" size="16" who="&quot;H. Peter Anvin&quot;" />
<person posts="4" size="16" who="Willy Tarreau" />
<person posts="4" size="16" who="Tupshin Harper" />
<person posts="4" size="16" who="James Bourne" />
<person posts="4" size="16" who="=?koi8-r?Q?=22?=Peter Lojkin=?koi8-r?Q?=22=20?=" />
<person posts="4" size="15" who="Shane Shrybman" />
<person posts="4" size="14" who="(ajoshi)" />
<person posts="4" size="14" who="Thomas Dodd" />
<person posts="4" size="14" who="Jacek Kawa" />
<person posts="4" size="13" who="Matt Mackall" />
<person posts="4" size="13" who="Miguel Freitas" />
<person posts="4" size="13" who="&quot;Alan Shih&quot;" />
<person posts="4" size="13" who="&quot;P. Christeas&quot;" />
<person posts="4" size="13" who="Manfred Spraul" />
<person posts="4" size="12" who="Kevin Corry" />
<person posts="4" size="12" who="&quot;Mr. James W. Laferriere&quot;" />
<person posts="4" size="12" who="Richard Henderson" />
<person posts="4" size="12" who="Fernando Sanchez" />
<person posts="4" size="12" who="Brian Gerst" />
<person posts="4" size="12" who="Rahul Karnik" />
<person posts="4" size="12" who="=?koi8-r?Q?=22?=Andrey Borzenkov=?koi8-r?Q?=22=20?=" />
<person posts="4" size="12" who="&quot;James H. Cloos Jr.&quot;" />
<person posts="4" size="11" who="Kurt Wall" />
<person posts="4" size="11" who="Paul Mackerras" />
<person posts="4" size="11" who="Voluspa" />
<person posts="4" size="10" who="(imunity)" />
<person posts="4" size="10" who="Henrik Persson" />
<person posts="4" size="10" who="(root)" />
<person posts="4" size="9" who="&quot;Dimitry V. Ketov&quot;" />
<person posts="4" size="8" who="(Admin_Administrator%FRONT_END)" />
<person posts="4" size="7" who="&quot;Frederick, Fabian&quot;" />
<person posts="3" size="100" who="&quot;Tolentino, Matthew E&quot;" />
<person posts="3" size="83" who="Jeremy Fitzhardinge" />
<person posts="3" size="57" who="Boszormenyi Zoltan" />
<person posts="3" size="43" who="&quot;Jean-Luc Coulon (f5ibh)&quot;" />
<person posts="3" size="39" who="Supphachoke Suntiwichaya" />
<person posts="3" size="35" who="(ian.soboroff)" />
<person posts="3" size="32" who="jhigdon" />
<person posts="3" size="28" who="&quot;Rick A. Hohensee&quot;" />
<person posts="3" size="27" who="Marc Heckmann" />
<person posts="3" size="20" who="Paulo Andre'" />
<person posts="3" size="20" who="Pekka Pietikainen" />
<person posts="3" size="19" who="Petro" />
<person posts="3" size="17" who="Stephen Smalley" />
<person posts="3" size="16" who="xi" />
<person posts="3" size="16" who="&quot;Kathy Frazier&quot;" />
<person posts="3" size="16" who="Nuno Monteiro" />
<person posts="3" size="15" who="Juan Pedro Paredes" />
<person posts="3" size="15" who="&quot;Brown, Len&quot;" />
<person posts="3" size="14" who="=?ISO-8859-15?Q?Mika_Penttil=E4?=" />
<person posts="3" size="14" who="Amos Waterland" />
<person posts="3" size="14" who="Neil Brown" />
<person posts="3" size="13" who="john stultz" />
<person posts="3" size="13" who="Samuel Thibault" />
<person posts="3" size="13" who="Stephen Rothwell" />
<person posts="3" size="12" who="&quot;Feldman, Scott&quot;" />
<person posts="3" size="12" who="Ian Hastie" />
<person posts="3" size="12" who="Chris Morgan" />
<person posts="3" size="12" who="Kirill Korotaev" />
<person posts="3" size="12" who="Ookhoi" />
<person posts="3" size="12" who="Rory Browne" />
<person posts="3" size="11" who="Dumitru Ciobarcianu" />
<person posts="3" size="11" who="Jean-Luc" />
<person posts="3" size="11" who="Paul Mundt" />
<person posts="3" size="11" who="CaT" />
<person posts="3" size="11" who="Lars Duesing" />
<person posts="3" size="10" who="Norberto BENSA" />
<person posts="3" size="10" who="Alex Riesen" />
<person posts="3" size="10" who="Danek Duvall" />
<person posts="3" size="10" who="Matthew Dharm" />
<person posts="3" size="10" who="Ronald Bultje" />
<person posts="3" size="10" who="Vladimir Kondratiev" />
<person posts="3" size="10" who="Matthew Dobson" />
<person posts="3" size="10" who="navneet panda" />
<person posts="3" size="10" who="Jasper Spaans" />
<person posts="3" size="10" who="Ulrich Drepper" />
<person posts="3" size="10" who="Eli Carter" />
<person posts="3" size="10" who="=?ISO-8859-1?Q?C=E9dric?=" />
<person posts="3" size="10" who="Mel Gorman" />
<person posts="3" size="9" who="dacin" />
<person posts="3" size="9" who="Paul Clements" />
<person posts="3" size="9" who="James Antill" />
<person posts="3" size="9" who="Carl-Daniel Hailfinger" />
<person posts="3" size="9" who="Jan Kara" />
<person posts="3" size="9" who="Terje Kvernes" />
<person posts="3" size="9" who="David Brownell" />
<person posts="3" size="9" who="Antonio Vargas" />
<person posts="3" size="9" who="Matthew Wilcox" />
<person posts="3" size="9" who="Jon Masters" />
<person posts="3" size="9" who="backblue" />
<person posts="3" size="9" who="Matt Porter" />
<person posts="3" size="9" who="Mikulas Patocka" />
<person posts="3" size="8" who="&quot;David St.Clair&quot;" />
<person posts="3" size="8" who="David Woodhouse" />
<person posts="3" size="8" who="Chris Meadors" />
<person posts="3" size="8" who="Eric Valette" />
<person posts="3" size="8" who="Mikael Starvik" />
<person posts="3" size="8" who="Romit Dasgupta" />
<person posts="3" size="8" who="Andrew Theurer" />
<person posts="3" size="8" who="(schmurtz)" />
<person posts="3" size="8" who="Shawn" />
<person posts="3" size="8" who="Wade" />
<person posts="3" size="8" who="Rik van Riel" />
<person posts="3" size="7" who="Anton Blanchard" />
<person posts="3" size="7" who="nick black" />
<person posts="3" size="7" who="Ivan Kokshaysky" />
<person posts="3" size="7" who="Bernd Eckenfels" />
<person posts="3" size="7" who="Pedro Ribeiro" />
<person posts="3" size="7" who="Lyle Seaman" />
<person posts="2" size="137" who="Rolf Offermanns" />
<person posts="2" size="102" who="&quot;Szonyi Calin&quot;" />
<person posts="2" size="85" who="Dee" />
<person posts="2" size="84" who="Douglas J Hunley" />
<person posts="2" size="75" who="&quot;Felipe Alfaro Solana&quot;" />
<person posts="2" size="69" who="Christopher Wedgwood" />
<person posts="2" size="43" who="Georgi Chorbadzhiyski" />
<person posts="2" size="39" who="Martin Sarsale" />
<person posts="2" size="36" who="&quot;Thomas Babut&quot;" />
<person posts="2" size="30" who="Flameeyes" />
<person posts="2" size="30" who="Michael Dransfield" />
<person posts="2" size="28" who="Mark Haverkamp" />
<person posts="2" size="22" who="Ross Macintyre" />
<person posts="2" size="21" who="Marco Lazzarotto" />
<person posts="2" size="20" who="Adam Voigt" />
<person posts="2" size="18" who="Bob Gill" />
<person posts="2" size="18" who="Roberto Orenstein" />
<person posts="2" size="18" who="Wil Reichert" />
<person posts="2" size="18" who="Stacy Woods" />
<person posts="2" size="17" who="John Cherry" />
<person posts="2" size="14" who="(ffrederick)" />
<person posts="2" size="14" who="&quot;Paul Rolland&quot;" />
<person posts="2" size="14" who="=?ISO-8859-2?Q?Rafa=B3?= 'rmrmg' Roszak" />
<person posts="2" size="13" who="=?ISO-8859-1?Q?Ram=F3n?= Rey =?UTF-8?Q?Vicente?=" />
<person posts="2" size="13" who="Samium Gromoff" />
<person posts="2" size="12" who="Tavis Ormandy" />
<person posts="2" size="12" who="&quot;Deon George&quot;" />
<person posts="2" size="11" who="Mark Cooke" />
<person posts="2" size="11" who="Wim Van Sebroeck" />
<person posts="2" size="11" who="Daniel McNeil" />
<person posts="2" size="10" who="Christoph Hellwig" />
<person posts="2" size="10" who="Adam Belay" />
<person posts="2" size="10" who="Ingo Oeser" />
<person posts="2" size="10" who="Kevin Curtis" />
<person posts="2" size="10" who="&quot;Ben Castricum&quot;" />
<person posts="2" size="10" who="Wes Janzen" />
<person posts="2" size="9" who="Anders Karlsson" />
<person posts="2" size="9" who="&quot;Hua Zhong&quot;" />
<person posts="2" size="9" who="Fluke" />
<person posts="2" size="9" who="&quot;yuval yeret&quot;" />
<person posts="2" size="9" who="Edward Tandi" />
<person posts="2" size="9" who="&quot;Nathaniel W. Filardo&quot;" />
<person posts="2" size="8" who="Christian Guggenberger" />
<person posts="2" size="8" who="Christophe Saout" />
<person posts="2" size="8" who="(yiding_wang)" />
<person posts="2" size="8" who="Deepak Saxena" />
<person posts="2" size="8" who="Andrey Panin" />
<person posts="2" size="8" who="(Daniel.Dorau)" />
<person posts="2" size="7" who="Arnaud Ligot" />
<person posts="2" size="7" who="Jeff Chua" />
<person posts="2" size="7" who="Andreas Dilger" />
<person posts="2" size="7" who="&quot;Sy, Dely L&quot;" />
<person posts="2" size="7" who="Peter" />
<person posts="2" size="7" who="&quot;Henrique Oliveira&quot;" />
<person posts="2" size="7" who="Cole Nielsen" />
<person posts="2" size="7" who="&quot;Riley Williams&quot;" />
<person posts="2" size="7" who="Teemu Tervo" />
<person posts="2" size="7" who="Nachman Yaakov Ziskind" />
<person posts="2" size="7" who="Ron Niles" />
<person posts="2" size="7" who="Dave Hansen" />
<person posts="2" size="7" who="Mathieu Chouquet-Stringer" />
<person posts="2" size="7" who="Nicolas Mailhot" />
<person posts="2" size="7" who="Gianni Tedesco" />
<person posts="2" size="7" who="Dennis Bliefernicht" />
<person posts="2" size="7" who="Vincent Touquet" />
<person posts="2" size="7" who="Roger Luethi" />
<person posts="2" size="7" who="(derek)" />
<person posts="2" size="7" who="&quot;J.C. Wren&quot;" />
<person posts="2" size="7" who="Frank Elsner" />
<person posts="2" size="7" who="Rafal Bujnowski" />
<person posts="2" size="7" who="Ferenc Engard" />
<person posts="2" size="7" who="timothy parkinson" />
<person posts="2" size="7" who="Didier Casse" />
<person posts="2" size="7" who="Romano Giannetti" />
<person posts="2" size="7" who="Joshua Schmidlkofer" />
<person posts="2" size="7" who="Folkert van Heusden" />
<person posts="2" size="7" who="=?ISO-8859-1?Q?Mika_Penttil=E4?=" />
<person posts="2" size="6" who="&quot;&quot;" />
<person posts="2" size="6" who="Joerg Stephan" />
<person posts="2" size="6" who="Ian Hastie" />
<person posts="2" size="6" who="Rogier Wolff" />
<person posts="2" size="6" who="Maneesh Soni" />
<person posts="2" size="6" who="&quot;Mikael Starvik&quot;" />
<person posts="2" size="6" who="Joel Jaeggli" />
<person posts="2" size="6" who="Bill Huey (Hui)" />
<person posts="2" size="6" who="Adam Kessel" />
<person posts="2" size="6" who="Miles Bader" />
<person posts="2" size="6" who="Federico Stella" />
<person posts="2" size="6" who="&quot;Ulrich Weigand&quot;" />
<person posts="2" size="6" who="Bill Davidsen" />
<person posts="2" size="6" who="Hollis Blanchard" />
<person posts="2" size="6" who="Cesar Suga" />
<person posts="2" size="6" who="Ed Sweetman" />
<person posts="2" size="6" who="oford" />
<person posts="2" size="6" who="Joel Metelius" />
<person posts="2" size="6" who="Alexander Hoogerhuis" />
<person posts="2" size="6" who="Arnd Bergmann" />
<person posts="2" size="6" who="Amit Shah" />
<person posts="2" size="6" who="Andreas Schwab" />
<person posts="2" size="6" who="Joshua Kwan" />
<person posts="2" size="6" who="Brian Ristuccia" />
<person posts="2" size="6" who="Patrick Plattes" />
<person posts="2" size="6" who="ooyama eiichi" />
<person posts="2" size="6" who="Svein Ove Aas" />
<person posts="2" size="6" who="&quot;Jose Luis Alarcon&quot;" />
<person posts="2" size="6" who="&quot;Sergey S. Kostyliov&quot;" />
<person posts="2" size="6" who="jjs" />
<person posts="2" size="6" who="Jose Luis Domingo Lopez" />
<person posts="2" size="6" who="Jason Lunz" />
<person posts="2" size="5" who="Andy Isaacson" />
<person posts="2" size="5" who="(vlad)" />
<person posts="2" size="5" who=" (Michael Mueller)" />
<person posts="2" size="5" who="Philippe Troin" />
<person posts="2" size="5" who="&quot;David D. Hagood&quot;" />
<person posts="2" size="5" who="Fridtjof Busse" />
<person posts="2" size="5" who="Sir Ace" />
<person posts="2" size="5" who="Jay Denebeim" />
<person posts="2" size="5" who="David Zaffiro" />
<person posts="2" size="5" who="Cliff White" />
<person posts="2" size="5" who="Daniel Jacobowitz" />
<person posts="2" size="5" who="Matt Reppert" />
<person posts="2" size="5" who="Eyal Lebedinsky" />
<person posts="2" size="5" who="Chris Wright" />
<person posts="2" size="5" who="(junkio)" />
<person posts="2" size="5" who="&quot;Bloch, Jack&quot;" />
<person posts="2" size="5" who="Eric Blade" />
<person posts="2" size="5" who="Gorik Van Steenberge" />
<person posts="2" size="5" who="Dan Aloni" />
<person posts="2" size="5" who="Wichert Akkerman" />
<person posts="2" size="5" who="Pete Zaitcev" />
<person posts="2" size="5" who="Nicolas Turro" />
<person posts="2" size="5" who="Tugrul Galatali" />
<person posts="2" size="5" who="Marcelo Penna Guerra" />
<person posts="2" size="5" who="Luciano Miguel Ferreira Rocha" />
<person posts="2" size="5" who="(gigag)" />
<person posts="2" size="5" who="&quot;Andrew S. Johnson&quot;" />
<person posts="2" size="5" who="Alan Brady" />
<person posts="2" size="4" who="joe briggs" />
<person posts="2" size="4" who="(kuznet)" />
<person posts="2" size="4" who="Frank Cornelis" />
<person posts="2" size="4" who="Dax Kelson" />
<person posts="2" size="4" who="Andrew Burgess" />
<person posts="2" size="4" who="(crozierm)" />
<person posts="2" size="4" who="Sean Neakums" />
<person posts="2" size="4" who="&quot;P.I.Julius&quot;" />
<person posts="2" size="4" who="(nick)" />
<person posts="1" size="45" who="Thorsten Knabe" />
<person posts="1" size="44" who="Chris Rankin" />
<person posts="1" size="36" who="Touko Korpela" />
<person posts="1" size="34" who="patrice" />
<person posts="1" size="33" who="Federico Briata" />
<person posts="1" size="33" who="Michal Wronski" />
<person posts="1" size="32" who="(lists)" />
<person posts="1" size="31" who="&quot;Hemmann, Volker Armin&quot;" />
<person posts="1" size="31" who="Tuukka Toivonen" />
<person posts="1" size="29" who="Markus =?ISO-8859-1?Q?H=E4stbacka?=" />
<person posts="1" size="20" who="Jonathan Moore" />
<person posts="1" size="20" who="Maciej Soltysiak" />
<person posts="1" size="19" who="&quot;jds&quot;" />
<person posts="1" size="19" who="&quot;Milan Roubal&quot;" />
<person posts="1" size="19" who="Anders Gustafsson - xbox patch monkey" />
<person posts="1" size="19" who="&quot;David Lewis&quot;" />
<person posts="1" size="18" who="Ryan Boder" />
<person posts="1" size="18" who="Julien" />
<person posts="1" size="17" who="Danijel Schiavuzzi" />
<person posts="1" size="14" who="Justin Swanhart" />
<person posts="1" size="13" who="&quot;Andriy T. Yanko&quot;" />
<person posts="1" size="13" who="Erich Focht" />
<person posts="1" size="13" who="Sam Bromley" />
<person posts="1" size="12" who="Sam Bromley" />
<person posts="1" size="12" who="Fernando Alencar =?ISO-8859-1?Q?Mar=F3stica?=" />
<person posts="1" size="12" who="Peter Asemann" />
<person posts="1" size="11" who="&quot;Anurag Dod&quot;" />
<person posts="1" size="9" who="Ion Badulescu" />
<person posts="1" size="9" who="&quot;Andrey J. Melnikoff (TEMHOTA)&quot;" />
<person posts="1" size="9" who="Aschwin Marsman" />
<person posts="1" size="9" who="&quot;Serge A. Suchkov&quot;" />
<person posts="1" size="9" who="Jan De Luyck" />
<person posts="1" size="8" who="Paul Wes Hofmann" />
<person posts="1" size="8" who="Kurt Garloff" />
<person posts="1" size="8" who="Chris Ruvolo" />
<person posts="1" size="8" who="juan L" />
<person posts="1" size="8" who="=?koi8-r?Q?=22?=Kirill Korotaev=?koi8-r?Q?=22=20?=" />
<person posts="1" size="8" who="Wilfried Weissmann" />
<person posts="1" size="8" who="Ananth N Mavinakayanahalli" />
<person posts="1" size="7" who="&quot;Marcelo E. Magallon&quot;" />
<person posts="1" size="7" who="Doug Bell" />
<person posts="1" size="7" who="Michael Lauer" />
<person posts="1" size="7" who="&quot;=?iso-8859-1?B?RnJhbnRpc2VrIFJ5c+FuZWs=?=&quot;" />
<person posts="1" size="6" who="Gerd Knorr" />
<person posts="1" size="6" who="Lasse Anderson" />
<person posts="1" size="6" who="david" />
<person posts="1" size="6" who="Thomas Sailer" />
<person posts="1" size="6" who="&quot;Roeland Th. Jansen&quot;" />
<person posts="1" size="6" who="Florian Lohoff" />
<person posts="1" size="6" who="&quot;David M. Wilson&quot;" />
<person posts="1" size="6" who="(jak)" />
<person posts="1" size="6" who="Juan Pedro Paredes Caballero" />
<person posts="1" size="6" who="Chris Ruvolo" />
<person posts="1" size="5" who="&quot;Aneesh Kumar K.V&quot;" />
<person posts="1" size="5" who="Lars Ehrhardt" />
<person posts="1" size="5" who="Entrope" />
<person posts="1" size="5" who="Daniel Ritz" />
<person posts="1" size="5" who="Torsten Wolf" />
<person posts="1" size="5" who="Andreas Gruenbacher" />
<person posts="1" size="5" who="Patrick Mansfield" />
<person posts="1" size="5" who="Richard Curnow" />
<person posts="1" size="5" who="Martin Lucina" />
<person posts="1" size="5" who="Michael Bellion and Thomas Heinz" />
<person posts="1" size="5" who="Adam Langley" />
<person posts="1" size="5" who="William T Wilson" />
<person posts="1" size="5" who="Kresimir Kukulj" />
<person posts="1" size="5" who="&quot;Engr. Nkono Masekela&quot;" />
<person posts="1" size="5" who="&quot;Andrew Vasquez&quot;" />
<person posts="1" size="5" who="Mitch Adair" />
<person posts="1" size="5" who="Matt Tolentino" />
<person posts="1" size="5" who="Claus-Justus Heine" />
<person posts="1" size="5" who="&quot;David R. Piegdon&quot;" />
<person posts="1" size="5" who="(root)" />
<person posts="1" size="4" who="&quot;Kambo Lohan&quot;" />
<person posts="1" size="4" who="Roger Larsson" />
<person posts="1" size="4" who="Faik Uygur" />
<person posts="1" size="4" who="Jurriaan" />
<person posts="1" size="4" who="Koala GNU" />
<person posts="1" size="4" who="(crozierm)" />
<person posts="1" size="4" who="(ngozibrax)" />
<person posts="1" size="4" who="Herbert Xu" />
<person posts="1" size="4" who="&quot;NunO fELICIO&quot;" />
<person posts="1" size="4" who="&quot;Lee, Shuyu&quot;" />
<person posts="1" size="4" who="Arkadiusz Miskiewicz" />
<person posts="1" size="4" who="Timothee Besset" />
<person posts="1" size="4" who="Andy Polyakov" />
<person posts="1" size="4" who="(system_lists)" />
<person posts="1" size="4" who="Martin Hermanowski" />
<person posts="1" size="4" who="&quot;Mike Black&quot;" />
<person posts="1" size="4" who="Mark Fasheh" />
<person posts="1" size="4" who="Jeff Lightfoot" />
<person posts="1" size="4" who="Harald Welte" />
<person posts="1" size="4" who="Martin List-Petersen" />
<person posts="1" size="4" who="Jochen Hein" />
<person posts="1" size="4" who="Anton Altaparmakov" />
<person posts="1" size="4" who="Robert Scussel" />
<person posts="1" size="4" who="(no_spam)" />
<person posts="1" size="4" who="&quot;Pallipadi, Venkatesh&quot;" />
<person posts="1" size="4" who="Keith Owens" />
<person posts="1" size="3" who="&quot;B. D. Elliott&quot;" />
<person posts="1" size="3" who="=?ISO-8859-1?Q?C=E9dric_Barboiron?=" />
<person posts="1" size="3" who="(lich)" />
<person posts="1" size="3" who="&quot;Chad Kitching&quot;" />
<person posts="1" size="3" who=" (Eric W. Biederman)" />
<person posts="1" size="3" who="Stefan Schmidt" />
<person posts="1" size="3" who="mingz" />
<person posts="1" size="3" who="Markus Gaugusch" />
<person posts="1" size="3" who="Nathan Scott" />
<person posts="1" size="3" who=" (Neil F. Brown)" />
<person posts="1" size="3" who="&quot;Christian Garbs [Master Mitch]&quot;" />
<person posts="1" size="3" who="&quot;Michael Kerrisk&quot;" />
<person posts="1" size="3" who="Serge Eric Thiam" />
<person posts="1" size="3" who="Dominik Brodowski" />
<person posts="1" size="3" who="Domen Puncer" />
<person posts="1" size="3" who="Timothy Miller" />
<person posts="1" size="3" who="Jaroslav Kysela" />
<person posts="1" size="3" who="switch" />
<person posts="1" size="3" who="Roger Gammans" />
<person posts="1" size="3" who="&quot;Zink, Dan&quot;" />
<person posts="1" size="3" who="Andreas Koehler" />
<person posts="1" size="3" who="SA" />
<person posts="1" size="3" who="&quot;Petr Vandrovec&quot;" />
<person posts="1" size="3" who=" (Johannes Ruscheinski)" />
<person posts="1" size="3" who="David Hinds" />
<person posts="1" size="3" who="Mathieu Chouquet-Stringer" />
<person posts="1" size="3" who="Jeff Chua" />
<person posts="1" size="3" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="1" size="3" who="A Guy Called Tyketto" />
<person posts="1" size="3" who="Erik Andersen" />
<person posts="1" size="3" who="=?iso-8859-2?Q?Przemys=B3aw_Stanis=B3aw?= Knycz" />
<person posts="1" size="3" who="&quot;Il Skurko&quot;" />
<person posts="1" size="3" who="(dbellucci)" />
<person posts="1" size="3" who="Serguei Miridonov" />
<person posts="1" size="3" who="&quot;Randy.Dunlap&quot;" />
<person posts="1" size="3" who="Andre Tomt" />
<person posts="1" size="3" who="Arvind Kandhare" />
<person posts="1" size="3" who="Martin Loschwitz" />
<person posts="1" size="3" who="Philip Wyett" />
<person posts="1" size="3" who="Mitchell Blank Jr" />
<person posts="1" size="3" who="&quot;Peter C. Ndikuwera&quot;" />
<person posts="1" size="3" who="Nagendra Singh Tomar" />
<person posts="1" size="3" who="Greg Ungerer" />
<person posts="1" size="3" who="Disconnect" />
<person posts="1" size="3" who="&quot;Robert Williamson&quot;" />
<person posts="1" size="3" who="&quot;Kevin P. Fleming&quot;" />
<person posts="1" size="3" who="Erkki Seppala" />
<person posts="1" size="3" who="Marc Schiffbauer" />
<person posts="1" size="3" who="Andreas Happe" />
<person posts="1" size="3" who="&quot;Vladimir B. Savkin&quot;" />
<person posts="1" size="3" who="&quot;Oliver Pitzeier&quot;" />
<person posts="1" size="3" who="Olaf Dietsche" />
<person posts="1" size="3" who="DervishD" />
<person posts="1" size="3" who="Paul Dickson" />
<person posts="1" size="3" who="Ottavio Campana" />
<person posts="1" size="3" who="Greg Norris" />
<person posts="1" size="3" who="&quot;Joseph Fannin&quot;" />
<person posts="1" size="3" who="Niklaus" />
<person posts="1" size="3" who="&quot;Kristofer T. Karas&quot;" />
<person posts="1" size="3" who="Mark Frazer" />
<person posts="1" size="3" who="Dale Johannesen" />
<person posts="1" size="3" who="Liam Girdwood" />
<person posts="1" size="3" who="Alberto Bertogli" />
<person posts="1" size="3" who="Jan-Benedict Glaw" />
<person posts="1" size="3" who="Milton Miller" />
<person posts="1" size="3" who="Matthew Hughes" />
<person posts="1" size="3" who="Jurgen Kramer" />
<person posts="1" size="3" who="=?ISO-8859-2?Q?=22Pawe=B3_T=2E_Jochym=22?=" />
<person posts="1" size="3" who="kernel" />
<person posts="1" size="3" who="Jesse Pollard" />
<person posts="1" size="3" who="Gergely Nagy" />
<person posts="1" size="3" who="&quot;Fletcher, Jason A&quot;" />
<person posts="1" size="3" who="Doug Jolley" />
<person posts="1" size="3" who="Brandon Low" />
<person posts="1" size="3" who="Damian Kolkowski" />
<person posts="1" size="3" who="jamal" />
<person posts="1" size="3" who="Philippe =?ISO-8859-15?Q?Gramoull=E9?=" />
<person posts="1" size="3" who="&quot;\\\&quot;shaheed r. haque\\\&quot;&quot;" />
<person posts="1" size="3" who="Tom Sightler" />
<person posts="1" size="3" who="&quot;Axelle Apvrille (QB/LMC)&quot;" />
<person posts="1" size="3" who="Roberto Nibali" />
<person posts="1" size="3" who="Alasdair G Kergon" />
<person posts="1" size="3" who=" (Smets Jan)" />
<person posts="1" size="3" who="&quot;ERC - Equipe =?ISO-8859-1?Q?=20Reda=E7=E3o?= Comercial&quot;" />
<person posts="1" size="3" who="Jamie Wellnitz" />
<person posts="1" size="3" who="Erwin Rol" />
<person posts="1" size="3" who="Eric Altendorf" />
<person posts="1" size="3" who="Paul" />
<person posts="1" size="3" who="Dmitry Torokhov" />
<person posts="1" size="3" who="Alessandro Suardi" />
<person posts="1" size="3" who="David Ford" />
<person posts="1" size="3" who="David Ford" />
<person posts="1" size="3" who="iain d broadfoot" />
<person posts="1" size="3" who="Abraham van der Merwe" />
<person posts="1" size="3" who="Tom Rini" />
<person posts="1" size="3" who="Yang Yang" />
<person posts="1" size="3" who="Rob van Nieuwkerk" />
<person posts="1" size="3" who="Daniel" />
<person posts="1" size="3" who=" (Sean Connor)" />
<person posts="1" size="2" who="Stephen Kitchener" />
<person posts="1" size="2" who="(Matt_Domsch)" />
<person posts="1" size="2" who="Richard A Nelson" />
<person posts="1" size="2" who="=?iso-8859-1?q?Etienne=20Lorrain?=" />
<person posts="1" size="2" who="Keith Owens" />
<person posts="1" size="2" who="Siim Vahtre" />
<person posts="1" size="2" who="&quot;Jim Gifford&quot;" />
<person posts="1" size="2" who="Pete Clements" />
<person posts="1" size="2" who="Ian Chilton" />
<person posts="1" size="2" who="David G Hamblen" />
<person posts="1" size="2" who="Warren Turkal" />
<person posts="1" size="2" who="&quot;Ralph Roesler&quot;" />
<person posts="1" size="2" who="Lev Makhlis" />
<person posts="1" size="2" who="Olav Vitters" />
<person posts="1" size="2" who="&quot;Martin Schwidefsky&quot;" />
<person posts="1" size="2" who="Onur Kucuk" />
<person posts="1" size="2" who="Ed L Cashin" />
<person posts="1" size="2" who="&quot;Carlos Velasco&quot;" />
<person posts="1" size="2" who="Scott Robert Ladd" />
<person posts="1" size="2" who="&quot;Salvatore D'Angelo&quot;" />
<person posts="1" size="2" who="Kent Borg" />
<person posts="1" size="2" who="&quot;Vitezslav Samel&quot;" />
<person posts="1" size="2" who="&quot;Joe Pranevich&quot;" />
<person posts="1" size="2" who="Bernhard Rosenkraenzer" />
<person posts="1" size="2" who="=?iso-8859-1?q?shiva=20kumar?=" />
<person posts="1" size="2" who="&quot;Dr. David Alan Gilbert&quot;" />
<person posts="1" size="2" who="Thomas Winischhofer" />
<person posts="1" size="2" who="Meelis Roos" />
<person posts="1" size="2" who="Brian Jackson" />
<person posts="1" size="2" who=" (Margit Schubert-While)" />
<person posts="1" size="2" who="&quot;Michel Eyckmans (MCE)&quot;" />
<person posts="1" size="2" who="Stefano Rivoir" />
<person posts="1" size="2" who="Seth Chromick" />
<person posts="1" size="2" who="Moritz Muehlenhoff" />
<person posts="1" size="2" who="Ian Molton" />
<person posts="1" size="2" who="Anich Gregor" />
<person posts="1" size="2" who="(Gary_Lerhaupt)" />
<person posts="1" size="2" who="Karol Kozimor" />
<person posts="1" size="2" who="Pankaj Garg" />
<person posts="1" size="2" who="Ben" />
<person posts="1" size="2" who="&quot;=^.^=&quot;" />
<person posts="1" size="2" who=" (John Myers)" />
<person posts="1" size="2" who="Ralf Hildebrandt" />
<person posts="1" size="2" who="Markus Plail" />
<person posts="1" size="2" who="Hanna Linder" />
<person posts="1" size="2" who="Petr Sebor" />
<person posts="1" size="2" who="Olaf Hering" />
<person posts="1" size="2" who="Andreas Jellinghaus" />
<person posts="1" size="2" who="Jamey Hicks" />
<person posts="1" size="2" who="Alex Romosan" />
<person posts="1" size="2" who="(lkml)" />
<person posts="1" size="2" who="Jacek =?iso-8859-2?Q?Pop=B3awski?=" />
<person posts="1" size="2" who="Oliver Martin" />
<person posts="1" size="2" who="Norbert Kiesel" />
<person posts="1" size="2" who="Christian Kujau" />
<person posts="1" size="2" who="Jeff Dike" />
<person posts="1" size="2" who="=?ISO-8859-2?B?UHJ6ZW15c7NhdyBTdGFuaXOzYXc=?= Knycz" />
<person posts="1" size="2" who="joe" />
<person posts="1" size="2" who="Vincent Hanquez" />
<person posts="1" size="2" who="Jeff Mock" />
<person posts="1" size="2" who="Ravikiran G Thirumalai" />
<person posts="1" size="2" who="Daniele Bellucci" />
<person posts="1" size="2" who="James Courtier-Dutton" />
<person posts="1" size="2" who="Nick Sanders" />
<person posts="1" size="2" who="Duncan Sands" />
<person posts="1" size="2" who="Catalin BOIE" />
<person posts="1" size="2" who="Wakko Warner" />
<person posts="1" size="2" who="&quot;Robert P. J. Day&quot;" />
<person posts="1" size="2" who="bert hubert" />
<person posts="1" size="2" who="&quot;Ro0tSiEgE LKML&quot;" />
<person posts="1" size="2" who="David =?iso-8859-15?Q?G=F3mez?=" />
<person posts="1" size="2" who="Jindrich Makovicka" />
<person posts="1" size="2" who="Doug McNaught" />
<person posts="1" size="2" who="&quot;Kissner, Sven&quot;" />
<person posts="1" size="2" who="Geller Sandor" />
<person posts="1" size="2" who="Bernd Eckenfels" />
<person posts="1" size="2" who="Tom Zanussi" />
<person posts="1" size="2" who="Pasi Savolainen" />
<person posts="1" size="2" who="Ritz Daniel" />
<person posts="1" size="2" who="Dana Lacoste" />
<person posts="1" size="2" who="&quot;Gueven Bay&quot;" />
<person posts="1" size="2" who="Anthony Lichnewsky" />
<person posts="1" size="2" who="Yoshinori Sato" />
<person posts="1" size="2" who="phil" />
<person posts="1" size="2" who="Xose Vazquez Perez" />
<person posts="1" size="2" who="Frank Cornelis" />
<person posts="1" size="2" who="Charles Cazabon" />
<person posts="1" size="2" who="Sam Ravnborg" />
<person posts="1" size="2" who="Guanhua Yan" />
<person posts="1" size="2" who="Udo Hoerhold" />
<person posts="1" size="2" who="(bzzz)" />
<person posts="1" size="2" who="&quot;Michael D. Harnois&quot;" />
<person posts="1" size="2" who="Andrzej Krzysztofowicz" />
<person posts="1" size="2" who="Bas Mevissen" />
<person posts="1" size="2" who="chas williams" />
<person posts="1" size="2" who="Stephane Wirtel" />
<person posts="1" size="2" who="Magnus Ekhall" />
<person posts="1" size="2" who="Philippe Gerum" />
<person posts="1" size="2" who="James Bottomley" />
<person posts="1" size="2" who="John Shillinglaw" />
<person posts="1" size="2" who="Josh Litherland" />
<person posts="1" size="2" who="Brett" />
<person posts="1" size="2" who="=?gb2312?B?09rmug==?=" />
<person posts="1" size="2" who="Keyser Soze" />
<person posts="1" size="2" who="Dirk Meul" />
<person posts="1" size="2" who="Matti Aarnio" />
<person posts="1" size="2" who="Shawn Starr" />
<person posts="1" size="2" who="&quot;Ruth Ivimey-Cook&quot;" />
<person posts="1" size="2" who="=?iso-8859-1?q?Steven=20Newbury?=" />
<person posts="1" size="2" who="Jeff Smith" />
<person posts="1" size="2" who="Petko Manolov" />
<person posts="1" size="2" who="Grant Miner" />
<person posts="1" size="2" who="&quot;Hassard, Stephen&quot;" />
<person posts="1" size="2" who="Frank Fiene" />
<person posts="1" size="2" who="Bob Johnson" />
<person posts="1" size="2" who="GCS" />
<person posts="1" size="2" who="Luis Miguel Garcia" />
<person posts="1" size="2" who="HotTeens" />
<person posts="1" size="2" who="&quot;Dynamicfactory.com&quot;" />
<person posts="1" size="2" who="&quot;Ranga Reddy M - CTD ,Chennai.&quot;" />
<person posts="1" size="1" who="Ro0tSiEgE LKML" />
<person posts="1" size="1" who="&quot;Galimberti, Gustavo&quot;" />
<person posts="1" size="1" who="(linux)" />

</stats>

<section
  title="Better Support For Big-RAM Systems"
  subject="[announce, patch] 4G/4G split on x86, 64 GB RAM (and more) support"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/0246.html"
  posts="23"
  startdate="08 Jul 2003 14:45:52 -0800"
  enddate="14 Jul 2003 12:24:55 -0800"
>
<topic>Big Memory Support</topic>
<topic>Virtual Memory</topic>

<p>Ingo Molnar said:</p>

<quote who="Ingo Molnar">

<p>i'm pleased to announce the first public release of the "4GB/4GB VM split"
patch, for the 2.5.74 Linux kernel:</p>

<p><a
href="http://redhat.com/~mingo/4g-patches/4g-2.5.74-F8">http://redhat.com/~mingo/4g-patches/4g-2.5.74-F8</a></p>

<p>The 4G/4G split feature is primarily intended for large-RAM x86 systems,
which want to (or have to) get more kernel/user VM, at the expense of
per-syscall TLB-flush overhead.</p>

<p>on x86, the total amount of virtual memory - as we all know - is limited
to 4GB. Of this total 4GB VM, userspace uses 3GB (0x00000000-0xbfffffff),
the kernel uses 1GB (0xc0000000-0xffffffff). This is VM scheme is called
the 3/1 split. This split works perfecly fine up until 1 GB of RAM - and it
works adequately well even after that, due to 'highmem', which moves various
larger caches (and objects) into the high memory area.</p>

<p>But as the amount of RAM increases, the 3/1 split becomes a real
bottleneck. Despite highmem being utilized by a number of large-size caches,
one of the most crutial data structures, the mem_map[], is allocated out of
the 1 GB kernel VM. With 32 GB of RAM the remaining 0.5 GB lowmem area is
quite limited and only represents 1.5% of all RAM.  Various common workloads
exhaust the lowmem area and create artificial bottlenecks. With 64 GB RAM,
the mem_map[] alone takes up nearly 1 GB of RAM, making the kernel unable
to boot. Relocating the mem_map[] to highmem is very impractical, due to
the deep integration of this central data structure into the whole kernel -
the VM, lowlevel arch code, drivers, filesystems, etc.</p>

<p>with the 4G/4G patch, the kernel can be compiled in 4G/4G mode, in which
case there's a full, separate 4GB VM for the kernel, and there are separate
full (and per-process) 4GB VMs for user-space.</p>

<p>A typical /proc/PID/maps file of a process running on a 4G/4G kernel
shows a full 4GB address-space:</p>

<pre> 00e80000-00faf000 r-xp 00000000 03:01 175909     /lib/tls/libc-2.3.2.so
 00faf000-00fb2000 rw-p 0012f000 03:01 175909     /lib/tls/libc-2.3.2.so
 [...]
 feffe000-ff000000 rwxp fffff000 00:00 0</pre>

<p>the stack ends at 0xff000000 (4GB minus 16MB). The kernel has a 4GB lowmem
area, of which 3.1 GB is still usable even with 64 GB of RAM:</p>

<pre> MemTotal:     66052020 kB
 MemFree:      65958260 kB
 HighTotal:    62914556 kB
 HighFree:     62853140 kB
 LowTotal:      3137464 kB
 LowFree:       3105120 kB</pre>

<p>the amount of lowmem is still more than 3 times the amount of lowmem
available to a 4GB system. It's more than 6 times the amount of lowmem a
32 GB system gets with the 3/1 split.</p>

<p>Performance impact of the 4G/4G feature:</p>

<p>There's a runtime cost with the 4G/4G patch: to implement separate address
spaces for the kernel and userspace VM, the entry/exit code has to switch
between the kernel pagetables and the user pagetables. This causes TLB
flushes, which are quite expensive, not so much in terms of TLB misses
(which are quite fast on Intel CPUs if they come from caches), but in
terms of the direct TLB flushing cost (%cr3 manipulation) done on
system-entry.</p>

<p>RAM limits:</p>

<p>in theory, the 4G/4G patch could provide a mem_map[] for 200 GB (!) of
physical RAM on x86, while still having 1 GB of lowmem left. So it gives
quite some legroom. While the right solution for lots of RAM is to use a
proper 64-bit system, there's alot of existing x86 hardware, and x86
servers will still be sold in the next couple of years, so we ought to
support them maximally.</p>

<p>The patch is orthogonal to wli's pgcl patch - both patches try to achieve
the same, with different methods. I can very well imagine workloads where
we want to have the combination of the two patches.</p>

<p>Implementational details:</p>

<p>the patch implements/touches a number of new lowlevel x86
infrastructures:</p>

<p>

<ul>

<li>it moves the GDT, IDT, TSS, LDT, vsyscall page and kernel stack up into a
high virtual memory window (trampoline) at the top 16 MB of the 4GB address
space. This 16 MB window is the only area that is shared between user-space
and kernel-space pagetables.</li>

<li>it splits out atomic kmaps from highmem dependencies.</li>

<li>it makes LDT(s) atomic-kmap-ed.</li>

<li>(and lots of other smaller details, like increasing the size of the initial
mappings and fixing the PAE code to map the full 4GB of kernel VM.)</li>

</ul>

</p>

<p>Whenever we do a syscall (or any other trap) from user-mode, the
high-address trampoline code starts to run, with a high-address esp0. This
code switches over to the kernel pagetable, then it switches the 'virtual
kernel stack' to the regular (real) kernel stack. On syscall-exit it does
it the other way around.</p>

<p>there are a few generic kernel changes as well:</p>

<p>

<ul>

<li>it implements 'indirect uaccess' primitives and implements all the
get_user/put_user/copy_to_user/... functions without relying on direct access
to user-space. This feature uncovered a number of bugs in the lowlevel x86 code
already, there was still code that accessed user-space memory directly.</li>

<li>it splits up PAGE_OFFSET into PAGE_OFFSET_USER and PAGE_OFFSET
(kernel)</li>

<li>fixes a couple of assumptions about PAGE_OFFSET being PMD_SIZE
aligned.</li>

</ul>

</p>

<p>but the generic-kernel impact of the patch is quite low.</p>

<p>the patch optimizes kernel&lt;-&gt;kernel context switches and does
not flush the TLB, also, IRQ entry only cases a TLB flush if a userspace
pagetable is loaded.</p>

<p>the typical cost of 4G/4G on typical x86 servers is +3 usecs of syscall
latency (this is in addition to the ~1 usec null syscall latency).  Depending
on the workload this can cause a typical measurable wall-clock overhead from 0%
to 30%, for typical application workloads (DB workload, networking workload,
etc.). Isolated microbenchmarks can show a bigger slowdown as well - due to
the syscall latency increase.</p>

<p>i'd guess that the 4G/4G patch is not worth the overhead for systems with
less than 16 GB of RAM (although exceptions might exist, for particularly
lowmem-intensive/sensitive workloads). 32 GB RAM systems run into lowmem
limitations quite frequently so the 4G/4G patch is quite recommended there,
and for 64 GB and larger systems it's a must i think.</p>

<p>Status, future plans:</p>

<p>The patch is a work-in-progress snapshot - it still has a few TODOs
and FIXMEs, but it compiles &amp; works fine for me. Be careful with it
nevertheless - it's an experimental patch which does very intrusive changes
to the lowlevel x86 code.</p>

<p>There are a couple of performance enhancements ontop of this patch that
i'll integrate into this patch in the next couple of days, but i first wanted
to release the base patch.</p>

<p>In any case, enjoy the patch - and as usual, comments and suggestions
are more than welcome.</p>

</quote>

<p>A number of people liked the patch, and there was some
technical discussion.  Petr Vandrovec also remarked, <quote who="Petr
Vandrovec">FYI, VMware's vmmon/vmnet I maintain for 2.5.x kernels at <a
href="http://platan.vc.cvut.cz/ftp/pub/vmware">http://platan.vc.cvut.cz/ftp/pub/vmware</a>
(currently .../vmware-any-any-update37.tar.gz) were updated to work correctly
with 4G/4G kernel configuration.</quote></p>

</section>

<section
  title="Linux Test Project Update For July"
  subject="[ANNOUNCE] Linux Test Project July Release Announcement"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/0804.html"
  posts="1"
  startdate="10 Jul 2003 09:17:05 -0800"
>
<topic>Bug Tracking</topic>
<topic>PCI</topic>
<topic>Power Management: ACPI</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Robert Williamson announced:</p>

<quote who="Robert Williamson">

<p>The Linux Test Project test suite has been released. The latest version of
the testsuite contains 2000+ tests for the Linux OS. Our web site also
contains other information such as: test results, a Linux test tools
matrix, an area for keeping up with fixes for known blocking problems in
the 2.5 kernel releases, technical papers and HowTos on Linux testing, and
a code coverage analysis tool.</p>

<p>Highlights:</p>

<p>

<ul>

<li>Inclusion of the OpenHPI (Hardware Platform Interface) Test Suite.</li>
<li>New tests for PCI, USB, ACPI, and the NLS filesystem</li>
<li>Fixes and code cleanups for IA64 and PowerPC64</li>
<li>More script-based tests updated to use the test harness APIs</li>
<li>A new logo!</li>

</ul>

</p>

<p>We encourage the community to post results, patches or new tests on our
mailing list and use the CVS bug tracking facility to report problems that
you might encounter with the test suite.</p>

</quote>

</section>

<section
  title="Linux 2.5.75; Approaching 2.6; Andrew Morton Likely 2.6 Maintainer"
  subject="Linux 2.5.75"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/0872.html"
  posts="33"
  startdate="10 Jul 2003 13:14:15 -0800"
  enddate="12 Jul 2003 15:17:02 -0800"
>

<p>Linus Torvalds announced <a
href="http://www.kernel.org/pub/linux/kernel/v2.5/ChangeLog-2.5.75">2.5.75</a>
and said:</p>

<quote who="Linus Torvalds">

<p>Ok. This is it. We (Andrew and me) are going to start a "pre-2.6" series,
where getting patches in is going to be a lot harder. This is the last 2.5.x
kernel, so take note.</p>

<p>The probably most notable thing here is the anticipatory scheduler,
which has been in -mm for a long time, and was the major piece that hadn't
been merged.</p>

<p>Some architecture updates: cris has been updated for 2.5, ia64 and arm26
updates etc.  And various random (smallish) things.</p>

</quote>

<p>Russell King replied:</p>

<quote who="Russell King">

<p>Well, only two words from me.  Oh Shit.</p>

<p>The 2.5.70 ARM patch currently looks like this:</p>

<p> 343 files changed, 45388 insertions(+), 7341 deletions(-)</p>

<p>and I don't see that this will be reducing in size now that 2.6 is around
the corner.</p>

<p>I _know_ ARM stuff doesn't build and hasn't built in Linus' tree for a
fair time now - there are some generic changes to support ARM modules needed
in vmalloc.c which I just haven't had the time to sort out, and there's
still the issue of whether /proc/kcore actually works or not, and now I see
that the time stuff needs re-working for multiple ARM platforms yet again.
(yes, all the other architectures got updated, except for ARM.)</p>

<p>Maybe I should just forget even attempting to merge upstream, like most
of the ARM community doesn't.</p>

<p>Frustrated such an understatement.</p>

</quote>

<p>Linus Torvalds replied, <quote who="Linus Torvalds">Hey, this is already
much later than it should have been, so it's not as if this is a huge
surprise.</quote> He went on:</p>

<quote who="Linus Torvalds">

<p>We can sort it out later. Obviously, clearly arm-specific patches (ie stuff
in arch/arm and include/asm-arm) I wouldn't mind per se, but I'd rather hold
back on even those just to make the patches and the changlogs not be mixed
up with the "main bugfixes".</p>

<p>We've never had a first stable release that has all architectures
up-to-date, and I'm not planning on changing that for 2.6.x. This is _not_
the time to try to make my tree build on arm (or other architectures either),
considering that my tree hasn't been the main ARM tree for a long time.</p>

</quote>

<p>Finally, to Russell's frustration, Linus said:</p>

<quote who="Linus Torvalds">

<p>To be blunt, which part of "we want to release 2.6.x this year" came as
a surprise to you?</p>

<p>That means that I'm not willing to hold stuff up any more. Stuff that
hasn't followed the development tree doesn't magically just "get fixed".</p>

<p>Also, the only real point of a stable release is for distribution makers.
That pretty much cuts the list of "needs to be supported" down to x86, ia64,
x86-64 and possibly sparc/alpha.</p>

<p>So everything else is a bonus, but can equally well just play catch-up
later. Embedded people tend to want to stay back anyway, which is obviously
why they don't follow the development tree in the first place.</p>

</quote>

<p>Russell said, <quote who="Russell King">I can't think of any stock
kernel which has been usable, let alone been compilable for ARM.  Which,
IMO, is a pretty sorry statement to make.</quote> To which Linus replied:</p>

<quote who="Linus Torvalds">

<p>You see that as a sorry statement, but I don't think it's a failure. Why
_should_ one tree have to try to make everybody happy? We want to try to
make it easier to keep the couplings in place by striving for portable
infrastructure etc, but we would only be hampered by a philosophy that says
"everything has to work in tree X", since that just means that you can't
afford to break things.</p>

<p>I'd much rather keep the freedom to break stuff, and have many separate
trees that break _different_ things, and let them all co-exist in a friendly
rivalry.</p>

<p>And my tree is just one tree in that forest.</p>

<p>So it's not a bug - it's a FEATURE!</p>

</quote>

</section>

<section
  title="Expected Changes From 2.4 To 2.6"
  subject="2.5 'what to expect'"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/1082.html"
  posts="95"
  startdate="11 Jul 2003 06:02:19 -0800"
  enddate="18 Jul 2003 10:48:28 -0800"
>
<topic>Access Control Lists</topic>
<topic>BSD: OpenBSD</topic>
<topic>Backward Compatibility</topic>
<topic>Big Memory Support</topic>
<topic>Big O Notation</topic>
<topic>Compression</topic>
<topic>Device Mapper</topic>
<topic>Disk Arrays: LVM</topic>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>Extended Attributes</topic>
<topic>FS: CIFS</topic>
<topic>FS: FAT</topic>
<topic>FS: InterMezzo</topic>
<topic>FS: JFS</topic>
<topic>FS: NFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: ReiserFS</topic>
<topic>FS: UMSDOS</topic>
<topic>FS: VFAT</topic>
<topic>FS: XFS</topic>
<topic>FS: devfs</topic>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>
<topic>FS: sysfs</topic>
<topic>Forward Port</topic>
<topic>Framebuffer</topic>
<topic>Hot-Plugging</topic>
<topic>Hyperthreading</topic>
<topic>Ioctls</topic>
<topic>Kernel Build System</topic>
<topic>Microsoft</topic>
<topic>Modems</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>POSIX</topic>
<topic>Power Management: ACPI</topic>
<topic>Real-Time</topic>
<topic>SMP</topic>
<topic>Samba</topic>
<topic>Scheduler</topic>
<topic>Software Suspend</topic>
<topic>Sound: ALSA</topic>
<topic>Sound: OSS</topic>
<topic>USB</topic>
<topic>User-Mode Linux</topic>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>
<topic>Web Servers</topic>

<mention>Davide Libenzi</mention>
<mention>Jens Axboe</mention>
<mention>Meelis Roos</mention>
<mention>James Simmons</mention>
<mention>Ingo Molnar</mention>
<mention>Rik van Riel</mention>
<mention>Rusty Russell</mention>
<mention>Vojtech Pavlik</mention>
<mention>Matt Domsch</mention>
<mention>David Mosberger</mention>
<mention>Adam Belay</mention>
<mention>Ulrich Drepper</mention>
<mention>Jeff Garzik</mention>
<mention>Bert Hubert</mention>
<mention>Steven Cole</mention>
<mention>Alan Cox</mention>
<mention>Peter Chubb</mention>
<mention>Albert Cahalan</mention>
<mention>James H. Cloos</mention>
<mention>Keith Owens</mention>
<mention>Robert Love</mention>
<mention>Andrew Morton</mention>
<mention>Zwane Mwaikambo</mention>

<p>Dave Jones explained:</p>

<quote who="Dave Jones">

<p>In preparation for the flood of testers as we approach 2.6pre, I thought
I'd give this doc another airing to be sure that it isn't missing anything
important.. (Plus I've been meaning to post an update for a while, and 42
sounded like a good number).</p>

<p align="center">

The post-halloween document. v0.42<br />
(aka, 2.5 - what to expect)<br />
&#160;<br />
Dave Jones &lt;davej@codemonkey.org.uk&gt;<br />
&#160;<br />
(Updated as of 2.5.75)<br />

</p>

<p>This document explains some of the new functionality to be found in the
2.5 Linux kernel, some pitfalls you may encounter, and also points out some
new features which could really use testing.  Note, that "contact foo@bar.com"
below also implies that you should also cc: linux-kernel@vger.kernel.org.</p>

<p>Latest version of this document can always be found at <a
href="http://www.codemonkey.org.uk/post-halloween-2.5.txt">http://www.codemonkey.org.uk/post-halloween-2.5.txt</a></p>

<p>Thanks to many [far too many to list] people for valuable feedback.</p>

<p>Note, that this document is somewhat x86-centric, but most features
documented here affect all platforms anyway.</p>

<p>Spanish translation at: <a
href="http://www.terra.es/personal/diegocg/post-halloween-2.5.es.txt">http://www.terra.es/personal/diegocg/post-halloween-2.5.es.txt</a></p>

<p align="center"><i>Applying patches.</i></p>

<p>

<ul>

<li>In 2.4 and previous kernels, the recommended way to apply patches was
  to use a command line such as ...<br />
  gzip -cd patchXX.gz | patch -p0<br />
  In 2.5, Linus started adding an extra path element to the diffs,
  so using -p1 in the untarred 'to be patched' directory is necessary.</li>

</ul>

</p>


<p align="center"><i>Known gotchas.</i></p>

<p>Certain known bugs are being reported over and over. Here are the
workarounds.</p>

<p>

<ul>

<li>Blank screen after decompressing kernel?
  Make sure your .config has<br />
  CONFIG_INPUT=y, CONFIG_VT=y, CONFIG_VGA_CONSOLE=y and CONFIG_VT_CONSOLE=y<br />
  A lot of people have discovered that taking their .config from 2.4 and
  running make oldconfig to pick up new options leads to problems, notably
  with CONFIG_VT not being set.</li>

<li>An additional bug biting some people is that NICs fail to receive packets
  (usually notable by a NIC not getting a DHCP lease for eg, despite being
   sent one by the server). Booting with "noapic" "acpi=off" or a combination
  of both fixes this for most people. Additional breakage reports should go
  to Jeff Garzik &lt;jgarzik@pobox.com&gt;</li>

<li>(Possibly linked to above bug) VIA APIC routing is currently broken.
  boot with 'noapic'.</li>

<li>Can't load any modules? You need updated tools (See modules section
below).</li>

</ul>

</p>

<p align="center"><i>Regressions.</i></p>

<p>(Things not expected to work just yet)</p>

<p>

<ul>

<li>The hptraid/promise RAID drivers are currently non functional, and
  will probably be converted to use device-mapper.</li>

<li>Some filesystems still need work (Intermezzo, UFS, HFS, HPFS..)</li>

<li>A number of drivers don't compile currently due to them needing various
  work to convert them to the new APIs</li>

<li>UMSDOS fs is currently missing, pending rewrite.</li>

<li>The format of /proc/stat changed, which could break some
  applications that still depend on the old layout.
  Currently the only known application to break is the java
  'DOTS' app. (<a href="http://bugme.osdl.org/show_bug.cgi?id=277">http://bugme.osdl.org/show_bug.cgi?id=277</a>)</li>

<li>Some people seem to have trouble running rpm, most notably Red Hat 9 users.
  This is a known bug of rpm.
  Workaround: run "export LD_ASSUME_KERNEL=2.2.5", before running rpm.</li>

</ul>

</p>

<p align="center"><i>Deprecated features.</i></p>

<p>

<ul>

<li>khttpd is gone.</li>

<li>Older Direct Rendering Manager (DRM) support (For XFree86 4.0)
  has been removed. Upgrade to XFree86 4.1.0 or higher.</li>

<li>LVM1 has been removed. See Device-mapper below.</li>

<li>boot time root= parsing changed.
  ramdisks are now ram&lt;n&gt; instead of rd&lt;n&gt; and cm206 is cm206cd (instead of
  cm206).</li>

<li>The system call table is no longer exported. Any module that relied
  on this previously will no longer work.</li>

<li>Soundmodem hamradio support has been removed. Its functionality
  has been superceded by a userspace replacement.
  <a href="http://www.baycom.org/~tom/ham/soundmodem">http://www.baycom.org/~tom/ham/soundmodem</a></li>

<li>Direct booting from floppy is no longer supported.
  You should now use a boot loader program instead.</li>

<li>Callout tty devices (/dev/cua) have been deprecated since 2.1.90pre2.
  Support is now removed.</li>

</ul>

</p>

<p align="center"><i>Modules.</i></p>

<p>

<ul>

<li>The in-kernel module loader got reimplemented.</li>

<li>You need replacement module utilities from
  <a href="http://www.kernel.org/pub/linux/kernel/people/rusty/modules/">http://www.kernel.org/pub/linux/kernel/people/rusty/modules/</a></li>

<li>A backwards compatible set of module utilities is also available
  from the same URL in RPM format.</li>

<li>Debian sid users can 'apt-get install module-init-tools'</li>

<li>Modules now free stuff marked with __init or __initdata.</li>

<li>

<p>For Red Hat users, there's another pitfall in "/etc/rc.sysinit".
  During startup, the script sets up the binary used to dynamically load
  modules stored at "/proc/sys/kernel/modprobe". The initscript looks
  for "/proc/ksyms", but since it doesn't exist in 2.5 kernels, the
  binary used is "/sbin/true" instead.</p>

<p>  This, eventually, will keep modules from working. Red Hat users will
  have to patch the "/etc/rc.sysinit" script to set
  "/proc/sys/kernel/modprobe" to "/sbin/modprobe", even
  when "/proc/ksyms" doesn't exist.</p>

</li>

</ul>

</p>

<p align="center"><i>Kernel build system.</i></p>

<p>

<ul>

<li>The build system is much improved compared to 2.4.
  You should notice quicker builds, and less spontaneous rebuilds
  of files on subsequent builds from already built trees.</li>

<li>There are new graphical config tools.<br />
  "make xconfig" now requires the qt libraries.<br />
  "make gconfig" uses gtk libraries.</li>

<li>Make menuconfig/oldconfig has no user-visible changes other than speed,
  whilst numerous improvements have been made.</li>

<li>Several new debug targets exist: 'allyesconfig' 'allnoconfig' 'allmodconfig'.</li>

<li>Note: The new configuration system is not CML2 related.</li>

<li>Also note: Whilst some ideas were taken from it, Keith Owens'
  kbuild-2.5 project was not integrated.</li>

<li>"make" is now the preferred command, without a target; it does &lt;arch-zimage&gt;
  and modules.</li>

<li>"make -jN" is now the preferred parallel-make execution.
  Do not bother to provide "MAKE=xxx"</li>

<li>The build is now much less verbose.  If you want to see exactly what's
  going on, try "make V=1" or set KBUILD_VERBOSE=1 in your environment.</li>

<li>'make kernel/mm.o' will build the named file, provided a
  corresponding source exists. This also works for (non-composite)
  modules. (FIXME: broken for modules right now?)</li>

<li>'make kernel/' will compile all files in a subdirectory and below.</li>

<li>There is no need to run 'make dep' at any stage.</li>

<li>'make help' provides a list of typical targets, including debugging
targets.</li>

</ul>

</p>

<p align="center"><i>IO subsystem.</i></p>

<p>

<ul>

<li>You should notice considerable throughput improvements over 2.4 due
  to much reworking of the block and the memory management layers.</li>

<li>Report any regressions in this area to Jens Axboe &lt;axboe@suse.de&gt;
  and Andrew Morton &lt;akpm@digeo.com&gt;.</li>

<li>Several different IO elevators are available to match different types
  of workload.  You can select which one to use with elvtune.</li>

<li>Assorted changes throughout the block layer meant various block
  device drivers had a large scale cleanup whilst being updated to
  newer APIs.</li>

<li>The size and alignment of O_DIRECT file IO requests now matches that
  of the device, not the filesystem.  Typically this means that you
  can perform O_DIRECT IO with 512-byte granularity rather than 4k.
  But if you rely upon this, your application will not work on 2.4 kernels
  and will not work on some devices.</li>

</ul>

</p>

<p align="center"><i>Enormous block size support.</i></p>

<p>

<ul>

<li>Thanks to work done by Peter Chubb, block devices can now access up to
  16TB on 32-bit architectures, and up to 8EB on 64-bit architectures.</li>

<li>To use the new BLKGETSZ64 ioctls, you'll need updated file-utils.
  (Currently only jfsutils 1.0.20 has this change, patches for other
   filesystems are still pending merging)</li>

</ul>

</p>

<p align="center"><i>POSIX ACLs &amp; Extended attributes.</i></p>

<p>

<ul>

<li>Userspace tools available at <a
href="http://acl.bestbits.at">http://acl.bestbits.at</a></li>

</ul>

</p>

<p align="center"><i>VM Changes.</i></p>

<p>

<ul>

<li>Version zero swap partitions are no longer supported (everything is
  using v1 now anyway - rerun mkswap if in doubt).
  Linux 2.0.x requires v0 swap space, Linux v2.1.117 and later
  support v1.  mkswap(8) can format swap space in either format.</li>

<li>The actual 'reverse mappings' part of Rik van Riel's rmap vm was merged.
  VM behaviour under certain loads should improve.</li>

<li>VM misbehaviour should be reported to linux-mm@kvack.org</li>

<li>The VM explicitly checks for sparse swapfiles, and aborts if one is
found.</li>

<li>/proc/sys/vm/swappiness defines the kernel's preference for pagecache over
  mapped memory. Setting it to 100 (percent) makes it treat both types of
  memory equally. Setting it to zero makes the kernel very much prefer to
  reclaim plain pagecache rather than mapped-into-pagetables memory.</li>

<li>The bdflush() syscall is now officially deprecated. The syscall
  does nothing, and prints a stern warning to users. The functionality
  is replaced by the pdflush daemons.</li>

<li>Due to various changes, swap files should be just as fast as swap partitions.</li>

</ul>

</p>

<p align="center"><i>Kernel preemption.</i></p>

<p>

<ul>

<li>The much talked about preemption patches made it into 2.5.
  With this included you should notice much lower latencies especially
  in demanding multimedia applications.</li>

<li>Note, there are still cases where preemption must be temporarily disabled
  where we do not. These areas occur in places where per-CPU data is used.</li>

<li>If you get "xxx exited with preempt count=n" messages in syslog,
  don't panic, these are non fatal, but are somewhat unclean.
  (Something is taking a lock, and exiting without unlocking)</li>

<li>If you DO notice high latency with kernel preemption enabled in
  a specific code path, please report that to Andrew Morton &lt;akpm@digeo.com&gt;
  and Robert Love &lt;rml@tech9.net&gt;.
  The report should be something like "the latency in my xyz application
  hits xxx ms when I do foo but is normally yyy" where foo is an action
  like "unlink a huge directory tree".</li>

</ul>

</p>

<p align="center"><i>Process scheduler improvements.</i></p>

<p>

<ul>

<li>Another much talked about feature. Ingo Molnar reworked the process
  scheduler to use an O(1) algorithm.  In operation, you should notice
  no changes with low loads, and increased scalability with large numbers
  of processes, especially on large SMP systems.</li>

<li>Scheduler is now Hyperthreading SMP aware and will disperse processes
  over physically different CPUs, instead of just over logical CPUs.</li>

<li>Robert Love wrote various utilities for changing behaviour of the
  scheduler (binding processes to CPUs etc). You can find these tools at
  <a href="http://tech9.net/rml/schedutils">http://tech9.net/rml/schedutils</a></li>

<li>The behavior of sched_yield() changed a lot.  A task that uses
  this system call should now expect to sleep for possibly a very
  long time.  Tasks that do not really desire to give up the
  processor for a while should probably not make heavy use of this
  function.  Unfortunately, some GUI programs (like Open Office)
  do make excessive use of this call and under load their
  performance is poor.  It seems this new 2.5 behavior is optimal
  but some user-space applications may need fixing.</li>

<li>The above applies to use of yield() in the kernel, too.</li>

<li>2.5 adds system calls for manipulating a task's processor
  affinity: sched_getaffinity() and sched_setaffinity()</li>

<li>Regressions to mingo@redhat.com and rml@tech9.net</li>

<li>Debian users who encounter effects such as skips in mp3
  playback, jerky mouse movement may want to stop the
  X server from renicing itself to -10
  You can alter this permanently with 'dpkg-reconfigure xserver-common';
  if you elect not to have /etc/X11/Xwrapper.config managed by debconf,
  simply edit it directly.</li>

<li>Balancing of IRQs between multiple CPUs should be handled using the
  irqbalance (<a
  href="http://people.redhat.com/arjanv/irqbalance/">http://people.redhat.com/arjanv/irqbalance/</a>)
  program.</li>

<li>David Mosberger maintains a webpage containing some current 'known gotchas'
  of the O(1) scheduler at <a
  href="http://www.hpl.hp.com/research/linux/kernel/o1.php">http://www.hpl.hp.com/research/linux/kernel/o1.php</a></li>

</ul>

</p>

<p align="center"><i>PCI.</i></p>

<p>

<ul>

<li>PCI domain support has been added.  For most people, this just means that
  all PCI slot names are extended with "0000:" on the front, but for people
  with bigger servers it means they're able to access all their PCI
devices.</li>

<li>More hotplug drivers have been added, including a fake PCI hotplug driver
  so people without specialised hardware can test hotplug features.</li>

</ul>

</p>

<p align="center"><i>Fast userspace mutexes (Futexes).</i></p>

<p>

<ul>

<li>Rusty Russell added functionality that allows userspace to have
  fast mutexes that only use syscalls when there is contention. Used by
  NPTL.</li>

<li>Bert Hubert has written some documentation on this functionality
  at <a href="http://ds9a.nl/futex-manpages">http://ds9a.nl/futex-manpages</a></li>

</ul>

</p>

<p align="center"><i>epoll</i></p>

<p>Davide Libenzi wrote an event based poll replacement that got
included in 2.5.  More info available at<br />
<a href="http://www.xmailserver.org/linux-patches/nio-improve.html">http://www.xmailserver.org/linux-patches/nio-improve.html</a><br />
<a href="http://lwn.net/Articles/13587/">http://lwn.net/Articles/13587/</a></p>

<p align="center"><i>Threading improvements.</i></p>

<p>

<ul>

<li>Ingo Molnar put a lot of work into threading improvements during 2.5.
  Some of the features of this work are:</li>

<ul>

<li>Generic pid allocator (arbitrary number of PIDs with no slowdown,
     unified pidhash).</li>
<li>Thread Local Storage syscalls</li>
<li>sys_clone() enhancements (CLONE_SETTLS, CLONE_PARENT_SETTID, CLONE_SETTID,
     CLONE_CLEARTID, CLONE_DETACHED)</li>
<li>POSIX thread signals stuff (atomic signals, shared signals, etc.)</li>
<li>Per-CPU GDT</li>
<li>Threaded coredumping support</li>
<li>sys_exit() speedups (O(1) exit)</li>
<li>Generic, improved futexes, vcache</li>
<li>New, threading related ptrace features</li>
<li>exit/fork task cache</li>
<li>/proc updates for threading</li>
<li>API changes for threading.</li>

</ul>

<li>Users should notice a significant speedup in basic thread operations.
  This is true to a lesser extent even for old-threading userspace libraries
  such as LinuxThreads.</li>

<li>Regressions should go to Ingo Molnar &lt;mingo@redhat.com&gt; and
  phil-list@redhat.com.  Regressions could happen in the area of signal
  handling and related threading semantics, plus coredumping.</li>

<li>Native Posix Threading Library (NPTL).
  Ulrich Drepper worked closely with Ingo on the threading enhancements, and
  developed a 1:1 model threading library. You can find out more about NPTL at
  <a href="http://people.redhat.com/drepper/nptl-design.pdf">http://people.redhat.com/drepper/nptl-design.pdf</a></li>

</ul>

</p>

<p align="center"><i>Enhanced coredumping.</i></p>

<p>

<ul>

<li>

<p>2.5 offers you the ability to configure the way core files are
  named through a /proc/sys/kernel/core_pattern file.
  You can use various format identifiers in this name to affect
  how the core dump is named.</p>

<p>    %p - insert pid into filename<br />
    %u - insert current uid into filename<br />
    %g - insert current gid into filename<br />
    %s - insert signal that caused the coredump into the filename<br />
    %t - insert UNIX time that the coredump occurred into filename<br />
    %h - insert hostname where the coredump happened into filename<br />
    %e - insert coredumping executable name into filename</p>

<p>  You should ensure that the string does not exceed 64 bytes.</p>

</li>

<li>Multithreaded processes can now dump core</li>

</ul>

</p>

<p align="center"><i>Input layer.</i></p>

<p>

<ul>

<li>Possibly the most visible change to the end user. If misconfigured,
  you'll find that your keyboard/mouse/other input device will no longer work.
  2.5 offers a much more flexible interface to devices such as keyboards.</li>

<li>

<p>The downside is more confusing options.
  In the "Input device support" menu, be sure to enable at least the
following.</p>

<p>                    --- Input I/O drivers<br />
                    &lt; &gt; Serial i/o support<br />
                    &lt; &gt;   i8042 PC Keyboard controller<br />
                    [ ] Keyboards<br />
                    [ ] Mice</p>

<p>  (Also choose the relevant keyboard/mouse from the list)</p>

</li>

<li>

<p>If you find your keyboard/mouse still don't work, edit the file
  drivers/input/serio/i8042.c, and replace the #undef DEBUG
  with a #define DEBUG</p>

<p>  When you boot, you should now see a lot more debugging information.
  Forward this information to Vojtech Pavlik &lt;vojtech@suse.cz&gt;</p>

</li>

<li>If you use a KVM switcher, and experience problems, booting with the boot
  time argument 'psmouse_noext' should fix your problems.</li>

<li>Users of multimedia keys without X will see changes in how the kernel
  handles those keys. People who customize keymaps or keycodes in 2.4
  may need to make some changes in 2.5</li>

</ul>

</p>

<p align="center"><i>PnP layer.</i></p>

<p>

<ul>

<li>Support for plug and play devices such as early ISAPnP cards has improved a
  lot in the 2.5 kernel. The new code behaves more closely to the code
  handling PCI devices (probe, remove etc callbacks), and also merges
  PnP BIOS access code.</li>

<li>Report any regressions in plug &amp; play functionality to
  Adam Belay &lt;ambx1@neo.rr.com&gt;</li>

</ul>

</p>

<p align="center"><i>ALSA.</i></p>

<p>

<ul>

<li>The advanced linux sound architecture got merged into 2.5.
  This offers considerably improved functionality over the older OSS drivers,
  but requires new userspace tools.</li>

<li>Several distros have shipped ALSA for some time, so you may already have the
  necessary tools. If not, you can find them at
<a href="http://www.alsa-project.org/">http://www.alsa-project.org/</a></li>

<li>ALSA can emulate OSS interface using the snd_pcm_oss/snd_pcm_mixer
  modules, if your card produces nothing but silence, you may need to run
  alsamixer to unmute channels wich /dev/mixer doesn't see</li>

<li>Note that the OSS drivers are also still functional, and still present.
  Many features/fixes that went into 2.4 are still not applied to these
  drivers, and it's still unclear if they will remain when 2.6/3.0 ships.
  The long term goal is to get everyone moved over to (the superior) ALSA.</li>

</ul>

</p>

<p align="center"><i>AGP.</i></p>

<p>

<ul>

<li>The agpgart driver got a long overdue cleanup which involved
  splitting it into an agpgart core, and per-chipset drivers.
  You may need to adjust your modules configuration to autoload
  the chipset drivers on loading the agpgart module.</li>

<li>Generic AGP 3.0 support is now included.</li>

</ul>

</p>

<p align="center"><i>Faster system calls.</i></p>

<p>

<ul>

<li>Systems that support the SYSENTER extension (Basically Intel PPro and
  above, and AMD Athlons) now have a faster method of making the transition
  from userspace to kernelspace when a syscall is performed.</li>

<li>Without an updated glibc, this will not be noticable.</li>

<li>VMWare 4 users may get crashes due to this.
  Zwane Mwaikambo wrote a patch for a "nosysenter" option which is worth
  googling for if there isn't a vmware update available.</li>

<li>Regressions to torvalds@transmeta.com and libc-alpha@redhat.com</li>

</ul>

</p>

<p align="center"><i>procps.</i></p>

<p>

<ul>

<li>The 2.5 /proc filesystems changed some statistics, which confuse older
  versions of procps. Rik van Riel and Robert Love have been maintaining a
  version of procps during the 2.5 cycle which tracks changes to /proc which
  you can find at <a href="http://tech9.net/rml/procps/">http://tech9.net/rml/procps/</a></li>
<li>Alternatively, the procps by Albert Cahalan now supports the altered formats
  since v3.0.5  -- <a href="http://procps.sf.net/">http://procps.sf.net/</a></li>
<li>The /proc/meminfo format changed slightly which also broke gtop in strange
  ways. Likely this also broke some of the KDE/GNOME panel applets.</li>

</ul>

</p>

<p align="center"><i>Framebuffer layer.</i></p>

<p>

<ul>

<li>James Simmons has reworked the framebuffer/console layer considerably during
  2.5. Support for some cards is still lagging a little, but it should be
  functionally no different than previous incarnations.</li>

<li>boot time arguments may have changed depending on your driver.
  an example of the change is..<br />
    append = "video=radeon:1024x768-24@100"<br />
  needs to become..<br />
    append = "video=radeonfb:1024x768-24@100"</li>
<li>Current userspace tools (fbset for eg) are not yet updated,
  and won't function as expected.</li>
<li>The VESA framebuffer now enables MTRRs for the framebuffer memory range during
  initialisation (Note: PCI cards only).
  If you notice screen corruption, please report this, along with an lspci
output,
  so your card can be blacklisted.</li>
<li>Any problems should go to &lt;jsimmons@infradead.org&gt;</li>

</ul>

</p>

<p align="center"><i>IDE.</i></p>

<p>

<ul>

<li>The IDE code rewrite was subject to much criticism in early 2.5.x, which
  put off a lot of people from testing. This work was then subsequently
  dropped, and reverted back to a 2.4.18 IDE status.
  Since then additional work has occurred, but not to the extent
  of the first cleanup attempts.</li>

<li>Known problems with the current IDE code.</li>

<ul>

<li>Simplex IDE devices (eg Ali15x3) are missing DMA sometimes</li>

<li>Serverworks OSB4 may panic on bad blocks or other non fatal errors</li>

<li>PCMCIA IDE hangs on eject</li>

<li>Most PCMCIA devices have unload races and may oops on eject</li>

<li>Modular IDE does not yet work, modular IDE PCI modules sometimes
     oops on loading</li>

<li>ide_scsi is completely broken in 2.5.x. Known problem. If you need it
     either use 2.4 or fix it 8)</li>

</ul>

<li>IDE disk geometry translators like OnTrack, EZ Partition, Disk Manager
  are no longer supported. The only way forward is to remove the translator
  from the drive, and start over.</li>

</ul>

</p>

<p align="center"><i>IDE TCQ.</i></p>

<p>

<ul>

<li>Tagged command queueing for IDE devices has been included.</li>

<li>Not all combinations of controllers &amp; devices may like this,
  so handle with care.
  READ AS: ** Don't use IDE TCQ on any data you value.
  It's likely bad combinations will be blacklisted as and when discovered.</li>

<li>

<p>If you didn't choose the "TCQ on by default" option, you can enable
  it by using the command</p>

<p>    echo "using_tcq:32" > /proc/ide/hdX/settings</p>

<p>  (replacing 32 with 0 disables TCQ again).</p>

</li>

<li>Report success/failure stories to Jens Axboe &lt;axboe@suse.de&gt; with
  inclusion of hdparm -i /dev/hdX, and lspci output.</li>

</ul>

</p>

<p align="center"><i>SCSI.</i></p>

<p>

<ul>

<li>Various SCSI drivers still need work, and don't even compile.</li>

<li>Various drivers currently lack error handling.
  These drivers will cause warnings during compilation due to
  missing abort: &amp; reset: functions.</li>

<li>Note, that some drivers have had these members removed, but still
  lack error handling. Those noticed so far are ncr53c8xxx, sym53c8xx and
  inia100</li>

<li>large dev_t support allowing thousands of disks to be
  supported (was 128 or 256 in the 2.4 series)</li>

<li>major code cleanup, initially to support the block layer (bio)
  improvements have led to:</li>

<ul>

<li>better throughput (?) [less double handling of data]</li>
<li>per HBA locks (there was a single io_request_lock in
     the 2.4 series)</li>
<li>more flexible interface to HBA drivers</li>
<li> better hotplug support, especially for USB mass storage
     and ieee1394 sbp2 devices [well it's work_in_progress]</li>

</ul>

<li>improved error processing and scanning code (support for
  large, sparse lun spaces)</li>

<li>lots of scsi driver "innards" available via sysfs</li>

</ul>

</p>

<p align="center"><i>v4l2.</i></p>

<p>

<ul>

<li>The video4linux API finally got its long awaited cleanup.</li>

<li>xawtv, bttv and most other existing v4l tools are also compatible
  with the new v4l2 layer. You should notice no loss in functionality.</li>

<li>See <a href="http://bytesex.org/v4l/">http://bytesex.org/v4l/</a> for
more information.</li>

</ul>

</p>

<p align="center"><i>Quota reworking.</i></p>

<p>The new quota system needs new tools. Supports 32 bit uids.
<a href="http://www.sf.net/projects/linuxquota/">http://www.sf.net/projects/linuxquota/</a></p>

<p align="center"><i>CD Recording.</i></p>

<p>

<ul>

<li>Jens Axboe added the ability to use DMA for writing CDs on
  ATAPI devices. Writing CDs should be much faster than it
  was in 2.4, and also less prone to buffer underruns and the like.</li>

<li>Updated cdrecord in rpm and tar.gz can be found at
  <a href="http://ftp.kernel.org/pub/linux/kernel/people/axboe/tools/">*.kernel.org/pub/linux/kernel/people/axboe/tools/</a></li>
<li>With the above tools, you also no longer need ide-scsi in order to use
  an IDE CD writer.</li>
<li>Ripping audio tracks off of CDs now also uses DMA and should be
  notably faster. You can also find an updated cdda2wav at the same
location.</li>
<li>Send good/bad reports of audio extraction with cdda2wav and burning with
  the modified cdrecord to Jens Axboe &lt;axboe@suse.de&gt;</li>
<li>Currently only 'open by device name' works in cdrecord.<br />
  cdrecord -dev=/dev/hdX -inq</li>
<li>More info at <a href="http://lwn.net/Articles/13538/">http://lwn.net/Articles/13538/</a> &amp; <a href="http://lwn.net/Articles/13160/">http://lwn.net/Articles/13160/</a></li>

</ul>

</p>

<p align="center"><i>USB:</i></p>

<p>

<ul>

<li>Very little user visible changes, the only noticable 'major' change
  is that there is now only one UHCI driver. As noted elsewhere, usbdevfs
  got renamed to usbfs.</li>

</ul>

</p>

<p align="center"><i>Nanosecond stat:</i></p>

<p>The stat64() syscall got changed to return jiffies granularity.
This allows make(1) to make better decisions on whether or not it
needs to recompile a file. Not all filesystems may support such precision.</p>

<p align="center"><i>Filesystems:</i></p>

<p>A number of additional filesystems have made their way into 2.5.
Whilst these have had testing out of tree, the level of testing
after merging is unparalleled. Be wary of trusting data to immature
filesystems.  A number of new features and improvements have also
been made to the existing filesystems from 2.4.</p>

<p>Reports of stress testing with the various tools available would
be beneficial.</p>

<p align="center"><i>Generic VFS changes.</i></p>

<p>

<ul>

<li>Since Linux 2.5.1 it is possible to atomically move a subtree to
  another place. The call is...<br />
   mount --move olddir newdir</li>
<li>Since 2.5.43, dmask=value sets the umask applied to directories only.
  The default is the umask of the current process.
  The fmask=value sets the umask applied to regular files only.
  Again, the default is the umask of the current process.</li>

</ul>

</p>

<p align="center"><i>devfs.</i></p>

<p>

<ul>

<li>devfs got somewhat stripped down and a lot of duplicate functionality
  got removed. You now need to enable CONFIG_DEVPTS_FS=y and mount
  the devpts filesystem in the same manner you would if you were not
  using devfs.</li>

</ul>

</p>

<p align="center"><i>EXT2.</i></p>

<p>

<ul>

<li>2.5.49 included an extension to ext2 which will cause it to not attach
  buffer_head structures to file or directory pagecache at all, ever.
  This is for the big highmem machines.  It is enabled via the `-o nobh'
  mount option.</li>

<li>The ext2 filesystem is now using finer-grained locking which yields reduced
  context switch rates and higher throughput on large SMP machines.</li>

</ul>

</p>

<p align="center"><i>EXT3.</i></p>

<p>

<ul>

<li>The ext3 filesystem has gained indexed directory support, which offers
  considerable performance gains when used on filesystems with directories
  containing large numbers of files.</li>

<li>In order to use the htree feature, you need at least version 1.32 of
  e2fsprogs.</li>

<li>

<p>Existing filesystems can be converted using the command</p>

<p>    tune2fs -O dir_index /dev/hdXXX</p>

</li>

<li>The latest e2fsprogs can be found at
  <a href="http://prdownloads.sourceforge.net/e2fsprogs">http://prdownloads.sourceforge.net/e2fsprogs</a></li>

<li>data=journal mode is currently broken.</li>

<li>The ext2 and ext3 filesystems have new file allocations policies (the "Orlov
  allocator") which will place subdirectories closer together on-disk.  This
  tends to mean that operations which touch many files in a directory tree are
  much faster if that tree was created under a 2.5 kernel.</li>

</ul>

</p>

<p align="center"><i>Reiserfs.</i></p>

<p>

<ul>

<li>Reiserfs now supports inode attributes such as immutable.</li>

</ul>

</p>

<p align="center"><i>NFS.</i></p>

<p>

<ul>

<li>Basic support has been added for NFSv4 (server and client)</li>

<li>Additionally, kNFSD now supports transport over TCP.
  This experimental feature is also backported to 2.4.20</li>

<li>Interoperability reports with other OS's would be useful.</li>

<li>v1.0.3 of nfs-utils supports the newer 2.5 kernels change
  of kdev_t type. You can grab it at http://nfs.sourceforge.net</li>

<li>Problems to nfs@lists.sourceforge.net</li>

</ul>

</p>

<p align="center"><i>NTFS.</i></p>

<p>

<ul>

<li>A new, rewritten NTFS driver got merged during 2.5. It has the
  following main benefits over the old driver:</li>
<ul>
<li>SMP and reentrant safe</li>
<li>support bigger than 4 kB cluster sizes</li>
<li>full support for sparse files on W2K/XP/W2K3</li>
<li>mmap() support</li>
<li>More stable, and much faster than the previous NTFS driver.</li>
<li>Still read-only, but with safe file overwrite support without changes
  to the file size</li>
<li>More information is available at <a href="http://linux-ntfs.sf.net">http://linux-ntfs.sf.net</a></li>
</ul>

</ul>

</p>

<p align="center"><i>sysfs.</i></p>

<p>In simple terms, the sysfs filesystem is a saner way for
drivers to export their innards than /proc.
This filesystem is always compiled in, and can be mounted
just like another virtual filesystem. No userspace tools
beyond cat and echo are needed.</p>

<p>    mount -t sysfs none /sys</p>

<p>See Documentation/filesystems/sysfs.txt for more info.</p>

<p align="center"><i>JFS.</i></p>

<p>IBM's JFS got merged during 2.5. (And backported to 2.4.20, but
it was still a new feature here first. You can read more about JFS at
<a href="http://www-124.ibm.com/developerworks/oss/jfs/index.html">http://www-124.ibm.com/developerworks/oss/jfs/index.html</a></p>

<p align="center"><i>XFS.</i></p>

<p>The SGI XFS filesystem has been merged, and has a
number of userspace features. Users are encouraged to read <a
href="http://oss.sgi.com/projects/xfs">http://oss.sgi.com/projects/xfs</a>
for more information.</p>

<p>The various utilities for creating and manipulating XFS volumes can
be found on SGI's ftp server:</p>

<p><a
href="ftp://oss.sgi.com/projects/xfs/download/download/cmd_tars/xfsprogs-2.3.9.src.tar.gz">ftp://oss.sgi.com/projects/xfs/download/download/cmd_tars/xfsprogs-2.3.9.src.tar.gz</a></p>

<p align="center"><i>CIFS.</i></p>

<p>Support utilities and documentation for the
common internet file system (CIFS) can be found at <a
href="http://us1.samba.org/samba/Linux_CIFS_client.html">http://us1.samba.org/samba/Linux_CIFS_client.html</a></p>

<p align="center"><i>FAT.</i></p>

<p>CVF (Compressed VFAT) support has been removed. This means you
will no longer be able to access DriveSpace partitions.</p>

<p align="center"><i>HugeTLBfs.</i></p>

<p>Files in this filesystem are backed by large pages if the CPU
supports them. See Documentation/vm/hugetlbpage.txt for more details.</p>

<p align="center"><i>Internal filesystems.</i></p>

<p>/proc/filesystems will contain several filesystems that are not
mountable in userspace, but are used internally by the kernel
to keep track of things. Amongst these filesystems are futexfs
and eventpollfs</p>

<p align="center"><i>Oprofile.</i></p>

<p>A system wide performance profiler has been included in 2.5.  With this
option compiled in, you'll get an oprofilefs filesystem which you can
mount, that the userspace utilities talk to.  You can find out more at <a
href="http://oprofile.sourceforge.net/">http://oprofile.sourceforge.net/oprofile-2.5.html</a></p>

<p align="center"><i>util-linux.</i></p>

<p>

<ul>

<li>You need a fixed readprofile utility for 2.5. Present in util-linux as
  of 2.11z</li>

</ul>

</p>

<p align="center"><i>Improved BIOS table support.</i></p>

<p>

<ul>

<li>Linux now supports various new BIOS extensions.</li>

</ul>

</p>

<p align="center"><i>Simple boot flag support.</i></p>

<p>The SBF specification is an x86 BIOS extension that allows improved
system boot speeds. It does this by marking a CMOS field to say "I
booted okay, skip extensive POST next reboot".  Userspace tool is at <a
href="http://www.codemonkey.org.uk/cruft/sbf.c">http://www.codemonkey.org.uk/cruft/sbf.c</a>.
More info on SBF is at <a
href="http://www.microsoft.com/hwdev/resources/specs/simp_bios.asp">http://www.microsoft.com/hwdev/resources/specs/simp_bios.asp</a></p>

<p align="center"><i>EDD Support.</i></p>

<p>

<ul>

<li>Support for BIOS Enhanced Disk Drive Services (EDD) was added,
  which exports information on what the BIOS thinks is the boot
  drive and other useful info to /sys/firmware/edd</li>

<li>Matt Domsch is interested in hearing success/fails on this code
  with some simple tests decribed at <a
  href="http://domsch.com/linux/edd30/results.html">http://domsch.com/linux/edd30/results.html</a></li>

</ul>

</p>

<p align="center"><i>Intel IPMI support.</i></p>

<p>

<ul>

<li>IPMI is a standard for monitoring the hardware in a system.</li>

<li>Project home page: <a
href="http://openipmi.sourceforge.net">http://openipmi.sourceforge.net</a></li>

<li>Specification: <a
href="http://www.intel.com/design/servers/ipmi/spec.htm">http://www.intel.com/design/servers/ipmi/spec.htm</a></li>

</ul>

</p>

<p align="center"><i>x86 CPU detection.</i></p>

<p>

<ul>

<li>The CPU detection code got a pretty hefty shake up. To be certain your
  CPU has all relevant workarounds applied, be sure to check that it was
  detected correctly. cat /proc/cpuinfo will tell what the kernel thinks
  it is.</li>

<li>Likewise, the x86 MTRR driver got a considerable makeover.
  Check that XFree86 sets up MTRRs in the same way it did in 2.4 (Failures
  will get logged in /var/log/XFree86.log)</li>

<li>Early PII Xeon processors and possibly other early PII processors
  require microcode updates either from the BIOS or the
  microcode driver to work around CPU bugs the O(1) scheduler
  exposes.  You can find the relevant microcode tools at <a
  href="http://www.urbanmyth.org/microcode/">http://www.urbanmyth.org/microcode/</a></li>

<li>Any regressions in both should go to mochel@osdl.org Cc: davej@suse.de</li>

</ul>

</p>

<p align="center"><i>Extra tainting.</i></p>

<p>Running certain AMD processors in SMP boxes is out of spec, and will taint
the kernel with the 'S' flag.  Running 2 Athlon XPs for example may seem to
work fine, but may also introduce difficult to pin down bugs.
In time it's likely this tainting will be extended to cover other out of
spec cases.</p>

<p>Additionally, the new modules interface will taint the kernel if you try
to 'force' a module to load with insmod -f.</p>

<p align="center"><i>Power management.</i></p>

<p>

<ul>

<li>2.5 contains a more up to date snapshot of the ACPI driver. Should
  you experience any problems booting, try booting with the argument
  "acpi=off" to rule out any ACPI interaction. ACPI has a much more involved
  role in bringing the system up in 2.5 than it did in 2.4</li>

<li>The old "acpismp=force" boot option is now obsolete, and will be ignored
  due to the old "mini ACPI" parser being removed.</li>

<li>software suspend is still in development, and in need of more work.
  It is unlikely to work as expected currently.</li>

</ul>

</p>

<p align="center"><i>CPU frequency scaling.</i></p>

<p>Certain processors have the facility to scale their voltage/clockspeed.
2.5 introduces an interface to this feature, see Documentation/cpufreq
for more information. This functionality also covers features like
Intel's speedstep, and the Powernow! feature present in mobile AMD Athlons.
In addition to x86 variants, this framework also supports various ARM CPUs.
You can find a userspace daemon that monitors battery life and
adjusts accordingly at: http://www.staikos.net/~staikos/cpufreqd/</p>

<p align="center"><i>Background polling of MCE.</i></p>

<p>The machine check handler has been extended so that it regularly polls
for any problems on AMD Athlon, and Intel Pentium 4 systems.
This may result in machine check exceptions occuring more frequently
than they did in 2.4 on out of spec systems (Overclocking/inadequate
cooling/underated PSU etc..).</p>

<p align="center"><i>LVM2 - DeviceMapper.</i></p>

<p>The LVM1 code got removed wholesale, and replaced with a much better
designed 'device mapper'.</p>

<p>

<ul>

<li>This is backwards compatible with the LVM1 disk format.</li>

<li>Device mapper does require new tools to manage volumes however.
  You can get these from <a
  href="ftp://ftp.sistina.com/pub/LVM2/tools/">ftp://ftp.sistina.com/pub/LVM2/tools/</a></li>

</ul>

</p>

<p align="center"><i>Debugging options.</i></p>

<p>During the stabilising period, it's likely that the debugging options
in the kernel hacking menu will trigger quite a few problems.
Please report any of these problems to linux-kernel@vger.kernel.org
rather than just disabling the relevant CONFIG_ options.</p>

<p>Merging of kksymoops means that the kernel will now spit out
automatically decoded oopses (no more feeding them to ksymoops).
For this reason, you should always enable the option in the
kernel hacking menu labelled "Load all symbols for debugging/kksymoops".</p>

<p>Testing with CONFIG_PREEMPT will also increase the amount of debug
code that gets enabled in the kernel. Kernel preemption gives us
the ability to do a whole slew of debugging checks like sleeping
with locks held, scheduling while atomic, exiting with locks held, etc.</p>

<p align="center"><i>Compiler issues.</i></p>

<p>

<ul>

<li>The recommended compiler (for x86) is still 2.95.3.</li>

<li>When compiled with a modern gcc (Ie gcc 3.x), 2.5 will use additional
  optimisations that 2.4 didn't. This may shake out compiler bugs that
  2.4 didn't expose.</li>

<li>Do not use gcc 3.0.x on x86 due to a stack pointer handling bug.</li>

<li>gcc 2.96 is not supported with CONFIG_FRAME_POINTER=y due to a stack
  pointer handling bug.</li>

<li>gcc 3.2.2-5 as shipped by Red Hat generates incorrect code in the
  kmalloc optimisation introduced in 2.5.71 See <a
  href="http://linus.bkbits.net:8080/linux-2.5/cset@1.1410">http://linus.bkbits.net:8080/linux-2.5/cset@1.1410</a></li>

</ul>

</p>

<p align="center"><i>Security concerns.</i></p>

<p>Several security issues solved in 2.4 may not yet be forward ported
to 2.5. For this reason 2.5.x kernels should not be tested on
untrusted systems.  Testing known 2.4 exploits and reporting results
is useful.</p>

<p align="center"><i>Networking.</i></p>

<p>

<ul>

<li>ebtables<br />
  The bridging firewall code got merged. To
  manage these you'll need the ebtables tool available from <a
  href="http://users.pandora.be/bart.de.schuymer/ebtables/">http://users.pandora.be/bart.de.schuymer/ebtables/</a>
  More on bridge-nf can be found at <a
  href="http://bridge.sourceforge.net">http://bridge.sourceforge.net</a></li>

<li>Bridged packets can now be 'seen' by iptables.</li>

<li>IPSec<br />
  Linux finally has IPSec support in mainline.  Use the KAME tools port on <a
  href="ftp://ftp.inr.ac.ru/ip-routing/iputils-ss021109-try.tar.bz2">ftp://ftp.inr.ac.ru/ip-routing/iputils-ss021109-try.tar.bz2</a>.
  For more info see <a
  href="http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/1127.html">http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/1127.html</a>.
  Also Bert Hubert has a howto at <a
  href="http://lartc.org/howto/lartc.ipsec.html">http://lartc.org/howto/lartc.ipsec.html</a>.
  Additionally, ipsec-utils is at <a
  href="http://sourceforge.net/projects/ipsec-tools">http://sourceforge.net/projects/ipsec-tools</a>.
  Herbert Xu also has patches against FreeSWAN 2.00 to allow its userspace
  to use the 2.5 IPSec functionality. They can be downloaded from <a
  href="http://gondor.apana.org.au/~herbert/freeswan/">http://gondor.apana.org.au/~herbert/freeswan/</a></li>

<li>Some applications may trigger the kernel to spit out warnings about
  'process xxx using obsolete setsockopt SO_BSDCOMPAT' .</li>

<ul>
<li>Bind 9.2.2 checks for #ifdef SO_BSDCOMPAT in &lt;asm/socket.h&gt; correctly,
so a recompile is all that is needed.</li>
<li>bind9-host from debian testing triggers, though the 'host' package
doesn't.</li>
<li>process `snmpd' is using obsolete setsockopt SO_BSDCOMPAT</li>
<li>process `snmptrapd' is using obsolete setsockopt SO_BSDCOMPAT</li>
<li>ntop uses obsolete (PF_INET,SOCK_PACKET)</li>
</ul>

<li>Users of boxes with >1 NIC may find that for eg, eth0 and eth1 refer to
  the opposites of what they did in 2.4.   This is a bug that
  will be fixed before 2.6.0.  One option (or management
  workaround) for this is to use 'nameif' to name Ethernet
  interfaces.  There is a HOWTO for doing this at &lt;<a
  href="http://xenotime.net/linux/doc/network-interface-names.txt">http://xenotime.net/linux/doc/network-interface-names.txt</a>&gt;</li>

<li>Support for various new RFCs.</li>
<ul>
<li>RFC3173 (IP Payload Compression).</li>
</ul>

<li>

<p>Linux reaches congestion collapse when subjected to heavy network load.
NAPI fixes this amongst other things and therefore improving network
performance.</p>

<p>More info at <a
href="http://www.cyberus.ca/~hadi/usenix-paper.tgz">http://www.cyberus.ca/~hadi/usenix-paper.tgz</a>
and <a
href="ftp://robur.slu.se/pub/Linux/net-development/NAPI/">ftp://robur.slu.se/pub/Linux/net-development/NAPI/</a></p>

</li>

</ul>

</p>

<p align="center"><i>Crypto</i></p>

<p>

<ul>

<li>A generic crypto API has been merged, offering support for various
algorithms (HMAC,MD4,MD5,SHA-1,DES,Triple DES EDE, Blowfish)</li>

<li>This functionality is used by IPSec and the crypto-loop.  It's possible
  that it will later also be available for use in userspace through a crypto
  device, possibly compatible with the OpenBSD crypto userspace.</li>

<li>The in-kernel loopback device can now do crypto using the CryptoAPI.
  May need new userspace tools.</li>

</ul>

</p>

<p align="center"><i>Deprecated.</i></p>

<p>

<ul>

<li>usbdevfs will be going away in 2.7. The same filesystem can
  be mounted as 'usbfs' in recent 2.4 kernels, and in 2.5.52 and above,
  which is what the filesystem will furthermore be known as.</li>

<li>elvtune is deprecated (as are the ioctl's it used).
  Instead, the io scheduler tunables are exported in sysfs (see below)
  in the /sys/block/&lt;device&gt;/iosched directory.  Jens wrote
  a document explaining the tunables of the new scheduler at <a
  href="http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/att-deadline-iosched.txt">http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/att-deadline-iosched.txt</a></li>

</ul>

</p>

<p align="center"><i>Ports.</i></p>

<p>

<ul>

<li>2.5 features support for several new architectures.</li>
<ul>
<li>x86-64 (AMD Hammer)</li>
<li>ppc64</li>
<li>UML (User mode Linux).
    See <a href="http://user-mode-linux.sf.net">http://user-mode-linux.sf.net</a> for more information.</li>
<li>uCLinux: m68k(w/o MMU), h8300 and v850.  sh also added a uCLinux
option.</li>
</ul>
<li>The 64 bit s390x port got collapsed into a single port, appearing
  as a config option in the base s390 arch.</li>
<li>In the opposite direction, arm26 was split out from arm.</li>

</ul>

</p>

</quote>

<p>Oleg Drokin pointed out that ReiserFS supported inode attributes in
2.4.17 as well, and so couldn't really be considered a new feature in 2.5;
but he added:</p>

<quote who="Oleg Drokin">

<p>On the real new features list we have:</p>

<p>

<ul>

<li>Relocated/nonstandard size journal support (actually was included in
2.4.22-pre3, too)</li>

<li>Support for writes larger than 4k in size (get speedup on large file
writes, esp. in append mode, should be more SMP friendly, too)</li>

<li>Variable blocksize support (i.e. you can choose any blocksize in range
of 1024 .. PAGE_CACHE_SIZE, must be power of 2)</li>

</ul>

</p>

</quote>

<p>Paul Dickson also pointed out that the features Dave had marked
"deprecated" were in fact already removed. As he put it, <quote who="Paul
Dickson">Deprecated means "in the process of being phased out, but still
usable"</quote>.</p>

<p>Elsewhere, Matthew Dharm also pointed out for the little section on USB,
<quote who="Matthew Dharm">We may want to mention here that usb-storage has
changed behavior.  A device which is disconnected and then re-connected
is not re-associated with the old /dev/ node.  Also some performance
enhancements.</quote></p>

<p>Elsewhere, also regarding the USB section, Greg KH said:</p>

<quote who="Greg KH">

<p>The USB host controller drivers got renamed in 2.5.  They are now:</p>

<p>        uhci-hcd.o for UHCI USB host controllers<br />
        ohci-hcd.o for OHCI USB host controllers<br />
        ehci-hcd.o for EHCI (USB 2.0) host controllers</p>

</quote>

<p>Elsewhere, James H. Cloos Jr. pointed out that in the "IO Subsystem"
section, Dave had said that I/O elevators could be selected via 'elvtune',
while in the deprecated section, Dave had said that 'elvtune' was deprecated,
and that the elevators were actually tunable through a SysFS interface. Meelis
Roos also made this connection elsewhere, and Dave and others tried to puzzle
out whether 'elftune' would or would not be the preferred method.</p>

<p>Elsewhere regarding software suspend, Pavel Machek pointed out that it was
not quite as badly off as Dave had described. Pavel said, <quote who="Pavel
Machek">Actually it tends to work these days. No SMP, be carefull with PREEMPT,
and no unusual hardware, and it should work.</quote></p>

<p>Elsewhere, Alan Cox also had a number of comments about Dave's
first post. Among them, he pointed out that the URL Dave had given
for one of the BitKeeper changesets, was apparently incorrect. Larry
McVoy replied, <quote who="Larry McVoy">I know, sorry.  The version
numbers in BK are not stable, they can't be.  You have to use the
underlying internal version number.  If someone who knows can show me
the output of 'bk changes -r&lt;correct rev&gt;' for that changeset
I will figure out a way to have a URL that doesn't change and send it
to Dave for that doc as well as post it there.</quote> Steven Cole said that <a
href="http://linus.bkbits.net:8080/linux-2.5/cset@1.1215.127.10">http://linus.bkbits.net:8080/linux-2.5/cset@1.1215.127.10</a>
looked correct.</p>

</section>

<section
  title="Merging Software Suspend Patches; Aborting A Suspend-In-Progress"
  subject="Thoughts wanted on merging Software Suspend enhancements"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/1309.html"
  posts="53"
  startdate="11 Jul 2003 14:45:47 -0800"
  enddate="15 Jul 2003 11:05:26 -0800"
>
<topic>Big Memory Support</topic>
<topic>Compression</topic>
<topic>Power Management: ACPI</topic>
<topic>Software Suspend</topic>

<p>Nigel Cunningham asked:</p>

<quote who="Nigel Cunningham">

<p>As you may know, there has been a lot of work done on the 2.4 version of
software suspend. This includes:</p>

<p>

<ul>

<li>async i/o</li>

<li>back out on errors rather than panicing (where possible)</li>

<li>enhancements to refrigerator so it successfully freezes processes even
under high load</li>

<li>save a full image rather than freeing just about all the memory first</li>

<li>highmem support</li>

<li>image compression support</li>

<li>swapfile support in progress</li>

<li>nice display</li>

<li>user can abort at any time during suspend (oh, I forgot, I wanted
to...) by just pressing Escape</li>

<li>extensive debugging info that doesn't need to be compiled in and can be
adjusted during the suspend cycle (very handy for diagnosing issues)</li>

</ul>

</p>

<p>I'm wanting to get your thoughts on how we should go about merging
it. I don't think these qualify as bug fixes, but current users (and I'm
not excluding myself!) would certainly like to see the patch merged sooner
rather than later. Would it be a good idea to seek to get Marcello and Andrew
to take it into 2.4 and 2.6, and then aim for 2.[7|9]?</p>

</quote>

<p>Pavel Machek objected to the idea of aborting a suspend operation by
just pressing the ESC key. He said, <quote who="Pavel Machek">We don't want
joe random user that is at the console to prevent suspend by just pressing
Escape. Maybe magic key to do that would be acceptable...</quote> Dmitry
Torokhov replied that in most cases, the machine being suspended would
be a laptop, and so there would only be one Joe User present. He said,
<quote who="Dmitry Torokhov">I myself would rather have an option to press
ESC than remember what SysRq really maps to as by the time I would figure
that out the laptop would already be suspended.  IMHO, an option to use ESC,
probably compile time option, is a good thing.</quote> But Pavel was against
adding more compile options unless they were really necessary. He also said
any keyboard solution would be ugly, including the magic sysrq, but that the
magic sysrq would be useful enough to be acceptible. Jamie Lokier replied:</p>

<quote who="Jamie Lokier">

<p>Can't you just use the Suspend button? :)</p>

<p>I'd be inclined to initiate suspend-to-disk when the laptop's lid is
closed, or when I press the suspend button if ACPI would be so accomodating.
After closing the lid, if I change my mind there's only two inputs I can do
quickly: press the Suspend button, or open the lid.  SysRq-Escape would take
a couple of seconds longer due to needing to open the lid.</p>

<p>Of those, I'd be worried about the fragile lid switch occasionally
bouncing as I moved the laptop, causing it to fail to suspend in my bag.
The button is well protected.</p>

</quote>

<p>Kent Borg said he wanted his laptop to keep running when the lid was
closed, and Pavel said, <quote who="Pavel Machek">Of course, this *needs*
to be configurable (== handled by userland). If you are using external
keyboard/mouse you do not want your notebook open.</quote> But elsewhere he
said that using the Suspend button would be acceptible in general. He said,
<quote who="Pavel Machek">If it is the same button that would wake machine
up when it finished suspend... I guess that makes sense.</quote></p>

<p>Vojtech Pavlik suggested just having any keypress stop a suspend, but
Nigel said this would make it too easy to accidentally interrupt the suspend.
Elsewhere, Nigel said he still preferred using the Esc key. He said, <quote
who="Nigel Cunningham">Having listened to the arguments, I'll make pressing
Escape to cancel the suspend a feature which defaults to being disabled and
can be enabled via a proc entry in 2.4. I won't add code to poll for ACPI
(or APM) events :></quote>. Pavel suggested, <quote who="Pavel Machek">At
least no new proc entry, please. Make it depend on sysrq_enabled and disable
it completely if sysrq support is not compiled in.</quote> And Vojtech also
suggested <quote who="Vojtech Pavlik">making it a mappable function in the
keymap, like reboot is for example. Both for initiating and stopping the
suspend.</quote> There was a bit more discussion, but Nigel stood firm,
and the thread petered out.</p>

</section>

<section
  title="File-Time System Calls; Status Of ReiserFS"
  subject="utimes/futimes/lutimes syscalls"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/1357.html"
  posts="8"
  startdate="11 Jul 2003 21:22:20 -0800"
  enddate="15 Jul 2003 10:31:34 -0800"
>
<topic>FS: ReiserFS</topic>
<topic>FS: XFS</topic>

<mention>Tomas Szepe</mention>

<p>Ulrich Drepper said:</p>

<quote who="Ulrich Drepper">

<p>With the introduction of the nanosecond fields in struct stat the utime()
syscall is kind of obsolete.  It's not possible anymore to restore the exact
access/modification time of a file.</p>

<p>Unix defines the utimes() function for this.  It is currently implementated
in glibc on top of the utime() syscall which used to be OK but isn't anymore
today.  In addition some systems provide the futimes() and lutimes() functions
which appropriate semantics.</p>

<p>The question: would a patch introducing these syscalls be accepted?
If there are filesystems which store the sub-seconds on disk I think this is
necessary since otherwise all kinds of programs (including archives) cannot
be written correctly.  If the sub-seconds only live in memory I still think
it would be good to have the syscalls but it would not be that urgent.</p>

</quote>

<p>Andrew Morton replied, <quote who="Andrew Morton">XFS (at least) stores
nanoseconds on disk.  So yes, I think we should make this change.</quote> And
Nikita Danilov pointed out that ReiserFS also stored nanoseconds on disk.</p>

<p>Tomas Szepe asked, as a by-the-way, when ReiserFS would be ready at last,
and Nikita replied:</p>

<quote who="Nikita Danilov">

<p>Real soon now.</p>

<p>Latest benchmark results are available at the <a
href="http://namesys.com/intbenchmarks/mongo/03.07.11.light/short.html">http://namesys.com/intbenchmarks/mongo/03.07.11.light/short.html</a></p>

<p>we still have problems with delete performance, but in three to ten days
reiser4 will be released to the public testing.</p>

</quote>

</section>

<section
  title="Linux 2.6.0-test1 Released"
  subject="Linux v2.6.0-test1"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/1805.html"
  posts="16"
  startdate="13 Jul 2003 19:59:07 -0800"
  enddate="18 Jul 2003 10:45:12 -0800"
>

<p>Linus Torvalds announced Linux <a
href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.0-test1">v2.6.0-test1</a>,
and explained:</p>

<quote who="Linus Torvalds">

<p>the naming should be familiar - it's the same deal as with 2.4.0.</p>

<p>One difference is that while 2.4.0 took about 7 months from the pre1 to
the final release, I hope (and believe) that we have fewer issues facing
us in the current 2.6.0. But very obviously there are going to be a few
test-releases before the real thing.</p>

<p>The point of the test versions is to make more people realize that they
need testing and get some straggling developers realizing that it's too late
to worry about the next big feature. I'm hoping that Linux vendors will start
offering the test kernels as installation alternatives, and do things like
make upgrade internal machines, so that when the real 2.6.0 does happen,
we're all set.</p>

</quote>

</section>

<section
  title="Status Of XBox Support"
  subject="[PATCH] XBox Gaming System subarchitecture."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/1942.html"
  posts="12"
  startdate="14 Jul 2003 04:49:33 -0800"
  enddate="15 Jul 2003 09:48:07 -0800"
>
<topic>Microsoft</topic>

<p>Anders Gustafsson posted a patch adding XBox support to Linux, and Linus
Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>Quite frankly, for Xbox support I want it to become a lot more commonly
used before I actually put it into the standard kernel.</p>

<p>Why? Simply because for now it's still a fairly specialized thing, and
as such I have to weigh the benefits of including it in the standard kernel
against the negatives of just being a bit politically "hot potato".</p>

<p>Don't get me wrong: I think doing an Xbox port is fine. It's just that
putting it in the standard tree is not likely a good idea. I can well
imagine a number of Linux distributors who do not feel like they need the
aggravation ;)</p>

</quote>

<p>Anders replied:</p>

<quote who="Anders Gustafsson">

<p>Okey. Now I know, thanks. I assumed that it was either this or that it
had to follow the standard procedure of posting the mach-patch(/patchset)
a hundred times to lkml before it got accepted.</p>

<p>(And regarding the distros: They distributors could just rip that part
out while doing all their patches ;). And I know that at least mandrake
has a positive look on xbox-distro. And the mandrake devels were especially
helpful in porting their installer to be compatible with the xbox.)</p>

<p>Just to make clear: The patch does nothing that involves anything with
the copy-protection. Not even the hdd-unlock. It is aimed to those who
replace the bios in the xbox with the clean microsoft-free cromwell-bios,
which has the sole purpose of booting linux.</p>

</quote>

</section>

<section
  title="Linux 2.6 Feature Documentation By Joe Pranevich"
  subject="Wonderful World of Linux 2.6 - Linux 2.6 features document (first revision)"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/1969.html"
  posts="5"
  startdate="14 Jul 2003 06:24:39 -0800"
  enddate="15 Jul 2003 16:22:48 -0800"
>
<topic>Version Control</topic>

<p>Joe Pranevich said:</p>

<quote who="Joe Pranevich">

<p>I've recently put together the first draft of a features document describing
the changes in Linux 2.6. (I did similar documents for both Linux 2.2 and Linux
2.4.) It's based almost entirely on BitKeeper changelogs (with clarifying
information pulled from the lists and the web), so there is a chance that
I misunderstood something or that I missed something else entirely. Please
give it a look over and if you see anything that needs a look-over, please
let me know. As it stands now, I feel pretty good about how it turned out
so I'm finally comfortable mailing what I have around. (There are still a
couple areas that need expanding on, I think...)</p>

<p>As of right now, you can find the latest versions of the document available
online.</p>

<p>Text version: <a
href="http://www.kniggit.net/wwol26.txt">http://www.kniggit.net/wwol26.txt</a></p>

<p>Tersely formatted HTML: <a
href="http://www.kniggit.net/wwol26.html">http://www.kniggit.net/wwol26.html</a></p>

</quote>

<p>Several people praised Joe's work and recommended it, and offered
corrections.</p>

</section>

<section
  title="nfs-utils 1.0.4 Released"
  subject="ANNOUNCE: nfs-utils 1.0.4"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/2041.html"
  posts="2"
  startdate="14 Jul 2003 09:00:01 -0800"
  enddate="14 Jul 2003 11:34:47 -0800"
>
<topic>FS: NFS</topic>

<mention>Steven Cole</mention>

<p>Neil F. Brown announced:</p>

<quote who="Neil F. Brown">

<p>This release of nfs-utils contains:</p>

<p>

<ol>

<li>Fix for a remotely exploitable buffer-overflow bug.</li>
<li>assorted minor bug fixes</li>
<li>Extensive changes to make use of new functionality in linux-2.6.0 nfsd</li>

</ol>

</p>

<p>nfs-utils 1.0.4 can be downloaded from <a
href="http://sourceforge.net/project/showfiles.php?group_id=14">http://sourceforge.net/project/showfiles.php?group_id=14</a>
or <a
href="http://www.{countrycode}.kernel.org/pub/linux/utils/nfs/">http://www.{countrycode}.kernel.org/pub/linux/utils/nfs/</a></p>

<p>I consider this release to be a pre-release for 1.1.0 which I hope to
release before linux-2.6.0-final.  Bug reports are very welcome.</p>

<p>

<ol>

<li>

<p>   A buffer-overflow bug was found by<br />
    Janusz Niewiadomski<br />
    iSEC Security Research<br />
    <a href="http://isec.pl/">http://isec.pl/</a></p>

<p>  It is trivially exploitable to effect a remote denial of service.
  More subtle exploits may be possible.</p>

<p>  I recommend that all users of nfs-utils either:</p>

<p>

<ol>

<li>upgrade to 1.0.4; or</li>
<li>Get an update from their vendor (most vendors should have an update
available).</li>

</ol>

</p>

<p>  I also recommend that all NFS services be protected from the
  internet-at-large by a firewall where that is possible.</p>

</li>

<li>See the change log in the source for details on bug fixes.</li>

<li>

<p> In 2.4 and earlier kernels, the nfs server needed to know about any
 client that expected to be able to access files via NFS.  This
 information would be given to the kernel by "mountd" when the client
 mounted the filesystem, or by "exportfs" at system startup.  exportfs
 would take information about active clients from /var/lib/nfs/rmtab.</p>

<p> This approach is quite fragile as it depends on rmtab being correct
 which is not always easy, particularly when trying to implement
 fail-over.  Even when the system is working well, rmtab suffers from
 getting lots of old entries that never get removed.</p>

<p> With 2.6 we have the option of having the kernel tell mountd when it
 gets a request from an unknown host, and mountd can give appropriate
 export information to the kernel.  This removes the dependancy on
 rmtab and means that the kernel only needs to know about currently
 active clients.</p>

<p> To enable this new functionality, you need to:<br />
   mount -t nfsd nfsd /proc/fs/nfs</p>

<p> before running exportfs or mountd.</p>

<p> If you are using 2.6.0-testX and exporting files with NFS *please*
 test this out and let me know of any problems.</p>

</li>

</ol>

</p>

</quote>

<p>And Steven Cole posted a patch to Documentation/Changes to reflect this
work.</p>

</section>

<section
  title="RadeonFB Maintainership And Development Battles"
  subject="Re: radeonfb patch for 2.4.22..."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/2074.html"
  posts="15"
  startdate="14 Jul 2003 10:11:51 -0800"
  enddate="18 Jul 2003 09:42:41 -0800"
>

<p>Ani Joshi asked Marcelo Tosatti in private email, <quote who="Ani
Joshi">Is there any particular reason why you decided to merge Ben H.'s
radeonfb update instead of the one I sent you?</quote> And Marcelo replied,
<quote who="Marcelo Tosatti">I merged his version because he sent me your
update (0.1.8) plus his code (which are useful fixes he has been working on).
It seems things are broken now due to a missing header, but he also sent
me that.  Do you have any objections to his fixes ?</quote></p>

<p>Ani replied that the patch he'd sent multiple times had included all
of those fixes. He said that, as the driver maintainer, patches should be
routed through him before going to Marcelo. It made no sense, he said, to
allow everyone to patch the driver when they pleased, because that made it
impossible to organize the work and make meaningful developments. Ani asked
Marcelo to clarify his position on driver maintainership.</p>

<p>Marcelo replied that he hadn't realized Ben's code had been included in
Ani's patch. He also said, <quote who="Marcelo Tosatti">I received complains
that you were not accepting patches from Ben. He needs that code in.</quote>
And he added, <quote who="Marcelo Tosatti">If you had accepted Ben's changes
in the first place I wouldnt need to apply his patch.</quote> He also said
that Benjamin Herrenschmidt was interested in taking over maintainership,
and asked what Ani's and Ben's feelings would be about that.</p>

<p>Benjamin pointed out that Ani's patch did <i>not</i> contain all of his
changes; and added, <quote who="Benjamin Herrenschmidt">I could take over
if Ani wants to give up, though I would prefer a dedicated maintainer with
more time to do the necessary rewrite of this driver in 2.6 and later, which
I don't have time to do right now, however, I can maintain the existing code
base if necessary.</quote></p>

<p>Ani also replied to Marcelo, pointing to evidence that he had in fact
accepted patches from Benjamin. He added, <quote who="Ani Joshi">Also,
its hard to "accept patches" from people if you do NOT recieve any patches
from them!  Ben's style is to get the maintainers of drivers to go around
and search for his personal tree and do their own diffs from that tree,
instead of him sending a patch to the maintainer.</quote></p>

<p>He added that Benjamin may have written more recent patches that were not
included because they were so recent; and Ani also pointed out that anyone,
including Marcelo, could also be accused of "not accepting patches"; and
that it wasn't fair to judge solely on the basis of complaints.</p>

<p>Benjamin took umbrage at Ani's characterization of him as never submitting
patches. He said he always posted his patches to the mailing list, and CCed
Ani on all patch posts.</p>

<p>Marcelo said he'd revert Benjamin's patch and apply Ani's, and he asked
Benjamin to send Ani a new patch that included all his additional fixes. He
said he hoped this would make everyone happy.</p>

</section>

<section
  title="Status Of Virtual Memory Documentation"
  subject="VM docs and where they are going"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.1/2282.html"
  posts="2"
  startdate="15 Jul 2003 02:20:01 -0800"
  enddate="15 Jul 2003 12:48:46 -0800"
>
<topic>Virtual Memory</topic>

<p>Mel Gorman said:</p>

<quote who="Mel Gorman">

<p>I made a small number of typo corrections and expanded the introduction
chapter a small bit on the Linux VM docs on my site. The changes are small
enough that if anyone has already printed it out, don't bother printing it
again. They are still available from the usual places.</p>

<p>Main document<br />
PDF:  <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/understand.pdf">http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/understand.pdf</a><br />
HTML: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/html/understand/">http://www.csn.ul.ie/~mel/projects/vm/guide/html/understand/</a><br />
Text: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/text/understand.txt">http://www.csn.ul.ie/~mel/projects/vm/guide/text/understand.txt</a></p>

<p>Code commentary<br />
PDF:  <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/code.pdf">http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/code.pdf</a><br />
HTML: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/html/code/">http://www.csn.ul.ie/~mel/projects/vm/guide/html/code/</a><br />
Text: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/text/code.txt">http://www.csn.ul.ie/~mel/projects/vm/guide/text/code.txt</a></p>

<p>On the where it's going front from here, I'm happy to say I've now writing
a book which will be published under the Bruce Peren's Open Book Series (<a
href="http://www.perens.com/Books/">http://www.perens.com/Books/</a>). Some
stuff that I'm working on for it include;</p>

<p>

<ul>

<li>Better integration of the code commentary so it's easier to follow</li>

<li>Much better introduction sections and updating of the software tools</li>

<li>Shiny CD that comes with softcopy versions of the docs, browsable
  version of the tree and hopefully online call graph generation</li>

<li>Chapter on anonymous shared memory including the virtual filesystem</li>

<li>Assorted expansions and additions</li>

<li>And best of all, a fairly detailed introduction to 2.6. The 2.6 sections
  are at the end of each chapter and give a fairly detailed account (right
  now, it's totalling about 30 pages) of what is new in 2.6 and how it is
  implemented</li>

</ul>

</p>

<p>If all goes well, it'll be available before the end of this year or in
early 2004 :-)</p>

</quote>

</section>

<section
  title="BitKeeper Snapshots For 2.6.0-test"
  subject="2.6.0 BK snapshots"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.2/0977.html"
  posts="3"
  startdate="18 Jul 2003 07:41:32 -0800"
  enddate="18 Jul 2003 16:18:05 -0800"
>
<topic>Version Control</topic>

<mention>Martin Schlemmer</mention>

<p>Martin Schlemmer asked if the 2.6.0-test series would have BitKeeper
snapshots the way 2.5 did, and Jeff Garzik said:</p>

<quote who="Jeff Garzik">

<p>I know, I know...  ;-)</p>

<p>Suffixes ("-testN") break my snapshot process.  Should be fixed sometime
today...</p>

</quote>

<p>Martin thanked him, and the thread ended.</p>

</section>

<section
  title="Adeos M3 Released"
  subject="[ANNOUNCE] Adeos m3"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.2/1084.html"
  posts="1"
  startdate="18 Jul 2003 12:08:55 -0800"
>
<topic>Microkernels: Adeos</topic>
<topic>Real-Time: RTAI</topic>
<topic>SMP</topic>

<p>Philippe Gerum said:</p>

<quote who="Philippe Gerum">

<p>Adeos m3 for Linux is available at <a
href="http://savannah.nongnu.org/download/adeos/releases/adeos-m3.tar.gz">http://savannah.nongnu.org/download/adeos/releases/adeos-m3.tar.gz</a>.</p>

<p>This third milestone provides support for the following platforms: </p>

<p>

<ul>

<li>2.4.{19,20,21} and 2.6.0-test1 on x86 hardware (UP and SMP).</li>

<li>2.4.20-uc0 on ARM-nommu.</li>

</ul>

</p>

<p>Quite a lot of work has taken place since m2 was released a year ago,
mostly aimed at improving stability and determinism in demanding real-time
environments.</p>

<p>People seeking "real world" use of Adeos
should have a look at the RTAI project: <a
href="http://www.aero.polimi.it/~rtai/">http://www.aero.polimi.it/~rtai/</a>.</p>

</quote>

</section>

</kc>

