<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="191" date="11 Nov 2002 00:00:00 -0800" />

<stats posts="1927" size="11542" contrib="490" multiples="268" lastweek="180">

<person posts="71" size="213" who="Alan Cox" />
<person posts="60" size="454" who="Davide Libenzi" />
<person posts="40" size="135" who="Jens Axboe" />
<person posts="39" size="190" who="Andrew Morton" />
<person posts="32" size="166" who="Denis Vlasenko" />
<person posts="30" size="786" who="Osamu Tomita" />
<person posts="29" size="85" who="Roman Zippel" />
<person posts="28" size="109" who="William Lee Irwin III" />
<person posts="27" size="104" who="Jeff Garzik" />
<person posts="26" size="102" who="Jamie Lokier" />
<person posts="25" size="216" who="Greg KH" />
<person posts="25" size="83" who="Alexander Viro" />
<person posts="25" size="81" who="bert hubert" />
<person posts="24" size="146" who="&quot;Adam J. Richter&quot;" />
<person posts="23" size="91" who="Olaf Dietsche" />
<person posts="23" size="62" who="&quot;Randy.Dunlap&quot;" />
<person posts="22" size="103" who="Linus Torvalds" />
<person posts="21" size="81" who="Dave Jones" />
<person posts="20" size="141" who="Russell King" />
<person posts="19" size="73" who="Tom Rini" />
<person posts="19" size="48" who="&quot;David S. Miller&quot;" />
<person posts="18" size="151" who="Petr Baudis" />
<person posts="18" size="80" who="Sam Ravnborg" />
<person posts="18" size="60" who="Pavel Machek" />
<person posts="16" size="733" who="george anzinger" />
<person posts="16" size="65" who="&quot;Richard B. Johnson&quot;" />
<person posts="15" size="120" who="Rusty Russell" />
<person posts="15" size="75" who="Theodore Ts'o" />
<person posts="14" size="54" who="Nikita Danilov" />
<person posts="13" size="100" who="Marc-Christian Petersen" />
<person posts="13" size="93" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="13" size="43" who="Bill Davidsen" />
<person posts="12" size="35" who="Christoph Hellwig" />
<person posts="11" size="287" who="Karim Yaghmour" />
<person posts="11" size="228" who="Manuel Serrano" />
<person posts="11" size="77" who="Takashi Iwai" />
<person posts="11" size="46" who="Andreas Dilger" />
<person posts="11" size="43" who="Rob Landley" />
<person posts="10" size="84" who="Dominik Brodowski" />
<person posts="10" size="34" who="&quot;H. Peter Anvin&quot;" />
<person posts="10" size="32" who="Jos Hulzink" />
<person posts="10" size="31" who="Dax Kelson" />
<person posts="9" size="128" who="Jean Tourrilhes" />
<person posts="9" size="39" who="john stultz" />
<person posts="9" size="34" who="(tytso)" />
<person posts="9" size="31" who="Rasmus Andersen" />
<person posts="9" size="28" who="Nicholas Wourms" />
<person posts="9" size="27" who="Werner Almesberger" />
<person posts="9" size="23" who="Zwane Mwaikambo" />
<person posts="8" size="71" who="Thomas Molina" />
<person posts="8" size="55" who="Kronos" />
<person posts="8" size="49" who="Akira Tsukamoto" />
<person posts="8" size="35" who="John Gardiner Myers" />
<person posts="8" size="25" who="Willy Tarreau" />
<person posts="8" size="25" who="&quot;Martin J. Bligh&quot;" />
<person posts="8" size="24" who="Bernd Eckenfels" />
<person posts="8" size="24" who="Rik van Riel" />
<person posts="7" size="146" who="Hanna Linder" />
<person posts="7" size="28" who="Patrick Finnegan" />
<person posts="7" size="25" who="Manfred Spraul" />
<person posts="7" size="23" who="&quot;Geoff Gustafson&quot;" />
<person posts="7" size="23" who="Jim Paris" />
<person posts="7" size="23" who="Jochen Friedrich" />
<person posts="7" size="22" who="Adrian Bunk" />
<person posts="7" size="21" who="Dan Kegel" />
<person posts="7" size="19" who="Robert Love" />
<person posts="6" size="52" who="Justin Cormack" />
<person posts="6" size="51" who=" (Eric W. Biederman)" />
<person posts="6" size="35" who="Han-Wen Nienhuys" />
<person posts="6" size="30" who="Chris Friesen" />
<person posts="6" size="29" who="vasya vasyaev" />
<person posts="6" size="25" who="Martin Waitz" />
<person posts="6" size="23" who="Mark Mielke" />
<person posts="6" size="21" who="Erik Andersen" />
<person posts="6" size="19" who="Keith Owens" />
<person posts="6" size="19" who="Ivan Kokshaysky" />
<person posts="6" size="19" who="Gregoire Favre" />
<person posts="6" size="19" who="Adam Kropelin" />
<person posts="6" size="18" who="Manish Lachwani" />
<person posts="6" size="18" who="Kelledin" />
<person posts="6" size="16" who="Andi Kleen" />
<person posts="6" size="16" who="Andries Brouwer" />
<person posts="5" size="70" who="Brian Gerst" />
<person posts="5" size="56" who="Geert Uytterhoeven" />
<person posts="5" size="53" who="Paul Mackerras" />
<person posts="5" size="40" who="Miles Lane" />
<person posts="5" size="40" who="Pekka Savola" />
<person posts="5" size="40" who="Gerd Knorr" />
<person posts="5" size="37" who="Timothy Hockin" />
<person posts="5" size="35" who="&quot;David C. Hansen&quot;" />
<person posts="5" size="34" who="Paul" />
<person posts="5" size="33" who="&quot;Lee, Jung-Ik&quot;" />
<person posts="5" size="29" who="(chrisl)" />
<person posts="5" size="23" who="Matthew Wilcox" />
<person posts="5" size="22" who="Christopher Li" />
<person posts="5" size="20" who="&quot;James H. Cloos Jr.&quot;" />
<person posts="5" size="19" who="Phillip Lougher" />
<person posts="5" size="17" who="Nero" />
<person posts="5" size="16" who="Stelian Pop" />
<person posts="5" size="14" who="Benjamin LaHaise" />
<person posts="5" size="14" who="Carl-Daniel Hailfinger" />
<person posts="4" size="67" who="Dave Cinege" />
<person posts="4" size="35" who="Badari Pulavarty" />
<person posts="4" size="29" who="&quot;Nakajima, Jun&quot;" />
<person posts="4" size="21" who="Adam Belay" />
<person posts="4" size="17" who="Neil Brown" />
<person posts="4" size="17" who=" (Joseph Fannin)" />
<person posts="4" size="15" who="&quot;Petr Vandrovec&quot;" />
<person posts="4" size="15" who="Jesse Pollard" />
<person posts="4" size="15" who="Oliver Xymoron" />
<person posts="4" size="15" who="Cliff White" />
<person posts="4" size="14" who="&quot;Dr. David Alan Gilbert&quot;" />
<person posts="4" size="14" who="Stephen Hemminger" />
<person posts="4" size="13" who="=?iso-8859-1?Q?J=2EA=2E_Magall=F3n?=" />
<person posts="4" size="12" who="Skip Ford" />
<person posts="4" size="11" who="(Andries.Brouwer)" />
<person posts="4" size="10" who="Pete Zaitcev" />
<person posts="4" size="9" who="Anton Blanchard" />
<person posts="3" size="85" who="Andreas Tscharner" />
<person posts="3" size="72" who="Naohiko Shimizu" />
<person posts="3" size="49" who="&quot;Pavan Kumar Reddy N.S.&quot;" />
<person posts="3" size="40" who="Andrew Walrond" />
<person posts="3" size="37" who="Torben Mathiasen" />
<person posts="3" size="31" who="David Woodhouse" />
<person posts="3" size="28" who="David Shepard" />
<person posts="3" size="28" who="Luc Saillard" />
<person posts="3" size="28" who="Ingo Oeser" />
<person posts="3" size="24" who="Trond Myklebust" />
<person posts="3" size="23" who="Matt Reppert" />
<person posts="3" size="21" who="Con Kolivas" />
<person posts="3" size="20" who="&quot;Pallipadi, Venkatesh&quot;" />
<person posts="3" size="20" who="&quot;Guillaume Boissiere&quot;" />
<person posts="3" size="19" who="Jeremy Fitzhardinge" />
<person posts="3" size="17" who="Sebastian Benoit" />
<person posts="3" size="16" who="Matthew Dobson" />
<person posts="3" size="15" who="Miles Bader" />
<person posts="3" size="14" who="Dieter =?iso-8859-15?q?N=FCtzel?=" />
<person posts="3" size="13" who="Robinson Maureira Castillo" />
<person posts="3" size="12" who="Arnd Bergmann" />
<person posts="3" size="12" who="Matt Pharr" />
<person posts="3" size="11" who="Harald Welte" />
<person posts="3" size="11" who="Yury Umanets" />
<person posts="3" size="11" who="Matt Porter" />
<person posts="3" size="11" who="Andreas Gruenbacher" />
<person posts="3" size="11" who="Andrea Arcangeli" />
<person posts="3" size="11" who="Jan Harkes" />
<person posts="3" size="10" who="&quot;Grover, Andrew&quot;" />
<person posts="3" size="10" who="Ed Vance" />
<person posts="3" size="10" who="Akira Tsukamoto" />
<person posts="3" size="10" who="Bernd Petrovitsch" />
<person posts="3" size="10" who="&quot;Donepudi, Suneeta&quot;" />
<person posts="3" size="9" who="Andrey Panin" />
<person posts="3" size="9" who="Joel Becker" />
<person posts="3" size="9" who="Vojtech Pavlik" />
<person posts="3" size="9" who="Stas Sergeev" />
<person posts="3" size="9" who="Christopher Yeoh" />
<person posts="3" size="9" who="(gerg)" />
<person posts="3" size="9" who="Arador" />
<person posts="3" size="9" who="Marcelo Tosatti" />
<person posts="3" size="8" who="Roger While" />
<person posts="3" size="8" who="Dan Kegel" />
<person posts="3" size="8" who="John Levon" />
<person posts="3" size="8" who="Andreas Steinmetz" />
<person posts="3" size="8" who="Joe Thornber" />
<person posts="3" size="8" who="Helge Hafting" />
<person posts="3" size="8" who="Jan Marek" />
<person posts="3" size="7" who="Stephan von Krawczynski" />
<person posts="3" size="7" who="Romain Lievin" />
<person posts="3" size="7" who="Gabor MICSKO" />
<person posts="3" size="6" who="xmb" />
<person posts="2" size="82" who="steve roemen" />
<person posts="2" size="79" who="Jim Houston" />
<person posts="2" size="72" who="Alan Stern" />
<person posts="2" size="58" who="Mikael Pettersson" />
<person posts="2" size="51" who="Lucio Maciel" />
<person posts="2" size="50" who="Art Haas" />
<person posts="2" size="39" who="&quot;Alan Willis&quot;" />
<person posts="2" size="36" who="&quot;J.E.J. Bottomley&quot;" />
<person posts="2" size="29" who="Alan Cox" />
<person posts="2" size="28" who="Michal Rokos" />
<person posts="2" size="26" who="Michael Hohnbaum" />
<person posts="2" size="26" who="Denis Oliver Kropp" />
<person posts="2" size="25" who="OGAWA Hirofumi" />
<person posts="2" size="24" who="Piotr Sawuk" />
<person posts="2" size="20" who="Abhishek Khurana" />
<person posts="2" size="20" who="&quot;Gabor Z. Papp&quot;" />
<person posts="2" size="17" who="Mark Fasheh" />
<person posts="2" size="16" who="Bert Barbe" />
<person posts="2" size="15" who="Soewono Effendi" />
<person posts="2" size="13" who="&quot;Rusty Lynch&quot;" />
<person posts="2" size="13" who="&quot;ALESSANDRO.SUARDI&quot;" />
<person posts="2" size="12" who="&quot;Matthew D. Hall&quot;" />
<person posts="2" size="12" who="&quot;Stephanie Glass&quot;" />
<person posts="2" size="12" who="James Bottomley" />
<person posts="2" size="11" who="Alessandro Suardi" />
<person posts="2" size="11" who="&quot;Krishna Kumar&quot;" />
<person posts="2" size="10" who="(Hell.Surfers)" />
<person posts="2" size="10" who="CaT" />
<person posts="2" size="10" who="Ken Ryan" />
<person posts="2" size="9" who="Patrick Mau" />
<person posts="2" size="9" who="Petr Baudis" />
<person posts="2" size="9" who="Thomas Schenk" />
<person posts="2" size="8" who="Loic Jaquemet" />
<person posts="2" size="8" who="Kevin Brosius" />
<person posts="2" size="8" who="Jordan Breeding" />
<person posts="2" size="8" who="Shailabh Nagar" />
<person posts="2" size="8" who="Stephen Rothwell" />
<person posts="2" size="8" who="Khalid Aziz" />
<person posts="2" size="8" who="(jordan.breeding)" />
<person posts="2" size="8" who="&quot;Adriano Galano&quot;" />
<person posts="2" size="8" who="Brad Hards" />
<person posts="2" size="7" who="&quot;Steve Pratt&quot;" />
<person posts="2" size="7" who="Margit Schubert-While" />
<person posts="2" size="7" who="Nathan Straz" />
<person posts="2" size="7" who="Maciej Babinski" />
<person posts="2" size="7" who="Matthias Schniedermeyer" />
<person posts="2" size="7" who="Ulrich Drepper" />
<person posts="2" size="7" who="Kari Hameenaho" />
<person posts="2" size="7" who="Christer Weinigel" />
<person posts="2" size="7" who="(yodaiken)" />
<person posts="2" size="7" who="&quot;Venkata Jagana&quot;" />
<person posts="2" size="7" who="&quot;Udo A. Steinberg&quot;" />
<person posts="2" size="7" who="Dieter =?iso-8859-1?q?N=FCtzel?=" />
<person posts="2" size="6" who="&quot;kcn&quot;" />
<person posts="2" size="6" who="Jussi Laako" />
<person posts="2" size="6" who="Peter Chubb" />
<person posts="2" size="6" who="&quot;Reed, Timothy A&quot;" />
<person posts="2" size="6" who="Matthew Harrell" />
<person posts="2" size="6" who="Erich Focht" />
<person posts="2" size="6" who="Jacek Pliszka" />
<person posts="2" size="6" who="Andras Kis-Szabo" />
<person posts="2" size="6" who="Greg Ungerer" />
<person posts="2" size="6" who="David Gibson" />
<person posts="2" size="6" who="Marcelo Roberto Jimenez" />
<person posts="2" size="6" who="Arnaldo Carvalho de Melo" />
<person posts="2" size="6" who="Anu" />
<person posts="2" size="6" who="Jakub Jelinek" />
<person posts="2" size="5" who="Larry McVoy" />
<person posts="2" size="5" who="Rando Christensen" />
<person posts="2" size="5" who="DevilKin" />
<person posts="2" size="5" who="=?iso-8859-1?Q?Ragnar_Kj=F8rstad?=" />
<person posts="2" size="5" who="Daniel Egger" />
<person posts="2" size="5" who="Niels Provos" />
<person posts="2" size="5" who="&quot;Shawn Starr&quot;" />
<person posts="2" size="5" who="Flavio Stanchina" />
<person posts="2" size="5" who="Hacksaw" />
<person posts="2" size="5" who="&quot;Marc A. Volovic&quot;" />
<person posts="2" size="5" who="Dipankar Sarma" />
<person posts="2" size="5" who="&quot;Buddy Lumpkin&quot;" />
<person posts="2" size="5" who="Ben Collins" />
<person posts="2" size="5" who="Arjan van de Ven" />
<person posts="2" size="5" who="john slee" />
<person posts="2" size="5" who="Hans Reiser" />
<person posts="2" size="5" who="Pawel Bernadowski" />
<person posts="2" size="5" who="Giuliano Pochini" />
<person posts="2" size="5" who="Christian Guggenberger" />
<person posts="2" size="5" who="&quot;Miquel van Smoorenburg&quot;" />
<person posts="2" size="4" who="&quot;Mr. James W. Laferriere&quot;" />
<person posts="2" size="4" who="K S Sreeram" />
<person posts="2" size="4" who="Ralf Baechle" />
<person posts="2" size="4" who="Anders Gustafsson" />
<person posts="2" size="4" who="&quot;Maciej W. Rozycki&quot;" />
<person posts="2" size="4" who="dark side" />
<person posts="2" size="4" who="Aaron Lehmann" />
<person posts="2" size="4" who="James Morris" />
<person posts="2" size="4" who="Robert Olsson" />
<person posts="2" size="4" who="Michael Kummer" />
<person posts="2" size="4" who="mike" />
<person posts="1" size="57" who="Serge" />
<person posts="1" size="39" who="Martin Garton" />
<person posts="1" size="36" who="Inaky Perez-Gonzalez" />
<person posts="1" size="25" who="(lk)" />
<person posts="1" size="23" who="&quot;Trever L. Adams&quot;" />
<person posts="1" size="22" who="Max Valdez" />
<person posts="1" size="22" who="Nathan Robertson" />
<person posts="1" size="18" who="Ravikiran G Thirumalai" />
<person posts="1" size="17" who="&quot;John A. Goebel&quot;" />
<person posts="1" size="15" who="Karsten Desler" />
<person posts="1" size="13" who="Michal Poplawski" />
<person posts="1" size="11" who="Luis Miguel Tavora" />
<person posts="1" size="10" who="&quot;Michael Nguyen&quot;" />
<person posts="1" size="10" who="&quot;Siva Koti Reddy&quot;" />
<person posts="1" size="10" who="Nico Schottelius" />
<person posts="1" size="8" who="Krishna Kumar" />
<person posts="1" size="8" who="Robert Varga" />
<person posts="1" size="7" who="Dipankar Sarma" />
<person posts="1" size="7" who=" (John Myers)" />
<person posts="1" size="6" who="Emmanuel Fuste" />
<person posts="1" size="6" who="Florian Lohoff" />
<person posts="1" size="5" who="Jochen Hein" />
<person posts="1" size="5" who="Abraham vd Merwe" />
<person posts="1" size="5" who="&quot;Vadim Lebedev&quot;" />
<person posts="1" size="5" who="Miquel van Smoorenburg" />
<person posts="1" size="5" who="steve roemen" />
<person posts="1" size="5" who="&quot;Jay Vosburgh&quot;" />
<person posts="1" size="5" who="Marc Zyngier" />
<person posts="1" size="5" who="Gabriel Paubert" />
<person posts="1" size="5" who="James Colby Kraybill" />
<person posts="1" size="5" who="Suparna Bhattacharya" />
<person posts="1" size="5" who="Eli Carter" />
<person posts="1" size="5" who="Marco d'Itri" />
<person posts="1" size="4" who="Paulo Andre'" />
<person posts="1" size="4" who="Joshua Jackson" />
<person posts="1" size="4" who="James Cleverdon" />
<person posts="1" size="4" who="Christoph Hellwig" />
<person posts="1" size="4" who="Matt Zimmerman" />
<person posts="1" size="4" who="Hilko Bengen" />
<person posts="1" size="4" who="Denis RICHARD" />
<person posts="1" size="4" who="Mike Diehl" />
<person posts="1" size="4" who="Michael Still" />
<person posts="1" size="4" who="&quot;Matt D. Robinson&quot;" />
<person posts="1" size="4" who="Khalid Aziz" />
<person posts="1" size="4" who="Kent Borg" />
<person posts="1" size="4" who="Jun Sun" />
<person posts="1" size="4" who="Olaf Hering" />
<person posts="1" size="4" who="&quot;Henning P. Schmiedehausen&quot;" />
<person posts="1" size="4" who="Philippe Troin" />
<person posts="1" size="4" who="David Schwartz" />
<person posts="1" size="4" who="Rogier Wolff" />
<person posts="1" size="4" who="Marek Habersack" />
<person posts="1" size="4" who="Andy Isaacson" />
<person posts="1" size="4" who="Shane Shrybman" />
<person posts="1" size="4" who="&quot;Stephane Charette&quot;" />
<person posts="1" size="4" who="&quot;Krzysztof \&quot;Filo\&quot; Gorgolewski&quot;" />
<person posts="1" size="3" who="Ian Norton" />
<person posts="1" size="3" who="David McCullough" />
<person posts="1" size="3" who="&quot;Professional &quot;" />
<person posts="1" size="3" who="reiser" />
<person posts="1" size="3" who="Mathieu Segaud" />
<person posts="1" size="3" who="John McCash" />
<person posts="1" size="3" who="Dave Hansen" />
<person posts="1" size="3" who="Roger Larsson" />
<person posts="1" size="3" who="&quot;Troels Walsted Hansen&quot;" />
<person posts="1" size="3" who="Pilaszy Istvan" />
<person posts="1" size="3" who=" Milton Miller" />
<person posts="1" size="3" who="Dmitri" />
<person posts="1" size="3" who="(louise500)" />
<person posts="1" size="3" who="Stefan Traby" />
<person posts="1" size="3" who="C Sanjayan Rosenmund" />
<person posts="1" size="3" who="David Mosberger" />
<person posts="1" size="3" who="&quot;Clayton Weaver&quot;" />
<person posts="1" size="3" who="Miles Bader" />
<person posts="1" size="3" who="Jaroslav Kysela" />
<person posts="1" size="3" who="&quot;Thomas Xu&quot;" />
<person posts="1" size="3" who="Georg Chini" />
<person posts="1" size="3" who="George Staikos" />
<person posts="1" size="3" who="Padraig Brady" />
<person posts="1" size="3" who="&quot;Wiedemeier, Jeff&quot;" />
<person posts="1" size="3" who="Padraig O Mathuna" />
<person posts="1" size="3" who="&quot;Mark H. Wood&quot;" />
<person posts="1" size="3" who="Stephen Cameron" />
<person posts="1" size="3" who="Adam Radford" />
<person posts="1" size="3" who="Ewan Mac Mahon" />
<person posts="1" size="3" who="&quot;Tolentino, Matthew E&quot;" />
<person posts="1" size="3" who="Nick LeRoy" />
<person posts="1" size="3" who="Andrew Morton" />
<person posts="1" size="3" who="Willem Riede" />
<person posts="1" size="3" who="Jim Lawson" />
<person posts="1" size="3" who="Matthias Andree" />
<person posts="1" size="3" who="David Liana" />
<person posts="1" size="3" who="&quot;Paolo Ciarrocchi&quot;" />
<person posts="1" size="3" who="(vanandel)" />
<person posts="1" size="3" who="Charlie Krasic" />
<person posts="1" size="3" who="&quot;&quot;" />
<person posts="1" size="3" who="Pannaga Bhushan" />
<person posts="1" size="3" who="John W Fort" />
<person posts="1" size="3" who="Andy Pfiffer" />
<person posts="1" size="3" who="David T Hollis" />
<person posts="1" size="3" who="Steve Lord" />
<person posts="1" size="3" who="Max Krasnyansky" />
<person posts="1" size="3" who="Cort Dougan" />
<person posts="1" size="3" who="&quot;David McIlwraith&quot;" />
<person posts="1" size="3" who="Holger Waechtler" />
<person posts="1" size="3" who="Duncan Sands" />
<person posts="1" size="3" who="&quot;Emmanuel FUSTE&quot;" />
<person posts="1" size="3" who="Kai Engert" />
<person posts="1" size="3" who="Pavel Machek" />
<person posts="1" size="3" who="Mariusz Zielinski" />
<person posts="1" size="3" who="Martin Diehl" />
<person posts="1" size="3" who="Matti Aarnio" />
<person posts="1" size="3" who="&quot;Jim Zeus&quot;" />
<person posts="1" size="3" who="Paul Larson" />
<person posts="1" size="3" who="Dave Zarzycki" />
<person posts="1" size="3" who="(Matt_Domsch)" />
<person posts="1" size="3" who="Phil Oester" />
<person posts="1" size="3" who="Luc Van Oostenryck" />
<person posts="1" size="3" who="&quot;Samium Gromoff&quot;" />
<person posts="1" size="3" who="Christoph Hellwig" />
<person posts="1" size="3" who="Jacek Pliszka" />
<person posts="1" size="3" who="Rolf Eike Beer" />
<person posts="1" size="3" who="=?iso-8859-1?q?will=20fitzgerald?=" />
<person posts="1" size="3" who="Adam Huffman" />
<person posts="1" size="3" who="Matt Bernstein" />
<person posts="1" size="3" who="&quot;Brian Jackson&quot;" />
<person posts="1" size="3" who="&quot;Pedro A ARANDA&quot;" />
<person posts="1" size="3" who=" (Kai Henningsen)" />
<person posts="1" size="2" who="Kai Germaschewski" />
<person posts="1" size="2" who="Balazs Scheidler" />
<person posts="1" size="2" who="&quot;David B. Stevens&quot;" />
<person posts="1" size="2" who="Tim Connors" />
<person posts="1" size="2" who="James Simmons" />
<person posts="1" size="2" who="Malcolm Beattie" />
<person posts="1" size="2" who="&quot;Nicholas Berry&quot;" />
<person posts="1" size="2" who="Bernd Eckenfels" />
<person posts="1" size="2" who="Michael" />
<person posts="1" size="2" who="Samuel Flory" />
<person posts="1" size="2" who="Ryan Anderson" />
<person posts="1" size="2" who="Andrew Kanaber" />
<person posts="1" size="2" who="Akihiro Matsushima" />
<person posts="1" size="2" who="&quot;Stephen C. Tweedie&quot;" />
<person posts="1" size="2" who="Helio Fujimoto" />
<person posts="1" size="2" who="Michal Jaegermann" />
<person posts="1" size="2" who="Florian Weimer" />
<person posts="1" size="2" who="Kent Yoder" />
<person posts="1" size="2" who="&quot;Matthew D. Pitts&quot;" />
<person posts="1" size="2" who="Jan-Hinnerk Reichert" />
<person posts="1" size="2" who="Michael Dreher" />
<person posts="1" size="2" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="1" size="2" who="James Mayer" />
<person posts="1" size="2" who="Andre Hedrick" />
<person posts="1" size="2" who="&quot;Tom Reinhart&quot;" />
<person posts="1" size="2" who="Rick Lindsley" />
<person posts="1" size="2" who=" (P.A.M. van Dam)" />
<person posts="1" size="2" who="Lev Makhlis" />
<person posts="1" size="2" who="Kees Bakker" />
<person posts="1" size="2" who="Stephen Lord" />
<person posts="1" size="2" who="Jeff Lessem" />
<person posts="1" size="2" who="Richard Henderson" />
<person posts="1" size="2" who="Pawel Kot" />
<person posts="1" size="2" who="Dave Jones" />
<person posts="1" size="2" who="David G Hamblen" />
<person posts="1" size="2" who="Mark Haverkamp" />
<person posts="1" size="2" who="Tomas Szepe" />
<person posts="1" size="2" who="Zach Brown" />
<person posts="1" size="2" who="Jim Freeman" />
<person posts="1" size="2" who="Chris Wedgwood" />
<person posts="1" size="2" who="Antti Salmela" />
<person posts="1" size="2" who="Wim Van Sebroeck" />
<person posts="1" size="2" who="Scott Murray" />
<person posts="1" size="2" who="&quot;David D. Hagood&quot;" />
<person posts="1" size="2" who="Xavier Bestel" />
<person posts="1" size="2" who="Marcus Alanen" />
<person posts="1" size="2" who="Nils Petter Vaskinn" />
<person posts="1" size="2" who="&quot;Feldman, Scott&quot;" />
<person posts="1" size="2" who="Josh Myer" />
<person posts="1" size="2" who="David Dillow" />
<person posts="1" size="2" who="&quot;Cameron, Steve&quot;" />
<person posts="1" size="2" who="&quot;Leo Cipriano L. Urbiztondo, Jr.&quot;" />
<person posts="1" size="2" who="&quot;Dean McEwan&quot;" />
<person posts="1" size="2" who="Christian Vogel" />
<person posts="1" size="2" who="&quot;Sartorelli, Kevin&quot;" />
<person posts="1" size="2" who="&quot;Robert L. Harris&quot;" />
<person posts="1" size="2" who="Allan Duncan" />
<person posts="1" size="2" who="Disconnect" />
<person posts="1" size="2" who="Wes Felter" />
<person posts="1" size="2" who="Bill Leckey" />
<person posts="1" size="2" who="Chris Mason" />
<person posts="1" size="2" who="Jon Portnoy" />
<person posts="1" size="2" who="(Dieter.Ferdinand)" />
<person posts="1" size="2" who="Brendan Burns" />
<person posts="1" size="2" who="David Brownell" />
<person posts="1" size="2" who="Frank Davis" />
<person posts="1" size="2" who="Kasper Dupont" />
<person posts="1" size="2" who="&quot;dada1&quot;" />
<person posts="1" size="2" who="&quot;Peter H. Ruegg&quot;" />
<person posts="1" size="2" who="Richard Russon" />
<person posts="1" size="2" who="Ketil Froyn" />
<person posts="1" size="2" who="David Rees" />
<person posts="1" size="2" who="Brian Murphy" />
<person posts="1" size="2" who="&quot;Jon Burgess&quot;" />
<person posts="1" size="2" who="Nikita Shulga" />
<person posts="1" size="2" who="grstuhrberg" />
<person posts="1" size="2" who="Chris Wright" />
<person posts="1" size="2" who="Nicolas Pitre" />
<person posts="1" size="2" who="Gerhard Mack" />
<person posts="1" size="2" who="&quot;R H&quot;" />
<person posts="1" size="2" who="&quot;Albert D. Cahalan&quot;" />
<person posts="1" size="2" who="Leif Nixon" />
<person posts="1" size="2" who="Doug McNaught" />
<person posts="1" size="2" who="=?iso-8859-1?q?William=20Lovaton?=" />
<person posts="1" size="2" who="Venkat Raghu" />
<person posts="1" size="2" who="List Builder" />
<person posts="1" size="2" who="Wolfram Gloger" />
<person posts="1" size="2" who="Colin Burnett" />
<person posts="1" size="2" who="(kuznet)" />
<person posts="1" size="2" who="Edwin Bland" />
<person posts="1" size="1" who="Hanno =?ISO-8859-1?Q?B=F6ck?=" />
<person posts="1" size="1" who="&quot;Krishnakumar. R&quot;" />
<person posts="1" size="1" who="(sah)" />

</stats>

<section
  title="Speeding Up kmalloc() Kernel Function"
  subject="[PATCH,RFC] faster kmalloc lookup"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0210.3/0714.html"
  posts="11"
  startdate="26 Oct 2002 11:22:12 -0800"
  enddate="01 Nov 2002 00:03:09 -0800"
>
<topic>Efficiency</topic>

<mention>Alan Cox</mention>

<p>Manfred Spraul found a way to speed up the kmalloc() kernel function, by
allowing it to quickly pass over memory regions that were obviously too
small. He posted a patch against 2.5.44-mm5 and invited comment. Alan Cox
asked about performance comparisons, and Manfred posted some numbers:</p>

<quote who="Manfred Spraul">

<p>I've run my slab microbenchmark over the 3 versions:</p>

<p>

<ul>

<li>current</li>
<li>generic_fls</li>
<li>i386 asm optimized fls</li>

</ul>

</p>

<p>The test reports the fastest time for 100 kmalloc calls in a tight loop
(Duron 700). Loop/test overhead substracted.</p>

<pre>32-byte alloc:
current:         41 ticks
generic_fls:     56 ticks
bsrl:            54 ticks</pre>

<pre>4096 byte alloc: 84 ticks
generic_fls:     53 ticks
bsrl:            54 ticks</pre>

<p>40 ticks difference for -current between 4096 and 32 bytes - ~4 cycles
for each loop.  bit scan is 10 ticks slower for 32 byte allocs, 30 ticks
faster for 4096 byte allocs.</p>

<p>No difference between generic_fls and bsrl - the branch predictor can
easily predict all branches in generic_fls for constant kmalloc calls.</p>

</quote>

<p>Nikita Danilov suggested, <quote who="Nikita Danilov">Most kmalloc calls
get constant size argument (usually sizeof(something)). So, if switch() is
used in stead of loop (and kmalloc made inline), compiler would be able to
optimize away cache_sizes[] selection completely. Attached (ugly) patch does
this.</quote> Marcus Alanen remarked, <quote who="Marcus Alanen">Perhaps
a compile-time test to check if the argument is a constant, and only in
that case call your new kmalloc, otherwise a non-inline kmalloc call? With
your current patch, a non-constant size argument to kmalloc means that the
function is inlined anyway, leading to unnecessary bloat in the resulting
image.</quote> Nikita agreed with this, and Manfred said:</p>

<quote who="Manfred Spraul">

<p>I agree, I have an old patch that does that.</p>

<p><a
href="http://www.colorfullife.com/~manfred/slab/patch-km_div">http://www.colorfullife.com/~manfred/slab/patch-km_div</a></p>

<p>Please ignore the part about fixed point division, it's not needed - the
'div' instructions is now outside of the hot path.</p>

<p>The problem is that the -mm tree contains around 10 slab patches, I want
to see them in Linus' tree before I add further patches.</p>

</quote>

</section>

<section
  title="Dynamically Growing ext2 And ext3 Filesystems"
  subject="[PATCH] 2/11  Ext2/3 Updates: Extended attributes, ACL, etc."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0210.3/1371.html"
  posts="6"
  startdate="29 Oct 2002 08:42:09 -0800"
  enddate="02 Nov 2002 00:57:35 -0800"
>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>
<notopic>Access Control Lists</notopic>

<mention>Stephen C. Tweedie</mention>
<mention>Andreas Dilger</mention>



<p>Theodore Y. Ts'o posted a patch and explained, <quote who="Theodore
Y. Ts'o">This patch allows forward compatibility with future filesystems
which are dynamically grown by using an alternate algorithm for storing the
block group descriptors.  It's also a bit more efficient, in that it uses
just a little bit less disk space.  Currently, the ext2 filesystem format
requires either relocating the inode table, or reserving space in before
doing the on-line resize.</quote> He gave a link to a USENIX article called <a
href="http://e2fsprogs.sourceforge.net/extensions-ext23">Planned Extensions
to the Ext2/3 Filesystem</a> by himself and Stephen C. Tweedie. Jeff Garzik
asked, <quote who="Jeff Garzik">Is the interface for this going to be ext2meta?
Al and sct seemed to agree that that was the best way act upon the filesystem
metadata while it's online...  I'll probably be updating that for 2.5.x
VFS changes in a few weeks, that will provide safe online defrag and a good
interface for other metadata interaction.</quote> And Theodore replied:</p>

<quote who="Theodore Y. Ts'o">

<p>I'm not sure ext2meta will be sufficient.  It's not just a matter of
modifying the on-disk metadata, as would be needed for defrag, but I would also
need to modify some of the in-core data structions in the ext2/3 filesystem
data structures.  For example, when you resize the filesystem, you need to
increase the number of group descriptors, which means you need to kmalloc,
copy, and then kfree sbi->group_desc out from under the mounted filesystem.</p>

<p>No doubt ext2meta could be modified so it could "reach out and touch"
internal ext2/3 fileststem data structures in core.  But the locking issues
involved get really messy.</p>

<p>My original plan was to adapt Andreas Dilger's on-line resizing patch to
use the new block group layout, which would obviate the need to take the
filesystem off-line and run ext2prepare first.  I'm not opposed to trying
to do it via ext2meta, but it seems like it might get complicated and hairy
quite quickly.</p>

</quote>

<p>Alexander Viro remarked, <quote who="Alexander Viro">For all practical
purposes, ext2meta is part of ext2 - same driver, two filesystem types.
Locking isn't that scary, BTW - I'd looked into that some time ago and it
looked feasible.</quote> Jeff agreed with this assessment, and said he'd
post a patch in the next couple weeks.</p>

</section>

<section
  title="New SquashFS Highly Compressed Filesystem"
  subject="ANNOUNCEMENT: Squashfs released (a highly compressed filesystem)"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0210.3/1536.html"
  posts="16"
  startdate="29 Oct 2002 18:29:01 -0800"
  enddate="02 Nov 2002 00:57:19 -0800"
>
<topic>Compression</topic>
<topic>FS: SquashFS</topic>
<topic>FS: ramfs</topic>
<topic>Samba</topic>
<topic>Small Systems</topic>

<mention>Samuel Flory</mention>
<mention>Jeff Garzik</mention>

<p>Phillip Lougher announced:</p>

<quote who="Phillip Lougher">

<p>First release of squashfs.  Squashfs is a highly compressed read-only
filesystem for Linux (kernel 2.4.x).  It uses zlib compression to compress
both files, inodes and directories.  Inodes in the system are very small
and all blocks are packed to minimise data overhead. Block sizes greater
than 4K are supported up to a maximum of 32K.</p>

<p>Squashfs is intended for general read-only filesystem use, for archival
use, and in embedded systems where low overhead is needed.</p>

<p>Squashfs is available from <a
href="http://squashfs.sourceforge.net">http://squashfs.sourceforge.net</a>.</p>

<p>The patch file is currently against 2.4.19.  There is further info on
the filesystem design etc. in the README.</p>

</quote>

<p>Samuel Flory asked how squashfs compared with the existing cramfs project,
and Phillip explained:</p>

<quote who="Phillip Lougher">

<p>Cramfs was the inspiration for squashfs.  Squashfs basically gives
better compression, bigger files/filesystem support, and more inode
information.</p>

<p>

<ol>

<li>Blocks upto 32K are supported - data is compressed in units of 32K
which achieves better compression ratios than compressing in 4K blocks.
Generally using bigger than 4K blocks are a bad idea, because the VFS
calls the filesystem in 4K pages.  Squashfs explictly pushes the extra
block data into the page cache.</li>

<li>Squashfs compresses inode and directory information in addition to
file data.  Inodes/directories generally compress down to 50%, or say on
average 8 bytes or less per inode.</li>

<li>All fs data is packed on byte alignments, saving a couple of bytes
per inode and directory.</li>

<li>Full 32 bit uids/guids are stored (4 bits stored in inode, uses a
lookup table, to give 48 uids/16 gids).  File sizes upto 2^32 are
supported.  Timestamp info is stored. Cramfs truncates uids to 16 bits,
uids to 8 bits.  Cramfs files sizes are upto 2^24.  No timestamp info.
Squashfs takes advantage of metadata compression to have more info with
smaller metadata overhead.</li>

<li>Symbolic link contents/file indexes are stored inside the inode table,
giving better compression than if they were compressed individually, or
not compressed.</li>

<li>The mksquashfs program doesn't store/mmap the filesystem as it is
created (it performs file duplicate checking against the partially
written out compressed fs), and so allows larger filesystems to be created.</li>

</ol>

</p>

<p>Further info on the fs is contained in the README...</p>

</quote>

<p>Jeff Garzik mentioned that a read/write compressed filesystem would also be
really great. Phillip replied:</p>

<quote who="Phillip Lougher">

<p>A r/w compressed filesystem may be my next project...  As a couple of people
have mentioned there are compressed r/w filesystems already out there.</p>

<p>As you'll know, there are always tradeoffs with filesystem design, it is
very difficult to get as good compression with a r/w fs than with a read
only filesystem.  I wanted to get maximum compression, and quite a few of
the techniques I use rely on its read-only nature.</p>

<p>An append only (i.e. files can be added, but not modified), fs might be
a useful compromise.  With compressed metadata, any modification of files
will inevitably achive different compression ratios, and so modification of
metadata/files in place is not an option.  Appending modified metadata/data
brings you to log-structured (journalling) filesystems and compaction (log
cleaning) requirements with consequent loss of compression.</p>

</quote>

<p>Rob Landley replied:</p>

<quote who="Rob Landley">

<p>A compressed filesystem with dynamically updated random-access files
will fragment the heck out of itself darn fast.  (Seek into the middle of
a file somewhere, write a block, seek somewhere else, write another block,
repeat 1000 times...  Keep in mind that the new compressed block of data
will almost certainly not be the same size as the old one... It's a mess.)</p>

<p>My potential usage is: I've got a little linux distribution
I put together called "firmware linux", which builds from
source and outputs a zisofs image that gets loopback mounted as
the root filesystem.  (A very alpha version could be sucked off of <a
href="http://216.143.22.141/firmware/fwl-0.8.tar">http://216.143.22.141/firmware/fwl-0.8.tar</a>,
edit "build.sh" to specify the output directory, and then run it.  The point
is, the whole OS and all applications can be upgraded as one file.  No package
management, it's basically a big firmware image.)</p>

<p>The reason I used a zisofs instead of cramfs is that cramfs has a LOT of
problems with big filesystems.  (The finished root partition, with apache and
samba and ntop and python and rsync and openssh and everything, is currently
around 100 megs.  Yeah, I can trim that down by quite a bit if I get time,
I'm currently compilling and developing it under itself so I have gcc in
there and the full set of man pages and everything...)</p>

<p>Mkcramfs seems to barf at somewhere around 16 megs, which is really
limiting.  AND it seems to try to open every file simultaneously (hardlink
detection?)  so it runs out of file handles.  (Again, that could be adjusted
under /proc somewhere, but isn't worth it.)</p>

<p>So it seems that the thing to test this against isn't cramfs, but zisofs.
Have you looked at that?</p>

<p>I'll take a look myself and get back to you...</p>

</quote>

<p>And Phillip said:</p>

<quote who="Phillip Lougher">

<p>I looked at both cramfs and ziosfs when writing squashfs.  Zisofs is a
nice fs, but tends to have greater overhead due to the isofs filesystem.
On tests I've found zisofs images to be between 5% (a single directory with
lots of small binaries) and 61% (lots of nested directories) bigger than
the squashfs filesystem.</p>

<p>I believe that squashfs is useful for what you're doing.  I'm a bit
hesitant in saying that, because I'd rather people downloaded it and made
up their own minds :-)</p>

<p>Thank you for trying it out, and I hope you like it.  I'll obviously be
interested in your thoughts on it.</p>

</quote>

</section>

<section
  title="Linux 2.5.45 Released"
  subject="Linux v2.5.45"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0210.3/1841.html"
  posts="22"
  startdate="30 Oct 2002 16:56:29 -0800"
  enddate="01 Nov 2002 17:13:17 -0800"
>
<topic>Device Mapper</topic>
<topic>Disk Arrays: LVM</topic>
<topic>Networking</topic>
<topic>Sound: ALSA</topic>
<topic>USB</topic>
<topic>Virtual Memory</topic>

<mention>Aaron Lehmann</mention>

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

<quote who="Linus Torvalds">

<p>Big changes, lots of merges. A number of the merges are fairly substantial
too.</p>

<p>Device mapper (LVM2), crypto/ipsec stuff for networking, epoll and giving
the new kernel configurator a chance. Big things. </p>

<p>And a _lot_ of maintenance, from various architecture updates to USB and
ISDN and ALSA. Merges with Andrew &amp; Alan etc.. Go out and test</p>

</quote>

<p>Aaron Lehmann pointed out that 'make oldconfig' and 'make menuconfig' now
depended on the QT graphics library, which made no sense to him. Alexander
Viro remarked, <quote who="Alexander Viro">Remove "false" from the rule that
spits out annoying shit about absence of QT (_yes_, I _know_ that I don't
have that shite installed, thank you very much for reminder).  Doesn't solve
the annoyance problem, though.</quote> And Roman Zippel, close by, said,
<quote who="Roman Zippel">Yes, it's a bug. The patch below fixes this without
breaking xconfig.  Linus, please apply.</quote></p>

</section>

<section
  title="Kconfig Documentation"
  subject="Where's the documentation for Kconfig?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0210.3/2027.html"
  posts="22"
  startdate="31 Oct 2002 05:43:08 -0800"
  enddate="02 Nov 2002 11:26:31 -0800"
>
<topic>Kernel Build System</topic>

<mention>Russell King</mention>
<mention>Matthew Wilcox</mention>
<mention>Christoph Hellwig</mention>

<p>Matthew Wilcox asked where he could find documentation
for the new kconfig configuration system recently
added to the kernel. Roman Zippel gave a pointer to <a
href="http://www.xs4all.nl/~zippel/lc/">http://www.xs4all.nl/~zippel/lc/</a>.
Christoph Hellwig suggested updating Documentation/kbuild/config-language.txt
with the new information, and Roman replied that he'd get to that soon. Rusty
Russell remarked, <quote who="Rusty Russell">Doco is great, and it'd be
nice to replace what's there, but I think it's remarkably easy to use in
a monkey-see-monkey-do fashion, which is *really* good because that's how
people will use it.  Plus, I never realized how slow the old "make oldconfig"
was.</quote></p>

<p>Elsewhere, Russell King asked if any tool had been written to convert a
Config.in file to a kconfig equivalent. He pointed out that the existing lkcc
tool was too extensive, converting whole trees, but not individual files in
their own. Russell had some partially converted directories that were in a
somewhat inconsistent state, that lkcc wouldn't work on. Roman suggested,
<quote who="Roman Zippel">You could put it into arch/tmp/config.in and do
'lkcc tmp'.  But converting the whole tree is the prefered solution, because
lkcc needs all the type information of every symbol used in the config file
to do a good job. The easiest solution is probably to get the 2.5.44 patch
from my page, generate a diff to your converted 2.5.44 tree and apply this
patch to 2.5.45. If you send me a 2.5.44 patch of your tree, I can do it
for you.</quote> This worked for Russell.</p>

</section>

<section
  title="Status Of Xiafs In 2.5"
  subject="Xiafs inclusion in 2.5?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0210.3/2205.html"
  posts="11"
  startdate="31 Oct 2002 11:22:48 -0800"
  enddate="01 Nov 2002 13:55:41 -0800"
>
<topic>FS: XiaFS</topic>
<topic>Feature Freeze</topic>
<topic>Forward Port</topic>

<mention>Andries Brouwer</mention>
<mention>H. Peter Anvin</mention>

<p>Carl-Daniel Hailfinger quoted a post from Linus Torvalds back in the
year 2000, when he said, "Who still remembers xiafs? We have 33 different
filesystems in the kernel tree - something that is quite impressive, and
something that I don't think anybody else has ever tried to support. But we
could have had 34.." Carl replied now, <quote who="Carl-Daniel Hailfinger">Out
of curiosity, would you reaccept xiafs in 2.5, if it was cleaned up and
forward ported to use the new interfaces?  And if you accept it, what's
the latest date I could submit it? Technically, it is a regression, ;-)
so the feature freeze date might not apply.</quote> H. Peter Anvin felt
there would be no point whatsoever to this, but Carl replied that it would
be fun! Andries Brouwer looked around his house and found an old floppy
with an Xiafs format. He said he'd like to be able to read it again without
booting a 2.0 kernel.  Elsewhere, Linus replied to Carl's initial post,
<quote who="Linus Torvalds">Quite frankly, I probably _would_ accept it, if
it's cleanly done. If only because of the fact that it's such a ridiculous
thing to do, and thus gets high points on my "surreality meter".</quote>
And he added, <quote who="Linus Torvalds">Yeah, I think xiafs has little to
do with a feature freeze.  It has little to do with sanity too, for that
matter. I saw that Andries still has one xia floppy somewhere, and that
probably puts him in a rather unique position. I can't imagine that very
many people really care, but it's a ironic form of retrocomputing...</quote>
This inspired Carl to ask Andries for an image of his floppy, and Andries gave
him a <a href="ftp://ftp.cwi.nl/pub/aeb/linux0.99pl7.xiafs">pointer</a>.</p>

</section>

<section
  title="Swap-Space Mini-Howto Documentation"
  subject="[announce] swap mini-howto"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.0/0280.html"
  posts="20"
  startdate="01 Nov 2002 15:58:27 -0800"
  enddate="05 Nov 2002 08:07:32 -0800"
>

<mention>Randy Dunlap</mention>

<p>Randy Dunlap was surprised to find no mini-howto on the web that covered
swap-space, so he created one and gave <a
href="http://www.xenotime.net/linux/swap-mini-howto.txt">a temporary
link</a> to it. A number of folks also expressed surprise at not finding a
similar doc anywhere. Various people read Randy's doc and offered
suggestions; and a number of folks said that the <a
href="http://www.linuxdoc.org">Linux Documentation Project</a> was the best
place to ptu it. At one point Gabor MICSKO also said, <quote who="Gabor
MICSKO">I translated this doc to Hungarian language. You can read the
translated doc this url: <a
href="http://www.hup.hu/modules.php?name=News&amp;file=article&amp;sid=1976">http://www.hup.hu/modules.php?name=News&amp;file=article&amp;sid=1976</a></quote></p>

</section>

<section
  title="Status Of initramfs"
  subject="[BK PATCHES] initramfs merge, part 1 of N"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.0/0341.html"
  posts="18"
  startdate="02 Nov 2002 00:13:45 -0800"
  enddate="04 Nov 2002 11:16:36 -0800"
>
<topic>FS: NFS</topic>
<topic>FS: initramfs</topic>
<topic>FS: ramfs</topic>
<topic>FS: rootfs</topic>
<topic>Klibc</topic>

<p>Jeff Garzik said:</p>

<quote who="Jeff Garzik">

<p>The attached below is the first of several changes for initramfs / early
userspace.</p>

<p>This change is intentionally very simple, not really proving its worth
until next week when patches 2 and 3 in this series arrive in your
inbox.  A description of "the future" follows description of this
specific cset.</p>

<p>

<ol>

<li>

<p>Introduce init/initramfs.c itself, which is a module that
uncompresses a .cpio.gz archive, and uses it to populate rootfs with
files early very in the bootup process (between signals_init and
proc_root_init in init/main.c).  People will see a small listing in
dmesg of unpacked files.  We need to keep this for now (and for now it's
small), but we may want to remove this output or turn the knob down to
KERN_DEBUG before 2.6.x release:</p>

<pre>   -> file1
   -> file2
   -> etc...</pre>

<p>(architecture maintainers note!)</p>

</li>

<li>Introduce ARCHBLOBLFLAGS in arch/$arch/Makefile, for turning an
arbitrary binary object into a .o file using objcopy.</li>

<li>Link the initramfs cpio archive in vmlinux image via
arch/$arch/vmlinux.lds.S, in the init section.</li>

<li>Introduce the new linux/usr directory.  Currently it is not very
interesting, only containing a small host-built proggie that generates
the initial cpio archive, gen_init_cpio.  This program will go away when
early userspace is further along.  It currently exists to show initramfs
is working, by allowing us to remove three simple lines from
init/do_mounts.c.</li>

</ol>

</p>

</quote>

<p>He went on to describe future development:</p>

<quote who="Jeff Garzik">

<p>Early userspace is going to be merged in a series of evolutionary
changes, following what I call "The Al Viro model."  NO KERNEL BEHAVIOR
SHOULD CHANGE.  [that's for the lkml listeners, not you &lt;g&gt;]  "make"
will continue to simply Do The Right Thing(tm) on all platforms, while
the kernel image continues to get progressively smaller.  Here is the
initial plan for early userspace, i.e. the patches you are going to be
seeing next week:</p>

<p>#2 - merge klibc.</p>

<p>As I said earlier, I am not sure if we will wind up removing klibc just
before 2.6.x release or not.  Comments welcome.  But for now, klibc will
be merged into the kernel tarball, because otherwise version drift
during the evolution of early userspace will be a huge PITA, and slow
things down.  It is a tiny libc written specifically for the kernel.</p>

<p>This patch will add klibc to the build system, and create a tiny,
statically-linked binary "kinit".  kinit is the beginnings of early
userspace.  Some tiny, token amount of do_mounts.c code will be moving
into kinit in patch #2, only enough to prove the system is working.</p>

<p>#3 - move initrd to userspace</p>

<p>Unfortunately we don't start seeing tangible benefits to early userspace
until this patch, but that's how evolution works :)  Here, initrd
unpacking code is moved to userspace, as much as possible.  Some initrd
code will inevitably stay in the kernel, because it is arch-specific how
to grab the initrd image from bootmem [or whereever], but the vast
majority of initrd code goes poof (yay!).  No initrd behavior will
change at all, from current kernels.  It is simply getting moved to
early userspace.  Users will not need to do anything on their end to
make sure their existing setups continue to work -- any such actions are
a bug on my part.</p>

<p>This patch will also turn "kinit" into a shared binary, and introduce
the gzip binary into early userspace.  [see "Items For Discussion"
below, too, WRT this.]</p>

<p>#4 - move mounting root to userspace</p>

<p>People probably breathed a sigh of relief at patch #3, they will heave a
bigger sigh for this patch :)   This moves mounting of the root
filesystem to early userspace, including getting rid of
NFSroot/bootp/dhcp code in the kernel.</p>

<p>#N - to infinity... and beyond!</p>

<p>I, and hopefully others, will continue in the series of evolutionary
patches, moving more and more stuff to early userspace.  There are a lot
of possibilities, and I will be looking for input from others on useful
things to move, as well as continuing my own work of finding items that
can be moved.</p>

</quote>

</section>

<p>He raised ideas for discussion:</p>

<quote who="Jeff Garzik">

<p>Items For Discussion</p>

<p>#1 - shared kinit</p>

<p>"kinit" is _the_ early userspace binary -- but not necessarily the only
one.  Peter Anvin and Russell King have several binaries in the klibc
tarball, gzip, ash, and several smaller utilities.  Peter also put work
into making klibc a shared object -- that doesn't need an shlib loader.
It's pretty nifty how he does it, IMO:  klibc.so becomes an ELF
interpreter for any klibc-linked binaries.  klibc-linked binaries are,
to the ELF system, static binaries, but they wind up sharing klibc.so
anyway due to this trick.</p>

<p>Anyway, there is a certain elegance in adding coding to kinit instead of
an explosion of binaries and shell scripts.  The other side of that coin
is that with elegance you sacrifice some ease of making changes.  I am
60% certain we want a shared klibc and multiple binaries, but am willing
to be convinced in either direction.  If you think about it, there _are_
several benefits to leaving kinit as the lone binary in the stock kernel
early userspace build, so the decision is not as cut-n-dry as it may
immediately seem.</p>

<p>#2 - klibc in the kernel tarball</p>

<p>It's going in, for now.  That's not open to discussion.  However, the
future is...   I know the old maxim of "once's it in, it never goes
away."  Maybe that's the case, and if so, no big deal.  I know at least
a couple people who would like to see it leave the kernel tarball before
2.6.0 is released.  I solicit comments on this item, though I think we
will won't be in a position to answer this question until 2.6.0 release
is near.</p>

</quote>

<p>And he concluded:</p>

<quote who="Jeff Garzik">

<p>That's it for now.  Questions, comments, and flames welcome.  If I
missed some early userspace benefits, let me know.  If you know of good
things to move to early userspace, let me know.  If there are upcoming
bumps in the road I did not mention, let me know.</p>

<p>Credits:  Al Viro for the initramfs work.  hpa, rmk, Greg KH, Alan, and
innumerable others have contributed ideas if not actual code towards
this effort.  And thanks to our Emporer Penguin for giving me a break,
when I blew the Halloween deadline spending 24 hours debugging an
_incredibly_ stupid bug on my part.  I deserve not one but two brown
paper bags for that one.</p>

</quote>

<p>Aaron Lehmann raised some question about whether this would make the kernel
smaller in the short term, but Linus Torvalds said:</p>

<quote who="Linus Torvalds">

<p>Note that the reason I personally really want initramfs is not to make the
kernel boot image smaller, or the kernel sources smaller. That won't
happen for a long time, since I suspect that we'll be carrying the
initramfs user space with us for quite a while (eventually it will   
probably split up into a project of its own, but certainly for the
forseeable future it would be very closely tied to the kernel).</p>

<p>The real advantage to me is two-fold:</p>

<p>

<ul>

<li>

<p>make it easier for people to customize their initial system without
   having to muck with kernel code or even use a different boot sequence.
   One example of this is the difference between vendor install kernels
   (using initrd) and a normal install kernel (which doesn't).</p>

<p>   So I'd much rather see us _always_ using initrd, and the difference
   between an install kernel and a regular kernel is really just the size
   of the initrd thing.</p>

</li>

<li>

<p>Many things are much more easily done in user space, because user space
   has protections, "infinite stack", and in general a lot better
   infrastructure (ie easier to debug etc). At the same time, many things 
   need to be done _before_ the kernel is fully ready to hand over control
   to a normal user space: do ACPI parsing so that we can initialize the
   devices so that we can use the "real" user space that is installed on
   disk etc.</p>

<p>   Sometimes there is overlap between these two things (ie the "easier to
   do in user space" and "needs to be done before normal user space can be
   loaded"). ACPI is one potential example. Mounting the root filesystem
   over NFS after having done DHCP or other auto-discovery is another.</p>

</li>

</ul>

</p>

<p>So "shrinking the kernel" is not on my list here. It's really a matter of
"some initialization is better done in user space", and not primarily "we
want to make the kernel smaller". I'm not a big believer in microkernels
and trying to get everything out of the kernel itself, but I _do_ believe
that sometimes it's easier to just let the user do his own choices (while
still giving him all the protection implied by running in user space).</p>

</quote>

<p>Alexander Viro added a third point to Linus' two-fold advantage:</p>

<quote who="Alexander Viro">

<p>userland is more limited.  And no, that's not a typo - and it's a good
thing.  Userland has to use normal, regular syscalls instead of poking its
fingers into hell knows what parts of kernel data structures.</p>

<p>Which means that it's more robust and that it doesn't stand in the way
of work on kernel.  90% of PITA with super.c used to be of that kind -
mounting root filesystem had been done with very ugly kludges and what's
more, these kludges got filtered down in the normal codepath.  Getting rid of
that took a _lot_ of very careful manipulations with the guts of the thing.
And guess what?  There was no reason why all that black magic would be
necessary - current code uses normal, garden-variety system calls.</p>

<p>In effect, we used to have special cases of mount(2), etc., with very
kludgy semantics.  They were not exposed to userland, but that didn't make them
less nasty or less painful to work with.  They still cluttered the code, they
still stood in the way of work on the thing and they still were butt-ugly.</p>

<p>And that's what moving code to userland should prevent - it's much easier
to catch somebody bringing a patch with magical extension of system call
than to catch an attempt to sneak special-case code used only by kernel.</p>

<p>BTW, that's a thing we need to watch for - there obviously will be a lot
of patches moving stuff to userland and there will be a strong temptation
to add magic interfaces just for that.  _That_ should be prevented - it's
better to leave ugly crap as is than export the same crap to userland.
The point is to get the things cleaned up and make sure that they stay clean,
not to cement them in place by adding a magic ioctl/syscall/flag/whatnot.
We may very well end up extending existing interfaces, but we'd damn better
make sure that such additions make sense for generic use.</p>

<p>We have a lot of ugly crap that would be unnecessary if we had early
access to writable fs.  Basically, we got magic methods, magic codepaths,
etc. simply because the normal access to the functionality in question
required opened file descriptors.  Now we _do_ have a writable filesystem
mounted very early, so that cruft can be killed off.  And moving code to
userland acts as a filter - there we don't have access to magic, so all such
magic immediately shows up.  It could be done in the kernel (and quite a
few things had been done already), but move to userland acts as a safeguard
against reintroduction of magic crap.</p>

</quote>

<section
  title="New Open POSIX Test Suite"
  subject="[ANNOUNCE] Open POSIX Test Suite"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.0/1183.html"
  posts="24"
  startdate="04 Nov 2002 14:48:47 -0800"
  enddate="05 Nov 2002 11:05:08 -0800"
>
<topic>POSIX</topic>
<topic>Version Control</topic>

<mention>Andreas Dilger</mention>
<mention>Rik van Riel</mention>

<p>Geoff Gustafson announced:</p>

<quote who="Geoff Gustafson">

<p>I would like to announce a new project to develop and/or assemble a GPL
test suite for POSIX APIs. The tests will focus on conformance to the IEEE Std
1003.1-2001, but will also include separate functional and stress tests.</p>

<p>The project's current approach to conformance testing is to record
assertions from a close reading of the POSIX specifications, and write
minimal test cases that prove or disprove these assertions. The test suite
will be independent of specific API implementations, and will eventually be
easily configurable to work with different implementations. The project aims
for OS independence, using only POSIX APIs, the autoconf suite, and simple
shell support.  However, it is currently only being tested on Linux.</p>

<p>Ultimately, the plan is to use the test suite to evaluate current
support in Linux, as well as new implementations being considered in the
open source community, and then contribute patches or at least bug reports
(with a minimal test case) to the appropriate places, like LKML.</p>

<p>Contributions of any test cases, review of the work, discussion of
the approach, etc. are very welcome. Join the development mailing list,
posixtest-discuss. The initial focus is on Signals, Message Queues, Threads,
Semaphores, and Clocks &amp; Timers, based on current interests and resources.
You can help in these areas, or start work on another area of the spec.
There will need to be some uniformity across the suite, but many details have
yet to be worked out, so your involvement in those decisions help a lot.</p>

<p>For more information, see the project website at <a
href="http://posixtest.sourceforge.net">http://posixtest.sourceforge.net</a></p>

</quote>

<p>Larry McVoy replied:</p>

<quote who="Larry McVoy">

<p>Great idea.  We can help in the following way: BitKeeper has an extremely
simple test harness used for regressions.  It's well thought out in that
it is trivial to write simple tests and run them in isolation or to
run the whole suite.  If you want the harness, we'll give it to you
under whatever license you want, I assume GPL, but we don't care.</p>

<p>You can see what the tests look like in BK, if you have it installed, we
ship all the tests, they are in `bk bin`/t</p>

<p>A simple test might be</p>

<pre>        #!/bin/sh

        # test that touch creates a file
        touch foo
        test -f foo || {
                echo failed to create foo
                exit 1
        }</pre>

<p>The harness takes care of putting you in a clean isolated environment.</p>

</quote>

<p>Geoff said this would be great, and that he'd check out BitKeeper.</p>

<p>Elsewhere, Jeff Garzik speculated:</p>

<quote who="Jeff Garzik">

<p>I wonder if any vendors, or independent groups, would be interested in
maintaining a POSIX compliancy patchkit for the Linux kernel?</p>

<p>IMO such a "POSIX Linux" project would be useful for several reasons.
Overall, I think there is pressure from several directions to get all
sorts of POSIX APIs into the kernel.  On occasion, kernel hackers are
confronted with a situation where complete POSIX compliancy may mean a
compromise in some area, be it performance, security, API issues, code
cleanliness issues, etc.  Or simply that the POSIX-related code just
isn't ready to be merged into the mainline kernel yet.</p>

<p>The vendors also benefit by this, because the barrier to entry in
POSIX-related cases would be lowered, which would in turn satisfy the
demands of customers.  Which would in turn give the mainline kernel all
the software engineering benefits that come from a more reasoned and
gradual review and merge of new features.</p>

<p>Does something like this already exist?  This would need to be an open,
vendor-neutral project...</p>

</quote>

<p>Rik van Riel volunteered to help, and Geoff added, <quote who="Geoff
Gustafson">I agree this sounds very useful. I could do something like this
as part of the test suite project; this would expand the scope to include
testing and reporting the status of the latest patches.</quote> Andreas Dilger
suggested that it might be better to use the existing test suite from X/Open;
but a couple folks (including Geoff) pointed out that the X/Open tests of
POSIX extensions more recent than 1990 were not free.</p>

<p>A number of folks suggested that Geoff's work really belonged in the <a
href="http://ltp.sf.net">LTP</a> project. Geoff pointed out that LTP seemed to
concern itself with testing interfaces that had already been implemented in
the kernel; while his project focused on testing interfaces that had not yet
been implemented, and testing them whether in the kernel or user-space. But
several folks from LTP said LTP would love to extend their test suite in
this area. The thread ended inconclusively.</p>

</section>

<section
  title="Paying For Patches"
  subject="PATCH: Driver Maintainers"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.0/1493.html"
  posts="5"
  startdate="05 Nov 2002 10:22:31 -0800"
  enddate="06 Nov 2002 00:36:03 -0800"
>

<p>Alan Cox posted an odd patch and explained:</p>

<quote who="Alan Cox">

<p>I've been getting more and more people talking to me looking to pay people to
fix small Linux bugs but having problems finding smaller companies. Obviously
wanting to send $1000 to have someone fix a driver simply doesn't work when
you talk to big companies.</p>

<p>One thing the FSF do which is rather sensible is keep a list in the packages
of people who you can pay to fix stuff in them. I asked on Linux-kernel
and got a small initial set of company responses. hopefully more will appear
once its merged.</p>

<p>The order is alphabetical logically enough</p>

<p>[Marcelo this seems to apply cleanly to 2.4 as well]</p>

</quote>

<p>Linus Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>I would really prefer for there to be some kind of explicit requirements
for this. Even if we don't endorse the thing, I'd hate to have a bad egg
or two (assuming this expands a lot, which I think it might) causing
trouble.</p>

<p>I'd also like for it to be explicitly only for individuals or small
companies ( "less than x people" ), or some other way make sure that the
thing is balanced and we set peoples expectations right (both users of the
list as well as people who want to be on the list).</p>

<p>Also, is the kernel source really the right place for this, considering
that many people will have sources that are years old and there is no way
to remove potential problematic entries from already-released kernels? In
other words, wouldn't it be better to have some nice place on the web and
a pointer to that in the kernel sources?</p>

</quote>

<p>Alan said:</p>

<quote who="Alan Cox">

<p>Fair comment. I can happily put it on a web site with a pointer instead
any preferences to a location like kernel.org or just 'wherever'</p>

<p>Splitting it up by company is easy enough to do - split the web page
into "Interested in contracts below $1000, $10000, $100000, $1M, ..."
sections</p>

<p>One could construct a verifiable non-repuditable rating scheme I guess.
That depends if its worth it</p>

<blockquote>

<p>        "People who paid for bug fixes in the 3c501 driver also bought
         MacIIfx support contracts..."</p>

</blockquote>

</quote>

</section>

<section
  title="Graphing Kernel Development"
  subject="Charts of the evolution of 2.5"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.0/2060.html"
  posts="1"
  startdate="06 Nov 2002 21:11:01 -0800"
>
<topic>Feature Freeze</topic>

<p>Guillaume Boissiere said:</p>

<quote who="Guillaume Boissiere">

<p>I put together some graphs showing the evolution of features for the 2.5
kernel here:</p>

<p><a href="http://kernelnewbies.org/status/Linux_Kernel_2_5_Progress.png">http://kernelnewbies.org/status/Linux_Kernel_2_5_Progress.png</a><br />
<a href="http://kernelnewbies.org/status/Linux_Kernel_2_5_Compounded_Progress.png">http://kernelnewbies.org/status/Linux_Kernel_2_5_Compounded_Progress.png</a></p>

<p>Since most features evolve over time as opposed to being a one-time deal,
it does pretend to be fully accurate but it does give a good sense of the
development lifecycle.</p>

<p>Funny how the rate of merges grew rapidly just before feature freeze :-)</p>

</quote>

</section>

</kc>

