<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="57" date="06 Mar 2000 00:00:00 -0800" />

<intro>

<p>I don't know how he did it, but Jon Lasser found a bug in this issue almost
before I put it up! (the date of the issue said March 7th instead 6th) Many
thanks, Jon! :-)</p>

</intro>

<stats posts="1445" size="6103" contrib="482" multiples="222" lastweek="199">

<person posts="47" size="143" who="Alan Cox " />
<person posts="43" size="146" who="Jeff Garzik " />
<person posts="36" size="196" who="Mike A. Harris " />
<person posts="33" size="143" who="Khimenko Victor " />
<person posts="30" size="129" who="Stephen C. Tweedie " />
<person posts="27" size="106" who="Horst von Brand " />
<person posts="25" size="100" who="Peter T. Breuer " />
<person posts="24" size="86" who="Andrea Arcangeli " />
<person posts="21" size="79" who="Richard B. Johnson " />
<person posts="19" size="64" who="Tigran Aivazian " />
<person posts="19" size="58" who="David S. Miller " />
<person posts="17" size="64" who="Richard Gooch " />
<person posts="17" size="64" who="Jamie Lokier " />
<person posts="15" size="70" who="Bill Wendling " />
<person posts="15" size="59" who="David Balazic " />
<person posts="15" size="51" who="Andre Hedrick " />
<person posts="14" size="42" who="Alexander Viro " />
<person posts="12" size="41" who="Guest section DW " />
<person posts="12" size="34" who="Tim Waugh " />
<person posts="11" size="76" who="Andris Pavenis " />
<person posts="11" size="42" who=" (H. Peter Anvin)" />
<person posts="11" size="39" who="Manfred Spraul " />
<person posts="10" size="33" who="Francis GALIEGUE " />
<person posts="9" size="95" who="david parsons " />
<person posts="9" size="62" who="Richard Henderson " />
<person posts="9" size="46" who="Jeff V. Merkey " />
<person posts="9" size="35" who="Jesse Pollard " />
<person posts="9" size="35" who="James A Simmons " />
<person posts="9" size="34" who="Whit Blauvelt " />
<person posts="9" size="31" who="Vojtech Pavlik " />
<person posts="9" size="29" who="Ricky Beam " />
<person posts="8" size="35" who="Riley Williams " />
<person posts="8" size="35" who="Borislav Deianov " />
<person posts="8" size="35" who="Sergey Kubushin " />
<person posts="8" size="31" who="Andrew Morton " />
<person posts="8" size="29" who="James Simmons " />
<person posts="8" size="28" who="Strohm Thomas (FV/SLD) * " />
<person posts="8" size="28" who="Theodore Y. Ts'o " />
<person posts="8" size="22" who="Pete Clements " />
<person posts="7" size="83" who="Mike Panetta " />
<person posts="7" size="41" who="Andreas Gruenbacher " />
<person posts="7" size="31" who="Jan-Benedict Glaw " />
<person posts="7" size="28" who=" (Grendel)" />
<person posts="7" size="27" who=" (david parsons)" />
<person posts="7" size="25" who="Khimenko Victor " />
<person posts="7" size="22" who="Wakko Warner " />
<person posts="7" size="22" who="Paul Barton-Davis " />
<person posts="7" size="20" who="" />
<person posts="7" size="19" who="" />
<person posts="6" size="29" who="Richard Guenther " />
<person posts="6" size="26" who="Anton Ivanov " />
<person posts="6" size="24" who="Jakub Jelinek " />
<person posts="6" size="22" who="Rask Ingemann Lambertsen " />
<person posts="6" size="21" who="Q " />
<person posts="6" size="18" who="Chris Meadors " />
<person posts="6" size="17" who="Jason L Tibbitts III " />
<person posts="5" size="26" who="Petr Vandrovec " />
<person posts="5" size="24" who="Rik van Riel " />
<person posts="5" size="19" who="Mike Galbraith " />
<person posts="5" size="19" who="Rajagopal Ananthanarayanan " />
<person posts="5" size="17" who="H. Peter Anvin " />
<person posts="5" size="17" who="Brandon S. Allbery KF8NH " />
<person posts="5" size="17" who="Matthew Kirkwood " />
<person posts="5" size="16" who="Frank de Lange " />
<person posts="5" size="16" who="Harald Kirsch " />
<person posts="5" size="15" who="" />
<person posts="4" size="30" who="James Manning " />
<person posts="4" size="26" who="Dominik Kubla " />
<person posts="4" size="24" who="Oliver Neukum " />
<person posts="4" size="18" who="Horst von Brand " />
<person posts="4" size="17" who="Jan Kasprzak " />
<person posts="4" size="17" who="V Ganesh " />
<person posts="4" size="15" who="Daniel Ryde " />
<person posts="4" size="15" who="Rick Hohensee " />
<person posts="4" size="14" who="Ingo Molnar " />
<person posts="4" size="14" who="Linus Torvalds " />
<person posts="4" size="14" who="Erik Andersen " />
<person posts="4" size="14" who="Paul Fulghum " />
<person posts="4" size="13" who="Brian " />
<person posts="4" size="13" who="Tony Hoyle " />
<person posts="4" size="13" who="Gergely Madarasz " />
<person posts="4" size="13" who="Tomasz Motylewski " />
<person posts="4" size="12" who="Ralf Baechle " />
<person posts="4" size="12" who="Pavel Machek " />
<person posts="4" size="12" who="Gregory Maxwell " />
<person posts="4" size="12" who="" />
<person posts="4" size="11" who="a9504915 " />
<person posts="4" size="11" who="Frank v Waveren " />
<person posts="4" size="10" who="Artur Skawina " />
<person posts="4" size="10" who="Blu3Viper " />
<person posts="4" size="10" who="Lyle Coder " />
<person posts="3" size="26" who="Peter Blomgren " />
<person posts="3" size="24" who="William Stearns " />
<person posts="3" size="24" who="Martin Schenk " />
<person posts="3" size="23" who="Paul Mackerras " />
<person posts="3" size="21" who="Riley Williams " />
<person posts="3" size="20" who="" />
<person posts="3" size="19" who="Philip Blundell " />
<person posts="3" size="18" who="" />
<person posts="3" size="16" who="" />
<person posts="3" size="16" who="Russell King " />
<person posts="3" size="14" who="Butter, Frank " />
<person posts="3" size="14" who="Alessandro Zummo " />
<person posts="3" size="13" who="Shourya Sarcar " />
<person posts="3" size="13" who="Michael H. Warfield " />
<person posts="3" size="12" who="Ville Herva " />
<person posts="3" size="12" who="Tigran Aivazian " />
<person posts="3" size="11" who="Erik Mouw " />
<person posts="3" size="11" who="Chris Wedgwood " />
<person posts="3" size="11" who="Pedro M. Rodrigues " />
<person posts="3" size="11" who=" (Eric W. Biederman)" />
<person posts="3" size="11" who="" />
<person posts="3" size="11" who="Michael J. Dikkema " />
<person posts="3" size="11" who="Andreas Schwab " />
<person posts="3" size="10" who="Glenn McGrath " />
<person posts="3" size="10" who="David Dyck " />
<person posts="3" size="10" who="Marc Mutz " />
<person posts="3" size="9" who="Fabrice Bellet " />
<person posts="3" size="9" who="German Jose Gomez Garcia " />
<person posts="3" size="9" who="Jens Axboe " />
<person posts="3" size="9" who="Sandy Harris " />
<person posts="3" size="9" who="Ulrich Drepper " />
<person posts="3" size="8" who="" />
<person posts="3" size="8" who="" />
<person posts="3" size="8" who="Folkert van Heusden " />
<person posts="3" size="8" who="Alex Buell " />
<person posts="3" size="8" who="Richard Henderson " />
<person posts="3" size="8" who="Thomas Molina " />
<person posts="3" size="8" who="Lee Chin " />
<person posts="3" size="7" who="Leos Bitto " />
<person posts="3" size="7" who="root " />
<person posts="3" size="7" who="Abhishek Khaitan " />
<person posts="2" size="70" who="Christoph Hellwig " />
<person posts="2" size="25" who="Brian Litzinger " />
<person posts="2" size="24" who="Camm Maguire " />
<person posts="2" size="21" who="Jeff Layton " />
<person posts="2" size="18" who="Frederick Barnes " />
<person posts="2" size="18" who="" />
<person posts="2" size="18" who="Kjartan Maraas " />
<person posts="2" size="16" who="ben soo " />
<person posts="2" size="14" who="John Summerfield " />
<person posts="2" size="12" who="David Forrest " />
<person posts="2" size="12" who="Pavan B " />
<person posts="2" size="11" who="=?iso-8859-1?Q?J=F6rgen_Overgaard?= " />
<person posts="2" size="11" who="Gregory Hosler " />
<person posts="2" size="11" who="Gerard Roudier " />
<person posts="2" size="10" who="Admin Mailing Lists " />
<person posts="2" size="10" who="Rainer Keller " />
<person posts="2" size="10" who=" (G.W. Wettstein)" />
<person posts="2" size="10" who="=?iso-8859-1?Q?J=F6rgen_Overgaard?= " />
<person posts="2" size="10" who="Casey Schaufler " />
<person posts="2" size="10" who="Jorge Nerin " />
<person posts="2" size="9" who="Stephen Frost " />
<person posts="2" size="9" who="Neal H Walfield " />
<person posts="2" size="9" who="Steffen Kern " />
<person posts="2" size="9" who="Raj, Ashok " />
<person posts="2" size="9" who="Scott Lampert " />
<person posts="2" size="9" who="Aaron Denney " />
<person posts="2" size="8" who="Leiden, Soren " />
<person posts="2" size="8" who="Richard Guy Briggs " />
<person posts="2" size="8" who="Benjamin C.R. LaHaise " />
<person posts="2" size="8" who="Chris Underhill " />
<person posts="2" size="8" who=" (Eugene Crosser)" />
<person posts="2" size="8" who="Jeff DeFouw " />
<person posts="2" size="8" who="Kurt Garloff " />
<person posts="2" size="8" who="Dunlap, Randy " />
<person posts="2" size="8" who="Tom Leete " />
<person posts="2" size="8" who="Peter Chubb " />
<person posts="2" size="8" who="Tim Magill " />
<person posts="2" size="7" who="Rui Sousa " />
<person posts="2" size="7" who="Mike Coleman " />
<person posts="2" size="7" who="Ed Tomlinson " />
<person posts="2" size="7" who="Andi Kleen " />
<person posts="2" size="7" who="Elmer Joandi " />
<person posts="2" size="7" who="Miles Lane " />
<person posts="2" size="7" who="Jarno Lahteenmaki " />
<person posts="2" size="7" who="David Brower " />
<person posts="2" size="7" who="Aaron Burt " />
<person posts="2" size="7" who="Petr Vandrovec " />
<person posts="2" size="7" who=" (Miquel van Smoorenburg)" />
<person posts="2" size="7" who="Elvis =?ISO-8859-1?Q?Pf=FCtzenreuter?= " />
<person posts="2" size="7" who="Larry McVoy " />
<person posts="2" size="7" who="Garst R. Reese " />
<person posts="2" size="6" who="jamal " />
<person posts="2" size="6" who="Vince Weaver " />
<person posts="2" size="6" who="Michael Mess " />
<person posts="2" size="6" who="Glenn C. Hofmann " />
<person posts="2" size="6" who="Dale Amon " />
<person posts="2" size="6" who="Patrick Cole " />
<person posts="2" size="6" who=" (Arjan van de Ven)" />
<person posts="2" size="6" who="Stephen Rothwell " />
<person posts="2" size="6" who=" (Amy Rupp)" />
<person posts="2" size="6" who="Albert D. Cahalan " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Maciej W. Rozycki " />
<person posts="2" size="6" who="Walter Hofmann " />
<person posts="2" size="6" who="Eric Cox " />
<person posts="2" size="6" who="Andrew Park " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="bug1 " />
<person posts="2" size="6" who="George Bonser " />
<person posts="2" size="6" who="Manfred Spraul " />
<person posts="2" size="6" who="Chris Mason " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Linux Lists " />
<person posts="2" size="6" who="Keith Owens " />
<person posts="2" size="5" who="Lech Szychowski " />
<person posts="2" size="5" who="Sasi Peter " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="David Wragg " />
<person posts="2" size="5" who="Mitchell Blank Jr " />
<person posts="2" size="5" who="Kjetil Torgrim Homme " />
<person posts="2" size="5" who="Dave Gilbert " />
<person posts="2" size="5" who="Niels Kristian Bech Jensen " />
<person posts="2" size="5" who="Ben Collins " />
<person posts="2" size="5" who="Alan Curry " />
<person posts="2" size="5" who="Mathijs Mohlmann " />
<person posts="2" size="5" who="Dan Hollis " />
<person posts="2" size="5" who="Soti Robert " />
<person posts="2" size="4" who="Andrew Sydelko " />
<person posts="2" size="4" who="Tim Waugh " />
<person posts="2" size="4" who="f5ibh " />
<person posts="1" size="63" who="Robert de Vries " />
<person posts="1" size="40" who="Decklin Foster " />
<person posts="1" size="26" who="Ingo Molnar " />
<person posts="1" size="23" who="Rudolf Saken " />
<person posts="1" size="13" who="Tim Pepper " />
<person posts="1" size="13" who="Byron Stanoszek " />
<person posts="1" size="12" who="Dave Anderson " />
<person posts="1" size="12" who="David Jeffery " />
<person posts="1" size="11" who="Robert Schiele " />
<person posts="1" size="10" who="Andrey Panin " />
<person posts="1" size="10" who="Peter J. Braam " />
<person posts="1" size="10" who="VAIDEANU Iulian Ionut " />
<person posts="1" size="10" who="Craig S. Bell " />
<person posts="1" size="9" who="Jens Benecke " />
<person posts="1" size="9" who="Achilleas Kotsis " />
<person posts="1" size="8" who="Jorg de Jong " />
<person posts="1" size="8" who="Adel Belhouane " />
<person posts="1" size="8" who="Roger Larsson " />
<person posts="1" size="7" who="Anton Blanchard " />
<person posts="1" size="7" who="" />
<person posts="1" size="7" who="Akira YOSHIYAMA " />
<person posts="1" size="7" who="Carlo E. Prelz " />
<person posts="1" size="6" who="Max Kellermann " />
<person posts="1" size="5" who="Richard Ketchersid " />
<person posts="1" size="5" who="David Fries " />
<person posts="1" size="5" who="Alessandro Suardi " />
<person posts="1" size="5" who="Marco Meloni " />
<person posts="1" size="5" who="Paul Slootman " />
<person posts="1" size="5" who="Greg KH " />
<person posts="1" size="5" who="John Sieh " />
<person posts="1" size="5" who="Jon Masters " />
<person posts="1" size="5" who="Mikael Pettersson " />
<person posts="1" size="5" who="Juan J. Quintela " />
<person posts="1" size="5" who="Joseph Cheek " />
<person posts="1" size="5" who="jim wiegand " />
<person posts="1" size="5" who="Oleg Drokin " />
<person posts="1" size="5" who="Tim Walberg " />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who="Santiago Garcia Mantinan " />
<person posts="1" size="5" who="Serguei Miridonov " />
<person posts="1" size="5" who="Jack Griffin " />
<person posts="1" size="5" who="Matthew A Reklau " />
<person posts="1" size="4" who="Philipp Matthias Hahn " />
<person posts="1" size="4" who="Daniel Phillips " />
<person posts="1" size="4" who="Pete Toscano " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Santiago Garcia Mantinan " />
<person posts="1" size="4" who=" (Patrick J. LoPresti)" />
<person posts="1" size="4" who="Robert " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Paolo Zeppegno " />
<person posts="1" size="4" who="Rahul Sinha " />
<person posts="1" size="4" who="lars brinkhoff " />
<person posts="1" size="4" who="Timo Jantunen " />
<person posts="1" size="4" who="Brent M. Smith " />
<person posts="1" size="4" who="Andreas Bombe " />
<person posts="1" size="4" who="Bo Johansson " />
<person posts="1" size="4" who="Marc MERLIN " />
<person posts="1" size="4" who="Rafal Maszkowski " />
<person posts="1" size="4" who="Bill Rugolsky Jr. " />
<person posts="1" size="4" who="Yiannis Mavroukakis " />
<person posts="1" size="4" who="Bernd Melchers " />
<person posts="1" size="4" who="Heinz Mauelshagen " />
<person posts="1" size="4" who="Red Hat Partisan " />
<person posts="1" size="4" who="Rainer Mager " />
<person posts="1" size="4" who="Adam J. Richter " />
<person posts="1" size="4" who="Simon Kirby " />
<person posts="1" size="4" who="Marc Olivier Chouinard " />
<person posts="1" size="4" who="Brian Hall " />
<person posts="1" size="4" who="Lawrence Manning " />
<person posts="1" size="4" who="Vernon H. Soden " />
<person posts="1" size="4" who="Ivan Kokshaysky " />
<person posts="1" size="4" who="Andrew Stanley-Jones " />
<person posts="1" size="4" who="Alex Belits " />
<person posts="1" size="4" who="NILZA " />
<person posts="1" size="4" who="=?ISO-8859-1?Q?Andr=E9_Dahlqvist?= " />
<person posts="1" size="4" who="Pierfrancesco Caci " />
<person posts="1" size="4" who="Giacomo Amabile Catenazzi " />
<person posts="1" size="4" who="Simon Huggins " />
<person posts="1" size="4" who="Mark Elvers " />
<person posts="1" size="4" who="Alex Khripin " />
<person posts="1" size="4" who="Johannes Elmar Dickgreber " />
<person posts="1" size="4" who="Paul Menage " />
<person posts="1" size="4" who="Craig B Agricola " />
<person posts="1" size="4" who="Andi Kleen " />
<person posts="1" size="4" who="Halvard Moe " />
<person posts="1" size="4" who=" (Arjan van de Ven)" />
<person posts="1" size="4" who="Andrew McNabb " />
<person posts="1" size="3" who="James Antill " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="ejc " />
<person posts="1" size="3" who=" (Paul Menage)" />
<person posts="1" size="3" who="Stephen Marz " />
<person posts="1" size="3" who="Christopher Thompson " />
<person posts="1" size="3" who="Andrey Savochkin " />
<person posts="1" size="3" who="D. Hugh Redelmeier " />
<person posts="1" size="3" who="Joel Jaeggli " />
<person posts="1" size="3" who=" (A. Ott)" />
<person posts="1" size="3" who="Zdenek Kabelac " />
<person posts="1" size="3" who="=?iso-2022-jp?B?GyRCJW8lcyVAITwlaSUkJVUbKEI=?= " />
<person posts="1" size="3" who="Richard Torkar " />
<person posts="1" size="3" who="Paul Jankowski " />
<person posts="1" size="3" who="Ian Soboroff " />
<person posts="1" size="3" who=" (Rogier Wolff)" />
<person posts="1" size="3" who="Chris Richards " />
<person posts="1" size="3" who="AJ Morand " />
<person posts="1" size="3" who="Martin Maciaszek " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Andreas Dilger " />
<person posts="1" size="3" who="Vincent Oberle " />
<person posts="1" size="3" who="Edward S. Marshall " />
<person posts="1" size="3" who="Todd M. Roy " />
<person posts="1" size="3" who="John Cavan " />
<person posts="1" size="3" who="Alan Modra " />
<person posts="1" size="3" who="Steffen Grunewald " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Boris Okun " />
<person posts="1" size="3" who="Henning P. Schmiedehausen " />
<person posts="1" size="3" who="Mark Smith " />
<person posts="1" size="3" who="Frank Cornelis " />
<person posts="1" size="3" who="=?iso-8859-15?Q?Ga=EBl_Qu=E9ri?= " />
<person posts="1" size="3" who="BASTIEN " />
<person posts="1" size="3" who="Jean-Luc Pedneault " />
<person posts="1" size="3" who="Norbert Preining " />
<person posts="1" size="3" who="Bernhard Rosenkraenzer " />
<person posts="1" size="3" who="Jan Vroonhof " />
<person posts="1" size="3" who="Jeremy Fitzhardinge " />
<person posts="1" size="3" who="Frank Bernard " />
<person posts="1" size="3" who="Robert Karlsson " />
<person posts="1" size="3" who="Avi Shevin " />
<person posts="1" size="3" who="Stanislav Meduna " />
<person posts="1" size="3" who="Ian Peters " />
<person posts="1" size="3" who="Orion Henry " />
<person posts="1" size="3" who="Tigran Aivazian " />
<person posts="1" size="3" who="Brian May " />
<person posts="1" size="3" who="Adrian Bridgett " />
<person posts="1" size="3" who="Thierry Vignaud " />
<person posts="1" size="3" who="Craig Kulesa " />
<person posts="1" size="3" who="Torben Mathiasen " />
<person posts="1" size="3" who="Dave Caswell " />
<person posts="1" size="3" who="Badrinath Venkatachari " />
<person posts="1" size="3" who="William Waddington " />
<person posts="1" size="3" who="Harley Privitera " />
<person posts="1" size="3" who="solar " />
<person posts="1" size="3" who="Jan Van Sweevelt " />
<person posts="1" size="3" who="Mr. James W. Laferriere " />
<person posts="1" size="3" who="Werner Almesberger " />
<person posts="1" size="3" who="Christoph Hellwig " />
<person posts="1" size="3" who="Marc SCHAEFER " />
<person posts="1" size="3" who="Amnon Shiloh " />
<person posts="1" size="3" who="Jan Kara " />
<person posts="1" size="3" who="Scott Murray " />
<person posts="1" size="3" who="Olivier De Smet " />
<person posts="1" size="3" who="Andrew Morton " />
<person posts="1" size="3" who="Rainer Krienke " />
<person posts="1" size="3" who="Wieger Opmeer " />
<person posts="1" size="3" who="Eugenio Jimenez Yguacel " />
<person posts="1" size="3" who="Hans-Juergen Knobloch " />
<person posts="1" size="3" who="Richard Zidlicky " />
<person posts="1" size="3" who="Christopher L Tuttle " />
<person posts="1" size="3" who="Richard Brunner " />
<person posts="1" size="3" who="Frank van Maarseveen " />
<person posts="1" size="3" who="Joshua Uziel " />
<person posts="1" size="3" who="Thomas Rottler " />
<person posts="1" size="3" who="Michael Abd-El-Malek " />
<person posts="1" size="3" who="Jeff Noxon " />
<person posts="1" size="3" who="Nicholas Mc Guire " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Robert A. Morris " />
<person posts="1" size="3" who="Mike Castle " />
<person posts="1" size="3" who="Brian Parris " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Anton Altaparmakov " />
<person posts="1" size="3" who="David Weinehall " />
<person posts="1" size="3" who="Jacob Luna Lundberg " />
<person posts="1" size="3" who="Mark Stanford " />
<person posts="1" size="3" who="Pauline Middelink " />
<person posts="1" size="3" who="Robert Greimel " />
<person posts="1" size="2" who="Mike Pakovic " />
<person posts="1" size="2" who="Brad Douglas " />
<person posts="1" size="2" who="Simon Derr " />
<person posts="1" size="2" who="Jes Sorensen " />
<person posts="1" size="2" who="Art Wagner " />
<person posts="1" size="2" who="dr john halewood " />
<person posts="1" size="2" who="Thomas Pornin " />
<person posts="1" size="2" who="Towers, Tim (London) " />
<person posts="1" size="2" who="Marcin Dalecki " />
<person posts="1" size="2" who="Eric Brunet " />
<person posts="1" size="2" who="Walter Hofmann " />
<person posts="1" size="2" who="Robert A. Morris " />
<person posts="1" size="2" who="Olaf Titz " />
<person posts="1" size="2" who="David Odin " />
<person posts="1" size="2" who="Florin Andrei " />
<person posts="1" size="2" who="Davide Libenzi " />
<person posts="1" size="2" who="=?ISO-2022-JP?B?GyRCJCIkZiRfGyhC?= " />
<person posts="1" size="2" who="The Lost Wizard " />
<person posts="1" size="2" who="Martin Mares " />
<person posts="1" size="2" who="Amin Omidzadeh Khosrowshahi " />
<person posts="1" size="2" who="Mike Porter " />
<person posts="1" size="2" who="Werner Almesberger " />
<person posts="1" size="2" who="Alexandre Hautequest " />
<person posts="1" size="2" who="Bob Lorenzini " />
<person posts="1" size="2" who="Sandeep Agarwal " />
<person posts="1" size="2" who="aasloan " />
<person posts="1" size="2" who="seregon " />
<person posts="1" size="2" who="Michael Barabanov " />
<person posts="1" size="2" who="Tomi Leppikangas " />
<person posts="1" size="2" who="=?iso-8859-1?Q?Fredrik_Win=E4s?= " />
<person posts="1" size="2" who="Adam Fritzler " />
<person posts="1" size="2" who=" (Peter Benie)" />
<person posts="1" size="2" who="Rajeev Bector " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Urban Widmark " />
<person posts="1" size="2" who="Ricardo Ferreira " />
<person posts="1" size="2" who="wf " />
<person posts="1" size="2" who="Olivier Galibert " />
<person posts="1" size="2" who="Jesper Juhl " />
<person posts="1" size="2" who="Craig " />
<person posts="1" size="2" who="Jean-Roch SOTTY " />
<person posts="1" size="2" who="mukesh agrawal " />
<person posts="1" size="2" who="Andrea Ferraris " />
<person posts="1" size="2" who="Mike Cole " />
<person posts="1" size="2" who="Giuliano Pochini " />
<person posts="1" size="2" who="Kevin Hilman " />
<person posts="1" size="2" who="Pete Zaitcev " />
<person posts="1" size="2" who="simba " />
<person posts="1" size="2" who="Lennon " />
<person posts="1" size="2" who="Ziad Sayegh " />
<person posts="1" size="2" who="Jurgen Botz " />
<person posts="1" size="2" who="Stanislav Meduna " />
<person posts="1" size="2" who="Meino Christian Cramer " />
<person posts="1" size="2" who="Eizenberg Ariel " />
<person posts="1" size="2" who="Ralf Burger " />
<person posts="1" size="2" who="ListBot Help " />
<person posts="1" size="2" who="jeng " />
<person posts="1" size="2" who="Bernd Eckenfels " />
<person posts="1" size="2" who="Ron Flory " />
<person posts="1" size="2" who="Stefan Monnier " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Aaron Tiensivu " />
<person posts="1" size="2" who="Oliver Xymoron " />
<person posts="1" size="2" who="Gautam Bhuyan (Wipro) " />
<person posts="1" size="2" who="Mark Hahn " />
<person posts="1" size="2" who="Vladislav Malyshkin " />
<person posts="1" size="2" who="Matthew Hawkins " />
<person posts="1" size="2" who="ADAM Sulmicki " />
<person posts="1" size="2" who="Tony den Haan " />
<person posts="1" size="2" who="david " />
<person posts="1" size="2" who="John Covici " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who=" (John Covici)" />
<person posts="1" size="2" who="Arjan van de Ven " />
<person posts="1" size="2" who="Rajeev V. Pillai " />
<person posts="1" size="2" who="Paul Witta " />
<person posts="1" size="2" who="Taso Hatzi " />
<person posts="1" size="2" who="Taso Hatzi " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Jacob Cohen " />
<person posts="1" size="2" who="Walter Brisken " />

</stats>

<section
  title="How To Handle Removable Media"
  subject="Of removable devices"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg00024.html"
  posts="149"
  startdate="15 Feb 2000 00:00:00 -0800"
  enddate="27 Feb 2000 00:00:00 -0800"
>

<p>This was a very long discussion of how to handle removable media, such as
floppies. Some folks felt that the system should automatically detect, and
correctly handle, cases where a disk is removed from the drive, or one disk
is replaced by another. Other folks felt that the 'mount' and 'umount'
commands were just fine for such things. The debate went on and on, and
covered some interesting points. For instance, implementation of such a
feature would be extremely difficult, since it would have to deal with
things like files that were still open when one disk was replaced with
another. On the other hand, the feature is fairly standard in other OSes,
and so the argument can be made that users, especially beginners, have a
right to expect it. It's the sort of debate that marks the meeting of two
worlds. Eventually, I imagine some sort of implementation will be written to
be able to switch floppies around and have it just work, but not before many
flames have cleared the ground.</p>

</section>

<section
  title="SCSI Device Names"
  subject="Drive name slips..."
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg00330.html"
  posts="22"
  startdate="16 Feb 2000 00:00:00 -0800"
  enddate="24 Feb 2000 00:00:00 -0800"
>
<topic>Disks: SCSI</topic>
<topic>FS: ext2</topic>

<mention>Chris Meadors</mention>

<p>Ashok Raj noticed that the kernel would name SCSI devices 'sda', 'sdb', and
so on. If the drive switched slots or moved across to a different
controller, he pointed out, it could have bad effects. He explained, <quote
who="Ashok Raj">Worst case is removing a drive and the drive device files
dont have a persistant assiciation with the location.</quote> He asked if
there was a solution for this. Andreas Dilger replied, <quote who="Andreas
Dilger">If you are using ext2 filesystems, you can use the ext2 filesystem
"label" instead of the device in /etc/fstab, so you don't get burned by
drive name or address changes. See mount(8) and fstab(5) for more info (a
newer version of mount is required to support labels).</quote> Chris Meadors
and Giuliano Pochini were both happy to hear this, but Giuliano asserted,
<quote who="Giuliano Pochini">I think it's better to store the name in the
partition table instead of in the filesystem.</quote> Horst von Brand
explained, <quote who="Horst von Brand">The (PC) partition format can't be
changed now. And there is no space there for a name.</quote></p>

</section>

<section
  title="Proposed SyncPPP Layer Modifications"
  subject="Proposed SyncPPP layer modifications"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg00847.html"
  posts="18"
  startdate="18 Feb 2000 00:00:00 -0800"
  enddate="22 Feb 2000 00:00:00 -0800"
>
<topic>Networking</topic>

<p>Jan Kasprzak posted the following proposal:</p>

<quote who="Jan Kasprzak">

<p>I want to propose the following two changes in the
implementation of the syncppp layer in linux/drivers/net/wan/syncppp.[ch].
The syncppp handling is currently different than the ethernet one (and fddi
and TR too), which causes some code duplications in the drivers and a
suboptimal implementation in syncppp.c. Let me know what do you think about
the following (i have it partly done in my tree):</p>

<p><b>Proposals:</b></p>

<p><ol>

<li>implement the equivalent of eth_type_trans(skb, dev) for the syncppp
devices.</li>

<li>implement the common device allocation &amp; registration code similar to
the init_etherdev() and ether_setup() routines.</li>

</ol>
</p>

<p><b>Rationales:</b></p>

<p>
<ol>

<li>

<p>currently the protocol type in the received packet is set to
ETH_P_WAN_PPP, the packet is passed to netif_rx(), and the sppp_input()
routine then changes the skb-&gt;type to the appropriate 3rd-layer protocol
(IP or IPX) and passes the skb to netif_rx() once again. This is wrong and
it caused misinterpretation in tcpdump and ipchains in the past (the packet
is seen twice by the network stack). LCP or Cisco keepalive packets are
handled directly (and thus are seen only once).</p>

<p>I think it will be better to have the sppp_type_trans(skb, dev) routine for
setting up the skb-&gt;proto, skb-&gt;mac.raw, and maybe skb-&gt;dev fields.
It should immediately decide between the ETH_P_IP, ETH_P_IPX and assign the
ETH_P_WAN_PPP type to the LCP and/or Cisco packets (XXX or there can be a
separate type ETH_P_CISCO for Cisco HDLC). The skb with the correct type
then will be passed to netif_rx(), and it will end up in the IP, IPX or
SyncPPP/Cisco routines, respectively.</p>

</li>

<li>

<p>currently all users of syncppp.c (I know of cosa.c, hostess_sv11.c and
sealevel.c, maybe there are others too -- comX?) use their own homegrown
method of allocating the struct net_device, the dev-&gt;priv, the struct
ppp_device and the dev-&gt;name. On the other side there is a clean method
used by all ethernet drivers -- the init_etherdev() and ether_setup()
routines.</p>

<p>I propose to implement the init_spppdev(dev, sizeof_priv) routine, which
will allocate the struct net_device (if needed) and all the other
structures, sets up the syncppp device part (struct ppp_device) and
initialize the syncppp layer using sppp_attach() (which seems to be a good
equivalent of ether_setup()).</p>

<p>When we have the common allocation/setup/registration method of struct
net_device for syncppp devices, we can also get rid of the if_ptr ugliness,
and map the struct ppp_device at the beginning of the dev-&gt;priv instead
(thus every device using syncppp.c should have the struct ppp_device at the
beginning of its dev-&gt;priv the same way it currently has to have the
pointer to this structure there). This saves a one pointer in dev-&gt;priv.</p>

</li>

</ol>
</p>

<p><b>Possible implementation problems:</b></p>

<p>
<ol>

<li>

<p>Should the ETH_P_WAN_PPP be reserved for LCP/IPCP frames only
(and add something like ETH_P_CISCO for Cisco HDLC keepalive
and other frames)? Or should I use ETH_P_WAN_PPP type for both
Cisco HDLC service frames and PPP (LCP/IPCP/keepalive) ones?</p>

<p>Alternatively, the sppp_input can be called instead of netif_rx() by the
network driver, but I think it causess too much work to be done at the
(possible) interrupt time.</p>

</li>

<li>It would be good if the init_spppdev() can use the functions from the
linux/drivers/net/net_init.c. But most of these functions are static. We can
add the init_spppdev() into net_init.c, but this routine should call
sppp_attach, which will need the syncppp.c to be linked into the kernel
(possibly with new CONFIG_SYNCPPP option, which would be set if CONFIG_COSA
or CONFIG_HOSTESS or CONFIG_SEALEVEL is set).</li>

</ol>
</p>

</quote>

<p>Alan Cox gave his OK to proposals 1 and 2, and to the proposal in the second
paragraph of rationale 2; and gave other implementation comments.</p>

<p>Elsewhere, Gergely Madarasz objected to Jan's proposal 2. In a reply to
Jan's first post, Gergely explained, <quote who="Gergely Madarasz">The
problem I see with this: only syncppp and hdlc protocols can be used on
those devices this way. The comx drivers support lapb thru the lapb stack,
and they have a minimal frame relay support too. This would mean that
different protocols need different initialization stuff, etc... which would
make quite a mess, unless all the possible sync serial protocols are
integrated into the syncppp driver... So I don't think this is a good
idea.</quote> Jan replied, <quote who="Jan Kasprzak">Folks, I have proposed
the init_spppdev() as a _helper_ function, nothing more. For the ethernet
device, you don't have to use init_etherdev() if you want to allocate, name,
and register the device yourself. The ether_setup() (and sppp_attach()) is
here to help you in this case.</quote> Someone replied that this would be
fine, as long as the helper function didn't break previous interfaces and
procedures (i.e. as long as current code still worked). Alan replied, <quote
who="Alan Cox">Realistically it does mean breaking them a bit,</quote> and
added, <quote who="Alan Cox">If we break anything it is to make it follow
the same API as the others. This IMHO is a good thing for all</quote></p>

</section>

<section
  title="The Real-Time Clock And Portability"
  subject="Periodic RTC interrupt"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg01116.html"
  posts="27"
  startdate="19 Feb 2000 00:00:00 -0800"
  enddate="22 Feb 2000 00:00:00 -0800"
>
<topic>Real-Time</topic>
<topic>SMP</topic>

<mention>Jan-Benedict</mention>
<mention>Andries Brouwer</mention>

<p>Ralf Baechle was porting Linux to a platform that used the M58T35 real-time
clock, which did not supply the usual /dev/rtc periodic interrupt. He asked
which applications (if any) depended on that interrupt, and explained,
<quote who="Ralf Baechle">the question is if it's worth to care at all and
possibly emulate an timer interrupt from another source.</quote></p>

<p>Jeff Garzik felt that the RTC driver was pointless without interrupts.
Without interrupts, the only thing the driver did was query the RTC status.
He assumed that on the M58T35, this status would have a different format as
well. He asked, <quote who="Jeff Garzik">Andrea, since I think (???) this
was your patch, why do you disable RTC interrupt on Alpha platform? You
might as well disable the entire driver at that point IMHO...</quote> Ralph
replied, <quote who="Ralf Baechle">/dev/rtc still makes sense as the
interface for setting the clock. The old way of directly accessing the
hardware as done in clock(8) is a completly unportable mess,</quote> and
Richard Henderson agreed, adding, <quote who="Richard Henderson">Exactly why
we'd like to still keep it for alpha.</quote></p>

<p>Andrea Arcangeli also replied to Jeff's question, explaining:</p>

<quote who="Andrea Arcangeli">

<p>You are right, I am the one who changed the
rtc device.</p>

<p>RTC is the official alpha timer clock. It's a very special irq on alpha
delivered throught a special pin and a special case in the irq code. We have
to use it as irq clock on alpha SMP. In 2.2.x we are now forced to use an
unofficial rtc-light patch to make alpha-SMP to work correctly.</p>

<p>The reason the rtc device still make lots of sense on alpha even if doesn't
own the rtc interrupt is that it allows hwclock to play with the RTC time
settings.</p>

</quote>

<p>A bit of discussion followed Andrea's post. Jan-Benedict Glaw was not able
to load RTC as a module on his one-processor Alpha system. Jeff asked if
this was still true in 2.3.47-pre6, and Jan-Benedict replied that in that
version, the module couldn't even be <i>built</i> without heavy patching. He
hoped this was not intentional, and that RTC would be usable as a module on
his machine in the near future. But Richard replied, <quote who="Richard
Henderson">Not for interrrupts. My only suggestion, if you want interrupts,
is to modify the rtc driver to try and get the PIT to do the job instead. Of
course, that will fail on RUFFIAN, which doesn't have its RTC connected to
anything, and has to rely on the PIT for timer interrupts. But it's the
oddball.</quote> Jan-Benedict replied:</p>

<quote who="Jan-Benedict Glaw">

<p>Not long ago one could build a running kernel
for Alpha w/o RTC support. For me, RTC is not important at all *except* to
configure the hwclock by hwclock 'cause it faily badly w/o RTC module
loaded;(</p>

<p>Well, the actual changes for the Alpha platform show me the some new way:
compile RTC _in_ or don't compile it at all. Is that right? Of course I can
do so, but since "older" kernel were fine with RTC being only a module I
really wonder about that (a bit...) (because I like modules very
much;).</p>

</quote>

<p>Andries Brouwer also replied to Jeff's first assertion that the RTC was
pointless without interrupts; Like Ralf, he pointed out the RTC was useful
for reading and setting the hardware clock, which was useful for programs
like 'hwclock', so that, as user programs, they would not have to tinker
directly with the hardware. Ralf replied that he wanted to see the direct
hardware tinkering taken out of 'hwclock', since the code to do it was messy
and hard to port. Andrea added, <quote who="Andrea Arcangeli">going raw on
the chip from userspace without kernel iteraction can't be done without
races on SMP. There should be at least a BIG warning in hwclock docs and it
shouldn't be take as per default thing if rtc device is not
available.</quote> But he also acknowledged, <quote who="Andrea
Arcangeli">OTOH I know the door for the SMP race is quite small..</quote></p>

</section>

<section
  title="devfs"
  subject="devfs howto"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg01082.html"
  posts="27"
  startdate="19 Feb 2000 00:00:00 -0800"
  enddate="22 Feb 2000 00:00:00 -0800"
>
<topic>FS: devfs</topic>

<p>Ian Ehrenwald asked if any 'devfs' documentation was hiding somewhere on the
net, aside from the README in 'linux/Documentation/filesystems/devfs', whcih
didn't give any examples to follow. Victor Khimenko gave some brief
instructions:</p>

<quote who="Victor Khimenko">

<p>Just compile kernel with devfs, add
append="root=/dev/ide/host0/bus0/target0/lun0/partXX" (or where are your
root is placed) and try to fire up system. System will complain loudly on
your "broken" /etc/fstab and you'll be able to enter root password (in most
distributions -- this is userland issue) and fix it. Then you'll need to fix
/etc/inittab and pile of distribution specific files... Installation of
devfs is VERY distribution-specific thing (especially now when there are no
compatibility entries by default)... All needed technical background is in
mentioned directory...</p>

<p>If you can not imagine how your root will be called after reboot just fire
new kernel and look on screen: you'll see needed stuff there. Just "part1",
"part2", "part3" and so on will be called "p1", "p2", "p3" and so
on.</p>

</quote>

<p>There followed a bit of discussion about why the names had changed. Some
folks preferred the old names, and some preferred the new. But it was
pointed out that by running 'devfsd', it was possible to get the old names
back.</p>

</section>

<section
  title="Developers Dispute NIS Implementation"
  subject="IP changes in 2.3.4x make things wierd?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg01190.html"
  posts="38"
  startdate="20 Feb 2000 00:00:00 -0800"
  enddate="23 Feb 2000 00:00:00 -0800"
>
<topic>BSD</topic>

<mention>Chris Wedgwood</mention>
<mention>Richard Gooch</mention>
<mention>Vince Weaver</mention>

<p>Eugene Crosser noticed that somewhere between 2.3.40 and 2.3.45, <quote
who="Eugene Crosser">glibc resolver, among other things, is trying to query
the portmapper at localhost. On 2.3.40, it immediately gets ECONNREFUSED but
on 2.3.45 it succeeds and waits for answer for 5 seconds, and then makes
several more attempts,</quote> causing delays. Vince Weaver confirmed the
behavior, and David S. Miller explained, <quote who="David S.
Miller">Disable NIS entirely on your system. The C library is trying to
lookup hostnames and user names using NIS, and since you aparently have no
NIS or portmapper running, it times out trying to contact that
server.</quote> He added that with glibc this could be controlled by editing
<code>/etc/nsswitch.conf</code>. Richard Gooch added that editing the same
file would work in libc5 systems as well. Vince reported to David that this
definitely fixed the problem, but asked why the 2.3.4x kernels made the
situation an issue, while earlier kernels did not.</p>

<p>David replied, <quote who="David S. Miller">Our UDP response behavior
previously was extremely bad for these sorts of transactions under any load.
It was nice for all the simple cases, but as the connection attempt rates
increase the possibility of later applications seeing responses meant for
previous ones grows larger. The new behavior fixes this hole.</quote> But
Alan Cox cried out:</p>

<quote who="Alan Cox">

<p>Oh god not this again.</p>

<p>We went through this cycle during 1.3 and during 2.1 and in both times ended
up back where we were.</p>

<p>Ok so how does a non setuid application receive the ICMP errors it needs to
make intelligent decisions about load balancing UDP queries in 2.3.x ? If
you can't answer that problem cleanly then your change is broken.</p>

<p>Not reporting the error is even more stupid than reporting it. Its always
been configurable before. Still it may explain why 2.3.x now hangs during
boot starting userspace apps here.</p>

</quote>

<p>David replied, <quote who="David S. Miller">Accidently reporting the error
to the next application which happens to unluckily get that same port is
even more dangerous.</quote> He also quoted an email from Alexey Kuznetsov,
and added, <quote who="David S. Miller">Alan, you cannot propose going back
to the old behavior without proposing a solution to this problem.</quote>
The quote from Alexey was:</p>

<quote who="Alexey Kuznetsov">

<p>Let's wait a bit with this problem. I had very
good reasons to make this and want to observe for reaction a bit more before
starting some ado. I know that Alan advocated this Linux specific feature
for years, I advocated it too and even more aggressively. But at time when
Linux (and me) entered to mature state and started to serve thousands of
processes and connections, I started to suspect something wrong. When
IP_RECVERR was done, it were purely theoretical doubts.</p>

<p>Now I have no doubts that it is wrong.</p>

<p>The last drop was the accident with CommuniGatePRO. It has high preformance
DNS resolver, using not-connected sockets concurrently and at some level of
load it fails to resolve names even for local 100% reliable DNS services. I
ridiculed its vendor for long time, but had to explain, why only Linux fails
yet. The source appered clear, sockets get ICMPs from slow remote servers,
which match new innocent sockets. It was the _end_, I shot the feature the
same day when found that it is real.</p>

<p>We have to shot it as soon as possible simply because it does not match
modern situation. The problem was not seen when nobody really used Linux as
loaded server. Actually, exactly with nis it should occur very
frequently.</p>

</quote>

<p>Alan started to propose some implementation, David disagreed, and called for
Alexey to comment. Alexey replied:</p>

<quote who="Alexey Kuznetsov">

<p>I have nothing to add really. We have done
this mistake, we have to recognize it and prodigal son Linux returns to his
BSD father eventually. 8) It is not tragedy, but rather happy end.</p>

<p>The feature was not used by any applications to now in positive sense,
mostly in negative one. That fact that portmap is called even if nobody
asked to use RPC is not-related fact and fixing this configuration bug will
make Linux apps only faster. It is occasional but lucky finding.</p>

<p>To add, libraries need not any changes. New distribution will have correct
nsswitch.conf without spurious "nisplus" switch exactly like Solaris do.
That's all. ?ertainly, hooking IP_RECVERR will add robustness, but it rather
option than demand.</p>

</quote>

<p>Alan, Jeff Garzik and David Parsons all had objections to Alexey's post, but
their objections went unanswered. To Alexey's second paragraph, Alan
objected, <quote who="Alan Cox">It breaks every single existing machine set
up to use NIS by default and relying on the error returns to handle NIS not
being present. It breaks failing over from NIS,</quote> and to Alexey's
third paragraph, where he says that new distributions will have corrected
<code>/etc/nsswitch.conf</code> files, without spurious "nisplus" switch,
Alan replied, <quote who="Alan Cox">This doesnt solve failure handling when
the NIS server vanishes. Right now that works. With your kernel it
doesnt</quote></p>

<p>Jeff put this last point in his own words:</p>

<quote who="Jeff Garzik">

<p>It's not spurious though...  Solaris and Linux'
nsswitch has worked in fail-over-to-next-method mode for as long as I can
remember. In fact, there is even a RETURN=fail token on Solaris to indicate
that failure should abort instead of (the default) trying next mode.</p>

<p>And wearing my MandrakeSoft vendor hat, changes like this in general suck
for us, because there are suddenly additional upgrade issues for legacy
installs, and addition config versioning issues.</p>

</quote>

<p>And David replied to Alexey's same point, <quote who="David Parsons">This is
not so. I'm sure that /etc/nsswitch.conf is all fine and spiffy, but putting
that into libc 4 is not even close to the top of my list of things to do
with Mastodon.</quote></p>

<p>Chris Wedgwood also replied to the post in which David quoted Alexey, and
David came back with:</p>

<quote who="David S. Miller">

<p>Look folks.  All of these arguments are going
on deaf ears, because the old behavior is not coming back without a solution
to the problem which was solved. The problem we have fixed is several orders
of magnitude _worse_ than hostname or username lookups stalling for 30
seconds on a misconfigured system.</p>

<p>As for all the "distribution X is broken now" arguments.  Have any of you
tried to use RARP with 2.3.x using the tools shipped by any vendor in any
release? It won't work, because we tossed rarp from the kernel because it
belongs in user space. Yet I hear nobody crying about that.</p>

<p>I feel rather sure that when vendors ship 2.4.x supported kernels for their
distributions, they will also provide corrections for these issues as well.</p>

<p>2.4.x is about moving on and fixing the problems of our past, not being
stuck with them forever.</p>

<p>Someone mentioned that Solaris deals with dead NIS servers etc. It would be
interesting for someone to find out (with strace or something similar) how
they detect the NIS server being down, I would not be surprised if they used
a timeout mechanism of some sort.</p>

</quote>

<p>But Alan replied:</p>

<quote who="Alan Cox">

<p>Trace any BSD box and you will find a connected UDP
socket delivers ICMP errors to the app. Its been true for over 15 years. Its
used by a lot of BSD apps and neither preaching nor sitting on #linux with
your fingers in your ears going "NotListeningNotListening" loudly will
change that. They use timeouts too but then fast error recovery occurs
because icmps for host unreach (dead in arp cache) occur fast.</p>

<p>The only difference between the old Linux and BSD behaviour is that BSD does
not return ICMP errors to an unconnected socket. We have supported that
since 1.0 (config option) and 1.1 or so (socket option). Note we even
support it in a sane back compatible fashion.</p>

<p>That is not to save IP_RECVERR and friends are not good ideas. But they need
to be good ideas that default to 15 years of defacto standards behaviour.</p>

<p>You don't get to arbitarily re-invent unix apis, tough but true. Otherwise
we could dispose of several useless calls like chdir that can be done in
library space.</p>

<p>Ultimately you are punishing millions of working setups by forcing them to
turn on a feature instead of providing an off switch to those who want to
turn it off.</p>

<p>That isn't good release engineering, it isn't good support engineering, it
isn't good design. Now how about putting the defaults back so that Linux 2.3
is binary compatible with Linux 2.2 and API compatible with the real world.
Otherwise I can tell you for free what the most popular diff in 2.4.0ac1
will be.</p>

</quote>

<p>To Alan's first two sentences, Alexey replied, <quote who="Alexey
Kuznetsov">Exactly. BSD does this because it is well defined behaviour and
Linux did and does this exactly by the same reason.</quote> And to Alan's
"the only difference" statement, Alexey replied:</p>

<quote who="Alexey Kuznetsov">

<p>It was not a difference, but plain bug.</p>

<p>Alan, I did not enter to this discussion until direct query and answered to
reports pointopoint exactly because I know that it is difficult to reroute
brains after years of fighting against all the world. Especially,
publically. I passed through this myself, calmed down, brought apologies to
people, who blamed on strange Linux behaviour, recognised that they were
right and I was wrong.</p>

<p>This thing is not a thing, where discussions can help. It is too simple and
evident.</p>

<p>Again:</p>

<p><ol>

<li>NIS is not broken, NIS works exaclty as it was designed by its
designers.</li>

<li>The fact that it does not return now immediately "no such user", getting
ECONNREFUSED is not a flaw but right thing.</li>

<li>Any application which used unconnected UDP socket and failed on
ECONNREFUSED and EACCES was buggy. Luckily, most of them are already fixed
to _ignore_ these errors.</li>

</ol>
</p>

<p>See?</p>

</quote>

<p>Alan still disagreed. To Alexey's point number 1, he replied that until the
NIS code used connected sockets, it did <i>not</i>, as Alexey asserted, work
exactly as it was designed by its designers. To Alexey's second point, Alan
merely replied, <quote who="Alan Cox">nope,</quote> and to Alexey's final
point, Alan concluded:</p>

<quote who="Alan Cox">

<p>They have an option for it SOL_SOCKET, SO_BSDCOMPAT.
It has been there for years. The right way to fix this would be to set that
flag when FAVOUR_BSD is defined in glibc (ie _bsd_socket) . Then nothing
else breaks.</p>

<p>The current change is basically vandalism</p>

</quote>

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

</section>

<section
  title="Developers Dispute Direction Of Alpha Patches"
  subject="alpha update for 2.3.47-6"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg01189.html"
  posts="10"
  startdate="20 Feb 2000 00:00:00 -0800"
  enddate="22 Feb 2000 00:00:00 -0800"
>
<topic>Disks: IDE</topic>
<topic>Networking</topic>

<mention>Linus Torvalds</mention>

<p>Richard Henderson posted an Alpha patch to use Andrea Arcangeli's IRQ
infrastructure. It also <quote who="Richard Henderson">Cleans up style
issues to my liking.</quote> He added that the patch had been tested on
sx164, up1000, and eb164; and concluded, <quote who="Richard Henderson">the
eb164 is very similar to your pc164, the only real differences being in the
IDE controler. It's using an aic7xxx and two tulips. If this patch doesn't
work for you, I'm not sure what to try -- of course, I'd been running other
recent 2.3 kernels just fine too....</quote></p>

<p>Andrea took issue with Richard's style "cleanup". He objected, <quote
who="Andrea Arcangeli">I don't understand why you feel more happy in having
include/asm-alpha/hw_irq.h in the wrong place arch/alpha/kernel/irq_impl.h
instead of its right location where I moved it in my last patches to make
the irq code architectural clean? And you have still to keep hw_irq.h empty
to satisfy include/linux/irq.h ;). I think you are missing the larger
picture that is you'll have to put hw_irq.h in the right location for sure
in the long term (irq.c in linux/kernel/) and so your current move to the
past where such code was just ready for the long term move make no sense at
all.</quote> He added, <quote who="Andrea Arcangeli">Please revert the buggy
move and resend the patch to Linus. thanks.</quote></p>

<p>Richard replied, <quote who="Richard Henderson">No. Please respect my wishes
on this and do not send Linus a patch to move it back.</quote> He went on,
<quote who="Richard Henderson">MY point is that &lt;asm/hw_irq.h&gt; is
_NOT_ architecturally clean. It provides _NOTHING_ needed by generic parts
of the kernel. And in my not so humble opinion, if it isn't needed by
anything outside the backend, I shouldn't have to expose it to anything
outside of the backend.</quote></p>

<p>To Andrea's comment about him missing the larger picture, and that the files
should go in the locations they would need to be in for the long term,
Richard disagreed, <quote who="Richard Henderson">If and when that happens,
we can rearrange things. When I see what's needed for such a generic irq.c,
I'll put what's needed in that file. But even if that happens irq_impl.h
will STILL exist, because e.g. init_pyxis_irqs has no business in
asm/hw_irq.h.</quote></p>

<p>After a bit more discussion, Andrea had the last word, with, <quote
who="Andrea Arcangeli">It seems you are missing is that I am making the
infrastucture to allow alpha to share the same irq.c of i386. I assumed it
was clear to everybody. FYI: I am not the only one who thinks this is not a
bad thing since there are explicit comments in the kernel that says it will
happen in 2.5.0.</quote></p>

<p>It looked as though Richard was gradually being convinced; but there was no
real conclusion on the list, even though Linus Torvalds was cc:ed through it all.</p>

</section>

<section
  title="fdisk Partition Ordering For Windows 2000"
  subject="[OT] util-linux-2.10g and Windows 2000"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_03/msg01561.html"
  posts="4"
  startdate="22 Feb 2000 00:00:00 -0800"
  enddate="24 Feb 2000 00:00:00 -0800"
>
<topic>FS: FAT</topic>

<mention>Daniel Egger</mention>

<p>Andries Brouwer reported announced <a
href="ftp://ftp.cwi.nl/pub/aeb/util-linux/">util-linux-2.10g</a>, adding
that 'fdisk' had some large, untested changes. He went on in a new vein:</p>

<quote who="Andries Brouwer">

<p>It is rumoured that Windows 2000 does not
accept partition tables that are not ordered according to disk order. (DOS /
Win95 / Win98 have no problems, and neither has Linux) If this is true then
fdisk must become somewhat stricter. The present version has an expert
command f that does a sort. (But, let me repeat, nobody tried this. However,
it compiles.)</p>

<p>If anyone happens to have a Windows 2000 system nearby, I would be
interested in hearing about what it thinks about unsorted (or otherwise less
usual) partition tables, both during an install and during normal
operation.</p>

</quote>

<p>Daniel Egger reported that Windows 2000 refused to boot after his 'fdisk'
experiments, though he couldn't confirm that the cause was actually 'fdisk'.
Jeff V. Merkey replied, <quote who="Jeff V. Merkey">I have tried RC3 and the
final MSDN release of W2K with out of order entries, and they seem to be OK
with out of order FAT, NetWare, and Extended partitions. I have seen some
problems with HPFS partitions that have logical drives assigned in them with
the new Veritas on-disk formats for W2K, but these seem to be bugs, not any
incompatibility issues, and were restricted to RC2 (there was also everal
places they were taking KeSpinLock then touching page pool -- nasty). There
were some problems with this on RC2 with the partition API, but our latest
seems to not have problems with this.</quote> Daniel replied that his
problem occurred on RC2. End Of Thread.</p>

</section>

<section
  title="Magic Number In PID Wrapping Algorithm"
  subject="PID Wrap &lt;strangeness&gt;"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_04/msg00211.html"
  posts="20"
  startdate="22 Feb 2000 00:00:00 -0800"
  enddate="23 Feb 2000 00:00:00 -0800"
>

<p>Richard B. Johnson noticed that <quote who="Richard B. Johnson">On Linux
2.3.41 (haven't checked others) when the PID wraps past 32,767 the next PID
is 300. It is not the next-available low one. Does anybody know why?</quote>
Andries Brouwer replied, <quote who="Andries Brouwer">This behaviour was
introduced in 2.1.37. There is no very good reason. But it separates
processes that were started early (init, syslogd, atd, inetd, lpd, cron,
etc.) from the usual processes. That may be useful to the sysadm - a process
inetd with pid 150 was started at boot time; a process inetd with pid 12053
was not. Having this kind of information may help a bit in maintaining
security.</quote> But H. Peter Anvin pointed out that, as it was possible to
derive the starting time of processes, that would be much more useful for
security than relying on some arbitrary PID behavior. Elsewhere, Thomas
Strohm posted the relevant code from
<code>linux-2.3.41/kernel/fork.c:get_pid()</code>:</p>

<quote who="Thomas Strohm">

<code>

    if((++last_pid) &amp; 0xffff8000) {<br />
        <blockquote>
        last_pid = 300;         /* Skip daemons etc. */<br />
        goto inside;<br />
        </blockquote>
    }

</code>

</quote>

<p>Again elsewhere, Mike A. Harris explained, <quote who="Mike A. Harris">the
idea behind the 300 wrap is not "this is reserved daemon area", but more
like "chances are that most daemons on the system that started up at boot
time, are now residing with PID's below 300, so if the routine that looks
for a new PID (getpid?) skips these 300, then it will have a better chance
at getting a free PID earlier rather than walking through a bunch of PID's
that are likely being used allready.</quote> This made sense to H. Peter,
who reiterated in a different sub-thread, <quote who="H. Peter Anvin">Okay,
someone just pointed out that the reason for this is a performance
heuristic: the first few hundred PIDs tend to be clogged with longrunning
processes, so the PID space is very dense in that range. Thus, skipping over
this range is faster than trying to fill it, and it's not worth worrying
about potentially losing 1% of the PID space.</quote>.</p>

</section>

<section
  title="LVM Makes It Into Official Sources"
  subject="*** ANNOUNCEMENT *** LVM 0.8final driver included in 2.3.47"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_04/msg00293.html"
  posts="4"
  startdate="23 Feb 2000 00:00:00 -0800"
  enddate="24 Feb 2000 00:00:00 -0800"
>
<topic>Disk Arrays: LVM</topic>

<mention>Heinz Mauelshagen</mention>

<p>Heinz Mauelshagen announced with much glee and excitement, that LVM 0.8final
had made it into 2.3.47, and would thus be in the 2.4 stable series; and a
cheer went up from the crowd.</p>

</section>

<section
  title="Status Of IBCS"
  subject="[patch] free_filps locking?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_04/msg00332.html"
  posts="7"
  startdate="23 Feb 2000 00:00:00 -0800"
  enddate="24 Feb 2000 00:00:00 -0800"
>

<mention>Manfred Spraul</mention>

<p>In the course of discussion, Manfred Spraul noted that IBCS appeared to be
unmaintained. Tigran Aivazian replied indignantly:</p>

<quote who="Tigran Aivazian">

<p>What do you mean unmaintained?! It is very well
(well, as time and other duties permits) maintained and the official ABI
site is:</p>

<p><a
href="http://www.ocston.org/~tigran/patches">http://www.ocston.org/~tigran/patches</a></p>

<p>The old official site was ftp.infradead.org/pub/abi but it just has a README
pointing to my site. We (at least myself) look only after the latest version
of ABI, i.e. the latest patch I made was against 2.3.44 I think... Only a
week ago I fixed a few bugs in it, so I do occassionally check that it still
works and yesterday I received a user bugreport from someone trying to run
MicroFocus COBOL under ABI - I am still debugging that one.</p>

</quote>

</section>

<section
  title="Yamaha Stingy With Docs"
  subject="YMF-740C driver?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_04/msg00464.html"
  posts="9"
  startdate="24 Feb 2000 00:00:00 -0800"
  enddate="25 Feb 2000 00:00:00 -0800"
>

<mention>Mike Galbraith</mention>

<p>Mike Galbraith asked if there was a (preferrably GPLed) Linux driver for the
YMF-740C chip, or at least some public docs. Alan Cox replied:</p>

<quote who="Alan Cox">

<p>
<ul>

<li>There are no docs</li>

<li>There is no driver</li>

<li>There is nobody at Yamaha who cares</li>

</ul>
</p>

</quote>

<p>Aaron Burt replied:</p>

<quote who="Aaron Burt">

<p>AFAICT, per <a
href="http://www.yamahayst.com/pcaudio/downloads_body.htm">http://www.yamahayst.com/pcaudio/downloads_body.htm</a>,
the DS-1x series (YMF724, YMF740, YMF744, YMF754) use the same driver.</p>

<p>Looks like the datasheet at <a
href="http://www.yamahayst.com/pcaudio/download/index.htm">http://www.yamahayst.com/pcaudio/download/index.htm</a>
for the YMF-754 should provide enough info to make the SBPro playback-only
emulation go. Support for the other nifty features (digital in/out, etc.)
shall come when Yamaha acquires a clue. Heck-- even their motorcycle line
needs rethinking.</p>

</quote>

<p>Alan replied, regarding whether the datasheet provided enough information,
<quote who="Alan Cox">It does not. Trust me I checked.</quote> And Dan
Hollis added, <quote who="Dan Hollis">Several people have tried enabling
sbpro emulation according to the docs and failed. There is some other
undocumented initialization required. We've been over this several hundred
times now, it should go in a FAQ somewhere.</quote></p>

</section>

<section
  title="Future Of Console Code"
  subject="Linux console driver maintainer?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0002_04/msg00518.html"
  posts="32"
  startdate="24 Feb 2000 00:00:00 -0800"
  enddate="28 Feb 2000 00:00:00 -0800"
>
<topic>Framebuffer</topic>
<topic>MAINTAINERS File</topic>

<p>Mike A. Harris looked over the MAINTAINERS file, and noticed there was
currently no official maintainer of "console". He had been trying to find
out if 2.2.x supported virtual consoles with a different text-mode on each.
He explained, <quote who="Mike A. Harris">I'd like to be able to
individually set each virtual console to a different text mode and be able
to switch from console to console and have the kernel switch video modes as
I go.</quote></p>

<p>To explain the console system, James Simmons explained, <quote who="James
Simmons">Linus orginally wrote it. It has been modified but it really
hasn't changed much. When 2.5.X comes out this will change. Several people
will be working on the new console system.</quote></p>

<p>A bit later, Andries Brouwer put in:</p>

<quote who="Andries Brouwer">

<p>When I wrote this code many years ago (I mean:
dynamic allocation of consoles and resizing) my first version allowed for
VCs all of a different size. However, that didnt work well for me, so I
threw out all complications and only put the current code in the kernel.
(Well, I don't know whether it still is the current code, haven't looked at
it for five years.)</p>

<p>What was wrong about different sizes? One thing was that the kernel does not
have detailed information about all video cards and video modes, so cannot
easily change video modes, so an external program was needed. The present
system, where Alt-RightArrow cycles through all consoles is easy and
convenient, and needs no userspace support.</p>

<p>Another thing was that my monitor/videocard at that time required several
seconds to stabilize after a mode change. So even with userspace support
working with more than a single text mode was unpleasant.</p>

<p>But if you have hardware that handles mode changes well, and you have the
user space support then it is quite possible to do what you want. Probably I
would not change the kernel, but make a program listen to KeyboardSignal
generated by Alt-UpArrow and let this program do a chvt LogVT followed by a
mode change, and make the next KeyboardSignal change back to the original
VT. In that way looking at the log and going back is pressing Alt-UpArrow
twice, even better than Alt-Fn followed by Alt-Fm. It would be a 20-line
program.</p>

</quote>

<p>There followed an implementation discussion. Elsewhere and throughout the
thread, several people pointed out that the framebuffer device could handle
separate video modes for each virtual terminal. At some point James gave a
pointer to <a href="http://www.suse.cz/development/input">The Linux Input
Drivers</a> page, adding, <quote who="James Simmons">This is mostly the
input side of it developed by Vojtech. I have been working on the fbdev
side. His patch has some multiheaded support to it. After 2.4.X is out we
will join forces to find a complete solution :)</quote></p>

</section>

</kc>
