<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<headquote><a href="http://www.tux.org/lkml/">linux-kernel FAQ</a> |
<a href="http://www.tux.org/lkml/#s3-1">subscribe to linux-kernel</a> | <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html">linux-kernel
Archives</a> | <a href="http://www.kernelnotes.org/">kernelnotes.org</a>
| <a href="http://lxr.linux.no/">LxR Kernel Source Browser</a> |
<a href="http://www.memalpha.cx/Linux/Kernel/">All Kernels</a> | <a
href="http://perso.wanadoo.es/xose/linux/linux_ports.html">Kernel
Ports</a> | <a
href="http://jungla.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html">Kernel
Docs</a> | <a href="http://members.aa.net/~swear/pedia/kernel.html">Gary's
Encyclopedia: Linux Kernel</a> | <a
href="http://kernelnewbies.org/">#kernelnewbies</a></headquote>

<issue num="98" date="18 Dec 2000 00:00:00 -0800" />

<intro>

<p>Many thanks go to Martin Josefsson and the rest of the folks on <a
href="http://kernelnewbies.org/">#kernelnewbies</a> for getting me out of
a jam. I was dropped from linux-kernel for bounces (long story), and by the
time I could resubscribe I'd already lost a significant chunk of material. I
went to #kernelnewbies and lo-and-behold, several folks offered help and
advice. Martin zipped up a large archive and sent it to me. *whew*! Thanks,
Martin and folks!</p>

</intro>

<stats posts="1064" size="4680" contrib="368" multiples="156" lastweek="129">

<person posts="53" size="136" who="Alan Cox " />
<person posts="40" size="163" who="Tigran Aivazian " />
<person posts="40" size="133" who="Alexander Viro " />
<person posts="31" size="132" who="Linus Torvalds " />
<person posts="23" size="68" who="Peter Samuelson " />
<person posts="21" size="90" who="&quot;Jeff V. Merkey&quot; " />
<person posts="19" size="58" who="Andre Hedrick " />
<person posts="18" size="98" who="Andrew Morton " />
<person posts="16" size="65" who="&quot;Mohammad A. Haque&quot; " />
<person posts="15" size="54" who="Keith Owens " />
<person posts="12" size="55" who="Miles Lane " />
<person posts="12" size="49" who="Rasmus Andersen " />
<person posts="12" size="45" who="Russell King " />
<person posts="12" size="43" who="&quot;H. Peter Anvin&quot; " />
<person posts="11" size="37" who="Andi Kleen " />
<person posts="10" size="50" who="" />
<person posts="10" size="35" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="10" size="29" who="Pavel Machek " />
<person posts="9" size="36" who="&quot;Richard B. Johnson&quot; " />
<person posts="9" size="31" who="Jens Axboe " />
<person posts="9" size="29" who="Andrea Arcangeli " />
<person posts="8" size="42" who="Pavel Roskin " />
<person posts="8" size="22" who="&quot;David S. Miller&quot; " />
<person posts="7" size="38" who="Norbert Breun " />
<person posts="7" size="38" who="Phillip Ezolt " />
<person posts="7" size="29" who="&quot;Petr Vandrovec&quot; " />
<person posts="7" size="25" who="Ivan Kokshaysky " />
<person posts="7" size="23" who="Steven Cole " />
<person posts="7" size="23" who="&quot;Maciej W. Rozycki&quot; " />
<person posts="7" size="22" who="Jan Niehusmann " />
<person posts="7" size="21" who="Chris Wedgwood " />
<person posts="7" size="19" who="Jeff Garzik " />
<person posts="6" size="192" who="Patrick van de Lageweg " />
<person posts="6" size="49" who="Roger Larsson " />
<person posts="6" size="34" who="Gerard Sharp " />
<person posts="6" size="33" who="Wakko Warner " />
<person posts="6" size="32" who="&quot;Adam J. Richter&quot; " />
<person posts="6" size="27" who="&quot;Mike A. Harris&quot; " />
<person posts="6" size="22" who="Szabolcs Szakacsits " />
<person posts="6" size="19" who="Ivan Passos " />
<person posts="6" size="18" who="Andries Brouwer " />
<person posts="6" size="17" who="David Woodhouse " />
<person posts="6" size="14" who="" />
<person posts="5" size="46" who="&quot;Eddy&quot; " />
<person posts="5" size="25" who="Neil Brown " />
<person posts="5" size="17" who="Jeff Garzik " />
<person posts="5" size="16" who="&quot;Guennadi Liakhovetski&quot; " />
<person posts="5" size="15" who="Frank van Maarseveen " />
<person posts="5" size="15" who="&quot;Robert M. Love&quot; " />
<person posts="5" size="14" who="Rik van Riel " />
<person posts="5" size="14" who="Taco IJsselmuiden " />
<person posts="5" size="12" who="Dan Hollis " />
<person posts="5" size="12" who="&quot;Steven N. Hirsch&quot; " />
<person posts="4" size="29" who="Russell Cattelan " />
<person posts="4" size="27" who="Tigran Aivazian " />
<person posts="4" size="26" who="Pete Zaitcev " />
<person posts="4" size="19" who="&quot;Dunlap, Randy&quot; " />
<person posts="4" size="16" who="Donald Becker " />
<person posts="4" size="15" who="Kai Germaschewski " />
<person posts="4" size="14" who="David Ford " />
<person posts="4" size="13" who="Roberto Fichera " />
<person posts="4" size="13" who="&quot;Udo A. Steinberg&quot; " />
<person posts="4" size="12" who="James Lamanna " />
<person posts="4" size="12" who="Rusty Russell " />
<person posts="4" size="12" who="&quot;David D.W. Downey&quot; " />
<person posts="4" size="12" who="Matthew Jacob " />
<person posts="4" size="11" who="Guennadi Liakhovetski " />
<person posts="3" size="42" who="Lukasz Trabinski " />
<person posts="3" size="39" who="Brian Kress " />
<person posts="3" size="33" who="Michael Rothwell " />
<person posts="3" size="32" who="Petru Paler " />
<person posts="3" size="27" who="Roger Crandell " />
<person posts="3" size="22" who="Urban Widmark " />
<person posts="3" size="20" who="Erik Mouw " />
<person posts="3" size="19" who="Olaf Kirch " />
<person posts="3" size="15" who="Peter Berger " />
<person posts="3" size="15" who="&quot;H. Peter Anvin&quot; " />
<person posts="3" size="15" who="Roberto Ragusa " />
<person posts="3" size="14" who="Jean Tourrilhes " />
<person posts="3" size="13" who="Arnaldo Carvalho de Melo " />
<person posts="3" size="11" who="george anzinger " />
<person posts="3" size="11" who=" (Kevin Buhr)" />
<person posts="3" size="10" who="Mike Dresser " />
<person posts="3" size="10" who=" (Rogier Wolff)" />
<person posts="3" size="10" who="Francois Romieu " />
<person posts="3" size="9" who="" />
<person posts="3" size="9" who="Matthew Kirkwood " />
<person posts="3" size="9" who="Johannes Erdfelt " />
<person posts="3" size="9" who="Steven Cole " />
<person posts="3" size="9" who="&quot;Johan Kullstam&quot; " />
<person posts="3" size="8" who="Reto Baettig " />
<person posts="3" size="8" who="Chad Schwartz " />
<person posts="3" size="8" who="Frank Davis " />
<person posts="3" size="8" who="Horst von Brand " />
<person posts="3" size="8" who="Steve Hill " />
<person posts="3" size="8" who="" />
<person posts="3" size="7" who="&quot;J . A . Magallon&quot; " />
<person posts="3" size="7" who="" />
<person posts="2" size="33" who="&quot;J. Nick Koston&quot; " />
<person posts="2" size="27" who="Petr Vandrovec " />
<person posts="2" size="23" who="=?iso-8859-2?Q?G=E1bor_L=E9n=E1rt?= " />
<person posts="2" size="14" who="Frank Davis " />
<person posts="2" size="13" who="&quot;Boerner, Brian&quot; " />
<person posts="2" size="13" who="&quot;Victor J. Orlikowski&quot; " />
<person posts="2" size="11" who="John Summerfield " />
<person posts="2" size="11" who="Giacomo Catenazzi " />
<person posts="2" size="10" who="f5ibh " />
<person posts="2" size="9" who="Trond Myklebust " />
<person posts="2" size="9" who="&quot;Theodore Y. Ts'o&quot; " />
<person posts="2" size="9" who="&quot;Andrew Morton&quot; " />
<person posts="2" size="9" who="&quot;M.H.VanLeeuwen&quot; " />
<person posts="2" size="9" who="Jay Estabrook " />
<person posts="2" size="8" who="&quot;John Meikle&quot; " />
<person posts="2" size="8" who="Miloslav Trmac " />
<person posts="2" size="8" who="Stefan Pfetzing " />
<person posts="2" size="8" who="&quot;Christopher Friesen&quot; " />
<person posts="2" size="8" who="Dan Kegel " />
<person posts="2" size="8" who="Tom Holroyd " />
<person posts="2" size="8" who="&quot;Ulrich Windl&quot; " />
<person posts="2" size="8" who="Frank de Lange " />
<person posts="2" size="7" who="Mike Galbraith " />
<person posts="2" size="7" who="Benjamin Herrenschmidt " />
<person posts="2" size="7" who="Torben Mathiasen " />
<person posts="2" size="7" who="Clayton Weaver " />
<person posts="2" size="7" who="Mike Kravetz " />
<person posts="2" size="7" who="Peng Dai " />
<person posts="2" size="6" who="Daniel Walton " />
<person posts="2" size="6" who="Roderich Schupp " />
<person posts="2" size="6" who="Jun Sun " />
<person posts="2" size="6" who="Vitaly Luban " />
<person posts="2" size="6" who="Stuart Lynne " />
<person posts="2" size="6" who="Oleg Drokin " />
<person posts="2" size="6" who="Paul Jakma " />
<person posts="2" size="6" who="Jonathan Hudson " />
<person posts="2" size="6" who="&quot;Jon Burgess&quot; " />
<person posts="2" size="6" who="Steven Walter " />
<person posts="2" size="6" who="Philipp Rumpf " />
<person posts="2" size="6" who="Skip Collins " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Bryan Whitehead " />
<person posts="2" size="6" who="David Feuer " />
<person posts="2" size="6" who="Martin Josefsson " />
<person posts="2" size="5" who="Rajeev Bector " />
<person posts="2" size="5" who="Dax Kelson " />
<person posts="2" size="5" who="Stephen Williams " />
<person posts="2" size="5" who="Philip Blundell " />
<person posts="2" size="5" who="root " />
<person posts="2" size="5" who="Florin Andrei " />
<person posts="2" size="5" who="Tobias Ringstrom " />
<person posts="2" size="5" who="Thomas Sailer " />
<person posts="2" size="5" who="Horst von Brand " />
<person posts="2" size="5" who="Ragnar Hojland Espinosa " />
<person posts="2" size="5" who="Chmouel Boudjnah " />
<person posts="2" size="5" who="&quot;Albert D. Cahalan&quot; " />
<person posts="2" size="4" who="&quot;Rajiv Majumdar&quot; " />
<person posts="2" size="4" who="&quot;Garst R. Reese&quot; " />
<person posts="1" size="84" who="Daniel Chemko " />
<person posts="1" size="33" who="Jean-Christian de Rivaz " />
<person posts="1" size="31" who="Tjeerd Mulder " />
<person posts="1" size="28" who="Falk Stern " />
<person posts="1" size="17" who="Nikhil Goel " />
<person posts="1" size="15" who="Fred Feirtag " />
<person posts="1" size="15" who="J Sloan " />
<person posts="1" size="14" who="Giuseppe Guerrini " />
<person posts="1" size="14" who="Christian Gennerat " />
<person posts="1" size="14" who="David Hammerton " />
<person posts="1" size="10" who="Gerhard Esterhuizen " />
<person posts="1" size="10" who="Delaporte =?iso-8859-1?Q?Fr=E9d=E9ric?= " />
<person posts="1" size="10" who="" />
<person posts="1" size="9" who="" />
<person posts="1" size="9" who="&quot;Thomas Jarosch&quot; " />
<person posts="1" size="8" who="Paul Marshall " />
<person posts="1" size="8" who="&quot;Dan Egli&quot; " />
<person posts="1" size="7" who="jschlst " />
<person posts="1" size="7" who=" (Xuan Baldauf)" />
<person posts="1" size="7" who="Panu Matilainen " />
<person posts="1" size="7" who=" (Trond Myklebust)" />
<person posts="1" size="7" who="Edouard Soriano " />
<person posts="1" size="6" who="Franz Sirl " />
<person posts="1" size="6" who="William Taber " />
<person posts="1" size="6" who=" (Alessandro Suardi)" />
<person posts="1" size="6" who="Borislav Deianov " />
<person posts="1" size="6" who="&quot;Timothy A. DeWees&quot; " />
<person posts="1" size="6" who="Joan Bertran " />
<person posts="1" size="6" who=" (Tigran Aivazian)" />
<person posts="1" size="6" who="David =?iso-8859-1?Q?H=E4rdeman?= " />
<person posts="1" size="6" who="&quot;Jean-Francois Nadeau&quot; " />
<person posts="1" size="6" who="&quot;Rodrigo Barbosa (aka morcego)&quot; " />
<person posts="1" size="5" who="Jonathan Morton " />
<person posts="1" size="5" who="Nico. G. " />
<person posts="1" size="5" who=" (Kai Germaschewski)" />
<person posts="1" size="5" who="Randy Dunlap " />
<person posts="1" size="5" who="&quot;Henning P . Schmiedehausen&quot; " />
<person posts="1" size="5" who="&quot;John D. Rowell&quot; " />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who=" (&quot;Ulrich Windl&quot;)" />
<person posts="1" size="5" who=" (&quot;kernel@netravi.net&quot;)" />
<person posts="1" size="5" who="Andrzej Krzysztofowicz " />
<person posts="1" size="5" who="Gary Lawrence Murphy " />
<person posts="1" size="5" who=" (Dilshod Mukhtarov)" />
<person posts="1" size="5" who="Alessandro Suardi " />
<person posts="1" size="4" who="Geert Uytterhoeven " />
<person posts="1" size="4" who=" (Chittari Prasanna Kumar BE)" />
<person posts="1" size="4" who="Till Straumann " />
<person posts="1" size="4" who="Chris Lattner " />
<person posts="1" size="4" who="Johnathan Corgan " />
<person posts="1" size="4" who="Bruce Korb " />
<person posts="1" size="4" who="Simon Huggins " />
<person posts="1" size="4" who="Jesper Dangaard Brouer " />
<person posts="1" size="4" who="Peter Rival " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="&quot;Michael H. Warfield&quot; " />
<person posts="1" size="4" who=" (Anil B. Somayaji)" />
<person posts="1" size="4" who="octave klaba " />
<person posts="1" size="4" who="Daniel Phillips " />
<person posts="1" size="4" who="&quot;Peter Braam&quot; " />
<person posts="1" size="4" who="Peter Blomgren " />
<person posts="1" size="4" who="James A Sutherland " />
<person posts="1" size="4" who=" (Gerard Sharp)" />
<person posts="1" size="4" who="Andrew Reitz " />
<person posts="1" size="4" who="Francois Desloges " />
<person posts="1" size="4" who="Dick Streefland " />
<person posts="1" size="4" who="Kurt Garloff " />
<person posts="1" size="4" who="Martin Mares " />
<person posts="1" size="4" who=" (Greg Parrott)" />
<person posts="1" size="4" who="Marc Lefranc " />
<person posts="1" size="4" who="Johannes Erdfelt " />
<person posts="1" size="4" who="Bastien Nocera " />
<person posts="1" size="4" who=" (Wakko Warner)" />
<person posts="1" size="4" who="&quot;Brian F. G. Bidulock&quot; " />
<person posts="1" size="4" who="Tim Waugh " />
<person posts="1" size="4" who="Juergen Kreileder " />
<person posts="1" size="4" who=" (Andrew Morton)" />
<person posts="1" size="4" who="Vivek Dasgupta " />
<person posts="1" size="4" who=" (Hans-Joachim Baader)" />
<person posts="1" size="3" who="Florian Wunderlich " />
<person posts="1" size="3" who="&quot;Mathiasen, Torben&quot; " />
<person posts="1" size="3" who="&quot;Paul Fulghum&quot; " />
<person posts="1" size="3" who="Anton Blanchard " />
<person posts="1" size="3" who="Ryan Murray " />
<person posts="1" size="3" who="Hugh Dickins " />
<person posts="1" size="3" who="Bogdan Costescu " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="David Riley " />
<person posts="1" size="3" who="&quot;Robert B. Easter&quot; " />
<person posts="1" size="3" who="Tony Gale " />
<person posts="1" size="3" who="&quot;Gnea&quot; " />
<person posts="1" size="3" who="Lawrence Walton " />
<person posts="1" size="3" who="Francois romieu " />
<person posts="1" size="3" who="&quot;Saber Taylor&quot; " />
<person posts="1" size="3" who="Brian Gerst " />
<person posts="1" size="3" who="&quot;Linux Kernel Developer&quot; " />
<person posts="1" size="3" who="Byron Stanoszek " />
<person posts="1" size="3" who="&quot;Matthew G. Marsh&quot; " />
<person posts="1" size="3" who="Carl Perry " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Riley Williams " />
<person posts="1" size="3" who="Brian Pomerantz " />
<person posts="1" size="3" who="Zdenek Kabelac " />
<person posts="1" size="3" who="=?ISO-8859-1?Q?Janne_P=E4nk=E4l=E4?= " />
<person posts="1" size="3" who="Zdenek Kabelac " />
<person posts="1" size="3" who="Florian Schmitt " />
<person posts="1" size="3" who="K Ratheesh " />
<person posts="1" size="3" who=" (Linus Torvalds)" />
<person posts="1" size="3" who="Manfred " />
<person posts="1" size="3" who="Alexander Riesen " />
<person posts="1" size="3" who="John Kennedy " />
<person posts="1" size="3" who="Tony Nugent " />
<person posts="1" size="3" who="Dilshod Mukhtarov " />
<person posts="1" size="3" who="Jan Rekorajski " />
<person posts="1" size="3" who=" &lt;kernel@netravi.net&gt;" />
<person posts="1" size="3" who="Tom Murphy " />
<person posts="1" size="3" who="Daniel Sangenberg " />
<person posts="1" size="3" who="Frank Jacobberger " />
<person posts="1" size="3" who="Richard Torkar " />
<person posts="1" size="3" who="David Huggins-Daines " />
<person posts="1" size="3" who="&quot;Peter Berger&quot; " />
<person posts="1" size="3" who="David Relson " />
<person posts="1" size="3" who="Philipp Matthias Hahn " />
<person posts="1" size="3" who="&quot;Christian W. Zuckschwerdt&quot; " />
<person posts="1" size="3" who="Rick Haines " />
<person posts="1" size="3" who="Justin Carlson " />
<person posts="1" size="3" who="&quot;Georg Nikodym&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Andreas Bombe " />
<person posts="1" size="3" who="Dominik Kubla " />
<person posts="1" size="3" who="Chittari Prasanna Kumar BE " />
<person posts="1" size="3" who="Dave " />
<person posts="1" size="3" who="&quot;Barry K. Nathan&quot; " />
<person posts="1" size="3" who="Jan-Benedict Glaw " />
<person posts="1" size="3" who="Daniel Phillips " />
<person posts="1" size="3" who="William Stearns " />
<person posts="1" size="3" who="&quot;Henning P. Schmiedehausen&quot; " />
<person posts="1" size="3" who="Nils Faerber " />
<person posts="1" size="3" who="Maciej Bogucki " />
<person posts="1" size="3" who="Tom Rini " />
<person posts="1" size="3" who="Greg KH " />
<person posts="1" size="3" who="&quot;Yaroslav S. Polyakov&quot; " />
<person posts="1" size="3" who="Eli Carter " />
<person posts="1" size="3" who="G?bor L?n?rt " />
<person posts="1" size="3" who="Jeff Chua " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Jamie Lokier " />
<person posts="1" size="3" who="=?iso-8859-1?Q?Henrik_St=F8rner?= " />
<person posts="1" size="3" who="James Antill " />
<person posts="1" size="3" who="ebi4 " />
<person posts="1" size="3" who="&quot;Barry Smoke&quot; " />
<person posts="1" size="2" who="Guest section DW " />
<person posts="1" size="2" who="Alan Shutko " />
<person posts="1" size="2" who="Felix Braun " />
<person posts="1" size="2" who="Krzysztof Halasa " />
<person posts="1" size="2" who="ryan " />
<person posts="1" size="2" who="Jordi Colomer " />
<person posts="1" size="2" who="Marko Kreen " />
<person posts="1" size="2" who=" (Rogier Wolff)" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Augusto Cesar Radtke " />
<person posts="1" size="2" who="David Howells " />
<person posts="1" size="2" who="Meino Christian Cramer " />
<person posts="1" size="2" who="Mikulas Patocka " />
<person posts="1" size="2" who="Darrell A Escola " />
<person posts="1" size="2" who="Xavier Bestel " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Greg KH " />
<person posts="1" size="2" who="Christoph Hellwig " />
<person posts="1" size="2" who="Ben Greear " />
<person posts="1" size="2" who="T R Vishwanath " />
<person posts="1" size="2" who="&quot;Brian Parris&quot; " />
<person posts="1" size="2" who=" (Henrik =?ISO-8859-1?Q?St=F8rner?=)" />
<person posts="1" size="2" who="&quot;Dr. Kelsey Hudson&quot; " />
<person posts="1" size="2" who="Jonathan Hudson " />
<person posts="1" size="2" who="Matthias Andree " />
<person posts="1" size="2" who="Jaroslav Kysela " />
<person posts="1" size="2" who="Gerard Paul Java " />
<person posts="1" size="2" who="Pete Clements " />
<person posts="1" size="2" who="Eric Estabrooks " />
<person posts="1" size="2" who="Andreas Dilger " />
<person posts="1" size="2" who="&quot;Jeff V. Merkey&quot; " />
<person posts="1" size="2" who=" (Miquel van Smoorenburg)" />
<person posts="1" size="2" who="Alan Cox " />
<person posts="1" size="2" who="Philip Blundell " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Ion Badulescu " />
<person posts="1" size="2" who="Rick Hohensee " />
<person posts="1" size="2" who="M Sweger " />
<person posts="1" size="2" who="Reto Baettig " />
<person posts="1" size="2" who="Zhiruo Cao " />
<person posts="1" size="2" who="&quot;Gary E. Miller&quot; " />
<person posts="1" size="2" who="Helge Hafting " />
<person posts="1" size="2" who="Jeff Epler " />
<person posts="1" size="2" who="Chris Meadors " />
<person posts="1" size="2" who="Mourad Lakhdar " />
<person posts="1" size="2" who="Ricardo Muggli " />
<person posts="1" size="2" who="Pavel Rabel " />
<person posts="1" size="2" who="hugang " />
<person posts="1" size="2" who="Daniel Roesen " />
<person posts="1" size="2" who="Jonathan Corbet " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Mark Hahn " />
<person posts="1" size="2" who="Pau " />
<person posts="1" size="2" who="Ian Stirling " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Winfried Truemper " />
<person posts="1" size="2" who="Michal Jaegermann " />
<person posts="1" size="2" who="Ville Herva " />
<person posts="1" size="2" who="Wojtek Piecek " />

</stats>

<section
  title="Licencing Discussion"
  subject="Fasttrak100 questions..."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.3/0124.html"
  posts="34"
  startdate="24 Nov 2000 14:46:32 -0800"
  enddate="05 Dec 2000 00:25:07 -0800"
>
<topic>Ioctls</topic>
<topic>Microsoft</topic>
<topic>Modems</topic>
<topic>Virtual Memory</topic>

<mention>Kelsey Hudson</mention>

<p>James Lamanna reported good success with Promise Technologies' Fasttrack
100 driver (available as source, with one proprietary object file). He
asked if it was possible to compile the module directly into the kernel, so
his system could automatically detect the card. He added, <quote who="James
Lamanna">A simple linking of the module into the scsi library by editing the
Makefile doesn't seem to do it. It doesn't detect the drives if I boot off of
a floppy with this kernel on it.</quote> Andre Hedrick replied forcefully:</p>

<quote who="Andre Hedrick">

<p>NO!</p>

<p>Doing so VIOLATES the terms and agreement that you obtained the BINARY
Soft-Raid Engine and the GPL terms of the kernel.</p>

</quote>

<p>Henning P. Schmiedehausen tried to correct him, saying that the only
violation would be if James then tried to <i>distribute</i> the result. He
said, <quote who="Henning P. Schmiedehausen">You can compile into your kernel
anything you like as long as you don't give it away.</quote></p>

<p>Andre came back with, <quote who="Andre Hedrick">remember, I DEFINED
the terms that the module could be created!  Go and examine the wrapper and
it is portions of the pdc202xx.c code that is mine.  With that in mind, in
order to use that GPL code, the restrictions and terms imposed were module
exclusive.</quote></p>

<p>Regarding the general GPL question, Dr. Kelsey Hudson disagreed with
Henning, saying that modifying a GPLed source <i>required</i> the user to
distribute the result. He said, <quote who="Dr. Kelsey Hudson">You can't
add stuff to it and then not distribute it, that's in violation.</quote>
Alan Cox replied, <quote who="Alan Cox">No it isnt. Some people seem to
think it is. You only have to provide a change if you give someone the
binaries concerned. Some people also think that 'linking' clauses mean they
can just direct the customer to do the link, that also would appear to be
untrue in legal precedent - the law cares about the intent.</quote> Pavel
Machek replied, <quote who="Pavel Machek">This is currently happening with
lucent winmodem driver: there's modified version of serial.c, and customers
are asked to compile it and (staticaly-)link it against proprietary code
to get usable driver. Is that okay or not?</quote> Alan felt probably not,
though he added that it was really up to Theodore Y. Ts'o to enforce or
not. And Ted said at length:</p>

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

<p>Well, it's not up to just me, given that Linus also has his copyright on the
code (although I doubt there's more than a few lines which are originally his).
There are some other people who have contributed code to the serial driver
in the past, although most have probably not given me more than a dozen
lines of code or so, which seems to be the (completely untested in court)
standard which the FSF uses to decide whether or not they need to get formal
legal papers signed.</p>

<p>The legal issues are also incredibly murky, since the customers create
the derived work, and issues of intent aside, you can't necessarily use
intent to change the legal definition of "derived work".  (Be glad; although
it can be used to create a loophole in GPL, just meditate a while on what
the MPAA could do with such an "intent" argument before you decide whether
or not it's a good thing.  Or think what Microsoft could do if they could
make their EULA's as infectious as the GPL with the "intent" argument.)
The whole dynamic linking argument is a very slippery slope; where do you
draw the line?  Does a shell script which calls a GPL program get infected?
What about a propietary C program which makes a system() call to invoke
a GPL'ed bash?  What about an RPC call across the network?  What about a
GNOME Corba interface?  Is it OK if it's on separate machines, but are they
considered a single program if the CORBA client and server are on the same
machine, since now they share the same VM?</p>

<p>In any case, the FSF has their opinion, and at least one Ivy League law
professor laughed aloud when he was asked what he thought about the FSF's
legal theories; other people have their own.  Most importantly, none of this
has been tested in court.  So it's probably not worth trying to settle this
on the linux-kernel list.</p>

<p>As far as this particular case is concerned, at least Lucent is shipping
part of the driver in source.  Some of the other winmodem drivers are shipping
a pure binary module, which means it will only work against a single kernel
version, which locks out users form upgrading to newer kernels if they still
want to use their winmodem.  So at least Lucent is trying to be at least
somewhat good guys about this.</p>

<p>I could threaten to sue them, but it's not clear to me what good it will do,
short of depriving some users from being able to use their winmodem.  I suppose
we could encourage them to rewrite the modified-serial.c for scratch, but
aside from making some GPL fanatics feel good, enriching some consultant and
making Lucent a little poorer, what good does it really do in the long run?
And I have better things to do with my time.  At the same time, I certainly
won't bless what they are doing.  What they are doing is clearly wrong,
and illegal.  But it is an imperfect world that we live in, as the events
in Florida have been clearly demonstrating over the past month.</p>

<p>Given the limited time that I have, I'd much rather spend it going after
the Rockwell/Connexant winmodem driver, which also pretty clearly uses
serial.c, but for which they've only distributed a single .o file for a
specific kernel version.  Or I could spend it on programming.....</p>

</quote>

<p>To the speculations in Ted's second paragraph above, Jeff V. Merkey
replied:</p>

<quote who="Jeff V. Merkey">

<p>Under the "Doctrine of Inevitable Disclosure" even looking at GPL code and
using techniques it contains would contaminate anything someone works on.
This doctrine put forward two concepts that have been used in trade secret
cases to justify injunctions and non-competes in areas of IP pollution --
negative knowledge and inevitable misappropriation.</p>

<p>The argument goes something like this.  Negative knowledge is defined as
knowing what techniques do not work (as opposed to what techniques do work).
In the course of development of a piece of software, there are many "blind
alleys" and "false starts" that are encountered as an individual uses trial
and error to perfect whatever piece of software he is writing.  Over time, the
person learns what approaches are blind alleys and which work.  This knowledge
becomes imprinted into the actual thinking processes of this person.</p>

<p>Source code can also contain notes and comments about what does not work,
and what does work.  Someone reading this source code would then incorporate
these ideas and knowledge into their thinking processes.  Companies spend lots
of money paying engineers to develop software, and this "negative knowledge",
under the doctrine of inevitable disclosure is legally the property of an
employer since they paid an engineer to experiment and learn it.   This is how
companies are able to get non-compete court orders against employees in trade
secret lawsuits -- they argue that noone is going to go down a development
path using ideas or approaches they know do not work.  This argument goes on
to state that if two engineers, one who had access to a piece of code vs. one
who did not were to start at the same time working on the same problem,
the person who had access to the code would finish first because he would
"inevitably use" the knowledge gained from access to the source code.</p>

<p>Let's say for example two engineers wanted to write a new Linux-like
replacement.  One of them had access to ftp.kernel.org and the other did not.
Which one of the engineers would finish first?  Obviously the one with
access to ftp.kernel.org would finish first and would not have had to use
trial and error to get all the IOCTL calls working, etc.   The engineer
without source code access would take longer, perhaps by a factor of years,
to complete the same project.</p>

<p>Under this argument, it is argued that the engineer who had source code
access "inevitably used" negative knowledge he gained from his study of the
Linux sources.  Absent the vague descriptions of what a "derivative work"
is in the GPL, it could be argued that conversion of any knowledge contained
in GPL code is a "derivative work".</p>

<p>There are a lot of big software companies who believe this and fear
application of the doctrine of inevitable disclosure relative to GPL code.
Novell and Microsoft both do not even allow employees to bring GPL code into
the building -- period -- for fear that someone will attempt to file a claim
that they have "converted" GPL code and created derivative works that may have
contaminated non-GPL code projects.  Novell has an official standing policy
barring employees from using GPL code.  That's why all the Linux work for
NetWare is done in the India development center, and not the US, out of fear
of IP pollution in the Provo facility.  When I officed at the Microsoft campus
in 1999, they had similiar policies, and were even more strict than Novell.</p>

<p>Now, in reality, these folks have employees in both companies who download
stuff at home, and putz around with it, GPL code included, but that's a lot
different from these companies having official policies allowing projects
to use GPL code in their normal course of business.</p>

<p>In short, under the doctrine of inevitable disclosure, a GPL copyright
holder could succeed with a claim of conversion from someone simply looking
at a piece of GPL code, then using whatever it contained to build either
interface modules or a module with similiar functionality.  It would be a
hard call for a sitting judge to make, but I have seen actual cases where
a judge does just that with the help of a special master.</p>

<p>Personally, I think the doctrine is one of the most evil fucking things
in existence, legal opponents call it "the doctrine of intellectual slavery"
because it has the affect under the law to be able to convert simple NDA
agreements into non-compete agreements, and I've seen it used this way.
Novell has blocked all internal access to the NWFS ftp server TRG, BTW,
because they are afraid I would attempt to apply the doctrine to force them
to open source NetWare projects if they download NWFS and used it internally
with eDirectory.  They've told us so.</p>

<p>This may help you understand just how complicated this whole IP stuff is
relative to derived works.  It's undefined under current case law and precednt
relative to the GPL, but these big companies are taking no chances....</p>

</quote>

<p>Later, he added, <quote who="Jeff V. Merkey">BTW, for those legal folks
who also demand I post case law citations, please see the Pesico vs. (I
forget the guys name) case.  Just get on Westlaw, and look up "Pepsico".
This is the case where this doctrine was created and applied by a state judge.
The case was upheld, and has been used all over the US since then to shaft
departing employees from big software/hardware companies.</quote></p>

<p>In reply to Jeff's statement about converting simple NDAs into non-competes,
Ted replied, <quote who="Theodore Y. Ts'o">most courts have strict limits
to how far they will take non-compete arguments, and if an NDA turned into
a non-compete, past a certain point they will say that a person has a right
to earn a living.....  Fortunately most judges will apply some amount of
common sense, even despite their law school training.  In any case, the GPL
doesn't involve NDA's or Trade Secrets, so saying that this doctrine could
be used to contaminate non-GPL code simply by having people look at GPL
code is bullshit.</quote> Jeff replied, <quote who="Jeff V. Merkey">This
"I have a right to make a living argument" only holds water if the other
side refuses to post a bond.  If they post a large enough bond, a court
WILL rule in favor of inevitability if they make a good case for it.
(The bond required to keep me from programming for 18 months cost Novell
$10,000,000.00.)</quote> Regarding the common-sense of judges, he added,
<quote who="Jeff V. Merkey">US Judges are pontius pilate's all -- with hearts
as black as the robes they wear.  They don't care about you, or your rights.
Remember, almost all judges are lawyers who are too old or to incompetent
to practice law so they get themselves an appointment.  Most of them were
crooked lawyers who went into politics (which is how a lawyer gets made into
a judge, BTW, he goes into politics).</quote></p>

</section>

<section
  title="Hunting Several Filsystem Corruption Bugs: The Saga Continues"
  subject="corruption"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.3/0719.html"
  posts="56"
  startdate="28 Nov 2000 20:08:57 -0800"
  enddate="04 Dec 2000 07:19:00 -0800"
>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS: ext2</topic>

<mention>Tigran Aivazian</mention>
<mention>Alan Cox</mention>

<p>Continuing from <kcref subject="ext2 filesystem corruptions back from
dead? 2.4.0-test11" startdate="22 Nov 2000 21:51:56 -0800"></kcref>,
Andries Brouwer reported, <quote who="Andries Brouwer">I did again a large test
comparing two identical trees.  Found again corruption, and, upon inspection,
the disk files did not differ - this is in-core corruption only.</quote> Linus
Torvalds asked for a rough estimate on when Andries started seeing this
behavior, and Andries replied, <quote who="Andries Brouwer">I reported both
cases. That is, I started seeing it a few days ago.</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>I wasn't trying to imply that you hadn't reported them well.</p>

<p>It's just that I was born with a highly developed case of Altzheimers,
and I have trouble keeping details around in my head for more than about
five minutes.</p>

<p>I'm half serious, btw. It's not that I don't have a good memory, but I tend
to remember patterns and how things work, and I'm _really_ bad at keeping
track of details. This is why I absolutely depend on people like Alan Cox
etc who maintain lists of problems, and who are good at gathering reports
on what kinds of machines see it etc. I just suck at it. I really do.</p>

<p>Anyway, it tentatively sounds like it might have been request corruption
by the new re-merge code. It fits the details, you having IDE and all. I
see that you can't at least easily reproduce it in pre3 any more, but if it
turns out later that you still can, please holler. Loudly.</p>

<p>That still leaves the SCSI corruption, which could not have been due to
the request issue. What's the pattern there for people?</p>

</quote>

<p>Elsewhere, Andries reported, <quote who="Andries Brouwer">I just tried
2.4.0test12pre3, which has Jens' fix, and no corruption to be seen. Will
test a bit more, but perhaps this did it.</quote> Tigran Aivazian tried this
on his SCSI system, but Jens Axboe explained, <quote who="Jens Axboe">No,
the fix could only really make a difference on IDE. So it can't possibly
account for all the corruption issues reported, but I'm hoping at least some
of them... The fix was posted in the other corruption thread, and it's in
test12-pre3 too.</quote></p>

<p>In technical discussions elsewhere, a bunch of folks tried to track down
the various problems.</p>

</section>

<section
  title="User-Space Serial Port Driver"
  subject="[PATCH] New user space serial port driver"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.3/0918.html"
  posts="9"
  startdate="30 Nov 2000 00:04:03 -0800"
  enddate="07 Dec 2000 04:38:21 -0800"
>
<topic>Modems</topic>
<topic>Networking</topic>

<p>Patrick van de Lageweg posted a patch to allow a user-space daemon to
handle the internals of a serial port. He added, <quote who="Patrick van de
Lageweg">It was writen for the Pele 833 RAS Server but is also usable for
other serial device drivers in user space.</quote> Pavel Machek remarked,
<quote who="Pavel Machek">Good, someone finally implemented this. This is
going to be mandatory if we want to support winmodems properly; also ISDN
people might be interested [to kick AT emulation out of kernel].</quote>
And Jamie Lokier added, <quote who="Jamie Lokier">For winmodems you can
do a pretty good job with ptys -- the pty and tty side access the same
share termios structure.  The new driver is a much cleaner way to the same
functionality though.</quote></p>

<p>However, Tigran Aivazian pointed out some bloat in the patch, where
variables were explicitly initialized to zero, rather than letting them take
an initial 0 value from the BSS area, which the kernel cleared automatically
on bootup. He explained that the code as it stood <quote who="Tigran
Aivazian">wastes at least 4 * USSP_MAX_PORTS bytes in the kernel image.
Typically around 64 bytes but could be more. For more info see the recent
silly flamewars on the list.</quote> Rogier Wolff came back with, <quote
who="Rogier Wolff">And I think the guys who were saying that the "documentation
is more important than those few bytes" were winning.</quote> He argued
that setting the initial null value explicitly, gave important information
to the code maintainers. At one point Russell King argued in response,
<quote who="Russell King">In which case, can we put it in as a documentation
fix rather than changing the compiler output?</quote> He suggested simply
including a comment to the effect that the variables were expected to be
zero initially. This did not appeal to Rogier, who replied:</p>

<quote who="Rogier Wolff">

<p>I care more about the 4 bytes of extra source than the 4 bytes of extra
object.</p>

<p>I consider the 4 bytes of extra object code a compiler bug, and if we
start catering for that, the bug in the compiler will never be fixed.</p>

<p>This is similar to how Linus forced the recognition of the "unroll-loops"
bug by the gcc team.</p>

</quote>

<p>End of thread.</p>

</section>

<section
  title="Problems With Proposed Sound Code Cleanup In Stable Series"
  subject="[PATCH] i810_audio 2.4.0-test11"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0024.html"
  posts="8"
  startdate="01 Dec 2000 03:18:46 -0800"
  enddate="04 Dec 2000 10:23:11 -0800"
>
<topic>Sound: OSS</topic>

<mention>Pavel Machek</mention>
<mention>Linus Torvalds</mention>

<p>Tjeerd Mulder posted a patch and explained:</p>

<quote who="Tjeerd Mulder">

<p>This patch makes the same changes (dma_prog and poll) that are already
made to some other OSS drivers (test12-pre3). Further it finally includes
all modifications made in 2.2.18 (Alan: why do you do them line by line ?).</p>

<p>It implements mono output and fixes a bug in the dma logic (reset necessary
because some descriptors are already prefetched and are not updated when
the dma is only halted and not reset). There is still a bug in the device
close handling, it gives an occasional dma overrun error.</p>

<p>It has been tested on by 3 people on 4 different machines with 3 different
chip sets and at least 3 different codecs, so it really should work !
And it does the same things the alsa driver does.</p>

</quote>

<p>Alan Cox asked Linus Torvalds <i>not</i> to apply the patch, saying, <quote
who="Alan Cox">Not only does it do format conversions in kernel (which is a
strict not to be done in the sound driver policy) it also makes it impossible
to make mmap work correctly with the OSS API definitions.</quote> He added,
<quote who="Alan Cox">Tjeerd. I deliberately applied only small bits of your
patch before because the mono mode stuff clutters the driver horribly and is
not in the right place.  It belongs in the application/libraries.</quote>
Pavel Machek replied that in this case, parts of drivers/usb/audio needed
to be removed as well, since they also contained format conversions. Alan
replied, <quote who="Alan Cox">Definitely we should.</quote> At this point
Thomas Sailer broke in, arguing:</p>

<quote who="Thomas Sailer">

<p>If you start killing format conversion then &gt;99% of the existing
applications won't work anymore with usbaudio.  At that point you can dump
the OSS interface just as well.</p>

<p>And before killing format conversion you should kill the mmap stunt,
because the format conversion complexity (~25 LOC) is by far dwarfed by the
mmap emulation stuff.</p>

<p>The underlying question is:</p>

<p>

<ul>

<li>do we want an usb audio driver that supports the OSS
  interface and with which most existing applications work</li>

<li>or do we want a simple driver with its own non-OSS
  interface.</li>

</ul>

</p>

<p>Anything in between is IMO silly. Killing the format conversion drops
the advantage of running many existing applications but don't bring you much
closer to the goal of simplicity.</p>

</quote>

<p>Alan replied:</p>

<quote who="Alan Cox">

<p>Those applications already have to deal with the fact some devices only
support 48KHz 16bit stereo audio. I run a full desktop environment on such
hardware without problems.</p>

<p>What format is it that causes the problems, the only badly supported
key format right know I know of is 16bit bigendian. That needs some small
esd patches.</p>

</quote>

<p>To which Thomas replied, <quote who="Thomas Sailer">S8 is a not very well
supported format.  And btw there are many applications that cannot live with
esd for latency reasons.</quote> End of thread.</p>

</section>

<section
  title="Kernel Panic In SoftwareRAID Autodection In Recent Development Kernels"
  subject="kernel panic in SoftwareRAID autodetection"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0060.html"
  posts="12"
  startdate="01 Dec 2000 06:50:49 -0800"
  enddate="06 Dec 2000 17:55:49 -0800"
>
<topic>Disk Arrays: RAID</topic>

<p>Roberto Ragusa reported that on recent development kernels (2.4.0-test10
and 2.4.0-test11), the SoftwareRAID autodetect code gave a kernel panic. He
included a lot of system information and oops output, etc., and Neil Brown
offhandedly replied that this had been fixed in 2.4.0-test12pre3; Roberto
reported that no, the problem persisted in that kernel as well. Neil took
a closer look, and replied:</p>

<quote who="Neil Brown">

<p>My apologies.  There was a "oops in SoftwareRAID autodetect" in test10
and test11 that was fixed in test12pre3, and I just assumed that your's was
the same, and didn't look at it properly.</p>

<p>On looking again, your problem is definately different and quite weird.</p>

</quote>

<p>He included a one-liner and added, <quote who="Neil Brown">I went back
and poured over the code for a little while, and I think I found something.
linear.c may over-run a kmalloced buffer, which could product exactly what
you are getting.  The following patch isn't *correct*, but if it makes a
difference for you, then it means that we have found the problem.. please
let me know.</quote></p>

<p>Roberto replied happily, <quote who="Roberto Ragusa">Yes, it makes a
difference :-) . The boot doesn't fail anymore and all the RAID partitions
are correctly detected.</quote> At this point the discussion skewed off.</p>

</section>

<section
  title="False Detection Of PS/2 Mouse In Recent Stable Kernels"
  subject="Phantom PS/2 mouse persists.."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0247.html"
  posts="16"
  startdate="03 Dec 2000 07:24:19 -0800"
  enddate="09 Dec 2000 12:14:08 -0800"
>

<mention>Jeff V. Merkey</mention>

<p>Steven N. Hirsch reported that 2.2.18 detected a nonexistent PS/2 mouse
on his system. Alan Cox replied, <quote who="Alan Cox">I've fixed the major
case.</quote> [...] <quote who="Alan Cox">I take it like the others 2.4test
also misreports a PS/2 mouse being present.  Anyway I think its no longer
a showstopper for 2.2.18. Someone with an affected board can piece together
the picture.</quote> Jeff V. Merkey reported the problem gone on 2.2.18-24.
Steven was not so lucky, and still reported the same problem, though he
added, <quote who="Steven N. Hirsch">I agree the mouse mis-detection isn't
a showstopper - just damn annoying.</quote></p>

<p>Several days later, under the Subject: <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.1/0220.html">2.2.18-25
and PS/2 Mouse</a>, Steven reported phantom mouse troubles persisting into
2.2.18-pre25; but nothing came of it.</p>

</section>

<section
  title="Local Language Support"
  subject="Linux for local languages - patch"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0297.html"
  posts="3"
  startdate="03 Dec 2000 20:02:58 -0800"
  enddate="04 Dec 2000 07:14:21 -0800"
>

<p>K Ratheesh, student of Indian Institute of Technology Madras, announced:</p>

<quote who="K Ratheesh">

<p>I am working on enabling Linux console for Local languages. As the current
PSF format doesn't support variable width fonts , I have made a patch in the
console driver so that it will load a user defined multi-glyph mapping table
so that multiple glyphs can be displayed for a single character code. All
editing operations will also be taken care of.</p>

<p>Further, for Indian languages, there are various consonant/vowel modifiers
which result in complex character clusters. So I have extended the patch
to load user defined context sensitive parse rules for glyphs / character
codes as well. Again, all editing operations will behave according to the
parse rule specifications.</p>

<p>Even though the patch has been developed keeping Indian languages in
mind, I feel it will be applicable to many other languages (for eg. Chinese)
which require wider fonts on console or user defined parsing at I/O level.</p>

<p>Currently I have developed the patch for Kernel versions 2.2.14 and and
am in the process of making it for 2.2.16 and 2.2.17. I request people to
try out this patch and give comments and suggestions to me.</p>

<p>Those who want to try out this patch can send mail to me in the address <a
href="mailto:rathee@lantana.iitm.ernet.in">rathee@lantana.iitm.ernet.in</a>
or to <a
href="mailto:indlinux-iitm@lantana.iitm.ernet.in">indlinux-iitm@lantana.iitm.ernet.in</a></p>

<p>The package , containing the patch , some documentation ,utilities and
sample files will come around 100 KB.</p>

</quote>

<p>Andries Brouwer was happy to hear about this, and added, <quote who="Andries
Brouwer">Last year I needed support for Tibetan and added just the converse:
single glyphs that were represented by a sequence of Unicode symbols. This
is needed e.g. in the situation where Unicode does not have precomposed
symbol+diacritical, so that the glyph that represents an accented character
corresponds to a sequence rather than a single Unicode symbol.</quote> He asked
to see K's patch, and Kurt Garloff replied, <quote who="Kurt Garloff">Andries,
I sent you a patch a couple of months ago which does enable the support of
wide characters and another font (besides the sun12x22) making use of it. I
hope it's in your codebase by now, so it does not get lost when the advanced
things of K Ratheesh get merged.</quote> End of thread.</p>

</section>

<section
  title="Race Condition with Hot-Plugging And Number Of Network Interfaces"
  subject="Race/problem with hotplug &amp; network interfaces"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0326.html"
  posts="3"
  startdate="04 Dec 2000 04:57:51 -0800"
  enddate="04 Dec 2000 06:01:34 -0800"
>
<topic>Hot-Plugging</topic>
<topic>Networking</topic>

<p>Oleg Drokin noticed that in 2.4.0-test11, enabling hot-plugging would
cause a race condition, if the number of network interfaces were to change
(as by invoking ppp, in his case). Andrew Morton posted a lengthy patch,
and explained, <quote who="Andrew Morton">Yup.  This is due to the kernel
trying to fork/exec from within a half-dead process.  Could you please test
this patch?  It was sent to Linus for test12-pre4, but....</quote> Oleg
replied, <quote who="Oleg Drokin">Yes, it works that way.  But code path and
readability became horrible, unfortunatelly. :(</quote> there was no reply.</p>

</section>

<section
  title="Negotiating The A20 Address Gate"
  subject="That horrible hack from hell called A20"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0576.html"
  posts="21"
  startdate="05 Dec 2000 15:30:44 -0800"
  enddate="08 Dec 2000 02:33:18 -0800"
>

<p>H. Peter Anvin posted a patch (and gave a pointer <a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/hpa/a20-test12-pre5.diff">to
it</a> as well), and explained:</p>

<quote who="H. Peter Anvin">

<p>here is my latest attempt to find a way to toggle A20M# that genuinely
works on all machines -- including Olivettis, IBM Aptivas, bizarre notebooks,
yadda yadda.</p>

<p>The bizarre notebooks with broken SMM code are the ones I really worry
most about... there may very well be NO WAY to support them that actually
works on all machines, because you don't get any kind of feedback that they
are broken.</p>

<p>If you have had A20M# problems with any kernel -- recent or not -- *please*
try this patch, against 2.4.0-test12-pre5</p>

</quote>

<p>Linus Torvalds made some technical points, and added, <quote who="Linus
Torvalds">Btw, do we actually know of any machine that really needs the "and
$0xfe"?  That register really makes me nervous.</quote> To which H. Peter
replied, <quote who="H. Peter Anvin">Good question.  The whole thing makes
me nervous... in fact, perhaps we should really consider using the BIOS INT
15h interrupt to enter protected mode?</quote> And Alan Cox interjected with
a smirk, <quote who="Alan Cox">From my experience with BIOS authors, only if
Windows 98 uses the same function with the same arguments, the same stuff top
of stack and the same segment registers loaded ;)</quote> Elsewhere, Linus
continued, <quote who="Linus Torvalds">I agree with Peter - if somebody knows
BIOS programming and how to use "int 15" to enter protected mode, then that
migth well be the easiest solution. The only real reason the linux setup code
does it by hand is that the original code was written that way - and it was
written that way because I had never used the BIOS in my life before, _and_
I wanted to learn the i386. Both of which were valid reasons back in 1991.
Neither of which is probably a very good reason ten years later</quote></p>

<p>Richard B. Johnson explained:</p>

<quote who="Richard B. Johnson">

<p>The protected-mode switch in INT 15 is probably the least tested BIOS
function ever. I wouldn't trust it, and relying on it will put further burden
on embedded Linux developers, many of whom don't even have a BIOS. It is 'least
tested' because there is no way provided to get back to real-mode. This implies
that somebody probably 'tested' it once, verified that some simple 32-bit
function executed for a few microseconds, then declared; "It works!".</p>

<p>Many new chip-sets snoop for the sequence:</p>

<p>

        Write 0xd1 to port 0x64<br />
        Write 0xN1 to port 0x60

</p>

<p>... Where 'N' are any bits and the LSB enables A&lt;20&gt; propagation.</p>

<p>The writes have to be in sequence, therefore, one must read 0x60 first,
OR in bit 0. Write 0xD1 to 0x64, then write the new enable- value to port
0x60.</p>

<p>It takes about 700 to 1500 microseconds for a real keyboard controller
to enable the A&lt;20&gt; propagation bit. It takes only a few hundred
nanoseconds for the virtual sequence, above, to do the same thing.</p>

<p>On all machines I have looked at, including several lap-tops, the 'fast'
A&lt;20&gt; enable port is R/W. This means that you don't have to crash the
machine by setting some secret reserved bit. Just read first, OR in your
A&lt;20&gt; bit, then write.</p>

<p>You can experiment by booting DOS (or free-DOS), and play using DEBUG.
Setting A&lt;20&gt; while in real-mode DOS won't hurt anything. You can even
check for wrap beyond FFFF:0000 from DEBUG to see if the bit is enabled.</p>

<p>I suggest that a "universal" sequence is the D1/N1 sequence shown above
(this will work with real keyboard controllers), you don't have to wait
for completion of the last command as long as you don't have more than two
commands in sequence. This is because the controller doesn't know if you
ever read the status, and it will execute the next command, if one exists,
as soon as it writes the completion status from the previous.</p>

<p>The next step of the "universal" sequence, if the previous doesn't work,
would be to enable the fast A&lt;20&gt; bit (only) in port 0x92.</p>

</quote>

<p>Elsewhere, Kai Germaschewski reported failure with H. Peter's initial
patch, saying, <quote who="Kai Germaschewski">Just a datapoint: This patch
doesn't fix the problem here (Sony PCG-Z600NE). Still the spontaneous reboot
exactly the moment I expect to get my console back from resumeing.</quote> Linus
had a brainwave, and replied:</p>

<quote who="Linus Torvalds">

<p>I bet I know what's up.</p>

<p>Want to bet $5 USD that suspend/resume saves the keyboard A20 state,
but does NOT save the fast-A20 gate information?</p>

<p>So anything that enables A20 with only the fast A20 gate will find that
A20 is disabled again on resume.</p>

<p>Which would make Linux _really_ unhappy, needless to say. Instant death
in the form of a triple fault (all of the Linux kernel code is in the 1-2MB
area, which would be invisible), resulting in an instant reboot.</p>

<p>Peter, we definitely need to do the keyboard A20, even if fast-A20 works
fine.</p>

</quote>

<p>H. Peter replied:</p>

<quote who="H. Peter Anvin">

<p>Yup.  It's a BIOS bug, oh what a shocker... (that never happens, right)?</p>

<p>I might hack on using INT 15h to do the jump to protected mode, as ugly
as it is, but I won't have time before my trip.  It would require quite a
bit of restructuring in setup.S, and would probably break LOADLIN.</p>

</quote>

<p>Linus posted some code and explained:</p>

<quote who="Linus Torvalds">

<p>Right now this is my interim patch (to clean test11). The thing to note
is that I decreased the keyboard controller timeout by a factor of about 167,
while making the "delay" a bit longer.</p>

<p>Now, if you don't have a keyboard controller, the bootup delay should
be on the order of 1.2 seconds or so (calling empty_8042 three times,
each around 0.4 seconds to time out). Which is acceptable. Especially as
the non-keyboard-controller machines that don't even emulate one are quite
rare. And it's still long enough that if the keyboard controller hasn't
emptied in 0.4 seconds, something else is badly wrong.</p>

<p>The non-keyboard-controller timeout used to be around three minutes
before. Which _definitely_ is excessive. Most people would assume that the
machine had hung.</p>

</quote>

<p>Elsewhere, under the Subject: <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0752.html">The
latest instance in the A20 farce</a>, H. Peter posted a new patch and
explained:</p>

<quote who="H. Peter Anvin">

<p>Okay, here is yet another A20 patch (against test12-pre6) this time for
people to try out.  This patch uses the following algorithm for enabling
A20:</p>

<p>

<ol>

<li>Try the BIOS call.  If it works, we're cool.</li>

<li>Try the KBC (using Linus' lowered timeouts.)</li>

<li>If the KBC doesn't work, or is very slow, flip port 92.</li>

</ol>

</p>

<p>After 3 it sits into the same infinite loop waiting for A20 to become
enabled (necessary on for example some Toshiba notebooks which have an
extremely slow response to A20.)</p>

<p>The main differences between this patch and test12-pre6:</p>

<p>

<ul>

<li>Trying the BIOS first of all.  This should reduce the risk of the
  BIOS getting confused while doing a suspend.  This also gives even less of
  an excuse for any nonstandard arrangement -- if you didn't implement the
  standard KBC *and* you didn't provide the BIOS call, you have a seriously
  broken piece of hardware.</li>

<li>If the KBC responds quickly enough (within about 10000 cycles), we
  don't ever touch the fast A20 gate.  This is a difference from previous
  code, where the fast A20 gate was toggled immediately after the KBC,
  even if the KBC responded instantly.</li>

<li>I had to move the A20 code somewhat earlier in setup.S in order for
  the BIOS to still be available.</li>

</ul>

</p>

<p>Please try it out and let me know as soon as possible...</p>

</quote>

</section>

<section
  title="Filesystem Corruption In Developer Kernels"
  subject="fs corruption with invalidate_buffers()"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0605.html"
  posts="6"
  startdate="05 Dec 2000 18:07:23 -0800"
  enddate="07 Dec 2000 15:37:44 -0800"
>
<topic>FS: ext2</topic>

<mention>Alexander Viro</mention>
<mention>Andre Hedrick</mention>

<p>Jan Niehusmann reported filesystem corruption under the latest developer
kernels, and over the next couple days posted a patch to prevent it, though he
added, <quote who="Jan Niehusmann">Please note that the patch circumvents the
problem more than it fixes it.  The true fix would invalidate the mappings,
but I don't know how to do it.</quote> Udo A. Steinberg confirmed that the
patch worked, and asked Alexander Viro what he thought. There followed a
very brief technical discussion, ending with Jan asking for documentation and
getting no answer.</p>

<p>Later, under the Subject: <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0690.html">Trashing
ext2 with hdparm</a>, Udo reported, <quote who="Udo A. Steinberg">Following
the discussion in another thread where someone reported fs corruption when
enabling DMA with hdparm, I've played around with hdparm and found that
even the rather harmless hdparm operations are capable of trashing an ext2
filesystem quite nicely.</quote> Jan replied that he was currently trying to
isolate a bug that might be related, and Byron Stanoszek speculated, <quote
who="Byron Stanoszek">I've seen this behavior on test-6 and up. I think it
has something to do with a problem in shared memory which is used by the
'hdparm -tT' code snippet. I believe it munges over a lot of the memory
segments that contain cached disk files (the common ones accessed, such as
/etc/mtab and /etc/utmp..etc). When looking at the contents of those files,
the memory is obtained from the cache and they appear bogus, but on disk
they are still correct.</quote></p>

<p>Andre Hedrick objected that Udo's exploit could not possibly cause
corruption, as it was a read-only test. But Jan confirmed the exploit, and Udo
also replied to Andre, <quote who="Udo A. Steinberg">As others pointed out,
it's probably something related to shared memory, but it's definitely hdparm
that triggers it. I haven't got the hdparm sources here to look at what exactly
it's doing, but there is corruption going on, not on disk, but definitely
in memory.</quote> At this point the discussion skewed off unresolved.</p>

</section>

<section
  title="Status Of Large Filesystem Support"
  subject="64bit offsets for block devices ?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0714.html"
  posts="5"
  startdate="06 Dec 2000 06:50:15 -0800"
  enddate="07 Dec 2000 08:41:25 -0800"
>
<topic>Disk Arrays: RAID</topic>

<mention>Stephen C. Tweedie</mention>

<p>Reto Baettig asked, <quote who="Reto Baettig">Is there any way of getting
a standardized way of doing I/O to a block device which could handle 64bit
addresses for the block number?</quote> He added that, with the current
32-bit scheme, <quote who="Reto Baettig">Don't you think that we will run
into problems anyway because soon there will be raid systems with a couple
of Terrabytes of space to waste for mp3's ;-)</quote> Brian Pomerantz sited a
real-world example of this problem, saying, <quote who="Brian Pomerantz">I'm
going to be putting together a RAID system with between 1.7-5.1TB by February.
This will be seen as a single block device to clients via a network block
device (more than likely it will be 16 Ciprico Rimfire 7000's spread across
4 nodes via a Quadrics switch).  So, what I'm seeing right now is that I
won't be able to address this amount of space with a single block device.
By the summer of 2001 we could be looking at putting together 10-150TB
(depends on budget and need) of disk space for a production cluster and it
would be nice if our parallel filesystem could span that entire space with
a single image.</quote> Stephen C. Tweedie said that this was on the agenda for
"urgent fixing" in 2.5.</p>

</section>

<section
  title="FATFS Not Yet Ready In Developer Series"
  subject="fatfs BUG() in test12-pre5"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0716.html"
  posts="2"
  startdate="06 Dec 2000 11:51:25 -0800"
  enddate="07 Dec 2000 05:47:56 -0800"
>
<topic>FS: FAT</topic>

<mention>David Woodhouse</mention>

<p>David Woodhouse reported a bug in the FAT filesystem, and Alan Cox replied,
<quote who="Alan Cox">I'd suggest you don't run the FAT file system code in
2.4test* unless you are doing it read only or have the patches applied that fix
truncate, otherwise you will turn your msdos fs to gloop right now.</quote> End
Of Thread (tm).</p>

</section>

<section
  title="Trouble Identifying Cyrix III Chips From Via"
  subject="cyrix III by via"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.0/0939.html"
  posts="3"
  startdate="07 Dec 2000 16:01:24 -0800"
  enddate="07 Dec 2000 17:08:36 -0800"
>

<p>Eric Estabrooks reported:</p>

<quote who="Eric Estabrooks">

<p>The cyrixIII chips by via have the centaur vendor id which causes the
identify_cpu call in arch/i386/kernel/setup.c to fail.  It is probably
reasonable for it to have the centaur id as via owns centaur as well.  I just
replaced the centaur_model call with the cyrix_model one, but I know that
I am using a cyrix chip.</p>

<p>A test probably needs to be added in the centaur_model section to test
for the cyrixIII in disguise.</p>

<p>The error is a general protection fault.</p>

</quote>

<p>He apologized in advance if this was "old hat", but Alan Cox replied,
<quote who="Alan Cox">Its fairly new hat. VIA cyrix III is a next generation
IDT winchip (VIA bought both the winchip stuff and the Cyrix stuff). 2.2.18
should handle the winchip properly.</quote> Dave Jones pointed out that the
stable and developer trees had had the test for some time already, and asked
Eric, <quote who="Dave Jones">Are you saying the latest versions still don't
recognise it?</quote> But there was no reply.</p>

</section>

<section
  title="Kernel Documentation"
  subject="Kernel Development Documentation?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.1/0044.html"
  posts="6"
  startdate="07 Dec 2000 20:41:51 -0800"
  enddate="08 Dec 2000 08:13:30 -0800"
>
<topic>Microsoft</topic>

<mention>Andries Brouwer</mention>
<mention>Gary Lawrence Murphy</mention>

<p>Carl Perry read on Slashdot that the Microsoft API was very poorly
documented, and he didn't want to see Linux go the same way. He asked if
there was a project underway to document the kernel subsystems, drivers,
portability issues, etc.; and volunteered to coordinate and host the
effort. Jeff V. Merkey replied, <quote who="Jeff V. Merkey">Whoever posted
this on Slashdot is smoking some killer dope or something.  The Windows
API is very well documented via online docs from MSDN -- better than most
software anywhere in the world.   Whoever said this was high or something or
ignorant or never had an MSDN subscription.  I used to get 20-40 CD's a month
from MS on a Universal Subscription, with enormous documentation..</quote> Alan
Cox also replied to Carl:</p>

<quote who="Alan Cox">

<p>For the kernel stuff there is a project to put documentation about
functions and what they do inline into the kernel. Its slow progress. Trying
to do anything formal and structured isnt going to be productive until the
documentation is much much more complete</p>

<p>For syscalls Andries Brouwer maintains a man page collection (and writes
many of them). He takes submissions.</p>

</quote>

<p>Daniel Phillips gave a link to <a href="http://lxr.linux.no">Linux
Cross Reference</a>, and reminisced, <quote who="Daniel Phillips">I
know exactly how it feels when first getting into the internal kernel
interfaces - for me that was barely a year ago.  I wanted at that
time to try and fix all the documentation problems as I went, but it
quickly turned into a choice between doing useful development and doing
useful documentation.  Guess which one I chose.  I sincerely hope that
others will make the opposite choice, and the linux hacking world will
be a better place.</quote> He also gave a link to Andries Brouwer's <a
href="http://www.win.tue.nl/math/dw/personalpages/aeb/linux/">Linux
Information</a> pages and the <a
href="http://kernelnewbies.org/links/">Kernelnewbies</a> links page. He
added, <quote who="Daniel Phillips">Tigran Aivazian has been preparing
'Linux Kernel Internals' which is *highly recommended* and 100% free.
Why don't you get together with him, and Gary Lawrence Murphy (see his
monthy kernel wiki nag)?</quote> and Tigran Aivazian replied, regarding
"Linux Kernel Internals:</p>

<quote who="Tigran Aivazian">

<p>in case he is curious where to find it:</p>

<p><a
href="http://www.moses.uklinux.net/patches/lki.html">http://www.moses.uklinux.net/patches/lki.html</a></p>

<p>(or .sgml for master source).</p>

<p>Interestingly, the main problem with LKI turned out to be _not_ the issue
of keeping it uptodate but filling in the missing bits, most notably buffer
cache and page cache. By now I more or less actually understand the Linux
buffer cache (only after diligent comparison with UW7, AIX, OSR5 and many
other commercial UNIX implementations whose source code is available) but
still not the page cache (even after reading everything about it that I could
find, including recent Understanding Linux Kernel book by Bovet which I just
finished reading). E.g. it is not even obvious to me that things will get any
worse if one throws away the entire readahead logic from the page cache.</p>

<p>So, if someone wants to write a chapter on Linux page cache and contribute
it to the LKI book (and thus become a co-author :) please feel free --
it will be a proof that someone in the world actually understands it --
at the moment I doubt that very much... Take it as a challenge :)</p>

</quote>

<p>There was no reply.</p>

</section>

<section
  title="Running 'swapoff' On Deleted Swapfile"
  subject="swapoff weird"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0012.1/0329.html"
  posts="7"
  startdate="09 Dec 2000 13:24:28 -0800"
  enddate="10 Dec 2000 01:10:15 -0800"
>
<topic>FS: ext2</topic>

<mention>David Feuer</mention>
<mention>Pavel Machek</mention>
<mention>Rik van Riel</mention>

<p>Pavel Machek noticed, somewhat to his dismay, that it was possible to
delete a swapfile that was in use. Trying to 'swapoff', however, would report
the file as nonexistent. Creating the file anew and trying 'swapoff', would
give an error. Without running 'swapoff', he was unable to safely reboot
the system. He asked for help.</p>

<p>Rik van Riel suggested not deleting the files in the first place, and added
that rebooting was the only solution. Pavel argued that the mistake was too easy
to make, and should be prevented if possible, or at least there should be a way
to recover. He added that rebooting would cause problems, since the filesystem
was still busy.</p>

<p>No solution appeared for Pavel during the thread, but Peter Samuelson
suggested, <quote who="Peter Samuelson">add code to /sbin/swapon and
/sbin/swapoff to set and clear immutable bit.  Sure it only works on ext2
but how far do you want to take this thing?</quote> Someone else suggested
adding /proc entries for each swapfile, so root could run 'swapoff' even if
they were delted. David Feuer liked the idea, and the thread ended.</p>

</section>

</kc>

