<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="260" date="05 Jun 2004 00:00:00 -0800" />

<intro>Last issue I put out a call for help, after my computer crashed,
leaving me with a slow loaner and nothing else. I'd like to thank
the two or three dozen people who responded with very nice, generous
offers. In the end, Professor Allan Cruse and Professor Greg Benson of the
University of San Francisco <a href="http://www.cs.usfca.edu">Department
of Computer Science</a>, fixed me up with a really excellent dual PIII
system. That's the same department responsible for the open source <a
href="http://www.flashmobcomputing.org">FlashMob Computing</a> project,
which in April of this year linked 150 volunteer personal systems together
to produce a 77 GFlop supercomputer. Various problems prevented them from
making use of the over 700 computers that arrived to participate, but clearly
the level of public interest is high, and future experiments will likely
produce ever-more-impressive results. I'm very grateful for their help with
Kernel Traffic. They transformed an essentially unworkable situation into
a much easier and better situation.</intro>

<stats posts="1986" size="10592" contrib="514" multiples="254" lastweek="189">

<person posts="112" size="461" who="Andrea Arcangeli" />
<person posts="90" size="402" who="Andrew Morton" />
<person posts="57" size="194" who="Jamie Lokier" />
<person posts="49" size="326" who="Paul Jackson" />
<person posts="48" size="151" who="Jeff Garzik" />
<person posts="28" size="146" who="William Lee Irwin III" />
<person posts="24" size="90" who="Pavel Machek" />
<person posts="23" size="201" who="Andy Whitcroft" />
<person posts="23" size="90" who="&quot;Martin J. Bligh&quot;" />
<person posts="23" size="88" who="Jens Axboe" />
<person posts="23" size="75" who="Greg KH" />
<person posts="22" size="150" who="Hugh Dickins" />
<person posts="22" size="79" who="Nick Piggin" />
<person posts="21" size="113" who="=?iso-8859-1?Q?J=F6rn?= Engel" />
<person posts="21" size="62" who="Pavel Machek" />
<person posts="19" size="87" who=" (Eric W. Biederman)" />
<person posts="19" size="71" who="Chris Wright" />
<person posts="19" size="70" who="Marc-Christian Petersen" />
<person posts="18" size="100" who="Andi Kleen" />
<person posts="17" size="120" who="&quot;Randy.Dunlap&quot;" />
<person posts="17" size="65" who="Peter Williams" />
<person posts="16" size="65" who="Matt Mackall" />
<person posts="15" size="63" who="Christoph Hellwig" />
<person posts="15" size="48" who="Stefan Smietanowski" />
<person posts="14" size="82" who="Hirokazu Takahashi" />
<person posts="14" size="68" who="Bartlomiej Zolnierkiewicz" />
<person posts="14" size="42" who="Davide Libenzi" />
<person posts="14" size="40" who="Geert Uytterhoeven" />
<person posts="13" size="182" who="Zoltan Menyhart" />
<person posts="13" size="52" who="Rusty Russell" />
<person posts="13" size="46" who="Russell King" />
<person posts="13" size="44" who="Arjan van de Ven" />
<person posts="12" size="433" who="Martin Schwidefsky" />
<person posts="12" size="172" who="Gerd Knorr" />
<person posts="12" size="92" who="Denis Vlasenko" />
<person posts="12" size="37" who="Alan Stern" />
<person posts="12" size="35" who="Dave Jones" />
<person posts="11" size="181" who="Andreas Hartmann" />
<person posts="11" size="109" who="Rajesh Venkatasubramanian" />
<person posts="11" size="62" who="David Gibson" />
<person posts="11" size="56" who="Srivatsa Vaddagiri" />
<person posts="10" size="92" who="IWAMOTO Toshihiro" />
<person posts="10" size="65" who="Bjorn Helgaas" />
<person posts="10" size="46" who="&quot;Chen, Kenneth W&quot;" />
<person posts="10" size="35" who="Karim Yaghmour" />
<person posts="10" size="33" who="Bill Davidsen" />
<person posts="9" size="109" who="Grzegorz Kulewski" />
<person posts="9" size="38" who="Tom Rini" />
<person posts="9" size="33" who="Micha Feigin" />
<person posts="9" size="25" who="Benjamin Herrenschmidt" />
<person posts="8" size="91" who="Gene Heskett" />
<person posts="8" size="77" who="Joerg Sommrey" />
<person posts="8" size="55" who="Ray Bryant" />
<person posts="8" size="44" who="Maneesh Soni" />
<person posts="8" size="37" who="John Cherry" />
<person posts="8" size="35" who="Dave Hansen" />
<person posts="8" size="31" who="Soeren Sonnenburg" />
<person posts="8" size="30" who="Len Brown" />
<person posts="8" size="25" who="Sid Boyce" />
<person posts="8" size="21" who="Zwane Mwaikambo" />
<person posts="8" size="20" who="Andi Kleen" />
<person posts="7" size="38" who="Manfred Spraul" />
<person posts="7" size="38" who="Ingo Molnar" />
<person posts="7" size="35" who="&quot;Hemmann, Volker Armin&quot;" />
<person posts="7" size="25" who="&quot;Richard B. Johnson&quot;" />
<person posts="7" size="24" who="&quot;Eric D. Mudama&quot;" />
<person posts="7" size="22" who="&quot;Maciej W. Rozycki&quot;" />
<person posts="6" size="26" who="Marcelo Tosatti" />
<person posts="6" size="24" who="&quot;Carlos Fernandez Sanz&quot;" />
<person posts="6" size="20" who="Ben Collins" />
<person posts="6" size="19" who="(viro)" />
<person posts="6" size="19" who="Marcus Hartig" />
<person posts="6" size="18" who="Marcel Holtmann" />
<person posts="6" size="18" who="Rik van Riel" />
<person posts="6" size="17" who="Francois Romieu" />
<person posts="5" size="121" who="Mingming Cao" />
<person posts="5" size="69" who="&quot;Mathieu Giguere&quot;" />
<person posts="5" size="58" who="Yoshinori Sato" />
<person posts="5" size="54" who="Daniel Jacobowitz" />
<person posts="5" size="39" who="&quot;John Stoffel&quot;" />
<person posts="5" size="31" who="Xan" />
<person posts="5" size="30" who="Marco Fais" />
<person posts="5" size="28" who="Herbert Poetzl" />
<person posts="5" size="25" who="Chris Mason" />
<person posts="5" size="25" who="Justin Cormack" />
<person posts="5" size="20" who="Mikhail Ramendik" />
<person posts="5" size="20" who="Herbert Xu" />
<person posts="5" size="19" who="Albert Cahalan" />
<person posts="5" size="18" who="Jan Killius" />
<person posts="5" size="18" who="Marco Roeland" />
<person posts="5" size="16" who="Timothy Miller" />
<person posts="5" size="15" who="Willy Tarreau" />
<person posts="5" size="15" who="Stephen Smalley" />
<person posts="5" size="14" who="&quot;David L&quot;" />
<person posts="5" size="14" who="John Hasler" />
<person posts="4" size="78" who="Norbert Preining" />
<person posts="4" size="47" who="&quot;R. J. Wysocki&quot;" />
<person posts="4" size="37" who="James Morris" />
<person posts="4" size="32" who="Stefan Wanner" />
<person posts="4" size="20" who="Jean Delvare" />
<person posts="4" size="18" who="&quot;Craig, Dave&quot;" />
<person posts="4" size="18" who="Robert Olsson" />
<person posts="4" size="18" who="Brian Gerst" />
<person posts="4" size="15" who="Nathan Scott" />
<person posts="4" size="15" who="James Vega" />
<person posts="4" size="15" who="&quot;David Schwartz&quot;" />
<person posts="4" size="14" who="Suparna Bhattacharya" />
<person posts="4" size="14" who="Ulrich Weigand" />
<person posts="4" size="14" who="Stelian Pop" />
<person posts="4" size="14" who="Joshua Kwan" />
<person posts="4" size="14" who="Marc Bevand" />
<person posts="4" size="13" who="Erik Andersen" />
<person posts="4" size="12" who="Chris Friesen" />
<person posts="4" size="12" who="Matthew Wilcox" />
<person posts="4" size="12" who="Dan Aloni" />
<person posts="4" size="11" who="Ralf Hildebrandt" />
<person posts="4" size="10" who="Paul Mackerras" />
<person posts="4" size="10" who="Parag Nemade" />
<person posts="4" size="8" who="Anton Blanchard" />
<person posts="3" size="52" who="equi-NoX" />
<person posts="3" size="47" who="&quot;Robert White&quot;" />
<person posts="3" size="25" who="Michael Hunold" />
<person posts="3" size="24" who="Dipankar Sarma" />
<person posts="3" size="24" who="Mark Gross" />
<person posts="3" size="21" who="Hariprasad Nellitheertha" />
<person posts="3" size="20" who="Oleg Drokin" />
<person posts="3" size="19" who="Alexander Hoogerhuis" />
<person posts="3" size="17" who="Kurt Garloff" />
<person posts="3" size="14" who="sean" />
<person posts="3" size="13" who="Jan-Benedict Glaw" />
<person posts="3" size="12" who="Flavio Bruno Leitner" />
<person posts="3" size="12" who=" (Marcel Sebek)" />
<person posts="3" size="12" who="Kevin Corry" />
<person posts="3" size="12" who="&quot;Brown, Len&quot;" />
<person posts="3" size="12" who="Juergen Salk" />
<person posts="3" size="11" who="Angelo Dell'Aera" />
<person posts="3" size="11" who="Roland Mas" />
<person posts="3" size="11" who="Alex Riesen" />
<person posts="3" size="11" who="jamal" />
<person posts="3" size="11" who="&quot;Amit&quot;" />
<person posts="3" size="11" who="Olivier Bornet" />
<person posts="3" size="11" who="Eduard Bloch" />
<person posts="3" size="10" who="Jeff Sipek" />
<person posts="3" size="10" who="Giuseppe Bilotta" />
<person posts="3" size="10" who="Paul Eggert" />
<person posts="3" size="10" who="Ben Mansell" />
<person posts="3" size="10" who="John Bradford" />
<person posts="3" size="9" who="Eric Whiting" />
<person posts="3" size="9" who="&quot;Calin A. Culianu&quot;" />
<person posts="3" size="9" who="Thomas Bach" />
<person posts="3" size="9" who="(khandelw)" />
<person posts="3" size="9" who="Nigel Cunningham" />
<person posts="3" size="9" who="Andreas Schwab" />
<person posts="3" size="9" who="Keith Owens" />
<person posts="3" size="8" who="&quot;Kevin B. Hendricks&quot;" />
<person posts="3" size="8" who="Michael Buesch" />
<person posts="3" size="8" who="Thomas Steudten" />
<person posts="3" size="8" who="Xavier Bestel" />
<person posts="3" size="7" who="Matt Brown" />
<person posts="3" size="7" who="(bero)" />
<person posts="3" size="6" who="Norberto Bensa" />
<person posts="3" size="6" who="(markw)" />
<person posts="2" size="69" who="Jaco Kroon" />
<person posts="2" size="58" who="Chris Shoemaker" />
<person posts="2" size="52" who="&quot;Paul E. McKenney&quot;" />
<person posts="2" size="51" who="Marcello Barnaba" />
<person posts="2" size="45" who="=?big5?B?Qy5MLiBUaWVuIC0gpdCp08Kn?=" />
<person posts="2" size="44" who="Jaco Kroon" />
<person posts="2" size="33" who="CaT" />
<person posts="2" size="28" who="Gabriel Devenyi" />
<person posts="2" size="23" who="Yusuf Goolamabbas" />
<person posts="2" size="23" who="Ken Ashcraft" />
<person posts="2" size="21" who="&quot;Mukker, Atul&quot;" />
<person posts="2" size="18" who="&quot;Paul Blazejowski&quot;" />
<person posts="2" size="16" who="Linus Torvalds" />
<person posts="2" size="14" who="&quot;Protasevich, Natalie&quot;" />
<person posts="2" size="13" who="Alex Williamson" />
<person posts="2" size="12" who="Zack Brown" />
<person posts="2" size="10" who="Hidetoshi Seto" />
<person posts="2" size="10" who="Antony Suter" />
<person posts="2" size="10" who="Dmitry Torokhov" />
<person posts="2" size="9" who="(mikem)" />
<person posts="2" size="9" who="Niclas Gustafsson" />
<person posts="2" size="9" who="Andy Lutomirski" />
<person posts="2" size="9" who="Hanna Linder" />
<person posts="2" size="9" who="Chris Cheney" />
<person posts="2" size="9" who="(wdebruij)" />
<person posts="2" size="8" who="Martin Zwickel" />
<person posts="2" size="8" who="Matthias Juchem" />
<person posts="2" size="8" who="Hans-Georg Esser" />
<person posts="2" size="8" who="Johannes Deisenhofer" />
<person posts="2" size="7" who=" (Miles Bader)" />
<person posts="2" size="7" who="Willem de Bruijn" />
<person posts="2" size="7" who="Carsten Gaebler" />
<person posts="2" size="7" who="Christian Kujau" />
<person posts="2" size="7" who="Jeremy Higdon" />
<person posts="2" size="7" who="Michael Baehr" />
<person posts="2" size="7" who="Ruud Linders" />
<person posts="2" size="7" who="Badari Pulavarty" />
<person posts="2" size="7" who="Dominik Brodowski" />
<person posts="2" size="7" who="Todd Poynor" />
<person posts="2" size="7" who="Arkadiusz Miskiewicz" />
<person posts="2" size="7" who="Tomasz Torcz" />
<person posts="2" size="7" who="Ross Biro" />
<person posts="2" size="7" who="Richard Curnow" />
<person posts="2" size="7" who="Rick Lindsley" />
<person posts="2" size="7" who="Samuel Sieb" />
<person posts="2" size="7" who="Adrian Bunk" />
<person posts="2" size="6" who="Andy Lutomirski" />
<person posts="2" size="6" who="&quot;Luiz Fernando N. Capitulino&quot;" />
<person posts="2" size="6" who="Lionel Bouton" />
<person posts="2" size="6" who="&quot;Miller, Mike (OS Dev)&quot;" />
<person posts="2" size="6" who="David Woodhouse" />
<person posts="2" size="6" who="OGAWA Hirofumi" />
<person posts="2" size="6" who="Ulrich Drepper" />
<person posts="2" size="6" who="Bjoern Michaelsen" />
<person posts="2" size="6" who="Jose Luis Domingo Lopez" />
<person posts="2" size="6" who="Joel Becker" />
<person posts="2" size="6" who="Ron Gage" />
<person posts="2" size="6" who="Bernt Hansen" />
<person posts="2" size="6" who="Joe Buck" />
<person posts="2" size="6" who="(Valdis.Kletnieks)" />
<person posts="2" size="6" who="Andrzej Krzysztofowicz" />
<person posts="2" size="6" who="Ross Dickson" />
<person posts="2" size="6" who="Kyle Davenport" />
<person posts="2" size="6" who="&quot;James H. Cloos Jr.&quot;" />
<person posts="2" size="6" who="Darren Williams" />
<person posts="2" size="6" who="Horst von Brand" />
<person posts="2" size="6" who="&quot;Kevin P. Fleming&quot;" />
<person posts="2" size="6" who="&quot;Patrick J. LoPresti&quot;" />
<person posts="2" size="5" who="&quot;Miquel van Smoorenburg&quot;" />
<person posts="2" size="5" who="Gewj" />
<person posts="2" size="5" who="Rob Couto" />
<person posts="2" size="5" who="Ivan Kokshaysky" />
<person posts="2" size="5" who="Dhruv Gami" />
<person posts="2" size="5" who="Adam Nielsen" />
<person posts="2" size="5" who="Fabian Frederick" />
<person posts="2" size="5" who="Robert Gadsdon" />
<person posts="2" size="5" who="Rafael Pereira" />
<person posts="2" size="5" who="&quot;Dupuis, Chad&quot;" />
<person posts="2" size="5" who="Steven Cole" />
<person posts="2" size="5" who="Nivedita Singhvi" />
<person posts="2" size="5" who="Takashi Iwai" />
<person posts="2" size="5" who="Andreas Dilger" />
<person posts="2" size="5" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="2" size="5" who="=?ISO-8859-1?Q?Sven_K=F6hler?=" />
<person posts="2" size="5" who="&quot;Robert W. Maloy&quot;" />
<person posts="2" size="5" who=" (Andrew Church)" />
<person posts="2" size="5" who="(kuznet)" />
<person posts="2" size="5" who="Ray Lee" />
<person posts="2" size="5" who="Jason Harrison" />
<person posts="2" size="4" who="James Bottomley" />
<person posts="2" size="4" who="John Reiser" />
<person posts="2" size="4" who="Larry McVoy" />
<person posts="1" size="86" who="=?ISO-8859-1?Q?=20=22St=E9?= OMNIVAN&quot;" />
<person posts="1" size="72" who="Chris Worley" />
<person posts="1" size="51" who="&quot;Peter Maas&quot;" />
<person posts="1" size="46" who="=?iso-8859-1?Q?=C1rni_Hermann?=" />
<person posts="1" size="45" who="Samuel Mimram" />
<person posts="1" size="38" who="Redeeman" />
<person posts="1" size="36" who="(jkroon)" />
<person posts="1" size="35" who="Dark" />
<person posts="1" size="34" who="Clemens Schwaighofer" />
<person posts="1" size="30" who="Ian Stirling" />
<person posts="1" size="20" who="Emmeran Seehuber" />
<person posts="1" size="19" who="Richard James" />
<person posts="1" size="16" who="&quot;Dirk Herzhauser&quot;" />
<person posts="1" size="14" who="martin f krafft" />
<person posts="1" size="13" who="Miklos Szeredi" />
<person posts="1" size="13" who="&quot;Shawn Starr&quot;" />
<person posts="1" size="11" who="Jurriaan" />
<person posts="1" size="10" who="Nicholas Anderson" />
<person posts="1" size="9" who="&quot;Ben Castricum&quot;" />
<person posts="1" size="8" who="Paolo Perrucci" />
<person posts="1" size="8" who="&quot;K.Anantha Kiran&quot;" />
<person posts="1" size="8" who="Muli Ben-Yehuda" />
<person posts="1" size="7" who="Dominik Karall" />
<person posts="1" size="7" who="Marek Szuba" />
<person posts="1" size="7" who="Stuart Longland" />
<person posts="1" size="6" who="Oliver Kiddle" />
<person posts="1" size="6" who="Kim Holviala" />
<person posts="1" size="6" who="Evan Felix" />
<person posts="1" size="6" who="Miek Gieben" />
<person posts="1" size="6" who="Peter Waechtler" />
<person posts="1" size="6" who="Shantanu Goel" />
<person posts="1" size="5" who="Mark Rutherford" />
<person posts="1" size="5" who="&quot;Guy&quot;" />
<person posts="1" size="5" who="Eric Wong" />
<person posts="1" size="5" who="Neil Schemenauer" />
<person posts="1" size="5" who=" (Michael Geng)" />
<person posts="1" size="5" who="Michael Hunold" />
<person posts="1" size="5" who=" (Vincent C Jones)" />
<person posts="1" size="5" who="Aubin LaBrosse" />
<person posts="1" size="5" who="Dieter =?iso-8859-15?q?N=FCtzel?=" />
<person posts="1" size="5" who="Humberto Massa" />
<person posts="1" size="5" who="Paul Wagland" />
<person posts="1" size="5" who="Tim Connors" />
<person posts="1" size="4" who="Grant Grundler" />
<person posts="1" size="4" who="Mark Wong" />
<person posts="1" size="4" who="Attila BODY" />
<person posts="1" size="4" who="Roy Franz" />
<person posts="1" size="4" who="Eyal Lotem" />
<person posts="1" size="4" who="&quot;Seth, Rohit&quot;" />
<person posts="1" size="4" who="Pasi Savolainen" />
<person posts="1" size="4" who="Jeff Lightfoot" />
<person posts="1" size="4" who="Jesper Dangaard Brouer" />
<person posts="1" size="4" who="Theodore Ts'o" />
<person posts="1" size="4" who="Mike Kravetz" />
<person posts="1" size="4" who="David Lang" />
<person posts="1" size="4" who="Kronos" />
<person posts="1" size="4" who="Yasunori Goto" />
<person posts="1" size="4" who="&quot;Quazgaa Scwhaa&quot;" />
<person posts="1" size="4" who="Ian Kumlien" />
<person posts="1" size="4" who="&quot;Nikita V. Youshchenko&quot;" />
<person posts="1" size="4" who="Paul Eggert" />
<person posts="1" size="4" who="&quot;Matt H.&quot;" />
<person posts="1" size="4" who=" (Chuan-kai Lin)" />
<person posts="1" size="4" who="&quot;Ronald S. Bultje&quot;" />
<person posts="1" size="4" who="Max Asbock" />
<person posts="1" size="4" who="&quot;Christian Kujau&quot;" />
<person posts="1" size="4" who="Tim Connors" />
<person posts="1" size="3" who="&quot;Tom Rini&quot;" />
<person posts="1" size="3" who="&quot;Stephen C. Tweedie&quot;" />
<person posts="1" size="3" who="Kevin Fenzi" />
<person posts="1" size="3" who="&quot;Lewis Shobbrook&quot;" />
<person posts="1" size="3" who="(jlnance)" />
<person posts="1" size="3" who="Ben" />
<person posts="1" size="3" who="Stefan Nordhausen" />
<person posts="1" size="3" who="Antti Lankila" />
<person posts="1" size="3" who=" (Walter Harms)" />
<person posts="1" size="3" who="Keith Owens" />
<person posts="1" size="3" who="Goswin von Brederlow" />
<person posts="1" size="3" who="Tim Connors" />
<person posts="1" size="3" who="Peter Waechtler" />
<person posts="1" size="3" who="john stultz" />
<person posts="1" size="3" who="Olavo Borges D'Antonio" />
<person posts="1" size="3" who="Steve Youngs" />
<person posts="1" size="3" who="Jan Kara" />
<person posts="1" size="3" who="Alexandre Oliva" />
<person posts="1" size="3" who="Abdul Karim" />
<person posts="1" size="3" who="Robert Williamson" />
<person posts="1" size="3" who="Jesse Barnes" />
<person posts="1" size="3" who="Tim Bird" />
<person posts="1" size="3" who="George Anzinger" />
<person posts="1" size="3" who="Daniel Egger" />
<person posts="1" size="3" who="&quot;Wichmann, Mats D&quot;" />
<person posts="1" size="3" who="Ian Kent" />
<person posts="1" size="3" who="Tony Breeds" />
<person posts="1" size="3" who="(shawn.starr)" />
<person posts="1" size="3" who="Hugo Mills" />
<person posts="1" size="3" who="Sergey Vlasov" />
<person posts="1" size="3" who="Rudo Thomas" />
<person posts="1" size="3" who="Nuno Silva" />
<person posts="1" size="3" who="Thomas Beneke" />
<person posts="1" size="3" who="Gabor Gombas" />
<person posts="1" size="3" who="Bernd Petrovitsch" />
<person posts="1" size="3" who="Malcolm Blaney" />
<person posts="1" size="3" who="Wakko Warner" />
<person posts="1" size="3" who=" (H. Peter Anvin)" />
<person posts="1" size="3" who="Malvineous" />
<person posts="1" size="3" who="Dumitru Ciobarcianu" />
<person posts="1" size="3" who="Fabio Coatti" />
<person posts="1" size="3" who="Pete Zaitcev" />
<person posts="1" size="3" who="Wim Coekaerts" />
<person posts="1" size="3" who="&quot;Bagalkote, Sreenivas&quot;" />
<person posts="1" size="3" who="Ray Lee" />
<person posts="1" size="3" who="=?ISO-8859-2?B?VmxhZGlt7XIgVPhlYmlja/0=?=" />
<person posts="1" size="3" who="Oliver Neukum" />
<person posts="1" size="3" who=" (Kai Henningsen)" />
<person posts="1" size="3" who="Henning Makholm" />
<person posts="1" size="3" who="Martin Hicks" />
<person posts="1" size="3" who="David Howells" />
<person posts="1" size="3" who="Libor Michalek" />
<person posts="1" size="3" who="Andre Tomt" />
<person posts="1" size="3" who="Max Valdez" />
<person posts="1" size="3" who="Kenn Humborg" />
<person posts="1" size="3" who="Andrew Pimlott" />
<person posts="1" size="3" who="Antony Suter" />
<person posts="1" size="3" who="Gregoire Favre" />
<person posts="1" size="3" who="Jesse Pollard" />
<person posts="1" size="3" who="Philip Pokorny" />
<person posts="1" size="3" who="Hien Nguyen" />
<person posts="1" size="3" who="David T Hollis" />
<person posts="1" size="3" who="&quot;Feldman, Scott&quot;" />
<person posts="1" size="3" who="Brian Jackson" />
<person posts="1" size="3" who="Tim Schmielau" />
<person posts="1" size="3" who="Elisabetta Galli" />
<person posts="1" size="3" who="David Lloyd" />
<person posts="1" size="3" who="Tom Sightler" />
<person posts="1" size="3" who="(john.l.byrne)" />
<person posts="1" size="3" who="Stephens Tim-MGI1634" />
<person posts="1" size="3" who=" (Erik Tews)" />
<person posts="1" size="3" who=" (Arthur Othieno)" />
<person posts="1" size="3" who="Daniel Fenert" />
<person posts="1" size="3" who="Torben Mathiasen" />
<person posts="1" size="3" who="Kirill Korotaev" />
<person posts="1" size="3" who="David Mosberger" />
<person posts="1" size="3" who="Glen Turner" />
<person posts="1" size="3" who="Erik Tews" />
<person posts="1" size="3" who="&quot;David S. Miller&quot;" />
<person posts="1" size="3" who="Hirokazu Takata" />
<person posts="1" size="3" who="Ralf Baechle" />
<person posts="1" size="3" who="GOTO Masanori" />
<person posts="1" size="3" who="tabris" />
<person posts="1" size="3" who="&quot;Kamil Srot&quot;" />
<person posts="1" size="3" who="(anuya.kulkarni)" />
<person posts="1" size="3" who="Rik Faith" />
<person posts="1" size="2" who="Marcin Rozek" />
<person posts="1" size="2" who="Neil Brown" />
<person posts="1" size="2" who="Tim Connors" />
<person posts="1" size="2" who=" (Michael Elizabeth Chastain)" />
<person posts="1" size="2" who="Mihai RUSU" />
<person posts="1" size="2" who="Richard Kettlewell" />
<person posts="1" size="2" who="Edgar Toernig" />
<person posts="1" size="2" who="Urban Widmark" />
<person posts="1" size="2" who="Bryan Rittmeyer" />
<person posts="1" size="2" who="&quot;Jan Kesten&quot;" />
<person posts="1" size="2" who="Biker" />
<person posts="1" size="2" who="&quot;Hollis Blanchard&quot;" />
<person posts="1" size="2" who="Trond Myklebust" />
<person posts="1" size="2" who="Janis Johnson" />
<person posts="1" size="2" who="Steven Dake" />
<person posts="1" size="2" who="&quot;H. Peter Anvin&quot;" />
<person posts="1" size="2" who="Miles Bader" />
<person posts="1" size="2" who=" (Paul Jarc)" />
<person posts="1" size="2" who="&quot;Craig I. Hagan&quot;" />
<person posts="1" size="2" who="Matt Gulick" />
<person posts="1" size="2" who="Leopold Gouverneur" />
<person posts="1" size="2" who="Michal Schmidt" />
<person posts="1" size="2" who="Meelis Roos" />
<person posts="1" size="2" who="&quot;Ian C. Blenke&quot;" />
<person posts="1" size="2" who="&quot;sting sting&quot;" />
<person posts="1" size="2" who="&quot;dan carpenter&quot;" />
<person posts="1" size="2" who="Alan Cox" />
<person posts="1" size="2" who="Alan Cox" />
<person posts="1" size="2" who="Ricky Beam" />
<person posts="1" size="2" who="&quot;mail.novatekk.de&quot;" />
<person posts="1" size="2" who="Rene Engelhard" />
<person posts="1" size="2" who="Tomas Szepe" />
<person posts="1" size="2" who="Arjan van de Ven" />
<person posts="1" size="2" who="Terrence Martin" />
<person posts="1" size="2" who="Charles-Edouard Ruault" />
<person posts="1" size="2" who="Richard Harke" />
<person posts="1" size="2" who="Brandstetter Thomas" />
<person posts="1" size="2" who="Han Boetes" />
<person posts="1" size="2" who="Alex Tomas" />
<person posts="1" size="2" who="&quot;Daniel Andersen&quot;" />
<person posts="1" size="2" who="Mathias Peters" />
<person posts="1" size="2" who="Matt Porter" />
<person posts="1" size="2" who="Mikael Pettersson" />
<person posts="1" size="2" who="Chris Wedgwood" />
<person posts="1" size="2" who="Sasa U" />
<person posts="1" size="2" who="Matthias Urlichs" />
<person posts="1" size="2" who="Greg Ungerer" />
<person posts="1" size="2" who="Yann Dirson" />
<person posts="1" size="2" who="Dieter Stueken" />
<person posts="1" size="2" who="Steven Edwards" />
<person posts="1" size="2" who="&quot;Wes Felter&quot;" />
<person posts="1" size="2" who="Henrik Nordstrom" />
<person posts="1" size="2" who="David Brownell" />
<person posts="1" size="2" who="Hollis Blanchard" />
<person posts="1" size="2" who="&quot;Giorgio Massimi&quot;" />
<person posts="1" size="2" who="Alan Modra" />
<person posts="1" size="2" who="&quot;BNF BNF&quot;" />
<person posts="1" size="2" who="christophe barbe" />
<person posts="1" size="2" who="&quot;Rep.Ladwig&quot;" />
<person posts="1" size="2" who="Marty Ridgeway" />
<person posts="1" size="2" who="Juan Antonio Magallon" />
<person posts="1" size="2" who="Shvetima Gulati" />
<person posts="1" size="2" who="Nick Holloway" />
<person posts="1" size="2" who="Lars Marowsky-Bree" />
<person posts="1" size="2" who="Adrian Cox" />
<person posts="1" size="2" who="&quot;email moraes at cs dot toronto dot edu&quot;" />
<person posts="1" size="2" who="Roger Luethi" />
<person posts="1" size="2" who="&quot;Support&quot;" />
<person posts="1" size="2" who="&quot;Ameer Armaly&quot;" />
<person posts="1" size="2" who="&quot;Mohamed Aslan&quot;" />
<person posts="1" size="2" who="Joseph Pingenot" />
<person posts="1" size="2" who="Giuliano Pochini" />
<person posts="1" size="2" who="&quot;Tony A. Lambley&quot;" />
<person posts="1" size="2" who="&quot;Matt Reuther&quot;" />
<person posts="1" size="2" who="Samium Gromoff" />
<person posts="1" size="2" who="(P)" />
<person posts="1" size="2" who="Wichert Akkerman" />
<person posts="1" size="2" who="&quot;Jinu M.&quot;" />
<person posts="1" size="2" who="Sam Ravnborg" />
<person posts="1" size="2" who="Hasso Tepper" />
<person posts="1" size="2" who="James Bottomley" />
<person posts="1" size="2" who="Jay Maynard" />
<person posts="1" size="2" who="&quot;Cruzada Alex Blumberg petitorio y planilla&quot;" />
<person posts="1" size="2" who="Bas Vermeulen" />
<person posts="1" size="2" who="walt" />
<person posts="1" size="2" who="Maciej Soltysiak" />
<person posts="1" size="2" who="Bart Samwel" />
<person posts="1" size="2" who="=?iso-8859-2?Q?Karel_Kulhav=FD?=" />
<person posts="1" size="2" who="Rajsekar" />
<person posts="1" size="2" who="Sean Neakums" />
<person posts="1" size="2" who="(bigfish)" />
<person posts="1" size="2" who="Abhishek Rai" />
<person posts="1" size="2" who="&quot;Steven N. Hirsch&quot;" />
<person posts="1" size="2" who="Matthew Garrett" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Fr=E9d=E9ric_L=2E_W=2E_Meunier?=" />
<person posts="1" size="2" who="Robin Rosenberg" />
<person posts="1" size="2" who="Linux Tard" />
<person posts="1" size="2" who="Daniel Ritz" />
<person posts="1" size="2" who="(postmaster)" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Luis_Miguel_Garc=EDa?=" />
<person posts="1" size="2" who="Hompage STDE" />
<person posts="1" size="1" who="Patrick Mochel" />
<person posts="1" size="1" who="(Norton_AntiVirus_Gateways)" />
<person posts="1" size="1" who="(ale813)" />
<person posts="1" size="1" who="Olaf Zaplinski" />
<person posts="1" size="1" who="Marcel Lanz" />

</stats>

<section
  title="Speeding Up SATA"
  subject="[PATCH] speed up SATA"
  posts="115"
  startdate="27 Mar 2004 14:37:14 -0800"
  enddate="03 Apr 2004 05:49:14 -0800"
>
<topic>Disks: IDE</topic>
<topic>Serial ATA</topic>
<topic>Virtual Memory</topic>

<p>Jeff Garzik said:</p>

<quote who="Jeff Garzik">

<p>The "lba48" feature in ATA allows for addressing of sectors &gt; 137GB,
and also allows for transfers of up to 64K sector, instead of the traditional
256 sectors in older ATA.</p>

<p>libata simply limited all transfers to a 200 sectors (just under the
256 sector limit).  This was mainly being careful, and making sure I had
a solution that worked everywhere.  I also wanted to see how the iommu S/G
stuff would shake out.</p>

<p>Things seem to be looking pretty good, so it's now time to turn on
lba48-sized transfers.  Most SATA disks will be lba48 anyway, even the ones
smaller than 137GB, for this and other reasons.</p>

<p>With this simple patch, the max request size goes from 128K to 32MB...
so you can imagine this will definitely help performance.  Throughput goes up.
Interrupts go down.  Fun for the whole family.</p>

<p>The attached patch is for 2.6.x kernels only.  It should apply to
2.6.5-rc2 or later, including my latest 2.6-libata patch on kernel.org.
This patch should be pretty harmless, but you never know what could happen
when you throw the throttle wide open.  Testing in -mm would be a good thing,
for example :)</p>

<p>Volunteers are welcome to post a 2.4 backport of this patch to
linux-ide@vger.kernel.org, and I'll merge it into my 2.4 libata queue.</p>

</quote>

<p>Stefan Smietanowski asked, <quote who="Stefan Smietanowski">What will happen
when a PATA disk lies behind a Marvel(ous) bridge, as in most SATA disks
today?</quote> And Jeff replied, <quote who="Jeff Garzik">Larger transfers
work fine in PATA, too.  WRT bridges, it is generally the best idea to limit
to UDMA/100 (udma), but larger transfers are OK.</quote> Stefan also asked,
<quote who="Stefan Smietanowski">Is large transfers mandatory in the LBA48
spec and is LBA48 really mandatory in SATA?</quote> And Jeff replied:</p>

<quote who="Jeff Garzik">

<p>Yes and no, in that order :)  SATA doesn't mandate lba48, but it is highly
unlikely that you will see SATA disk without lba48.</p>

<p>Regardless, libata supports what the drive supports.  Older disks still
work just fine.</p>

</quote>

<p>Elsewhere, Nick Piggin suggested to Jeff that a maximum request size of
32M was too much. It would, he said, incur additional latency costs, as well
as sacrifice the granularity of disk scheduling. He added, <quote who="Nick
Piggin">I bet returns start diminishing pretty quickly after 1MB or so.</quote>
Jeff disagreed; saying that his implementation simply exported the hardware
maximums, and that it was up to the system administrator of the given machine
to institute a disk scheduling policy appropriate for that machine. A long
discussion followed, and at one point Andrea Arcangeli said:</p>

<quote who="Andrea Arcangeli">

<p>this is not an I/O scheduler or VM issue.</p>

<p>the max size of a request is something that should be set internally to
the blkdev layer (at a lower level than the I/O scheduler or the VM layer).</p>

<p>The point is that if you run read contigously from disk with a 1M or
32M request size, the wall time speed difference will be maybe 0.01% or so.
Running 100 irqs per second or 3 irq per second doesn't make any measurable
difference. Same goes for keeping the I/O pipeline full, 1M is more than
enough to go at the speed of the storage with minimal cpu overhead. we waste
900 irqs per second just in the timer irq and another 900 irqs per second
per-cpu in the per-cpu local interrupts in smp.</p>

<p>In 2.4 reaching 512k DMA units that helped a lot, but going past 512k didn't
help in my measurements.  1M maybe these days is needed (as Jens suggested)
but >1M still sounds overkill and I completely agree with Jens about that.</p>

<p>If one day things will change and the harddisk will require 32M large
DMA transactions to keep up with the speed of the disk, the thing should be
still solved during disk discovery inside the blkdev layer. The "automagic"
suggestions discussed by Jamie and Jens should be just benchmarks internal
to the blkdev layer, trying to read contigously first with 1M then 2M then
4M etc..  until the speed difference goes below 1% or whatever similar
"autotune" algorithm.</p>

<p>But definitely this is not an I/O scheduler or VM issue, it's all about
discovering the minimal DMA transaction size that provides peak bulk I/O
performance for a certain device. The smaller the size, the better the
latencies and the less ram will be pinned at the same time (i.e. think a
64M machine writing at 32M chunks at time).</p>

<p>Of course if we'll ever deal with hardware where 32M requests makes
a difference, then we may have to add overrides to the I/O scheduler to
lower the max_requests (i.e. like my obsolete max_bomb_segments did).  But I
expect that by default the contigous I/O will use the max_sector choosen
by the blkdev layer (not choosen by VM or I/O scheduler) to guarantee the
best bulk I/O performance as usual (the I/O scheduler option would be just an
optional override). the max_sectors is just about using a sane DMA transaction
size, good enough to run at disk-speed without measurable cpu overhead,
but without being too big so that it provides sane latencies. Overkill
huge DMA transactions might even stall the cpu when accessing the mem bus
(though I'm not an hardware guru so this is just a guess).</p>

<p>So far there was no need to autotune it, and settings like 512k were
optimal.</p>

<p>Don't take me wrong, I find extremely great that you now can raise the IDE
request size to a value like 512k, the 128k limit was the ugliest thing of
IDE ever, but you provided zero evidence that going past 512k is beneficial
at all, and your bootup log showing 32M is all but exciting, I'd be a lot
more excited to see 512k there.</p>

<p>I expect that the boost from 128k to 512k is very significant, but I
expect that from 512k to 32M there will be just a total waste of latency
with zero performance gain in throughput. So unless you measure any speed
difference from 512k to 32M I recommend to set it to 512k for the short term
like most other driver does for the same reasons.</p>

</quote>

<p>Jeff agreed with most of this, but said:</p>

<quote who="Jeff Garzik">

<p>My point is there are two maximums:</p>

<p>1) the hardware limit<br />
2) the limit that "makes sense", e.g. 512k or 1M for most</p>

<p>The driver should only care about #1, and should be "told" #2.</p>

</quote>

<p>He added later, <quote who="Jeff Garzik">I think the length of this
discussion alone clearly implies that the low-level driver should not be
responsible for selecting this value, if nothing else ;-)</quote> Jens Axboe
also said:</p>

<quote who="Jens Axboe">

<p>Here's a quickly done patch that attempts to adjust the value based on a
previous range of completed requests. It changes -&gt;max_sectors to be a
hardware limit, adding -&gt;optimal_sectors to be our max issued io target.
It is split on READ and WRITE. The target is to keep request execution
time under BLK_IORATE_TARGET, which is 50ms in this patch. read-ahead
max window is kept within a single request in size.</p>

<p>So this is pretty half-assed, but it gets the point across. Things that
should be looked at (meaning - should be done, but I didn't want to
waste time on them now):</p>

<p>

<ul>

<li>I added the hook to see how many in-drive queued requests you have, so
  there's the possibility to add tcq knowledge as well.</li>

<li>The optimal_sectors calculation is just an average of previous maximum
  with current maximum. The scheme has a number of break down points,
  for instance writes starving reads will give you a bad read execution
  time, further limiting -&gt;optimal_sectors[READ]</li>

<li>HZ == 1000 is hardcoded</li>

<li>bdi-&gt;ra_pages setting is just best effort, there's no attempt made to
  synchronize this with the issuer. Would require too much effort for
  probably zero real gain.</li>

</ul>

</p>

</quote>

<p>Jeff and others were very happy to see this, and discussed some of its
technical issues.</p>

</section>

<section
  title="Reservation-Based ext3 Pre-Allocation"
  subject="[RFC, PATCH] Reservation based ext3 preallocation"
  posts="12"
  startdate="30 Mar 2004 00:55:23 -0800"
  enddate="05 Apr 2004 08:49:14 -0800"
>
<topic>FS: ext3</topic>

<p>Mingming Cao said:</p>

<quote who="Mingming Cao">

<p>Ext3 preallocation is currently missing. This is the first cut of the
prototype for the reservation based ext3 preallocation based on the
ideas suggested by Andrew and Ted. The implementation is incomplete, but
I want to hear your valuable opinion about the current design.</p>

<p>What I have done in this version of prototype:</p>

<p>

<ol>

<li>basic reservation structure and operations</li>

<li>reservation based ext3 block allocation</li>

<li>and reservation window allocations</li>

<li>block allocation when fs reservation is turned off</li>

</ol>

</p>

<p>For 1) Use a sorted double linked list for the per-filesystem reservation
list, like the vm_region does. The operations on double linked list are
abstract so later if necessary we could replace it with other sohpysicated
tree easily.</p>

<p>Each inode have a reservation structure inside it's ext3_inode_info
structure. Each reservation structure contains(start, end, list_head,
goal_window_size)</p>

<p>For 2) The basic idea is: When we try to allocate a new block for a inode,
if there is a reservation window for it, it will try to do allocation from
there.</p>

<p>If it does not have a reservation window, we will allocate a block and make
a reservation window for it. Instead of doing the block allocation first then
do the reservation window allocation second, we make the reservation window
first, then allocate a block within the window. The new reservation window
has at least one free block and does not overlap with other reservation
windows. This way we avoid keeping looking up the reservation list again
and again when we found a free bit on bitmap and not sure if it belongs to
any body's reservation window.</p>

<p>For 3) To allocate a new reservation window, we search the part of
filesystem reservation list that fall into the group which we are trying to
allocate a block from. We will have a goal block to guide where we want the
new reservation window start from. If we already have a old reservation,
we will discard it first, then search the part of list that after the old
reservation window. Otherwise the sub-list start from the beginning of the
group. The new reservation window could cross group boundary. The reservation
window has contains at least one free block.</p>

<p>For 4) If the filesystem has reservation turned off, all the code/path
for new block allocation is the same as the current code-- just call
ext3_try_to_allocate() with a NULL reservation window pointer.</p>

<p>Above logic has been verified on a user level simulation program.
Attached prototype patch (against 2.6.4 kernel) compiles and boots. I have
done initial test of the patch on a 2way PIII 700Mhz box.</p>

</quote>

<p>Andrew Morton replied:</p>

<quote who="Andrew Morton">

<p>I thing this is heading the right way.</p>

<p>

<ul>

<li>Please use u32 for block numbers everywhere.  In a number of places you
  are using int, and that may go wrong if the block numbers wrap negative
  (I'm not sure that ext3 supports 8TB, but it's the right thing to do).</li>

<li>Using ext3_find_next_zero_bit(bitmap_bh-&gt;b_data in
  alloc_new_reservation() is risky.  There are some circumstances when you
  have a huge number of "free" blocks in -&gt;b_data, but they are all unfree
  in -&gt;b_committed_data.  You could end up with astronomical search
  complexity in there.  You should search both bitmaps to find a block
  which really is allocatable.  Otherwise you'll have
  ext3_try_to_allocate() failing 20,000 times in succession and much CPU
  will be burnt.</li>

<li>I suspect ext3_try_to_allocate_with_rsv() could be reorganised a bit to
  reduce the goto spaghetti?</li>

<li>Please provide a mount option which enables the feature, defaulting to
  "off".</li>

<li>

<p>Make sure that you have a many-small-file test.  Say, untar a kernel
  tree onto a clean filesystem and make sure that reading all the files in
  the tree is nice and fast.</p>

<p>  This is to check that the reservation is being discarded appropriately
  on file close, and that those small files are contiguous on-disk.  If we
  accidentally leave gaps in between them the many-small-file bandwidth
  takes a dive.</p>

</li>

<li>There's a little program called `bmap' in
  <a
  href="http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz">http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz</a>
  which can be used to dump out a file's block allocation map, to check
  fragmentation.</li>

</ul>

</p>

<p>Apart from that, looking good.</p>

</quote>

<p>Mingming posted an updated patch, and they discussed some technical
aspects.</p>

</section>

<section
  title="Linux 2.6.5-rc3-mm2 Released"
  subject="2.6.5-rc3-mm2"
  posts="7"
  startdate="31 Mar 2004 01:43:51 -0800"
  enddate="02 Apr 2004 04:38:24 -0800"
>
<topic>Kernel Release Announcement</topic>

<p>Andrew Morton announced Linux 2.6.5-rc3-mm2, saying, <quote who="Andrew
Morton"> A small update, mainly to sync up with the CPU scheduler developers
and testers.</quote></p>

</section>

<section
  title="Linux 2.6.5-rc3-mm4 Released"
  subject="2.6.5-rc3-mm4"
  posts="21"
  startdate="01 Apr 2004 02:05:12 -0800"
  enddate="06 Apr 2004 07:20:49 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Andrew Morton announced Linux 2.6.5-rc3-mm4, saying:</p>

<quote who="Andrew Morton">

<p>2.6.5-rc3-mm3 was just a quick sync for CPU scheduler devel-and-test.</p>

<p>This update again mainly contains CPU scheduler changes.</p>

</quote>

<p>Marc-Christian Petersen replied, <quote who="Marc-Christian Petersen">hmm,
did something changed in handling USB mice? starting with 2.6.5-rc3-mm1 and the
included bk-usb.patch my USB mouse won't work anymore. Using bk-usb.patch from
2.6.5-rc2-mm5 in 2.6.5-rc3-mm4 all works fine for me.</quote> Greg KH replied,
<quote who="Greg KH">The hid.ko module was renamed to usbhid.ko.  Are you sure
that you are still loading the proper driver?</quote> Marc-Christian saw that
no, the driver wasn't successfully loaded; and said, <quote who="Marc-Christian
Petersen">grmpf. If I had read Documentation/input/input.txt more carefully
I'd noticed the change myself. Sorry for the noise. Works now.</quote></p>

</section>

<section
  title="New disable-cap-mlock() sysctl"
  subject="disable-cap-mlock"
  posts="62"
  startdate="01 Apr 2004 05:59:20 -0800"
  enddate="05 Apr 2004 04:13:51 -0800"
>

<mention>William Lee Irwin III</mention>

<p>Andrea Arcangeli said:</p>

<quote who="Andrea Arcangeli">

<p>Oracle needs this sysctl, I designed it and Ken Chen implemented it. I
guess google also won't dislike it.</p>

<p>This is a lot simpler than the mlock rlimit and this is people really need
(not the rlimit). The rlimit thing can still be applied on top of this. This
should be more efficient too (besides its simplicity).</p>

<p>can you apply to mainline?</p>

<p><a
href="http://www.kernel.org/pub/linux/kernel/people/andrea/patches/v2.6/2.6.5-rc3/disable-cap-mlock-1">http://www.kernel.org/pub/linux/kernel/people/andrea/patches/v2.6/2.6.5-rc3/disable-cap-mlock-1</a></p>

</quote>

<p>William Lee Irwin III posted an alternative patch, and Andrea said he
didn't mind which was chosen. A technical discussion started up, and at one
point Andrew Morton asked:</p>

<quote who="Andrew Morton">

<p>What is the Oracle requirement in detail?</p>

<p>If it's for access to hugetlbfs then there are the uid= and gid= mount
options.</p>

<p>If it's for access to SHM_HUGETLB then there was some discussion about
extending the uid= thing to shm, but nothing happened.  This could be
resurrected.</p>

<p>If it's just generally for the ability to mlock lots of memory then
RLIMIT_MEMLOCK would be preferable.  I don't see why we'd need the sysctl when
`ulimit -m' is available?  (Where is that patch btw?)</p>

</quote>

<p>Andrea said that Oracle's requirement was to be able <quote who="Andrea
Arcangeli">to shmget(SHM_HUGETLB) as normal user. However I cannot disable
the CAP_IPC_LOCK from hugetlbfs/inode.c since that would break local security
w.r.t. mlock.  If I've to disable that single check in hugetlbfs/inode.c then
I prefer to disable all CAP_IPC_LOCK so they can as well use mlock.</quote>
Kenneth W Chen also confirmed that accessing SHM_HUGETLB was the main goal.</p>

</section>

<section
  title="Linux VFS Timestamp Resolution Causing User Problems In 2.6"
  subject="Linux 2.6 nanosecond time stamp weirdness breaks GCC build"
  posts="28"
  startdate="01 Apr 2004 11:28:20 -0800"
  enddate="02 Apr 2004 20:59:48 -0800"
>
<topic>FS: FAT</topic>
<topic>FS: NFS</topic>
<topic>FS: ext3</topic>

<p>Ulrich Weigand reported <quote who="Ulrich Weigand">spurious rebuilds
of some auto-generated files in the gcc/ directory while building
the Ada libraries.</quote> For example, he said, <quote who="Ulrich
Weigand">insn-conditions.c is a rather small file, and compiling it into
insn-conditions.o takes usually less than a second.  So, it may well happen
that these two files end up having a time stamp that differs only in the
sub-second part.  (Note that with Linux 2.4, file time stamps didn't actually
have a sub-second part; this is a new 2.6 feature.)</quote> He went on:</p>

<quote who="Ulrich Weigand">

<p>Unfortunately, while Linux now has sub-second time stamps, those cannot
actually be *stored* on disk when using the ext3 file system (because the
on-disk format has no space).  This has the rather curious effect that while
the inode is still held in Linux's inode cache, the time stamp will retain
its sub-second component, but once the inode was dropped from the inode cache
and later re-read from disk, the sub-second part will be truncated to zero.</p>

<p>Now, if this truncation happens to the insn-conditions.o file, but not
the insn-conditions.c file, the former will jump from being just slightly
newer than the latter to being just slightly *older* than the latter.
For some reason, this tends to occur rather reliably during a gcc bootstrap
on my system.</p>

<p>Now, as long as the main 'make' is running, this has no adverse effect
(apparently because make remembers it has already built the insn-conditions.o
file from insn-conditions.c).  However, once the libada library is built,
it performs a recursive make invocation that once again checks dependencies
in the master gcc build directory, including the dependencies on gnat1.
At this point, make will re-check the file time stamps and decide it needs to
rebuild insn-conditions.o.  This in turn triggers a rebuild of libbackend.a
and all compiler binaries.</p>

<p>This is bad for two reasons.  First, at this point in time various macros
required to build the main gcc components aren't in fact set up correctly,
and thus the file will be rebuilt using the host compiler and not the newly
built stage3 gcc.</p>

<p>More importantly, when using parallel make to do the bootstrap, at this
point some *other* library, e.g. libstdc++ or libjava, will be built at the
same time, using the cc1plus or jc1 binaries that the libada make has just
decided it needs to rebuild.  While these binaries are being rebuilt, they
will be in a deleted or inconsistent state for a certain period of time.
During this period, attempts to start compiles for libstdc++ or libjava
components will fail, causing the whole bootstrap to abort.</p>

</quote>

<p>He concluded, <quote who="Ulrich Weigand">this should probably be fixed
in the kernel, e.g. by not reporting high-precision time stamps in the first
place if the file system cannot store them ...</quote></p>

<p>Andi Kleen replied:</p>

<quote who="Andi Kleen">

<p>Interesting. We discussed the case as a theoretical possibility when the
patch was merged, but it seemed to unlikely to make it worth complicating
the first version.</p>

<p>The solution from back then I actually liked best was to just round up
to the next second instead of rounding down when going from 1s resolution
to ns.</p>

</quote>

<p>But Paul Eggert said:</p>

<quote who="Paul Eggert">

<p>Please don't do that.  Longstanding tradition in timestamp code is to
truncate toward minus infinity when converting from a higher-resolution
timestamp to a lower-resolution timestamp.  This is consistent behavior,
and is easy to explain: let's stick to it as a uniform practice.</p>

<p>There are two basic principles here.  First, ordinary files should not
change spontaneously: hence a file's timestamp should not change merely
because its inode is no longer cached.  Second, a file's timestamp should
never be "in the future": hence one should never round such timestamps up.</p>

<p>The only way I can see to satisfy these two principles is to truncate the
timestamp right away, when it is first put into the inode cache.  That way,
the copy in main memory equals what will be put onto disk.  This is the
approach taken by other operating systems like Solaris, and it explains why
parallel GCC builds won't have this problem on these other systems.</p>

<p>Switching subjects slightly, in &lt;<a
href="http://mail.gnu.org/archive/html/bug-coreutils/2004-03/msg00095.html">http://mail.gnu.org/archive/html/bug-coreutils/2004-03/msg00095.html</a>&gt;
I recently contributed code to coreutils that fixes some bugs
with "cp --update" and "mv --update" when files are copied from
high-resolution-timestamp file systems to low-resolution-timestamp file
systems.  This code dynamically determines the timestamp resolution of a file
system by examining (and possibly mutating) its timestamps.  The current
Linux+ext3 behavior (which I did not know about) breaks this code, because
it can cause "cp" to falsely think that ext3 has nanosecond-resolution
timestamps.</p>

<p>How long has the current Linux+ext3 behavior been in place?  If it's
widespread, I'll probably have to think about adding a workaround to coreutils.
Does the behavior affect all Linux filesystems, or just ext3?</p>

</quote>

<p>Jamie Lokier said:</p>

<quote who="Jamie Lokier">

<p>All Linux filesystems - the nanoseconds field is retained on in-memory
inodes by the generic VFS code.  The stored resolution varies among
filesystems, with the coarsest being 2 seconds (FAT), and some do store
nanoseconds.  AFAIK there is no way to determine the stored resolution using
file operations alone.</p>

<p>This behaviour was established in 2.5.48, 18th November 2002.</p>

<p>The behaviour might not be restricted to Linux, because non-Linux NFS
clients may be connected to a Linux NFS server which has this behaviour.</p>

</quote>

<p>Paul replied, <quote who="Paul Eggert">it sounds like there's no easy
workaround for existing systems.  Still it'd be nice to fix the bug for future
systems.</quote> There was a bit more discussion, but nothing conclusive
came out of it, and the thread petered out.</p>

</section>

<section
  title="Linux 2.6.5 Released"
  subject="Linux v2.6.5"
  posts="2"
  startdate="03 Apr 2004 19:51:15 -0800"
  enddate="04 Apr 2004 21:05:43 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>Sound: ALSA</topic>

<p>Linus Torvalds announced Kernel 2.6.5, saying:</p>

<quote who="Linus Torvalds">

<p>Some more architecture updates, and a few fixes for silly broken stuff
in -rc3. And an ALSA update.</p>

<p>And I'll be offline for a week, so have fun with this, and if you get the
shakes because you want to compile a new kernel every day, there's always
the -mm tree to play with while I'm gone..</p>

</quote>

</section>

<section
  title="IPv6 Support For SELinux"
  subject="[SELINUX] Add IPv6 support"
  posts="2"
  startdate="03 Apr 2004 22:33:09 -0800"
  enddate="04 Apr 2004 01:19:42 -0800"
>
<topic>Networking</topic>

<mention>James H. Cloos</mention>

<p>James Morris said:</p>

<quote who="James Morris">

<p>The patch below, against 2.6.5, adds explicit IPv6 support to SELinux.</p>

<p>Brief description of changes:</p>

<p>

<ul>

<li>IPv6 networking is now subject to the same controls as IPv4 (in addition
  to the generic socket permissions which cover all protocols), namely: bind
  to local node address; bind to local port; send &amp; receive TCP/UDP and raw
  IP packets based on local network interface and remote node address.</li>

<li>Packet parsing has been extended to IPv6 packets for logging and
  control, and simplified for IPv4.</li>

<li>Support for logging of IPv6 addresses has also been added.</li>

<li>The kernel policy database code has been modified to support IPv6, and
  reworked to provide generic security policy version handling so that older
  policy versions will still work, making upgrading simpler.</li>

</ul>

</p>

<p>Corresponding userspace patches are available at &lt;<a
href="http://people.redhat.com/jmorris/selinux/ipv6/">http://people.redhat.com/jmorris/selinux/ipv6/</a>&gt;,
although current userspace tools will continue to function normally (but
without explicit IPv6 support).</p>

<p>For more details at the security management level, see &amp;lt;<a
href="http://marc.theaimsgroup.com/?l=selinux&amp;m=108068187630948&amp;w=2">http://marc.theaimsgroup.com/?l=selinux&amp;m=108068187630948&amp;w=2</a>&gt;</p>

<p>This code has been under testing and review for several weeks.  Andrew,
please consider applying to -mm.</p>

</quote>

<p>James H. Cloos Jr. remarked in reply:</p>

<quote who="James H. Cloos Jr.">

<p>From a scan through the patch, it looks like it does in fact only handle
those tcp, udp and raw.</p>

<p>Sctp also should be supported by these mechanisms, given that 2.6 has
both in the main tree.</p>

<p>I'd expect many systems which will be installed in the next few quarters
and which could make good use of the selinux controls will require sctp
support.</p>

</quote>

</section>

<section
  title="atp870u SCSI Driver Maintainership"
  subject="Who maintains the atp870u driver? (ACARD PCI SCSI)"
  posts="2"
  startdate="04 Apr 2004 07:36:39 -0800"
  enddate="07 Apr 2004 06:02:54 -0800"
>
<topic>Disks: SCSI</topic>
<topic>PCI</topic>

<mention>Doug Ledford</mention>
<mention>James Bottomley</mention>

<p>Stuart Longland asked who the atp870u SCSI driver maintainer was, saying he
recently got a PCI ACARD SCSI card, and was seeing errors at run-time. Marcelo
Tosatti replied, <quote who="Marcelo Tosatti">No one really maintains it
officially.  James Bottomley and Doug Ledford have done some fixes for it
on v2.6, you might want trying to ask them directly.</quote></p>

</section>

<section
  title="Linux 2.6.5-mc1 Released"
  subject="2.6.5-mc1"
  posts="5"
  startdate="04 Apr 2004 18:40:37 -0800"
  enddate="05 Apr 2004 00:09:36 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>Version Control</topic>

<p>Andrew Morton announced 2.6.5-mc1 (sic), saying:</p>

<quote who="Andrew Morton">

<p><a href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mc1/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mc1/</a></p>

<p>  "mc" == "merge candidate", for want of a better name.  This tree holds
  the patches which are slated for inclusion into Linus's tree in the
  short-term.</p>

<p>  As Linus is offline for a week we should expect that the contents of
  -mc1 will be merged into kernel bitkeeper around April 12.</p>

<p>  2.6.5-mm1 will consist of all of 2.6.5-mc1 plus other patches.  The
  separation point is "mc.patch" in the -mm series file - everything before
  mc.patch is part of both the -mc and -mm kernels and everything after
  mc.patch is in -mm only.</p>

<p>  The -mc series probably won't live for very long - I'm releasing it so
  that people can prepare patches against what Linus's kernel will look like
  when he returns.</p>

</quote>

</section>

<section
  title="Linux 2.6.5-mm1 Released"
  subject="2.6.5-mm1"
  posts="6"
  startdate="04 Apr 2004 18:45:22 -0800"
  enddate="05 Apr 2004 18:46:50 -0800"
>
<topic>Version Control</topic>

<p>45 Minutes after releasing 2.6.5-mc1, Andrew Morton also released 2.6.5-mm1,
saying:</p>

<quote who="Andrew Morton">

<p><a href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mm1/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mm1/</a></p>

<p>

<ul>

<li>Added two more external bk trees: bk-net-drivers and bk-libata</li>

<li>Experimental PnP update</li>

<li>

<p>I've temporarily dropped the 4G/4G patch and the remap-file-pages-prot
  patch.  Two reasons:</p>

<ol>

<li>They create a lot of noise in areas where Hugh, Andrea and others
     are working</li>

<li>-mm has been a bit flakey for a few people lately and I suspect the
     problems are related to early-startup changes in the 4:4 patch.</li>

</ol>

</li>

</ul>

</p>

<p>  The current versions of these patches are in</p>

<p><a href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mm1/dropped/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mm1/dropped/</a></p>

<p>  See the series file there for applying order.</p>

</quote>

</section>

<section
  title="BTTV Maintainership"
  subject="[BTTV] is anyone taking care of this drivers?"
  posts="3"
  startdate="05 Apr 2004 17:12:47 -0800"
  enddate="05 Apr 2004 23:21:15 -0800"
>

<mention>Gerd Knorr</mention>

<p>Luis Miguel said, <quote who="Luis Miguel">I have data for a new bttv 878
based card that I think must be introduced in the cards database info in order
to make it work.  Who is the maintainer of that driver right now?</quote>
Gerd Knorr replied that he (Gerd) maintained the BTTV driver.</p>

</section>

<section
  title="GPL Violation By Tritton Technologies"
  subject="probable Linux Kernel GPL violation"
  posts="3"
  startdate="07 Apr 2004 08:46:28 -0800"
  enddate=""
>
<topic>Networking</topic>

<p>Roy Franz said:</p>

<quote who="Roy Franz">

<p>I have encountered a vendor that is selling a device that admittedly
contains a modified Linux kernel, and they refuse to provide the source for
the modified kernel.  They claim that the GPL does not apply to those changes.
They do not seem to be using modules.  I don't know how to pursue this further,
so I am bringing it to the attention of the kernel developers.</p>

<p>The product in question is the Tritton Technologies NAS120.  (They also
offer version with router functionality that is based on the same board.)
This board is based on the Toshiba TX39 processor (MIPS), and has a realtek
ethernet chip on it.  It is running kernel version 2.4.16.</p>

<p>See: <a
href="http://www.trittontechnologies.com/products.html">http://www.trittontechnologies.com/products.html</a></p>

<p>This is clearly made by mct.com.tw: <a
href="http://www.mct.com.tw/prod/sa-100.html">http://www.mct.com.tw/prod/sa-100.html</a>
As some files in the image identify it as such.</p>

<p>Several other vendors also sell versions of this.  <a
href="http://www.iogear.com/main.php?loc=product&amp;product_id=645">http://www.iogear.com/main.php?loc=product&amp;product_id=645</a>
and <a
href="http://www.claxan.ch/de/prod_det.asp?PRODID=CL-SA110&amp;TOPNAVID=-1">http://www.claxan.ch/de/prod_det.asp?PRODID=CL-SA110&amp;TOPNAVID=-1</a>
(claxan offers download of some source code, but not the kernel.  A Customer
of theirs contacted them and they also refuse to release kernel source.)</p>

<p>Here is the response from Tritton stating that they will not release the
modified kernel source.  This was after several email exchanges where I was
being very clear that I was interested in the kernel source.</p>

</quote>

<p>He quoted the email he'd received from technical support:</p>

<blockquote>

<p>Earlier I stated that the kernal would be included with the package. While
this is still true, you must know that the modifications made to the kernal
will not be included. This is because of two things: 1) Those mods do not
fall under the GPL and 2) They are owned by Toshiba.</p>

</blockquote>

<p>Matthias Urlichs said, <quote who="Matthias Urlichs">I'd alert them to
the fact that they're about to get a lot of well-deserved negative publicity
about this.</quote> And Erik Andersen added, <quote who="Erik Andersen">I've
added the NAS120 to the BusyBox Hall of Shame...</quote></p>

</section>

</kc>

