<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="237" date="26 Oct 2003 00:00:00 -0800" />

<stats posts="1552" size="6957" contrib="475" multiples="226" lastweek="177">

<person posts="46" size="158" who="Andrew Morton" />
<person posts="39" size="146" who="Greg KH" />
<person posts="36" size="168" who="William Lee Irwin III" />
<person posts="31" size="78" who="&quot;David S. Miller&quot;" />
<person posts="29" size="137" who="Linus Torvalds" />
<person posts="26" size="128" who="Jeff Garzik" />
<person posts="26" size="103" who="Jamie Lokier" />
<person posts="22" size="80" who="&quot;Randy.Dunlap&quot;" />
<person posts="22" size="74" who=" (bill davidsen)" />
<person posts="21" size="78" who="David Woodhouse" />
<person posts="21" size="62" who="Zwane Mwaikambo" />
<person posts="17" size="52" who="Pavel Machek" />
<person posts="16" size="97" who="Andre Hedrick" />
<person posts="16" size="66" who="Marcelo Tosatti" />
<person posts="16" size="51" who="Sam Ravnborg" />
<person posts="16" size="43" who="Rik van Riel" />
<person posts="15" size="127" who="Michael Hunold (LinuxTV.org CVS maintainer)" />
<person posts="15" size="78" who="=?iso-8859-1?Q?J=F6rn?= Engel" />
<person posts="14" size="51" who="Hugh Dickins" />
<person posts="14" size="50" who="Trond Myklebust" />
<person posts="14" size="45" who="Dave Jones" />
<person posts="13" size="69" who="Andrea Arcangeli" />
<person posts="13" size="44" who="&quot;Norman Diamond&quot;" />
<person posts="13" size="41" who="Rik van Riel" />
<person posts="12" size="83" who="Jens Axboe" />
<person posts="12" size="45" who="(Valdis.Kletnieks)" />
<person posts="12" size="40" who="=?iso-8859-2?Q?Karel_Kulhav=FD?=" />
<person posts="12" size="38" who="(viro)" />
<person posts="11" size="42" who="Nick Piggin" />
<person posts="11" size="41" who="Chris Friesen" />
<person posts="11" size="36" who="Ingo Oeser" />
<person posts="10" size="45" who="&quot;Richard B. Johnson&quot;" />
<person posts="10" size="35" who="Hans Reiser" />
<person posts="9" size="58" who="&quot;Robert White&quot;" />
<person posts="9" size="50" who="Matt Domsch" />
<person posts="9" size="41" who="Larry McVoy" />
<person posts="9" size="39" who="Joel Becker" />
<person posts="9" size="34" who="Matt Mackall" />
<person posts="9" size="32" who="Geert Uytterhoeven" />
<person posts="9" size="26" who="Mikael Pettersson" />
<person posts="8" size="45" who="Stian Jordet" />
<person posts="8" size="32" who="Andreas Dilger" />
<person posts="8" size="31" who="Bartlomiej Zolnierkiewicz" />
<person posts="8" size="31" who="Ingo Molnar" />
<person posts="8" size="26" who="David Brownell" />
<person posts="8" size="26" who="Manfred Spraul" />
<person posts="7" size="55" who="&quot;Sebastian Piecha&quot;" />
<person posts="7" size="37" who="George Anzinger" />
<person posts="7" size="26" who="Vojtech Pavlik" />
<person posts="7" size="25" who="&quot;J.A. Magallon&quot;" />
<person posts="7" size="22" who="Tom Rini" />
<person posts="6" size="65" who="Thomas Horsten" />
<person posts="6" size="36" who="Mike Galbraith" />
<person posts="6" size="33" who="Thom Borton" />
<person posts="6" size="29" who="jw schultz" />
<person posts="6" size="24" who="Neil Brown" />
<person posts="6" size="23" who="Russell King" />
<person posts="6" size="23" who="Kirill Korotaev" />
<person posts="6" size="19" who="Ulrich Drepper" />
<person posts="6" size="19" who="Michael Hunold" />
<person posts="6" size="18" who="John Cherry" />
<person posts="6" size="17" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="6" size="17" who="Patrick Mochel" />
<person posts="5" size="39" who="Meelis Roos" />
<person posts="5" size="28" who="Suparna Bhattacharya" />
<person posts="5" size="27" who="retu" />
<person posts="5" size="24" who="=?ISO-8859-1?Q?Ram=F3n?= Rey Vicente" />
<person posts="5" size="22" who="Tom Marshall" />
<person posts="5" size="20" who="Adrian Bunk" />
<person posts="5" size="20" who="Ernie Petrides" />
<person posts="5" size="19" who="asdfd esadd" />
<person posts="5" size="18" who="Russell King" />
<person posts="5" size="18" who="Arnaldo Carvalho de Melo" />
<person posts="5" size="18" who="Jurgen Kramer" />
<person posts="5" size="17" who="Eli Billauer" />
<person posts="5" size="17" who="Albert Cahalan" />
<person posts="5" size="16" who="Stefan Kaltenbrunner" />
<person posts="5" size="16" who="Stephan von Krawczynski" />
<person posts="5" size="16" who="Arjan van de Ven" />
<person posts="5" size="16" who="Peter Maersk-Moller" />
<person posts="5" size="16" who="&quot;Florian Schirmer&quot;" />
<person posts="5" size="16" who="Stephen Hemminger" />
<person posts="5" size="14" who="&quot;Frederick, Fabian&quot;" />
<person posts="5" size="14" who="Ivan Kokshaysky" />
<person posts="5" size="13" who="John Bradford" />
<person posts="4" size="53" who="Olaf Hering" />
<person posts="4" size="46" who="Tom Zanussi" />
<person posts="4" size="28" who="David Lang" />
<person posts="4" size="20" who="Greg Stark" />
<person posts="4" size="16" who="Rob Landley" />
<person posts="4" size="15" who="Michael Still" />
<person posts="4" size="15" who="Matthew Wilcox" />
<person posts="4" size="15" who="Daniel McNeil" />
<person posts="4" size="14" who="Pedro Larroy" />
<person posts="4" size="14" who="Tim Hockin" />
<person posts="4" size="14" who="Nico Schottelius" />
<person posts="4" size="13" who="Xose Vazquez Perez" />
<person posts="4" size="12" who="Roman Zippel" />
<person posts="4" size="12" who="Pavel Machek" />
<person posts="4" size="12" who="Willy Tarreau" />
<person posts="4" size="11" who="Gerd Knorr" />
<person posts="4" size="10" who="Anton Blanchard" />
<person posts="3" size="40" who="&quot;Tvrtko A. =?iso-8859-2?q?Ur=B9ulin?=&quot;" />
<person posts="3" size="34" who="Michael Buesch" />
<person posts="3" size="32" who="(frahm)" />
<person posts="3" size="27" who="&quot;Mark Williams (MWP)&quot;" />
<person posts="3" size="22" who="Tim Shepard" />
<person posts="3" size="20" who="=?iso-8859-1?q?Hartmut=20Zybell?=" />
<person posts="3" size="20" who="Kostadin Karaivanov" />
<person posts="3" size="17" who="Con Kolivas" />
<person posts="3" size="17" who="YoshiyaETO" />
<person posts="3" size="15" who="&quot;Amir Hermelin&quot;" />
<person posts="3" size="14" who="Mike Waychison" />
<person posts="3" size="14" who="Lorenzo Allegrucci" />
<person posts="3" size="14" who=" (Miles Bader)" />
<person posts="3" size="13" who="Muli Ben-Yehuda" />
<person posts="3" size="13" who="&quot;Daheriya, Adarsh&quot;" />
<person posts="3" size="13" who="&quot;Marcos D. Marado Torres&quot;" />
<person posts="3" size="13" who="(Matt_Domsch)" />
<person posts="3" size="12" who="Mark Mielke" />
<person posts="3" size="12" who="Veeriah Vijay-A19819" />
<person posts="3" size="12" who="&quot;Alex Adriaanse&quot;" />
<person posts="3" size="12" who="Andries Brouwer" />
<person posts="3" size="12" who="Stephen Satchell" />
<person posts="3" size="12" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="3" size="11" who="Thomas Molina" />
<person posts="3" size="11" who="4Front Technologies" />
<person posts="3" size="11" who="=?iso-8859-2?B?R+Fib3IgTOlu4XJ0?=" />
<person posts="3" size="11" who="Miles Bader" />
<person posts="3" size="11" who="Richard J Moore" />
<person posts="3" size="11" who="bert hubert" />
<person posts="3" size="11" who="&quot;Martin J. Bligh&quot;" />
<person posts="3" size="11" who="&quot;Robert L. Harris&quot;" />
<person posts="3" size="10" who="John Mock" />
<person posts="3" size="10" who="&quot;sankar&quot;" />
<person posts="3" size="10" who="Helge Hafting" />
<person posts="3" size="10" who="Martin Josefsson" />
<person posts="3" size="9" who="Pascal Schmidt" />
<person posts="3" size="9" who="&quot;Paul E. McKenney&quot;" />
<person posts="3" size="9" who="Lars Marowsky-Bree" />
<person posts="3" size="9" who="Erik Mouw" />
<person posts="3" size="9" who="Herbert Xu" />
<person posts="3" size="8" who="&quot;O.Sezer&quot;" />
<person posts="3" size="8" who="Kevin Brosius" />
<person posts="3" size="8" who="John Levon" />
<person posts="3" size="8" who="Roberto Di Cosmo" />
<person posts="3" size="8" who="Andi Kleen" />
<person posts="3" size="7" who="Bernhard Rosenkraenzer" />
<person posts="3" size="7" who="Narayan Desai" />
<person posts="2" size="56" who="Greg Norris" />
<person posts="2" size="40" who="Marcello" />
<person posts="2" size="34" who="Guy" />
<person posts="2" size="33" who="Stefano Rivoir" />
<person posts="2" size="27" who="Rusty Lynch" />
<person posts="2" size="25" who="Dru" />
<person posts="2" size="19" who="Matthias Andree" />
<person posts="2" size="18" who="Nathan Poznick" />
<person posts="2" size="16" who="=?iso-8859-2?Q?Martin_MOKREJ=A9?=" />
<person posts="2" size="15" who="Greg Schafer" />
<person posts="2" size="14" who="&quot;Chandra Konakalla&quot;" />
<person posts="2" size="13" who="Petr Vandrovec" />
<person posts="2" size="13" who="Andreas Jellinghaus" />
<person posts="2" size="12" who="Carsten Jacobi" />
<person posts="2" size="11" who="Magnus Andersson" />
<person posts="2" size="10" who="Walt H" />
<person posts="2" size="9" who="Michael Jensen" />
<person posts="2" size="9" who="Thomas Schlichter" />
<person posts="2" size="9" who="&quot;Noah J. Misch&quot;" />
<person posts="2" size="8" who="Stuart Longland" />
<person posts="2" size="8" who="Karim Yaghmour" />
<person posts="2" size="8" who="Ian Kent" />
<person posts="2" size="8" who="Jan Marek" />
<person posts="2" size="7" who="hotjobs" />
<person posts="2" size="7" who="Jesper Juhl" />
<person posts="2" size="7" who="Badari Pulavarty" />
<person posts="2" size="7" who="SMS WebMaster" />
<person posts="2" size="7" who="Tobias DiPasquale" />
<person posts="2" size="7" who=" (David Wagner)" />
<person posts="2" size="7" who="Kenn Humborg" />
<person posts="2" size="7" who="OGAWA Hirofumi" />
<person posts="2" size="7" who="Stanislav Meduna" />
<person posts="2" size="7" who="Eyal Lebedinsky" />
<person posts="2" size="7" who="Mark Hounschell" />
<person posts="2" size="7" who="Frank Cusack" />
<person posts="2" size="7" who="Patrick McHardy" />
<person posts="2" size="7" who="&quot;Ihar 'Philips' Filipau&quot;" />
<person posts="2" size="6" who="Ludovico Gardenghi" />
<person posts="2" size="6" who="David Jez" />
<person posts="2" size="6" who="Nohez" />
<person posts="2" size="6" who="Bill Davidsen" />
<person posts="2" size="6" who="&quot;Daniel Blueman&quot;" />
<person posts="2" size="6" who="Rusty Russell" />
<person posts="2" size="6" who="Takashi Iwai" />
<person posts="2" size="6" who="Adam Sulmicki" />
<person posts="2" size="6" who="&quot;Suresh Subramanian&quot;" />
<person posts="2" size="6" who="Tony Lindgren" />
<person posts="2" size="6" who="Bjorn Helgaas" />
<person posts="2" size="6" who="Jaroslav Kysela" />
<person posts="2" size="6" who="Maciej Zenczykowski" />
<person posts="2" size="6" who="(mika.penttila)" />
<person posts="2" size="6" who="Eric Wong" />
<person posts="2" size="6" who="Davide Libenzi" />
<person posts="2" size="5" who="Marcel Holtmann" />
<person posts="2" size="5" who=" (Aristeu Sergio Rozanski Filho)" />
<person posts="2" size="5" who="Domen Puncer" />
<person posts="2" size="5" who="Marc Zyngier" />
<person posts="2" size="5" who="Tomas Konir" />
<person posts="2" size="5" who="Tim Schmielau" />
<person posts="2" size="5" who="James Morris" />
<person posts="2" size="5" who="Bruce Allen" />
<person posts="2" size="5" who="Aristeu Sergio Rozanski Filho" />
<person posts="2" size="5" who="Stef van der Made" />
<person posts="2" size="5" who="Chad A Daelhousen" />
<person posts="2" size="5" who="&quot;Miquel van Smoorenburg&quot;" />
<person posts="2" size="5" who="Andre Tomt" />
<person posts="2" size="5" who="---" />
<person posts="2" size="5" who=" (Eric W. Biederman)" />
<person posts="2" size="5" who="Roger Luethi" />
<person posts="2" size="5" who="Tomas Szepe" />
<person posts="2" size="5" who="Brian McGroarty" />
<person posts="2" size="5" who="&quot;sting sting&quot;" />
<person posts="2" size="4" who="Krzysztof Halasa" />
<person posts="2" size="4" who="(kuznet)" />
<person posts="2" size="4" who="Andi Kleen" />
<person posts="2" size="4" who="wessly x" />
<person posts="2" size="4" who="(brian)" />
<person posts="1" size="59" who="(rwhron)" />
<person posts="1" size="47" who="Ramon Casellas" />
<person posts="1" size="44" who="(zipa24)" />
<person posts="1" size="42" who="&quot;Tvrtko A. =?utf-8?q?Ur=C5=A1ulin?=&quot;" />
<person posts="1" size="40" who="&quot;Papadomitsos Panagiotis&quot;" />
<person posts="1" size="39" who="Alberto Bertogli" />
<person posts="1" size="33" who="=?ISO-8859-2?Q?Rafa=B3?= 'rmrmg' Roszak" />
<person posts="1" size="31" who="Joseph Pingenot" />
<person posts="1" size="29" who="Zoup" />
<person posts="1" size="25" who="Michel Angelo da Silva Pereira" />
<person posts="1" size="20" who="Marc Kalberer" />
<person posts="1" size="13" who="Joshua Jacobs" />
<person posts="1" size="13" who="Marshal Newrock" />
<person posts="1" size="13" who="Andreas Oberritter" />
<person posts="1" size="12" who="Tom Zanussi" />
<person posts="1" size="12" who="Tony Gale" />
<person posts="1" size="11" who="(gis1000)" />
<person posts="1" size="10" who="Wes Janzen" />
<person posts="1" size="10" who="Simone Piunno" />
<person posts="1" size="10" who="Antony Gelberg" />
<person posts="1" size="9" who="&quot;Douglas Leith&quot;" />
<person posts="1" size="9" who="Alexander Litvinov" />
<person posts="1" size="9" who="fire-eyes" />
<person posts="1" size="9" who="&quot;Marco Berizzi&quot;" />
<person posts="1" size="8" who="Patrice Bouchand" />
<person posts="1" size="8" who="&quot;Dailos Franchy Gil&quot;" />
<person posts="1" size="7" who="Norbert Kiesel" />
<person posts="1" size="7" who="Daniel Brockhaus" />
<person posts="1" size="7" who="Johan Braennlund" />
<person posts="1" size="7" who="Peter Matthias" />
<person posts="1" size="7" who="Duncan Haldane" />
<person posts="1" size="7" who="Yoshinori Sato" />
<person posts="1" size="7" who="&quot;Janis Putrams&quot;" />
<person posts="1" size="6" who="Edward Macfarlane Smith" />
<person posts="1" size="6" who="Thomas Steudten" />
<person posts="1" size="6" who="Srikrishnan Sundararajan" />
<person posts="1" size="6" who="Harald Welte" />
<person posts="1" size="5" who=" (Christian Fertig)" />
<person posts="1" size="5" who="Chris Cheney" />
<person posts="1" size="5" who="Ookhoi" />
<person posts="1" size="5" who="Simon Derr" />
<person posts="1" size="5" who="&quot;Pallipadi, Venkatesh&quot;" />
<person posts="1" size="5" who="Uncle Jens" />
<person posts="1" size="5" who="Boszormenyi Zoltan" />
<person posts="1" size="4" who="&quot;P. Benie&quot;" />
<person posts="1" size="4" who="Daniele Bellucci" />
<person posts="1" size="4" who="Ed Sweetman" />
<person posts="1" size="4" who="Jan Kara" />
<person posts="1" size="4" who=" (Dick Streefland)" />
<person posts="1" size="4" who="Roman Zippel" />
<person posts="1" size="4" who="&quot;Nakajima, Jun&quot;" />
<person posts="1" size="4" who="Eric Buddington" />
<person posts="1" size="4" who="&quot;Breno&quot;" />
<person posts="1" size="4" who="Piet Delaney" />
<person posts="1" size="4" who="Matt Domsch" />
<person posts="1" size="4" who="&quot;Daniel Harker&quot;" />
<person posts="1" size="4" who="&quot;B. D. Elliott&quot;" />
<person posts="1" size="4" who="&quot;Kurtis D. Rader&quot;" />
<person posts="1" size="4" who="Jakob Oestergaard" />
<person posts="1" size="4" who="Alexey Goldin" />
<person posts="1" size="4" who="Manuel Estrada Sainz" />
<person posts="1" size="4" who="Thayne Harbaugh" />
<person posts="1" size="4" who="Thomas Kleffel" />
<person posts="1" size="4" who="(roberto)" />
<person posts="1" size="4" who="Hans Berglund" />
<person posts="1" size="4" who="(ffrederick)" />
<person posts="1" size="4" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="1" size="4" who="Jean Charles Delepine" />
<person posts="1" size="4" who="&quot;Howard Duck&quot;" />
<person posts="1" size="4" who="Peter Bergner" />
<person posts="1" size="4" who="Judith Lebzelter" />
<person posts="1" size="4" who="Clemens Schwaighofer" />
<person posts="1" size="4" who="David Ford" />
<person posts="1" size="4" who="Pekka Pietikainen" />
<person posts="1" size="3" who="Matt" />
<person posts="1" size="3" who="Urban Widmark" />
<person posts="1" size="3" who="&quot;Jason Munro&quot;" />
<person posts="1" size="3" who="(Andrew_Purtell)" />
<person posts="1" size="3" who="Nikita Danilov" />
<person posts="1" size="3" who="Jindrich Makovicka" />
<person posts="1" size="3" who="&quot;M. Lucas&quot;" />
<person posts="1" size="3" who="Willy TARREAU" />
<person posts="1" size="3" who="Sasa Ostrouska" />
<person posts="1" size="3" who="Larry Sendlosky" />
<person posts="1" size="3" who="Florian Zwoch" />
<person posts="1" size="3" who="Martin Waitz" />
<person posts="1" size="3" who="Jean Tourrilhes" />
<person posts="1" size="3" who="(anlar)" />
<person posts="1" size="3" who="&quot;John Stoffel&quot;" />
<person posts="1" size="3" who="Rob Browning" />
<person posts="1" size="3" who="Felipe W Damasio" />
<person posts="1" size="3" who="&quot;jdow&quot;" />
<person posts="1" size="3" who="(aquamodem1)" />
<person posts="1" size="3" who="dacin" />
<person posts="1" size="3" who="Oliver Pitzeier" />
<person posts="1" size="3" who="Gregor Burger" />
<person posts="1" size="3" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="1" size="3" who="John R Moser" />
<person posts="1" size="3" who="&quot;Andrew R. Reiter&quot;" />
<person posts="1" size="3" who="Nico Schottelius" />
<person posts="1" size="3" who="GOTO Masanori" />
<person posts="1" size="3" who="&quot;H. Peter Anvin&quot;" />
<person posts="1" size="3" who="Len Brown" />
<person posts="1" size="3" who="Gabor MICSKO" />
<person posts="1" size="3" who="Roland McGrath" />
<person posts="1" size="3" who="Scott Robert Ladd" />
<person posts="1" size="3" who="cliff white" />
<person posts="1" size="3" who="&quot;Jason L. Nesheim&quot;" />
<person posts="1" size="3" who="(tapiov)" />
<person posts="1" size="3" who="Toon van der Pas" />
<person posts="1" size="3" who="Patrick Mansfield" />
<person posts="1" size="3" who="Ivan Gyurdiev" />
<person posts="1" size="3" who="Nuno Silva" />
<person posts="1" size="3" who="Robert Love" />
<person posts="1" size="3" who="Luite Stegeman" />
<person posts="1" size="3" who="Matthias Urlichs" />
<person posts="1" size="3" who="(tconnors+linuxkernel1066023352)" />
<person posts="1" size="3" who="David Mosberger-Tang" />
<person posts="1" size="3" who="Dan Kegel" />
<person posts="1" size="3" who="&quot;Grover, Andrew&quot;" />
<person posts="1" size="3" who="Ulf-Rainer Tietz" />
<person posts="1" size="3" who="Paul" />
<person posts="1" size="3" who="Bernardo Innocenti" />
<person posts="1" size="3" who="&quot;J. Bruce Fields&quot;" />
<person posts="1" size="3" who="Joshua Kwan" />
<person posts="1" size="3" who="=?ISO-8859-1?Q?Mika_Penttil=E4?=" />
<person posts="1" size="3" who="Dan Kegel" />
<person posts="1" size="3" who="Steven Cole" />
<person posts="1" size="3" who=" (Florin Iucha)" />
<person posts="1" size="3" who="John Wong" />
<person posts="1" size="3" who="war" />
<person posts="1" size="3" who="&quot;Henning P. Schmiedehausen&quot;" />
<person posts="1" size="3" who="=?ISO-8859-15?Q?Mika_Penttil=E4?=" />
<person posts="1" size="3" who="Mike Dresser" />
<person posts="1" size="3" who="&quot;Charles Martin&quot;" />
<person posts="1" size="3" who="Kevin Curtis" />
<person posts="1" size="3" who="Michael Shuey" />
<person posts="1" size="3" who="Jesper Juhl" />
<person posts="1" size="3" who="James Stevenson" />
<person posts="1" size="3" who="&quot;Pascal Schmidt&quot;" />
<person posts="1" size="3" who="Kronos" />
<person posts="1" size="3" who="Markus =?ISO-8859-1?Q?H=E4stbacka?=" />
<person posts="1" size="3" who="Nigel Cunningham" />
<person posts="1" size="3" who="Andreas Jungmaier" />
<person posts="1" size="3" who="Yury Umanets" />
<person posts="1" size="3" who="Andi Kleen" />
<person posts="1" size="3" who="Kai Militzer" />
<person posts="1" size="3" who="&quot;Oliver Pitzeier&quot;" />
<person posts="1" size="3" who="&quot;Lever, Charles&quot;" />
<person posts="1" size="3" who="walt" />
<person posts="1" size="3" who="&quot;Art Haas&quot;" />
<person posts="1" size="3" who="&quot;Mrs. Fatima Abdul Azad&quot;" />
<person posts="1" size="3" who="Antonio Vargas" />
<person posts="1" size="3" who="Christian Fertig" />
<person posts="1" size="2" who=" (Bill Davidsen)" />
<person posts="1" size="2" who="Martin Konold" />
<person posts="1" size="2" who="jhigdon" />
<person posts="1" size="2" who="(owen)" />
<person posts="1" size="2" who="Dave Kleikamp" />
<person posts="1" size="2" who="Yaroslav Halchenko" />
<person posts="1" size="2" who="Rob Flickenger" />
<person posts="1" size="2" who="&quot;drn ayngl&quot;" />
<person posts="1" size="2" who="Jochen Friedrich" />
<person posts="1" size="2" who="&quot;Prashanth A Pandit&quot;" />
<person posts="1" size="2" who="Martin Aspeli" />
<person posts="1" size="2" who="&quot;Adam Flizikowski&quot;" />
<person posts="1" size="2" who="Patrick Mau" />
<person posts="1" size="2" who="Ben Collins" />
<person posts="1" size="2" who="Mike Fedyk" />
<person posts="1" size="2" who="Bob Chiodini" />
<person posts="1" size="2" who="David Howells" />
<person posts="1" size="2" who="Benjamin Herrenschmidt" />
<person posts="1" size="2" who="Ivo Santos Cavalcante Carneiro" />
<person posts="1" size="2" who="Kevin Corry" />
<person posts="1" size="2" who="(linux-kernel-owner)" />
<person posts="1" size="2" who="George R Goffe" />
<person posts="1" size="2" who="Jim Keniston" />
<person posts="1" size="2" who="Olivier Galibert" />
<person posts="1" size="2" who="&quot;sting sting&quot;" />
<person posts="1" size="2" who="Jonathan McDowell" />
<person posts="1" size="2" who="(marc.kalberer)" />
<person posts="1" size="2" who="Dominik Kubla" />
<person posts="1" size="2" who="Richard Henderson" />
<person posts="1" size="2" who="Misha Nasledov" />
<person posts="1" size="2" who="Jan De Luyck" />
<person posts="1" size="2" who="Jesper Juhl" />
<person posts="1" size="2" who="Jeff Sipek" />
<person posts="1" size="2" who="&quot;Javier Govea&quot;" />
<person posts="1" size="2" who="&quot;Sanil K&quot;" />
<person posts="1" size="2" who="&quot;Rahul Karnik&quot;" />
<person posts="1" size="2" who="Alan Cox" />
<person posts="1" size="2" who="Matt Simonsen" />
<person posts="1" size="2" who="kevin conaway" />
<person posts="1" size="2" who="&quot;Mark W. Alexander&quot;" />
<person posts="1" size="2" who="Falk Hueffner" />
<person posts="1" size="2" who="&quot;Dr. Robert Holloway&quot;" />
<person posts="1" size="2" who="Thierry Vignaud" />
<person posts="1" size="2" who="Marc-Christian Petersen" />
<person posts="1" size="2" who="iain d broadfoot" />
<person posts="1" size="2" who="(jpo234)" />
<person posts="1" size="2" who="&quot;Matt H.&quot;" />
<person posts="1" size="2" who="Adam Kessel" />
<person posts="1" size="2" who="Alistair J Strachan" />
<person posts="1" size="2" who=" (Anton Ertl)" />
<person posts="1" size="2" who="Gregor Burger  (by way of Gregor Burger" />
<person posts="1" size="2" who="Miles Bader" />
<person posts="1" size="2" who="&quot;Tomita, Haruo&quot;" />
<person posts="1" size="2" who="Lech Szychowski" />
<person posts="1" size="2" who="Meelis Roos" />
<person posts="1" size="2" who="Niels den Otter" />
<person posts="1" size="2" who="Bryan O'Sullivan" />
<person posts="1" size="2" who="Frederik Nosi" />
<person posts="1" size="2" who="mario noioso" />
<person posts="1" size="2" who="Per Buer" />
<person posts="1" size="2" who="John Madden" />
<person posts="1" size="2" who="Raj" />
<person posts="1" size="2" who="Marc Chalain" />
<person posts="1" size="2" who="Cherry George Mathew" />
<person posts="1" size="2" who="James Antill" />
<person posts="1" size="2" who="&quot;Daniel B.&quot;" />
<person posts="1" size="2" who="(esm)" />
<person posts="1" size="2" who="CHRIS JOYNER" />
<person posts="1" size="2" who="&quot;Guadalupe Haskins&quot;" />
<person posts="1" size="2" who="Atte =?ISO-8859-1?Q?Andr=E9?= Jensen" />
<person posts="1" size="2" who="Marc Giger" />
<person posts="1" size="2" who="Jan Schubert" />
<person posts="1" size="2" who="Andreas Happe" />
<person posts="1" size="2" who="Darren Williams" />
<person posts="1" size="2" who="Chris Smith" />
<person posts="1" size="2" who="(rintek)" />
<person posts="1" size="2" who="Boris Reisig" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Dani=EBl_Mantione?=" />
<person posts="1" size="2" who="Gerrit Huizenga" />
<person posts="1" size="2" who="&quot;Svetoslav Slavtchev&quot;" />
<person posts="1" size="2" who="&quot;Tushar Telichari&quot;" />
<person posts="1" size="2" who="id ol" />
<person posts="1" size="2" who="Wojciech 'Sas' Cieciwa" />
<person posts="1" size="2" who="Ivo Palli" />
<person posts="1" size="2" who="&quot;Vitezslav Samel&quot;" />
<person posts="1" size="2" who="Mark Hahn" />
<person posts="1" size="2" who="Ernst Herzberg" />
<person posts="1" size="2" who="herft" />
<person posts="1" size="2" who="(haiquy)" />
<person posts="1" size="2" who="Theewara Vorakosit" />
<person posts="1" size="1" who="&quot;BF&quot;" />
<person posts="1" size="1" who=" (Carsten Jacobi)" />
<person posts="1" size="1" who="(aaaaaa)" />
<person posts="1" size="1" who="(mark)" />

</stats>

<section
  title="Linux 2.6.0-test6 Released"
  subject="Linux 2.6.0-test6"
  posts="143"
  startdate="27 Sep 2003 17:27:35 -0800"
  enddate="12 Oct 2003 03:41:19 -0800"
>
<topic>I2C</topic>
<topic>POSIX</topic>
<topic>Profiling</topic>
<topic>Sound</topic>
<topic>USB</topic>
<topic>Virtual Memory</topic>

<mention>Sam Ravnborg</mention>
<mention>Ulrich Drepper</mention>
<mention>Jamie Lokier</mention>
<mention>Andrew Morton</mention>
<mention>Bernardo Innocenti</mention>

<p>Linus Torvalds put out 2.6.0-test6, saying:</p>

<quote who="Linus Torvalds">

<p>Ok, too long between test5 and test6 again, so the patch is pretty big.
Lots of driver updates and architectures fixed, but also lots of merges from
Andrew Morton. Most notably perhaps Con's scheduler changes that have been
discussed extensively and made it into the -mm tree for testing.</p>

<p>This also finally gets one of the last "must-fix" things for 2.6.0: the
extended 32-bit dev_t support. Courtesy of Al Viro (with a lot of prodding
and input over the years from Andries).</p>

<p>arm, s390, ia64, x86-64, and ppc64 updates. USB, pcmcia and i2c stuff. And
a fair amount of janitorial.</p>

</quote>

<p>Regarding his scheduler patches, Con Kolivas replied:</p>

<quote who="Con Kolivas">

<p>For those who are trying this for the first time, please note that the
scheduler has been tuned to tell the difference between tasks of the _same_
nice level. This means do NOT renice X or it will make audio skip unless you
also renice your audio application by the same amount. Lots of distributions
have done this for the old 2.4 scheduler which could not treat equal "nice"
levels as differently as the new scheduler does and 2.6 shouldn't need
special treatment.</p>

<p>So for testing note the following points:</p>

<p>Make sure X is NOT reniced to -10 as many distributions are doing.
Some shells spawn processes at nice +5 by default and this will make audio
apps suffer.</p>

<p>Make sure your hard disk, graphics card and audio card are performing
at equal standard to your 2.4 kernel (ie dma is working, graphics is fully
accelerated etc).  before commenting on audio performance.</p>

</quote>

<p>Elsewhere, Roger Luethi remarked:</p>

<quote who="Roger Luethi">

<p>With test6, keyboard repeat takes very noticably longer to kick in after
X has been started (for both X and console). In test5, starting X makes
no difference.</p>

<p>Also, if you move your test5 .config forward and lose sound, you may find
that you now have to enable gameport in input devices to be able to select
(and thus, compile) your sound card driver.</p>

<p>On the up side, the scheduler changes make the infamous xmms skips go away
(for my purposes).</p>

</quote>

<p>Vojtech Pavlik identified the keyboard slowdown as a bug in the repeater
code, and posted a patch to fix it. Someone replied, saying that this made
the behavior more like recent 2.4 kernels, instead of recent 2.6 kernels,
and Vojtech explained, <quote who="Vojtech Pavlik">This is because it is
the same as on the latest 2.4 kernel. 2.6 used software autorepeat up to
test6. Now, because of hardware bugs, it was necessary to switch back to
hardware autorepeat, like 2.4 uses.</quote></p>

<p>Elsewhere, Geert Uytterhoeven noticed that a changelog entry by
Bernardo Innocenti referred to a "GCC 3.3.x/3.4 compatiblity fix in
include/linux/init.h". Geert reported, <quote who="Geert Uytterhoeven">This
change breaks 2.95 for some source files, because &lt;linux/init.h&gt;
doesn't include &lt;linux/compiler.h&gt;. Do you want to have the missing
include added to &lt;linux/init.h&gt;, or to the individual source files that
need it?</quote> Russell King confirmed that the change broke GCC 3.2.2 and
3.3 as well. Linus said:</p>

<quote who="Linus Torvalds">

<p>Interesting. I'm pretty sure I did a "make allyesconfig" just before the
test6 release, so apparently x86 includes it indirectly through some path,
and so it only shows up on m68k and arm?</p>

<p>This, btw, is a pretty common thing. I wonder what we could do to make
sure that different architectures wouldn't have so different include file
structures. It's happened _way_ too often.</p>

</quote>

<p>Russell King replied, <quote who="Russell King">The two files that it
showed up in on ARM are fairly simple in nature and don't include may headers.
Making the ARM include structure identical to x86 wouldn't have removed the
problem from ARM.</quote> And Geert added, <quote who="Geert Uytterhoeven">Same
for m68k. The offender was a m68k-specific file (arch/m68k/sun3/sbus.c),
which just included &lt;linux/types.h&gt; and &lt;linux/init.h&gt;, and
uses subsys_initcall().</quote></p>

<p>Replying to Linus' post, Sam Ravnborg suggested requiring the most used
header files to include all the headers needed for their own compilation. This
would have the benefit of consistency, even if it was overkill in most
cases. Linus thought this was fine, saying, <quote who="Linus Torvalds">sure,
we could just require that the header files compile cleanly, and for
extra points verify that the end result is an empty object file (ie no bad
declarations anywhere..).</quote> His one concern was whether all versions
of GCC would optimize out redundant header includes; but Jamie Lokier said
this had been standard with GCC for at least a decade.</p>

<p>Elsewhere, Mikael Pettersson reported:</p>

<quote who="Mikael Pettersson">

<p>Linus' 2.6.0-test6 announcement doesn't seem to mention the fact that
2.6.0-test5-bk9 fundamentally changed the semantics of /proc/self and the
/proc/&lt;pid&gt; name space. These used to map to actual (kernel) tasks,
now they map to what I assume are Posixly-correct processes (groups of
tasks). In particular, /proc/self is no longer an alias for `current'.</p>

<p>I don't actually disagree with the change, but it took me by surprise
since neither the 2.6.0-test6 annoucement nor the diff between the t5-bk8
and t5-bk9 logs seem to mention it.</p>

<p>(It broke the perfctr driver, but I'm handling that by making an already
planned API switch now instead of later.)</p>

</quote>

<p>Linus was somewhat taken aback by this report, saying, <quote who="Linus
Torvalds">the semantics weren't _supposed_ to change. The new semantics
were meant to be a superset of the old behaviour, with just the added
"task" subdirectory that lists the actual threads.  However, you're right
that "/proc/self" should likely point into the _thread_, and not into the
task. But it's debatable.</quote> He asked Albert D. Cahalan (who wrote that
code) what he thought about it; and Albert replied, <quote who="Albert D.
Cahalan">That seems likely to break other stuff, as new-style threads become
more common. Right now, many tools are unaware of new-style threads. Pointing
at the tgid directory (POSIX PID directory) lets tools ignore threads.</quote>
He went on:</p>

<quote who="Albert D. Cahalan">

<p>This is an interesting problem for sure. The link was pointing to a
directory that didn't get listed, except that CLONE_THREAD wasn't exactly a
popular feature yet.  So it was very seldom that the distinction mattered.</p>

<p>Currently, I rely on checking for /proc/self/task to see if threads can
be examined. Like this:</p>

<p>task_dir_missing = stat("/proc/self/task", &amp;sbuf);</p>

<p>That wouldn't work if /proc/self pointed at the task.</p>

<p>It certainly seems to me that the intent of /proc/self is to point to a
"process", which is a tgid in kernel terms.  Back in the 2.4.xx days, that
was a pid in kernel terms.  Now that we have CLONE_THREAD and the tgid,
a "process" is represented by the tgid. Pointing to the tgid matches what
other OSes do.</p>

<p>I think there is something clearly defective about having the /proc/self
link point to a hidden directory. It could be pointed at /proc/42/task/58
and such I guess, but I think tools could break as new-style threads begin
to get used in the real world.</p>

</quote>

<p>A lively technical debate sprang up, mainly between Albert and Ulrich
Drepper, and at one point Robert White remarked, <quote who="Robert White">I
can say that (virtually) any programmer who does a lot of threads work is going
to presume that he may pass file handles between threads safely.  IMHO it would
be exceptionally bad to break this assumption.</quote> Linus explained:</p>

<quote who="Linus Torvalds">

<p>It's true that if you use the pthreads model, you'll pass fd's between
threads freely.</p>

<p>But there are lots of other valid thread usages. Many of the original
uses of Linux threading were for special-case apps which used the clone()
interface directly. Some were games, where the native threading stuff was
doing things like sound etc in the background.</p>

<p>And when you have _that_ kind of model (with assymetric specialized
threads), it makes perfect sense for the threads to have independent file
descriptors.</p>

</quote>

<p>Robert had added, <quote who="Robert White">At the purist level, when I pass
an abstraction (data structure etc) around between my threads, having done my
due-diligence WRT locking and such, I expect that when the abstraction gets
there it will still be valid.</quote> And in his same reply, Linus said:</p>

<quote who="Linus Torvalds">

<p>And that is what you get with pthreads.</p>

<p>But the native Linux threading has never been pthreads. It's been about
a much more generic thing, where the user is in control of what he does.</p>

<p>And that, btw, implies that thread nazis that only use pthreads do _not_
get to determine what the rest of the world does.</p>

</quote>

<p>A couple posts down the line, Linus added:</p>

<quote who="Linus Torvalds">

<p>The reason people use threads is that sharing the VM space has real
advantages: it makes context switching much cheaper (fewer hw resources
in the form of TLB usages) and it allows for much faster synchronization
through a shared address space.</p>

<p>But the same isn't true of file descriptors or a lot of other software-
level abstractions. There are no inherent advantages to sharing, and in fact
sharing just gives more opportunity for race conditions, bad interaction
etc.</p>

<p>For example, one reason _not_ to share is that the subthread may want to
be as invisible to the "main thread" as possible. That's just good programming
practice - trying to isolate and encapsulate as much data as possible.</p>

<p>The same way you shouldn't make all your variables global, you shouldn't
make all your data structures global unless you have a reason.</p>

</quote>

<p>At one point Robert asked, <quote who="Robert White">If all the CLONE_THREAD
members of a process (automatically) have the same signal handling code/context
but not the same list of file descriptors, what happens when a file descriptor
posts SIGPIPE or SIGIO (etc.) to a process?</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>You have to explicitly _ask_ for SIGIO. If you do so, and you don't share
file descriptors, that's _your_ problem.</p>

<p>But it does indeed have perfectly valid semantics - the signal may well
just wake up a thread: and in fact, as most IO is illegal in signal handler
context anyway, it usually has to.</p>

<p>Clearly, if you have per-thread file descriptors, you have to keep track
of which thread is doing what.</p>

</quote>

</section>

<section
  title="Linksys And The GPL: The Saga Continues"
  subject="Re: Linksys/Cisco GPL Violations"
  posts="16"
  startdate="06 Oct 2003 00:29:05 -0800"
  enddate="13 Oct 2003 01:40:30 -0800"
>
<topic>FS: ramfs</topic>
<topic>Networking</topic>
<topic>Patents</topic>

<p>Continuing from <kcref subject="Linksys WRT54G: Part 2" startdate="28 Sep 2003 15:14:24 -0800"/>, David Woodhouse responded to the ongoing "negotiations"
with Linksys and Cisco:</p>

<quote who="David Woodhouse">

<p>I fail to comprehend. In the United Kingdom, Linksys-Cisco B.V. are
committing a criminal offence under the provisions of Section 107(1) of the
Copyright, Designs and Patents Act 1988, by knowingly distributing software
without the licence of the copyright owner.</p>

<p>Even if the source were to appear on their web site today, their packaging
remains a problem since it contains neither said source nor a written offer
to provide it. In order to comply, they _must_ recall this product and amend
the packaging. So even if they are already working on putting the source on
their web site, they still need to recall the product -- and should already
have done so.</p>

<p>Once they have withdrawn these products from the market and ceased to
commit this criminal offence, _then_ there is scope for negotiation regarding
the ways in which they can re-release the products.</p>

<p>Until then, I see none. By continuing to unlawfully sell this product,
Cisco are clearly demonstrating that they are not acting in good faith.</p>

<p>I would like to know if this is also a criminal matter in the United States,
and if you have also discussed this with the appropriate authorities, rather
than only with Linksys/Cisco?</p>

<p>I would also like to know if in the US, as in the UK, it is also an offence
for the _retailers_ and _distributors_ of these products to continue to sell
them after being informed of the problem. And have they each been informed in
a manner which allows it to be proven in a criminal court that they had 'reason
to believe' (to use the phrase from the 1988 Act) that there was a problem?</p>

</quote>

<p>Florian Schirmer replied:</p>

<quote who="Florian Schirmer">

<p>good news. Broadcom/Linksys finally decided to provide all sources. I
haven't checked everything but it looks like everything is there. Don't
know if they did it by accident but they even donated more ... including the
bootloader, ethernet driver and lots of other non-gpl'ed stuff. Interesting
change of attitude. I'm sure one day i'll ask them for the source of
the (modified) toolchain which they distribute binary only inside this
package... but for now i'm happy :-)</p>

<p>Thanks for all the people that supported us. Thanks Broadcom/Linksys for
finally come to the conclusion that working together with the community is
much more effective than working against us. Thanks!</p>

</quote>

<p>James Stevenson and others asked for a URL to the code, and Sasa Ostrouska
said:</p>

<quote who="Sasa Ostrouska">

<p>This is the link</p>

<p><a
href="http://linksys.com/support/gpl.asp">http://linksys.com/support/gpl.asp</a></p>

<p>Download the wrt54g.tar.gz  it is 37MB but I have not find anything
interesting in it. Maybe I have not looked well.</p>

</quote>

<p>Florian suggested looking into the WAP54G, WAP54AG or WRT54AG files,
and Luite Stegeman said:</p>

<quote who="Luite Stegeman">

<p>There seems to be much more in the package, more developer tools, source
code for the broadcom reference design etc. Good for the linksys router
hackers, but unfortunately there is still no source code for the driver.</p>

<p>I think the driver files are in /release/src/wl. This directory contains
only object files, no source code. The wl driver directory in the kernel tree
( release/src/linux/linux/drivers/net/wl ) is empty.</p>

<p>I've checked the WAP54G, WAP55AG and WRT55AG archives and none of these
contain the source code for the driver.</p>

</quote>

<p>Elsewhere, David also confirmed that he could find only object files for
the wireless driver, not source code. Florian replied, <quote who="Florian
Schirmer">The ethernet and wireless driver where never linked into the
kernel. So it should be okay if they only distribute the module. They decided
to provide object code. Which is far better than a linked the module.</quote>
... <quote who="Florian Schirmer">The main Linksys case was about the GPL
violation by linking stuff into the kernel. _That_ is resolved now. The
wireless driver is a completely different story. IMHO.</quote> David
replied:</p>

<quote who="David Woodhouse">

<p>That is true, according to the GPL, _only_ if the modules are
distributed as separate works. If they are part of a collective work
which is based on the kernel (note, not a _derived_ work but a
_collective_ work) then they must be released under the terms of the
GPL.</p>

<p>This is a _different_ issue to the question of whether a module is
indeed a derived work, and it's _far_ more clear-cut.</p>

<p>Ask yourself the following questions:</p>

<p>

<ol>

<li>

<p>The wireless and Ethernet driver modules are distributed within
   a cramfs file system in a flash image on a chip soldered to the
   board of the device.</p>

<p>   Are they being distributed 'as separate works'?</p>

</li>

<li>

<p>The fundamental mode of operation of these devices is to
   receive network packets from one of the drivers, pass them
   through the Linux kernel routing or bridging code, and then
   back out through another of the network interfaces. All
   three parts of this are indispensable and the product is
   useless without any one part.</p>

<p>

<ol>

<li>Does this form a whole which is a derived work based on the
      Linux kernel?</li>

<li>Does this form a whole which is a collective work?</li>

<li>Is this collective work based, in part, on the Linux kernel?</li>

</ol>

</p>

</li>

<li>Refer back to the facts in question 1. Is this 'mere aggregation
   of a work not based on the [kernel] on a volume of a storage or
   distribution medium'?</li>

</ol>

</p>

<p>Now, having answered those questions, reread the final three paragraphs
of ??2 of the GPL.</p>

</quote>

<p>A couple posts later, he quoted the GPL:</p>

<blockquote>

<p>        These requirements apply to the modified work as a whole. If
        identifiable sections of that work are not derived from the
        Program, and can be reasonably considered independent and
        separate works in themselves, then this License, and its terms,
        do not apply to those sections WHEN YOU DISTRIBUTE THEM AS
        SEPARATE WORKS. BUT WHEN YOU DISTRIBUTE THE SAME SECTIONS AS
        PART OF A WHOLE WHICH IS A WORK BASED ON THE PROGRAM, THE
        DISTRIBUTION OF THE WHOLE MUST BE ON THE TERMS OF THIS LICENSE,
        whose permissions for other licensees extend to the entire
        whole, and thus to each and every part regardless of who wrote
        it.</p>

<p>        Thus, it is not the intent of this section to claim rights or
        contest your rights to work written entirely by you; rather, the
        intent is to exercise the right to control the distribution of
        derivative OR COLLECTIVE works based on the Program.</p>

</blockquote>

</section>

<section
  title="Status Of RelayFS"
  subject="[PATCH][RFC] relayfs (1/4) (Documentation)"
  posts="15"
  startdate="07 Oct 2003 12:59:31 -0800"
  enddate="15 Oct 2003 08:56:06 -0800"
>

<mention>Stephen Hemminger</mention>
<mention>Hubertus Franke</mention>
<mention>James Morris</mention>

<p>Tom Zanussi announced:</p>

<quote who="Tom Zanussi">

<p>This 4-part patch contains code for an interim version of relayfs (see
Documentation below for a description of relayfs).  This version still
needs more testing and cleanup, but it contains most of the API
changes prompted by user comments, which has resulted in a somewhat
simpler API as well as some code simplification.</p>

<p>Here's a summary of the major changes:</p>

<p>

<ul>

<li>added support for poll()</li>
<li>moved some of what once was exposed in the API into an opaque reader
  object, which also simplifies relay_read() (see Reader objects in
  Documentation)</li>
<li>removed buffers_full() callback (the function this performed is now
  specified as a channel attribute (see RELAY_MODE_CONTINUOUS in
  Documentation)</li>
<li>removed relay_resume() (clients need to check return value of
  relay_write() to figure out if a write failed)</li>
<li>removed offsets_changed() callback (now hidden in reader)</li>
<li>added relay_reset() which some kernel clients sometimes may need</li>
<li>changed locking scheme to use n-buffers instead of only 2 (which
  simplifies relay_open() a bit)</li>
<li>VFS readers made auto-consuming if a relay file is opened using
  O_EXCL (and a hopefully better description of what 'consuming' means
  in Documentation)</li>
<li>various bug fixes</li>

</ul>

</p>

<p>Still todo -</p>

<p>

<ul>

<li>resizing cleanup</li>
<li>resizing of mmapped buffers</li>
<li>code to allow channels to start out with static buffers</li>

</ul>

</p>

<p>Thanks to Stephen Hemminger, Marco Cova, and Hubertus Franke for
contributing patches and pointing out problems, and to Hubertus Franke for
a lot of good ideas and for persevering through a couple of limitations
(now overcome) in the previous versions that caused some headaches when
trying to use relayfs from deep within the scheduler.</p>

</quote>

<p>James Morris asked if the same functionality wasn't provided with Netlink
sockets, and Tom replied:</p>

<quote who="Tom Zanussi">

<p>One thing you can do with relayfs files is mmap() them.  That combined
with the kernel-side API, designed to make writing data into buffers and
transferring it as large blocks to user-space efficient and flexible,
allows for high-speed, high-volume applications which I'm not sure Netlink
was designed for.</p>

<p>relayfs can also be used in 'packet' mode, using read(2) to read data as it
becomes available, so it can be used for low-speed, low-volume applications
as well.  Also, some people might find the file-based approach more natural
to deal with.  Personal preference, I suppose.</p>

</quote>

<p>James said it was possible to make Netlink sockets mmappable, and Karim
Yaghmour replied:</p>

<quote who="Karim Yaghmour">

<p>So would you consider running printk on Netlink sockets? Do you think
Netlink could accomodate something as intensive as tracing? etc.</p>

<p>While I am aware that a lot of people are using Netlink sockets to exchange
data from the kernel to user-space, I don't think Netlink sockets can handle
the type of throughput relayfs can handle. Netlink and other communication
mechanisms (pipes, shared memory pages, etc.) were not designed to handle
the type of throughput relayfs was designed for. If nothing else, the use
of netlink also drags with it lots of networking code (netlink_sendmsg->
alloc_skb->kmalloc->etc. and then memcpy) With relayfs, you get direct access
to the buffer: relay_write->relay_write_direct (which is actually a macro
for memcpy()).</p>

<p>So yes, as you say, "It should be possible to make Netlink sockets
mmapable", but in that case you might as well port the netlink sockets API
to relayfs and you'll probably get better results.</p>

</quote>

<p>David S. Miller came in at this point, saying:</p>

<quote who="David S. Miller">

<p>Look, netlink is used on routers to transfer hundreds of thousands of
routing table entries in one fell swoop between a user process and the kernel
every time the next hop Cisco has a BGP routing flap.</p>

<p>If you must have "enterprise wide client server" performance, we can add
mmap() support to netlink sockets just like AF_PACKET sockets support such
a thing.  But I _really_ doubt you need this and unlike netlink sockets
relayfs has no queueing model, whereas not only does netlink have one it's
been tested in real life.</p>

<p>You guys are really out of your mind if you don't just take the netlink
printk thing I did months ago and just run with it.  When someone first told
showed me this relayfs thing, I nearly passed out in disbelief that people
are still even considering non-netlink solutions.</p>

</quote>

</section>

<section
  title="Status Of kexec"
  subject="kexec update (2.6.0-test7)"
  posts="9"
  startdate="08 Oct 2003 16:22:35 -0800"
  enddate="11 Oct 2003 08:49:10 -0800"
>
<topic>Kexec</topic>

<p>Randy Dunlap announced:</p>

<quote who="Randy Dunlap">

<p>I've updated the kexec patch for 2.6.0-test7.  It can be found at <a
href="http://developer.osdl.org/rddunlap/kexec/2.6.0-test7/kexec-260t7.patch">http://developer.osdl.org/rddunlap/kexec/2.6.0-test7/kexec-260t7.patch</a></p>

<p>A slightly different version of it can
also be found in the -osdl patchset at <a
href="http://developer.osdl.org/shemminger/patches/2.6/2.6.0-test7/">http://developer.osdl.org/shemminger/patches/2.6/2.6.0-test7/</a></p>

<p>The userspace tools are at <a
href="http://www.xmission.com/~ebiederm/files/kexec/">http://www.xmission.com/~ebiederm/files/kexec/</a>.
You'll need to update the kexec-syscall.c file for the correct kexec syscall
number (274).  I intend to try to automate this (somehow).</p>

</quote>

<p>Cherry George Mathew asked, <quote who="Cherry George Mathew">Is there
a consensus about what the syscall number will finally be ? We've jumped
from 256 to 274 over the 2.5.x+  series kernels. Or is it the law the Jungle
?</quote> Eric W. Biederman replied, <quote who="Eric W. Biederman">So far
the law of the jungle.  Regardless of the rest it looks like it is time to
submit a place keeping patch.</quote> Bill Davidsen asked, <quote who="Bill
Davidsen">Forgive me if the politics of this have changed, but will a place
keeping patch be accepted for a feature which has not?</quote> Randy said
placekeepers had already been accepted for other features like vserver,
so there was every reason to think a kexec placeholder would be accepted as
well. But he added, <quote who="Randy Dunlap">But I don't think that it's quite
time for a placeholder syscall number (IMO of course).  Eric can submit one
though.</quote> Bill said that he'd really meant, wasn't it too late in the
game to see this feature in 2.6, and so wouldn't Linus reject it until 2.7?
Randy replied, <quote who="Randy Dunlap">Unless 2.6 is much different from
past kernel versions, new features can be added after 2.6.0-final is out,
usually if they are well-contained, like a new driver or filesystem.  I don't
see this as a big hurdle.</quote></p>

</section>

<section
  title="Linux 2.4.23-pre7 Released"
  subject="Linux 2.4.23-pre7"
  posts="9"
  startdate="09 Oct 2003 16:52:15 -0800"
  enddate="11 Oct 2003 07:53:04 -0800"
>
<topic>USB</topic>

<p>Marcelo Tosatti announced, <quote who="Marcelo Tosatti">Here goes -pre7...
It adds the laptop "mode" functionality already present in recent SuSE/RH
kernels, adds the megaraid2 (improved, faster, but not so extensively tested
as the old megaraid) driver, adds BIOS EDD (enhanced disk detection) support,
contains a USB update, network update, amongst other fixes.  I hope we enter
-rc stage in more or less one month.</quote></p>

</section>

<section
  title="Possible GPL Violation By EasyRDP"
  subject="Linux kernel GPL violation (EasyRDP)"
  posts="4"
  startdate="10 Oct 2003 10:48:54 -0800"
  enddate="12 Oct 2003 12:30:24 -0800"
>

<p>Ivo Palli reported:</p>

<quote who="Ivo Palli">

<p>I ran into a product called EasyRDP that uses Linux. However they license
their product under a very restrictive license that completely violates the
GPL license.</p>

<p>A complete description and dissection of
the product can be found on my website: <a
href="http://www.palli.nl/~ivo/rdp/">http://www.palli.nl/~ivo/rdp/</a></p>

</quote>

<p>Lars Marowsky-Bree replied, <quote who="Lars Marowsky-Bree">You are
right technically, but hey, you informed them of a copyright violation which
may mean a lot of internal hassles. Without giving them any slack because
what they are doing _IS_ stupid, calm down a little. 1 day is a hardly a
timeframe in which they can respond adequately, in particular at the end of
the week. You should have allowed them a week or so...</quote> Pavel Machek
replied, <quote who="Pavel Machek">Well, it looks to me like 1 day is 1
day more than they deserve. All they have seems to be modified rdesktop;
I do believe that wireless routers are honest mistake, EasyRDP looks *way*
worse.</quote></p>

</section>

<section
  title="New VST &quot;Variable Scheduling Timeouts&quot; Code"
  subject="[ANNOUNCE] VST (tick elimination) is now available"
  posts="3"
  startdate="10 Oct 2003 14:19:19 -0800"
  enddate="14 Oct 2003 04:41:56 -0800"
>
<topic>FS: sysfs</topic>
<topic>SMP</topic>

<p>George Anzinger announced:</p>

<quote who="George Anzinger">

<p>The first release of the VST package is now available.  VST or Variable
Scheduling Timeouts (or if you prefer, Variable Sleep Times) contains code
that, from the idle task, scans the timer list and, if no timer is near,
skips the timer interrupts that would otherwise be generated.  The patch
name is hrtimers-vst-*</p>

<p>The net result is that a quite system will use far less power as it does
not need to wake up ever 1/HZ timer tick.</p>

<p>This patch depends on the high-res-timers patch version hrtimers-2.4.20-3.0
which must be applied first.</p>

<p>Both of these patchs are on sourceforge at:</p>

<p><a
href="http://sourceforge.net/projects/high-res-timers/">http://sourceforge.net/projects/high-res-timers/</a></p>

<p>Some details:</p>

<p>There is a proc directory (/proc/sys/kernel/vst/) dedicated to vst controls.
Root may turn VST on or off here with "echo "0">enable.  There is also a
log option (danger Will Robinson) which, if turned on causes " x" where x
is the number of ticks being skipped, to be printed on the log console.
This will quickly swamp the console, but it does show things happening
during quite times and no such output when the system is busy.  It is
also possible to set the threshold here.  This is in units of milliseconds
and is the time the next timer must away from now to trigger a VST sleep.
Currently this is set rather large considering that we can sleep only 50ms,
but you can change it here.</p>

<p>The file .../include/linux/vst.h contains details on the arch
interface.  The core code is all in .../kernel/timer.c with enabling bits
in various places.  The arch code for the x86 version is all located in
.../include/asm-i386/hrtime.h</p>

<p>This is, of course, the first cut at this stuff.  There is a lot left
to do....</p>

<p>Things left to do:</p>

<p>Currently the PIT is used to wake the system for the next timer.  If that
timer is further away than about 50ms, the PITs limitations force us to use
the max PIT time of about 50ms.  We plan to use the rtc hardware to do this
wake up, thus eliminating this restriction.</p>

<p>SMP imposes further restrictions and, as it currently stands, may cause
late timers in some cases.  When we port to the 2.6 kernel this will change,
for the better, we hope :)  This will also allow us to use the APIC timers
in these systems to do the wake up, thus allowing longer sleep times.</p>

</quote>

</section>

<section
  title="Job Postings on linux-kernel"
  subject="kernel developers:two openings"
  posts="14"
  startdate="10 Oct 2003 14:55:09 -0800"
  enddate="14 Oct 2003 01:23:03 -0800"
>
<topic>Spam</topic>

<p>Hotjobs posted some job opportunities on the list, and David S. Miller
(list admin) asked them not to do this, as it was against list policy. When
they posted another job opportunity, David said more strongly:</p>

<quote who="David S. Miller">

<p>By spamming job opennings to our kernel development lists where such things
are not considered allowed, you fucknuts are basically guarenteeing that no
kernel programmer with a brain is going to respect your company enough to
apply for these jobs.</p>

<p>Please stop posting this crap now.</p>

</quote>

<p>Stephen Satchell said that job postings might well be welcome in the current
economic climate; and that maybe David should let them go through. David
replied:</p>

<quote who="David S. Miller">

<p>Posting job offerings here has always been and will always be verboten
here on these lists.  And in particular technical people who join this list
get a very bad taste in their mouth when someone advertises here be it for
jobs or products.</p>

<p>If there is no good place to look for Linux kernel development jobs,
that isn't my problem.  What is my problem is to enforce the rules of these
lists at vger.kernel.org.</p>

</quote>

</section>

<section
  title="BitKeeper Statistics"
  subject="Silly BK statistics"
  posts="4"
  startdate="13 Oct 2003 18:55:51 -0800"
  enddate="14 Oct 2003 01:45:47 -0800"
>
<topic>Version Control</topic>

<p>Larry McVoy said:</p>

<quote who="Larry McVoy">

<p>The BK openlogging tree, which has all changesets ever made by anyone in
the Linux kernel, was getting big.  Really big.  The nodes in the graph have
internal "serial numbers" which are currently 16 bits, i.e., there can't be
more than 64K nodes in the graph.</p>

<p>I sent mail to some of my engineers this morning saying "hey, I suspect the
Linux openlogging tree is about overflow, we need to go to 32 bit ser_t's."
I had no idea how close we were, I just knew it was a problem we needed
to solve.</p>

<p>I just got mail from one of the team which reads: "With 199 serials shy
of overflowing , the 32 bit version is now installed".</p>

<p>What that means is that in about a year, you've managed to create 65,337
changesets.  That's 179 per day, 7.4/hour, 24x7.  You guys are busy.</p>

<p>To put that in perspective, the most active project on sourceforge today,
Gaim, has 805 commits to its changelog.  Over 3.5 years.  That means you
are changing your source base 284x more often than they are.  And that's
just the BK users, that doesn't count the people not using BK, which are a
substantial fraction.</p>

<p>No matter how you slice it, it is pretty amazing rate of change.  If change
is good, you guys rock, I've never seen anything like it.</p>

</quote>

</section>

<section
  title="New frandom Random Number Generator Module"
  subject="[RFC] frandom - fast random generator module"
  posts="32"
  startdate="16 Oct 2003 00:22:03 -0800"
  enddate="16 Oct 2003 16:34:41 -0800"
>
<topic>Random Number Generation</topic>

<mention>Nick Piggin</mention>

<p>Eli Billauer announced:</p>

<quote who="Eli Billauer">

<p>Frandom is the faster version of the well-known /dev/urandom random number
generator. Not instead of, but rather as a supplement, when pseudorandom
data is needed at high rate. Few tests so far show that frandom is 10-50
times faster than urandom.</p>

<p>The project's home page: <a
href="http://frandom.sourceforge.net">http://frandom.sourceforge.net</a>.</p>

<p>The module works on 2.2, 2.4 and 2.6 kernels. A few straightforward #ifdef's
handle compatability (easy to remove to match common coding style).</p>

<p>Purpose<br />
=======</p>

<p>

<ol>

<li>Frandom is a handy source of bulk random data.</li>
<li>It is *not* intended for encryption and security-related applications.</li>
<li>frandom is intended for (scientific) simulations, wiping the disk,
stress tests on algorithms and so on.</li>
<li>It is more of an /dev/zero than /dev/random</li>

</ol>

</p>

<p>Quality of random numbers<br />
=========================</p>

<p>

<ol>

<li>The module has been tested for random number quality with the
"diehard" set of tests, and passed them all. This indicates that the
bytes are random enough for most scientific purposes.</li>
<li>Additional tests results are welcomed.</li>
<li>The core of frandom is based upon RC4. frandom is exactly RC4, minus
the XOR operation with the data. So if frandom doesn't generate good
random numbers, I would wonder why RC4 is considered safe.</li>
<li>The random generator is seeded with 256 bytes of the kernel's
get_random_bytes() for every file opened on /dev/frandom. This is
equivalent to a 2048-bit random key on RC4.</li>
<li>I don't see frandom fit for crypto purposes, mainly because the
module was naively written. I won't fall off my chair if it turns out to
be crypto-safe, but I wouldn't trust it either. Not yet, anyhow.</li>
<li>Those who read the source and feel that such a simple algorithm
can't create good random: That's exactly the beauty of RC4: It's simple
and it works.</li>

</ol>

</p>

<p>frandom and the linux kernel tree<br />
=================================</p>

<p>

<ol>

<li>Occasionally, people complain that /dev/urandom is too slow, wishing
for something faster.</li>
<li>Other argue that a random generator can be written in user space.</li>
<li>I agree with both. And I use /dev/zero a lot. I know how to write a
zero-generating application in user space.</li>
<li>The module is small: 6kB of source code as a standalone module, and
2.3 kB of kernel memory.</li>

</ol>

</p>

</quote>

<p>Nick Piggin and others felt that there was no compelling reason to put
frandom in the kernel instead of user-space. There was a bit of a debate
over what constituted kernel-worthy features, but nothing conclusive came
out of it.</p>

</section>

<section
  title="New iSCSI Target Implementation"
  subject="[ANNOUNCE] iSCSI target implementation"
  posts="2"
  startdate="16 Oct 2003 05:31:16 -0800"
  enddate="16 Oct 2003 17:49:57 -0800"
>
<topic>Disks: SCSI</topic>
<topic>FS: procfs</topic>
<topic>FS: ramfs</topic>
<topic>FS: sysfs</topic>
<topic>Ioctls</topic>

<p>Roman Zippel announced:</p>

<quote who="Roman Zippel">

<p>I'm proud to announce the first public release of this iSCSI target
implementation. It's already usable, but it doesn't implement everything
yet what is required by the iSCSI spec. The missing parts shouldn't be that
difficult to add (I just didn't need them so far). Other more interesting
parts of the spec (e.g. session recovery) are not implemented because I had
no client to test it with (although recent UNH releases seem to support
this now). It was mostly tested with Cisco iSCSI initiator driver, but
also with with the MS initiator driver. You can download the driver from <a
href="http://www.ardistech.com/iscsi/">http://www.ardistech.com/iscsi/</a>
, the README should have all the information to configure and build the
driver.</p>

<p>This target driver is partly implemented in the kernel, the user space
daemon takes care of session startup, cleanup and discovery and the kernel
module takes care of the iSCSI requests and disk IO. There are a few reasons
to put part of it into the kernel, the main reason is to have direct access
to the page cache, this is also a main difference to other available target
implementations, which don't use the page cache directly. User space has
not that fine grained control (yet) and had to use a lot of threads (the
kernel module currently uses 2 threads per target and 1 per device). Part
of the problem could be solved with async IO, another part is to be able to
control what is in the cache (this is somewhat related to the recent direct
IO discussion). So this also an experiment of what is needed if it should
be ever moved to user space.</p>

<p>Anyway, while it's in the kernel, there are also some interesting issues
for the kernel-user space communication. Right now it's a proc only interface
(no sysfs as it's 2.4 only, no evil ioctl, but someone will kill me for the
macro abuse :) ), but it should be rather easy to replace it with something
else. Perfomance isn't not that important at the moment (but not completely
unimportant, if a lot of information has to be read from the kernel, e.g. at
startup). More important issues are error reporting and event handling,
which could benefit from a better integrated interface. So this driver is
also intended to experiment with a few things, if anyone is interested I
can explain it further.</p>

<p>Further development will depend a bit on the feed back. This is an older
project and we thought about for a while and since we have no immediate
need and not the resources to develop it alone, we decided it would be a
good idea to release it completely under the GPL. So I updated it to the
latest spec and fixed some of the worst embarrasments. If there is enough
interest, the development will continue, but without some help it will be
rather slow. :-)</p>

</quote>

<p>Jeff Garzik didn't like the use of the /proc filesystem as the iSCSI
interface. He said:</p>

<quote who="Jeff Garzik">

<p>Adding to procfs is only slightly less "ewww" than ioctls :)  A dedicated
chrdev would be IMO preferred to procfs.</p>

<p>Al Viro also had even even more interesting suggestion for [zerocopy]
kernel/userspace communication:  ramfs.</p>

</quote>

<p>But no more was said.</p>

</section>

</kc>

