<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="63" date="17 Apr 2000 00:00:00 -0800" />

<intro>

<p>Many thanks go to Arun Sharma, who pointed out that in <kcref
subject="[PATCH] eepro100.c" startdate="30 Mar 2000 00:00:00 -0800"></kcref><!--
kt20000410_62.html#13 -->, the article title, "Intel eepro100 Driver Going
Open Source?" implied that the Intel driver was not already Open Source. As
Arun pointed out, the code and license are available <a
href="http://developer.intel.com/support/network/adapter/pro100/30504.htm">on
Intel's site</a>.</p>

<p>Originally I figured I'd just make sure, so I went over to <a
href="http://www.opensource.org">opensource.org</a> to see if Intel's
license was listed in the <a href="http://opensource.org/licenses/">Open
Source Initiative's list of certified licenses</a>. When I couldn't find it
there, I figured I'd just change the article title anyway, since the main
point in the KT article was that Intel's code was incompatible with the GPL,
not that it was closed source.</p>

<p>I changed the title to "Intel eepro100 Driver To Be GPL-Compatible?" and
wrote back to Arun, letting him know I'd changed the article, but that
actually, the license was not Open Source after all.</p>

<p>Within minutes I got a reply. Arun said, <quote who="Arun Sharma">The text
matches <a
href="http://www.opensource.org/licenses/bsd-license.html">http://www.opensource.org/licenses/bsd-license.html</a>
as far as I can tell. Am I overlooking something ?</quote> I ran to the site
to check it out, and lo and behold, he was right! Arun, you completely rock!</p>

<p>In relation to this, thanks also go to Alan Cox, who took the time to answer
a few of my questions. He said of the BSD license on opensource.org (and
therefore Intel's copy), <quote who="Alan Cox">They have a variant of the
advertising clause which is not GPL compatible. Intel seem keen to sort that
out. I just have to finish clarifying that with Intel then we can merge the
two drivers into one great one.</quote> Thanks for the extra information,
Alan!</p>

</intro>

<stats posts="1366" size="5959" contrib="447" multiples="205" lastweek="169">

<person posts="36" size="137" who="Andre Hedrick " />
<person posts="34" size="107" who="Alan Cox " />
<person posts="31" size="195" who="Marco Colombo " />
<person posts="27" size="97" who="Jeff V. Merkey " />
<person posts="25" size="152" who="Jesse Pollard " />
<person posts="25" size="97" who="Jeff Garzik " />
<person posts="25" size="79" who="Alexander Viro " />
<person posts="24" size="123" who="James Sutherland " />
<person posts="23" size="96" who="David Whysong " />
<person posts="22" size="119" who="David Elliott " />
<person posts="21" size="124" who="Linda Walsh " />
<person posts="20" size="84" who="Peter T. Breuer " />
<person posts="20" size="77" who="Richard Gooch " />
<person posts="18" size="68" who="" />
<person posts="18" size="54" who="Stephen C. Tweedie " />
<person posts="17" size="117" who=" (david parsons)" />
<person posts="15" size="80" who="Rik van Riel " />
<person posts="15" size="56" who="Pavel Machek " />
<person posts="13" size="47" who="Richard B. Johnson " />
<person posts="13" size="42" who="Tim Waugh " />
<person posts="12" size="76" who="Jesse Pollard " />
<person posts="12" size="70" who="Thomas Molina " />
<person posts="12" size="45" who="Peter Zaitsev " />
<person posts="11" size="42" who="Blu3Viper " />
<person posts="11" size="42" who=" (H. Peter Anvin)" />
<person posts="11" size="41" who="Paul Barton-Davis " />
<person posts="11" size="40" who="H. Peter Anvin " />
<person posts="10" size="36" who="Christoph Hellwig " />
<person posts="9" size="70" who="Trond Myklebust " />
<person posts="9" size="32" who="Vojtech Pavlik " />
<person posts="9" size="28" who="Martin Mares " />
<person posts="8" size="29" who=" (Graham Stoney)" />
<person posts="8" size="27" who="Dominik Kubla " />
<person posts="8" size="26" who="Jamie Lokier " />
<person posts="8" size="25" who="Guest section DW " />
<person posts="8" size="25" who="Albert D. Cahalan " />
<person posts="8" size="24" who="Ed Carp " />
<person posts="8" size="23" who="Tigran Aivazian " />
<person posts="7" size="35" who="Andrew Morton " />
<person posts="7" size="30" who="Horst von Brand " />
<person posts="6" size="32" who="Michael H. Warfield " />
<person posts="6" size="26" who="Borislav Deianov " />
<person posts="6" size="26" who="Khimenko Victor " />
<person posts="6" size="22" who="Matija Nalis " />
<person posts="6" size="22" who="Peter Samuelson " />
<person posts="6" size="22" who="Christoph Rohland " />
<person posts="6" size="21" who="Rask Ingemann Lambertsen " />
<person posts="6" size="20" who="Jones D (ISaCS) " />
<person posts="6" size="18" who="bert hubert " />
<person posts="6" size="17" who="James Simmons " />
<person posts="5" size="24" who="Olaf Weber " />
<person posts="5" size="20" who="Horst von Brand " />
<person posts="5" size="19" who="David Balazic " />
<person posts="5" size="18" who="Jens Axboe " />
<person posts="5" size="17" who="Paul Jakma " />
<person posts="5" size="17" who="Bill Maidment " />
<person posts="5" size="16" who="Stephen Frost " />
<person posts="5" size="16" who="Steve Dodd " />
<person posts="5" size="15" who="" />
<person posts="5" size="14" who="Krzysztof Halasa " />
<person posts="5" size="14" who="Maciej W. Rozycki " />
<person posts="5" size="14" who="Manfred Spraul " />
<person posts="5" size="13" who="Tuomas Heino " />
<person posts="4" size="114" who="f5ibh " />
<person posts="4" size="59" who="Tim Waugh " />
<person posts="4" size="40" who="Chris Kloiber " />
<person posts="4" size="27" who="Junjiro Okajima " />
<person posts="4" size="22" who="Christoph Rohland " />
<person posts="4" size="17" who="Mike Galbraith " />
<person posts="4" size="17" who="M Sweger " />
<person posts="4" size="16" who="=?iso-8859-1?Q?Fran=E7ois_romieu?= " />
<person posts="4" size="16" who="Andreas Dilger " />
<person posts="4" size="15" who="Jonathan S. Shapiro " />
<person posts="4" size="15" who="Andreas Bombe " />
<person posts="4" size="15" who="Ricky Beam " />
<person posts="4" size="15" who="Daniel J Blueman " />
<person posts="4" size="15" who="Russell King " />
<person posts="4" size="14" who="Theodore Y. Ts'o " />
<person posts="4" size="14" who="David Schwartz " />
<person posts="4" size="14" who="Wakko Warner " />
<person posts="4" size="13" who="Peter Klosky " />
<person posts="4" size="13" who="Martin Josefsson " />
<person posts="4" size="12" who="David Woodhouse " />
<person posts="4" size="12" who=" (Nick Holloway)" />
<person posts="4" size="11" who="George Bonser " />
<person posts="4" size="11" who="Jan Bobrowski " />
<person posts="4" size="9" who="" />
<person posts="3" size="28" who="Stephen Rothwell " />
<person posts="3" size="28" who="Andrea Arcangeli " />
<person posts="3" size="26" who="Miles Lane " />
<person posts="3" size="18" who="Bernard Imbert " />
<person posts="3" size="16" who="Heinz Mauelshagen " />
<person posts="3" size="15" who="Olaf Dabrunz " />
<person posts="3" size="13" who="Keith Owens " />
<person posts="3" size="12" who="=?iso-8859-1?q?willy=20tarreau?= " />
<person posts="3" size="12" who="Vandoorselaere Yoann " />
<person posts="3" size="12" who="Ted Cabeen " />
<person posts="3" size="12" who="Brian Hall " />
<person posts="3" size="12" who="Jim Mostek " />
<person posts="3" size="12" who="Jim Roland " />
<person posts="3" size="12" who="Linus Torvalds " />
<person posts="3" size="12" who="Larry McVoy " />
<person posts="3" size="12" who="Markus Stenberg " />
<person posts="3" size="11" who="" />
<person posts="3" size="11" who="Matthias Andree " />
<person posts="3" size="11" who="Sandy Harris " />
<person posts="3" size="10" who="Andi Kleen " />
<person posts="3" size="10" who="Dave Mielke " />
<person posts="3" size="10" who="michel " />
<person posts="3" size="10" who="Nicholas Dronen " />
<person posts="3" size="10" who="Michael Bacarella " />
<person posts="3" size="10" who="Elmer Joandi " />
<person posts="3" size="10" who="Andrey Savochkin " />
<person posts="3" size="9" who="Jes Sorensen " />
<person posts="3" size="9" who="Kelsey Hudson - kernel mailing list account " />
<person posts="3" size="9" who="Andrzej Krzysztofowicz " />
<person posts="3" size="9" who="Zoran Davidovac " />
<person posts="3" size="9" who="Dan Hollis " />
<person posts="3" size="9" who="Benjamin Redelings " />
<person posts="3" size="8" who="Matthew Kirkwood " />
<person posts="3" size="8" who="Olaf Titz " />
<person posts="3" size="8" who="Enrico Weigelt " />
<person posts="3" size="8" who="Chris Meadors " />
<person posts="3" size="7" who=" (Arjan van de Ven)" />
<person posts="3" size="7" who="David S. Miller " />
<person posts="2" size="64" who="Simon Kirby " />
<person posts="2" size="18" who="Tobias =?iso-8859-1?Q?Ringstr=F6m?= " />
<person posts="2" size="16" who="Mailtomail " />
<person posts="2" size="16" who="Neil Toronto " />
<person posts="2" size="15" who="Ivan Passos " />
<person posts="2" size="14" who="=?iso-8859-1?Q?Jakob_=D8stergaard?= " />
<person posts="2" size="13" who="Gregory Hosler " />
<person posts="2" size="13" who="Scott Henry " />
<person posts="2" size="11" who="" />
<person posts="2" size="10" who="Mark Hemment " />
<person posts="2" size="9" who="Peter Blomgren " />
<person posts="2" size="9" who="Jonathan Walther " />
<person posts="2" size="9" who="Harald Koenig " />
<person posts="2" size="9" who="Rick van Rein " />
<person posts="2" size="9" who="JM Geremia " />
<person posts="2" size="9" who="Adam " />
<person posts="2" size="8" who="Vince Weaver " />
<person posts="2" size="8" who="Benjamin Redelings I " />
<person posts="2" size="8" who="Petr Vandrovec " />
<person posts="2" size="7" who="Marc Lehmann " />
<person posts="2" size="7" who="Nicholas Vinen " />
<person posts="2" size="7" who="Dylan Ulis " />
<person posts="2" size="7" who="Tony Hoffmann " />
<person posts="2" size="7" who="Geert Uytterhoeven " />
<person posts="2" size="7" who="Dave Jones " />
<person posts="2" size="7" who="Jan-Simon Pendry " />
<person posts="2" size="7" who="Philippe Troin " />
<person posts="2" size="7" who="Mark Orr " />
<person posts="2" size="7" who="Henning P. Schmiedehausen " />
<person posts="2" size="7" who="david " />
<person posts="2" size="7" who="Kernel User " />
<person posts="2" size="7" who="Walter Zimmer " />
<person posts="2" size="7" who=" (Grendel)" />
<person posts="2" size="7" who="Richard Gooch " />
<person posts="2" size="7" who="Alok Mittal " />
<person posts="2" size="7" who="Mike Castle " />
<person posts="2" size="7" who="Jeff Noxon " />
<person posts="2" size="6" who="Richard Zidlicky " />
<person posts="2" size="6" who="Ion Badulescu " />
<person posts="2" size="6" who="Philipp Thomas " />
<person posts="2" size="6" who="Wai-Sun Chia " />
<person posts="2" size="6" who=" (Robert Kaiser)" />
<person posts="2" size="6" who="Meelis Roos " />
<person posts="2" size="6" who="Douglas Kilpatrick " />
<person posts="2" size="6" who="Greg KH " />
<person posts="2" size="6" who="Joerg Stroettchen " />
<person posts="2" size="6" who="Damir Cosic " />
<person posts="2" size="6" who="Otto E Solares " />
<person posts="2" size="6" who=" (Arjan van de Ven)" />
<person posts="2" size="6" who="Forever shall I be. " />
<person posts="2" size="6" who="Dr. Kelsey Hudson " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Nicolas MONNET " />
<person posts="2" size="6" who="Michael W Zappe " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Alan Modra " />
<person posts="2" size="6" who="Carlos Morgado " />
<person posts="2" size="6" who="Eric R. Buddington " />
<person posts="2" size="6" who="Michael Mess " />
<person posts="2" size="5" who="Janek Hiis " />
<person posts="2" size="5" who="Oleg Drokin " />
<person posts="2" size="5" who="Blu3 " />
<person posts="2" size="5" who="Jurjen Oskam " />
<person posts="2" size="5" who="Frank v Waveren " />
<person posts="2" size="5" who="Butter, Frank " />
<person posts="2" size="5" who=" (Ton Hospel)" />
<person posts="2" size="5" who="Bram " />
<person posts="2" size="5" who="Ron Flory " />
<person posts="2" size="5" who="Willy Tarreau " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="Bernhard Rosenkraenzer " />
<person posts="2" size="5" who="Giacomo Catenazzi " />
<person posts="2" size="5" who="David L. Nicol " />
<person posts="2" size="5" who="Robert F. Ross " />
<person posts="2" size="5" who="Jeremy Fitzhardinge " />
<person posts="2" size="5" who="Mike Porter " />
<person posts="2" size="4" who="Felix von Leitner " />
<person posts="2" size="4" who="Alan Curry " />
<person posts="2" size="4" who="David Frana " />
<person posts="2" size="4" who="Matthias Schniedermeyer " />
<person posts="1" size="78" who="Amit S. Kale " />
<person posts="1" size="34" who="Andy Knuts " />
<person posts="1" size="24" who="Tim Coleman " />
<person posts="1" size="18" who="Neal H Walfield " />
<person posts="1" size="13" who="Paul Mackerras " />
<person posts="1" size="12" who="=?iso-8859-1?Q?Jos=E9?= Lello " />
<person posts="1" size="11" who="Adam Schrotenboer " />
<person posts="1" size="10" who="=?iso-8859-1?Q?S=E9bastien_Bernard?= " />
<person posts="1" size="10" who="Jesse Pollard " />
<person posts="1" size="10" who="Wang Jian " />
<person posts="1" size="9" who="Anton Altaparmakov " />
<person posts="1" size="9" who="Scott M. Ransom " />
<person posts="1" size="9" who="Mike Klar " />
<person posts="1" size="9" who="FORT David ou popo " />
<person posts="1" size="8" who="Edward C. Lang " />
<person posts="1" size="8" who="Rick Hohensee " />
<person posts="1" size="8" who="Andrew McGregor " />
<person posts="1" size="7" who="Francois Romieu " />
<person posts="1" size="7" who="Jari Ruusu " />
<person posts="1" size="7" who="Boris Okun " />
<person posts="1" size="7" who="Cor Gest jr " />
<person posts="1" size="6" who="Timothy A. Seufert " />
<person posts="1" size="6" who="Roy Sigurd Karlsbakk " />
<person posts="1" size="6" who="Steve Thompson " />
<person posts="1" size="6" who="J. Nick Koston " />
<person posts="1" size="6" who="Michael Cornwell " />
<person posts="1" size="5" who="Ulrich Windl " />
<person posts="1" size="5" who="Ted Kline " />
<person posts="1" size="5" who="Matthew Hanselman " />
<person posts="1" size="5" who="Mike Smith " />
<person posts="1" size="5" who="Scott Henry " />
<person posts="1" size="5" who="Ari Pollak " />
<person posts="1" size="5" who="David Schwartz " />
<person posts="1" size="5" who="calze " />
<person posts="1" size="5" who="Daniel Zeaiter " />
<person posts="1" size="5" who="Evan Langlois " />
<person posts="1" size="5" who="Admin Mailing Lists " />
<person posts="1" size="5" who="" />
<person posts="1" size="4" who="Stephen Richard Ives " />
<person posts="1" size="4" who="Jon " />
<person posts="1" size="4" who="Bryan -TheBS- Smith " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Byron Stanoszek " />
<person posts="1" size="4" who=" (Linus Torvalds)" />
<person posts="1" size="4" who="nsmith " />
<person posts="1" size="4" who="Helge Hafting " />
<person posts="1" size="4" who="Boszormenyi Zoltan " />
<person posts="1" size="4" who="wu_yb " />
<person posts="1" size="4" who="Arjan van de Ven " />
<person posts="1" size="4" who="John Anthony Kazos Jr. " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Philipp Matthias Hahn " />
<person posts="1" size="4" who="Ingo Oeser " />
<person posts="1" size="4" who="Wai-Sun Chia " />
<person posts="1" size="4" who="Anne Milicia " />
<person posts="1" size="4" who="Zlatko Calusic " />
<person posts="1" size="4" who="Chad Schwartz " />
<person posts="1" size="4" who="Matti Aarnio " />
<person posts="1" size="4" who="Daniel Kobras " />
<person posts="1" size="4" who="Julian Anastasov " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Christian Robottom Reis " />
<person posts="1" size="4" who="Damian Gerow " />
<person posts="1" size="4" who="Paul Schulz " />
<person posts="1" size="4" who="Geert Uytterhoeven " />
<person posts="1" size="4" who=" (Robert Broughton)" />
<person posts="1" size="4" who="Mr. James W. Laferriere " />
<person posts="1" size="4" who="V Ganesh " />
<person posts="1" size="4" who="Takis " />
<person posts="1" size="4" who="Darrell Wright " />
<person posts="1" size="4" who="Michael Meissner " />
<person posts="1" size="3" who="ME " />
<person posts="1" size="3" who="Mike Jagdis " />
<person posts="1" size="3" who="Marc Mutz " />
<person posts="1" size="3" who="rsevenic " />
<person posts="1" size="3" who="William Scott Lockwood III " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Douglas Gilbert " />
<person posts="1" size="3" who="Marc Esipovich " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Boris Okun " />
<person posts="1" size="3" who="Tim Walberg " />
<person posts="1" size="3" who="Mikolaj J. Habryn " />
<person posts="1" size="3" who="Ha Quoc- Viet " />
<person posts="1" size="3" who="Thierry Vignaud " />
<person posts="1" size="3" who="Ulrich Windl " />
<person posts="1" size="3" who="Konstandinos A. Saipas " />
<person posts="1" size="3" who="Frank van Maarseveen " />
<person posts="1" size="3" who="Randy Dunlap " />
<person posts="1" size="3" who="Erik Andersen " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Russell Cattelan " />
<person posts="1" size="3" who="Tobias Ringstrom " />
<person posts="1" size="3" who="Gordon Booth " />
<person posts="1" size="3" who="Marcelo de Paula Bezerra " />
<person posts="1" size="3" who="David Edwards " />
<person posts="1" size="3" who="Chris Buchanan " />
<person posts="1" size="3" who="Paul " />
<person posts="1" size="3" who="James Antill " />
<person posts="1" size="3" who="Brandon S. Allbery KF8NH " />
<person posts="1" size="3" who="Steve Lord " />
<person posts="1" size="3" who="Hans Reiser " />
<person posts="1" size="3" who="Peter Rival " />
<person posts="1" size="3" who="Web Administrator " />
<person posts="1" size="3" who="Aman Singla " />
<person posts="1" size="3" who=" (Rogier Wolff)" />
<person posts="1" size="3" who="Chipzz " />
<person posts="1" size="3" who=" (Mirian Crzig Lennox)" />
<person posts="1" size="3" who="Christopher  " />
<person posts="1" size="3" who="Jeff Newmiller " />
<person posts="1" size="3" who=" (=?ISO-2022-JP?B?GyRCNXVMNRsoQg==?=)" />
<person posts="1" size="3" who="Pierfrancesco Caci " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Thorsten Kukuk " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Kristian Koehntopp " />
<person posts="1" size="3" who="Mike Klar " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Stephen Degler " />
<person posts="1" size="3" who="Chuck Lever " />
<person posts="1" size="3" who="Aneesh Kumar K.V " />
<person posts="1" size="3" who="John Ripley " />
<person posts="1" size="3" who="John Galt " />
<person posts="1" size="3" who="Christopher W. Curtis " />
<person posts="1" size="3" who="Bobby Hitt " />
<person posts="1" size="3" who="Ralf Baechle " />
<person posts="1" size="3" who="Brad Borgald " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Thomas Pornin " />
<person posts="1" size="3" who="Terence Ripperda " />
<person posts="1" size="3" who="Gergely Madarasz " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Christopher C. Chimelis " />
<person posts="1" size="3" who="Ganesh Sittampalam " />
<person posts="1" size="3" who="root " />
<person posts="1" size="3" who="Jan-Benedict Glaw " />
<person posts="1" size="3" who="Ivan Kokshaysky " />
<person posts="1" size="3" who="Matthew Dharm " />
<person posts="1" size="3" who="Mark H. Wood " />
<person posts="1" size="3" who="Ralph Blach " />
<person posts="1" size="3" who="Marcus Sundberg " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Otterboy " />
<person posts="1" size="3" who="Horst von Brand " />
<person posts="1" size="3" who="Gerd Knorr " />
<person posts="1" size="3" who="Stephen Foskett " />
<person posts="1" size="3" who="Ian S. Nelson " />
<person posts="1" size="3" who="Andi Kleen " />
<person posts="1" size="3" who=" (Kristian Koehntopp)" />
<person posts="1" size="3" who="James Riden " />
<person posts="1" size="3" who="hey2gizmo " />
<person posts="1" size="3" who="Steve VanDevender " />
<person posts="1" size="3" who="Antonio Miguel F. M. Trindade " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Arjan van de Ven " />
<person posts="1" size="3" who="Jordan Mendelson " />
<person posts="1" size="3" who="Mark Hahn " />
<person posts="1" size="3" who="German Jose Gomez Garcia " />
<person posts="1" size="3" who="John Justice " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Lukasz Michalski " />
<person posts="1" size="3" who="Ronald G. Minnich " />
<person posts="1" size="3" who="Stefan Monnier " />
<person posts="1" size="3" who="Manfred Spraul " />
<person posts="1" size="3" who="Lawrence MacIntyre " />
<person posts="1" size="3" who="Matthias Urlichs " />
<person posts="1" size="3" who="Henrik Olsen " />
<person posts="1" size="3" who="Adam J. Richter " />
<person posts="1" size="3" who="Web Master " />
<person posts="1" size="3" who="Chip Salzenberg " />
<person posts="1" size="3" who="Doug Ledford " />
<person posts="1" size="2" who="Chris Noe " />
<person posts="1" size="2" who="Michael J. Rensing " />
<person posts="1" size="2" who="clubneon " />
<person posts="1" size="2" who="Stefan Smietanowski " />
<person posts="1" size="2" who="Mikolaj J. Habryn " />
<person posts="1" size="2" who="David Hinds " />
<person posts="1" size="2" who="Ingo Matthaes " />
<person posts="1" size="2" who="Moritz Schulte " />
<person posts="1" size="2" who="Jason Schoon " />
<person posts="1" size="2" who="Super " />
<person posts="1" size="2" who="Alan Ford " />
<person posts="1" size="2" who="Michael Richardson " />
<person posts="1" size="2" who="Nils Faerber " />
<person posts="1" size="2" who="Szekeres Istvan " />
<person posts="1" size="2" who="David Campbell " />
<person posts="1" size="2" who="CSI " />
<person posts="1" size="2" who="Ben Kosse " />
<person posts="1" size="2" who="Mike Bilow " />
<person posts="1" size="2" who="Mullen, Patrick " />
<person posts="1" size="2" who="Wolfgang Wegner " />
<person posts="1" size="2" who="Bernard Sebastien " />
<person posts="1" size="2" who="Tony Lofthouse " />
<person posts="1" size="2" who="Dan Cyr " />
<person posts="1" size="2" who="Leonard N. Zubkoff " />
<person posts="1" size="2" who="Lech Szychowski " />
<person posts="1" size="2" who="Alex Buell " />
<person posts="1" size="2" who=" (Miquel van Smoorenburg)" />
<person posts="1" size="2" who="Robert S. Irrgang " />
<person posts="1" size="2" who="Brian Hurt " />
<person posts="1" size="2" who="Peter Svensson " />
<person posts="1" size="2" who="Ian Collier " />
<person posts="1" size="2" who="Jan Bobrowski " />
<person posts="1" size="2" who="Bruno Boettcher " />
<person posts="1" size="2" who="Tim R. " />
<person posts="1" size="2" who="PortalProfesional.com " />
<person posts="1" size="2" who="Senor Jalapeno " />
<person posts="1" size="2" who="Patrick Lerda " />
<person posts="1" size="2" who="Jeff Garzik " />
<person posts="1" size="2" who="Chris \_Shad0w_\ Crowther " />
<person posts="1" size="2" who="Tom Holroyd " />
<person posts="1" size="2" who="David Konerding " />
<person posts="1" size="2" who=" (Kai Henningsen)" />
<person posts="1" size="2" who="Scott Bisker " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Britton " />
<person posts="1" size="2" who="wu_yb " />
<person posts="1" size="2" who="DeRobertis " />
<person posts="1" size="2" who="David Marshall " />
<person posts="1" size="2" who="Richard Kaszeta " />
<person posts="1" size="2" who="pramodh mallipatna " />
<person posts="1" size="2" who="Bob Lorenzini " />
<person posts="1" size="2" who="Thai " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Brent M. Smith " />
<person posts="1" size="2" who="Brian Gerst " />
<person posts="1" size="2" who="Michel A. S. Pereira - KIDMumU " />
<person posts="1" size="2" who="Venkatesh Ramamurthy " />
<person posts="1" size="2" who="L. Besselink " />
<person posts="1" size="2" who="Rupam Choudhury " />
<person posts="1" size="2" who="Aniruddha BOHRA " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Anca Stoian " />
<person posts="1" size="2" who="Phillip K. Hornung " />
<person posts="1" size="2" who="Garst R. Reese " />
<person posts="1" size="2" who="Wierzbicki, Ralf " />
<person posts="1" size="2" who="David Teigland " />
<person posts="1" size="2" who="Prasert Prapanit " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Kernel Hacker " />

</stats>

<section
  title="NetWare Filesystem Sources Published"
  subject="NWFS Source Code Posted at 207.109.151.240"
  archive=""
  posts="53"
  startdate="27 Mar 2000 00:00:00 -0800"
  enddate="30 Mar 2000 00:00:00 -0800"
>
<topic>Backward Compatibility</topic>
<topic>Clustering</topic>
<topic>Disk Arrays: LVM</topic>
<topic>Disk Arrays: MD</topic>
<topic>Disk Arrays: RAID</topic>
<topic>FS: NFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: ROMFS</topic>
<topic>FS: ext2</topic>
<topic>Ioctls</topic>
<topic>SMP</topic>

<mention>Christoph Hellwig</mention>
<mention>Andi Kleen</mention>
<mention>Richard Gooch</mention>
<mention>Stephen Tweedie</mention>

<p>Jeff V. Merkey announced, <quote who="Jeff V. Merkey">The Open Source
Release of NWFS 2.2 for the Linux 2.0 and 2.2 kernels is posted to our site
at <a href="http://www.timpanogas.com">www.timpanogas.com</a> and <a
href="ftp://207.109.151.240">207.109.151.240</a>. Included are the release
notes. 2.4 will be posted Wednesday, March 29, 2000 at 7:00 a.m. Eastern
Time.</quote> He listed the new features:</p>

<quote who="Jeff V. Merkey">

<p>

<ol>

<li>Full Asynch IO Manager (SMP)</li>
<li>NetWare-ish LRU Mirrored Block Cache.</li>
<li>Handle Based Virtual Partition Mirroring and Hotfixing Engine
(NWVP).</li>
<li>Full SMP Support (and we even tested it).</li>

</ol>

</p>

</quote>

<p>Andi Kleen asked for more explanation of why NWFS used its own buffer cache
instead of the standard Linux one. He also asked, regarding item 1, what
NWFS' asynch manager offered that was better than the normal asynchronous
block device interface. Jeff explained:</p>

<quote who="Jeff V. Merkey">

<p>The Linux Buffer Cache does not present a
logical block cache for NetWare's flavor of mirroring support, although
basically what's there is implemented as a Logical Block Cache on top of the
Linux Buffer Cache. You will notice that NWFS can use either it's own LRU or
the linux buffer cache (there's an #if/#else/#endif for LINUX_BUFFER_CACHE
in block.c -- this will make NWFS sit on top of buffer.c). You would want to
crank down the MAX_BLOCK_BUFFERS count in nwfs.h to something smaller than
2000.</p>

<p>The Async processes bascially provides an elevator for remirroring and
concurrent mirroring I/O so the file system doesn't get starved. It sits on
top of the linux disk interface. These abstractions are also necessary for
our clustered file system for Linux (M2FS). Look carefully at the layering
in nwvp.c, and it will be clear why we did what we did.</p>

<p>This code base also runs on several other platforms, and some of what is
there is not applicable to Linux, but is to NT and DOS. The tools use these
interfaces and we have to have them as convinient abstractions since they
are not available on every platform (not all OS's are as blessed as Linux).</p>

<p>What's here is a smaller version of the internal architecture of Native
NetWare. Some of the services and what they do is a little
different.</p>

</quote>

<p>Two threads branched out of this explanation. Pavel Machek pointed out,
<quote who="Pavel Machek">putting additional abstraction layers is
considered evil... I don't think you can push nwfs into linus's tree with
design like that. It is fine for occasional access of nwfs drives,
through.</quote></p>

<p>Jeff replied characteristically, <quote who="Jeff V. Merkey">It's a design
that Novell uses to gross more $$$$$$$ routinely in one month than Linux has
brought in with all the Linux companies revenues combined in the past five
years. :-)</quote> And then added:</p>

<quote who="Jeff V. Merkey">

<p>Wasn't trying to push anything, there are lots
of people who want NetWare stuff, just trying to make Linux more attractive
to Novell's 9,000,000 server installed base and get the NetWare file system
on Linux out the door. You guys are always welcome to carve up NWFS like a
christmas turkey and chunk the pieces that don't make sense for Linux moving
forward. You'll find I'm not too religious about the sanctity of my own
code, I'd rather be a contributor and team player with you guys. :-)</p>

<p>With the page cache, the file systems in Linux are more or less reduced to
meta-data drivers (very similiar to where NT is at today). The extra layers
are not really all that heavy, and are there to support our clustering stuff
(which we will open source as well). Most of them use fast paths in the code
(which you will see if you take the time to look at it). Unlike most of the
File System code in Linux, NWFS has COMMENTS, NOTES, EXPLANATIONS, DETAILED
TECHNICAL INFO, etc. :-)</p>

<p>You guys might learn something by looking at it.  I am right at this moment
staring at the NCPFS code in 2.3.99Pre3 since there is NO DOCUMENTATION ON
THE PAGE CACHE, DCACHE, VFS or anything else here to help besides pouring
over source code. :-)</p>

<p>Don't knock NetWare til you try it. :-)</p>

</quote>

<p>He replied to himself shortly afterwards, with a reproach for Pavel:</p>

<quote who="Jeff V. Merkey">

<p>Oh Yeah, and I almost forgot.  Remember those
emails I sent you 6 months ago. The one's asking for your help with creating
an md driver for the NetWare mirroring so I didn't have to replicate a
NetWare style LRU so I could tightly integrate NWFS with the Linux Buffer
Cache and md (in fact, I even was willing to give you the nwvp code and sent
it to you so you could put it into the current RAID driver)?</p>

<p>Did you ever respond.   NO ......</p>

<p>How many emails did I send you?   Was it seven or eight?</p>

<p>Did you answer any of them.  NO .......</p>

<p>If you are still interested in doing what I suggested, unlike you, I will
answer your emails and help you take over the code (and let you control it
for Linux) so Linux will be able to enter Novell's market with a tighter
implementation.</p>

<p>Think about it ......</p>

<p>:-) :-) :-).</p>

<p>Touche .....</p>

</quote>

<p>Andi brought things back to a technical level, and there followed a bit of
implementation discussion.</p>

<p>Steve Dodd also replied to Jeff's explanation of the buffer cache, saying
that as he understood things, <quote who="Steve Dodd">Al Viro, Stephen
Tweedie, and a number of others have some interesting plans for the block
device layer, buffer cache and page cache, and the interactions between them
and with the VFS -- for 2.5. I assume they're busy with tidying up 2.4pre
loose ends at the moment, but hopefully after 2.4 is out the door and stable
there will be some discussion of the planned changes on linux-fsdevel. It
sounds (I've not looked at your code yet) like your input would be useful
when that happens. An I/O system that meets everyone's needs for 2.6 would
be a great goal..</quote> He added, <quote who="Steve Dodd">regarding your
comments about Linux documentation - have you looked at the work Alan Cox is
doing on this yet?</quote> To this last point, Jeff replied, <quote
who="Jeff V. Merkey">Yes, i've looked at Alan's Documentation stuff. And as
always, Alan's work is absolutely excellent -- however, what's really needed
is something like NT puts out with their IFS Kits, a sample VFS code example
for a NULL file system for folks who are porting to Linux. Would cut down on
time along with an "oh shit" list of interface issues to watch out for.
Richard Gooch did a decent job on the vfs.txt file (it was better than
nothing). We need more though to get on par with NT.</quote></p>

<p>Matthew Kirkwood replied with an interesting comment:</p>

<quote who="Matthew Kirkwood">

<p>As I understand it, your nwfs is probably the
first filesystem to have been successfully "ported" to Linux. Pretty much
everything else (with, perhaps, the exception of the abomination that is the
NTFS driver) started off native.</p>

<p>The multiple times that I have written 30 to 70% of a filesystem, I found
the romfs and minixfs code to be most instructive as a guide to the VFS
interfaces. The buffer and page cache stuff is rather harder to track down
canonical examples for, though again minixfs is pretty helpful, if rather
simplistic.</p>

</quote>

<p>Jeff replied that he also used Minix for reference. Steve pointed out,
<quote who="Steve Dodd">ext2 really isn't too bad an example, either. The
page cache stuff seemed to be surprisingly simple (unless I've missed some
important wrinkles) to figure out from that, and the relevant bits of vfs
code.</quote> And Erez Zadok added:</p>

<quote who="Erez Zadok">

<p>Whenever Ion and I wanted to understand the VFS-f/s
interaction, we often looked at the VFS code, and samples of three file
systems:</p>

<p>

<ul>

<li>msdos/fat: it's a small block-level f/s.  small enough that you can
follow most of the code and understand it.</li>

<li>ext2: does much more, in case msdos is too simple, but often we didn't
need to look at ext2fs.</li>

<li>nfs: b/c so much of the VFS was "hacked" to support NFS.  This helped us
understand things that we didn't need to worry about in our stacking
templates, b/c they were specific to NFS.</li>

</ul>

</p>

</quote>

<p>Alan Cox replied to Jeff's comments about his documentation activities,
pointing out that documenting functions was more important than documenting
the structures. He added that too many programmers thought documentation was
<quote who="Alan Cox">boring and uncool,</quote> adding, <quote who="Alan
Cox">Documentation is worth it just to be able to answer all your mail with
'RTFM'.</quote></p>

<p>Jeff volunteered to create and maintain the code and docs for a NULL
filesystem driver, and Alan gave his blessings.</p>

<p>The thread ended, but under the Subject: <a href="">NWFS 2.2.1 Source Code
Released (nwfs0328)</a>, Jeff announced:</p>

<quote who="Jeff V. Merkey">

<p>The Open Source Code for NWFS 2.2.1 hss been
posted to <a href="http://www.timpanogas.com">www.timpanogas.com</a> and <a
href="ftp://207.109.151.240">207.109.151.240</a>. This version corrects a
reported mirroring coalescence problem and fixes a bug in the
nwvp_vpartition_map_asynch_write() function.</p>

<p>NWFS 2.2.1 Sources are in the nwfs0328.zip and nwfs0328.tar.gz files on our
FTP server at 207.109.151.240 or www.timpanogas.com. We will post NWFS 2.2
for Linux Kernel 2.4 support tommorrow morning at 7:00 a.m.</p>

</quote>

<p>There was no reply to that, but under the Subject: <a href="">Oops in 2.2.15
with NWFS using the Linux Buffer Cache SMP</a>, Jeff reported:</p>

<quote who="Jeff V. Merkey">

<p>I am seeing an oops and message indicating that
the VFS buffer free lists are getting corrupted under 2.2.15 when I use NWFS
with multiple SMP threads with the Linux Buffer Cache. The NWFS LRU works
just fine, however.</p>

<p>If I put a big lock over all accesses and make all the interactions with the
buffer cache synchronous, the problem goes away.</p>

<p>Is it required that I hold the kernel lock with lock_kernel() over the Linux
Buffer Cache when doing I/O to it in 2.2.15?</p>

</quote>

<p>David S. Miller replied, <quote who="David S. Miller">Yes.  The buffer cache
was not thread safe until I did that work circa ~2.3.13 or so.</quote>
Stephen C. Tweedie also confirmed, <quote who="Stephen C. Tweedie">the bulk
of the 2.2 VFS is still single-threaded,</quote> and later added, <quote
who="Stephen C. Tweedie">the SMP threading is one of the more pervasive
changes between 2.2 and 2.3. A lot of people have worked on that, and the
VFS is much, much more scalable on SMP in 2.3 now. That necessarily makes
life more complex for driver or filesystem writers, but there's really no
way to avoid that when you go for fine-grained SMP.</quote></p>

<p>That thread ended, but elsewhere, under the Subject: <a href="">Release of
NWFS 2.2.2 on Linux 2.3.99pre3 Moved to March 31, 2000</a>, Jeff announced
that he was pushing back the date of release for NWFS 2.2.2 due to lack of
sleep and remaining problems with the code. There was no reply to that, but
under the Subject: <a href="">block_dev.c not backward compatible with
2.2.15 APIs</a>, Jeff reported that he couldn't find a good way for NWFS to
scan for all the hard drives on the system. Alexander Viro replied, <quote
who="Alexander Viro">I see absolutely no valid reasons for filesystem to
scan all disks. What are you actually trying to do?</quote> Jeff explained:</p>

<quote who="Jeff V. Merkey">

<p>NetWare does not follow the Unix model of "one
partition, one file system tree" (which is an ancient and limiting
architecture for File Systems). The model linux is taking is almost
identical to NT, a model where the I/O subsystem presents single partitions
through a very restrictive I/O interface. (Doing this in NT is extremely
nasty -- I have to build a disk and partition pointer map in user space,
then pass it to the driver via an IOCTL to the Windows NT NetWare File
System).</p>

<p>NetWare uses a multi-segmented architecture where several segments for a
particular volume can be stripped across multiple drives (a single NetWare
partition can host 8 volumes segments per partition, and these segments can
be for the same volume or 8 other stripped volumes). I need to be able to
scan the volume tables on each NetWare partition in order to build a global
map of all NetWare volume segments on all drives (a single sector read per
drive to locate the volume segment tables).</p>

<p>I also need it to locate all mirror groups and mirror members before
bringing the mirroring and hotfixing engine on line. This is why. If there
is a "cleaner" way to do this with a published API, please show me.</p>

</quote>

<p>Christoph Hellwig and Steve recommended checking out LVM. Elsewhere in the
discussion, Stephen suggested, <quote who="Stephen C. Tweedie">Scan the
gendisk_head list. That contains all present disks and partitions (as
visible in /proc/partitions). It also contains the partition type
information if you want to restrict your volume scan to specific partition
types (this is how the software raid code performs its scan for raid
autostart devices, for example).</quote> Jeff liked this, and switched the
implementation he was working on, to do that instead.</p>

<p>Elsewhere, under the Subject: <a href="">NWFS 2.2.2 Source Code for Linux
Kernels 2.0/2.2/2.4 Released</a>, Jeff announced the latest NWFS source
code, and said, <quote who="Jeff V. Merkey">There is still much work to do
on Linux 2.4. Support for Linux Kernel's 2.0/2.2 is nearing
completion.</quote> Some folks tried it out, had problems, and there was
some implementation discussion.</p>

</section>

<section
  title="devfs Bitterness"
  subject="Location of shmfs; devfs automagics"
  archive=""
  posts="92"
  startdate="28 Mar 2000 00:00:00 -0800"
  enddate="10 Apr 2000 00:00:00 -0800"
>
<topic>FS: devfs</topic>
<topic>FS: procfs</topic>
<topic>Feature Freeze</topic>

<p>H. Peter Anvin protested with vehemence, <quote who="H. Peter Anvin">devfs
seems to think it is above the normal way of doing things (unlike ALL OTHER
filesystems, including procfs and shmfs) and not only will mount itself on
/dev automatically, but will do so *by default*. This is incredibly
antisocial behaviour, and has no justification. If there are conditions
under which you would need devfs before you have mount(8) available -- which
I do not believe is ever the case -- it may be justifiable to have it as an
option, but making it default behaviour is pretty much unacceptable. Use
/etc/fstab like everything else, please.</quote> A lot of people agreed with
this (and with other objections to 'devfs') but some spoke out in support of
'devfs' as well. Namespace incompatibilities came up as well. It was pointed
out that even with 'devfsd', which is supposed to give '/dev' the traditional
device names, some names were left out. As Michael H. Warfield said:</p>

<quote who="Michael H. Warfield">

<p>I don't see devfs creating anything for my
usb printer when I plug it in, or the usbmouse either, for that matter. I've
got 2.3.99pre3 and I've got devfsd running. If these things are supported,
why isn't anything happening?</p>

<p>Patches for devfs support for the Computone boards were submitted weeks ago,
but they're not in the kernel sources yet and I doubt their going to make
2.4.0. How many other drivers have no support? Somehow, I suspect that most
of the intelligent multiport boards fall into that category and I don't see
anything in the pcmcia stuff either. I agree that some things "fall out in
the wash" when they register things like standard tty ports and drives. But
that still leaves a lot out that haven't been done yet. Sure, I figured out
that you aren't having any problems with this because you aren't using any
of these things.</p>

<p>I also sent Richard (and the devfs list) a list of the ports and devices
that the Computone boards use that are not in devfsd. Maybe one day they'll
show up in devfsd and maybe they won't. I haven't heard a peep back on that
front. I'm sure the patches will make it into the kernel eventually, I'm
just not sure when. That's in the hands of the man in charge.</p>

</quote>

<p>Richard Gooch replied to this, <quote who="Richard Gooch">The problem has
been one of time. I've spent the last few weeks first at a conference, then
travelling, then came back and promptly caught the flu (misery for a week).
And then bring my main machine up to date after an extended absence. So soon
I should be able to start tackling that mountain of devfs email I've got in
my inbox :-( Oh. And I need to write a better HOWTO :-(</quote></p>

<p>Elsewhere, under the Subject: <a href="">Shmem
filesystem? DevFS? Why.</a>, another 'devfs' debate broke out, and it looks
like a bitter argument. Byron Stanoszek started it out by saying that
although he liked the idea of 'devfs', he felt its implementation left
something to be desired. He said, <quote who="Byron Stanoszek">The
current /devfs method forces all user-level programs to be rewritten to use
the new format, i.e. changing say /dev/tty10 to /devfs/tty/10. This also
causes the potential problem that new programs will be written only for
/devfs and not maintain compatibility with the old /dev structure.</quote>
Richard replied simply, <quote who="Richard Gooch">My original devfs patch
had what you wanted: the old names were preserved. Linus mandated that the
old names would not appear in the kernel. So instead, I updated devfsd which
can automatically create the old names.</quote> Theodore Y. Ts'o spoke up
with some harsh criticism of that process:</p>

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

<p>A number of people thought devfs was a bad
idea. It went in, anyway, during feature freeze, because Linus was God.</p>

<p>The reason why I dislike devfs is precisely demonstrated by a lot of people
kvetching with the namespace. It causes policy to be dictated in the kernel;
in this case Linus single-handedly dictated the new naming convention, and
now everyone has to live with it. Of course, it's *his* kernel, so he has
the right to do this, even if it causes a lot of people pain and annoyance.
Personally, it'll be interesting to see how many distributions actually ship
with devfs turned on, or with devfs mounted somewhere else, like /devfs.</p>

<p>A number of user utilities, such as e2fsprogs, need modification to work
well with a mandatory devfs with the new names. I don't plan to do that work
right away, since I have other higher priority items to worry about. So if
any distributions do ship with devfs, they *will* have to ship with devfsd.
Perhaps some of them will simply decide to not ship with devfs at all. (It
after all is still marked as experimental.)</p>

</quote>

<p>The discussion skewed off into linguistic history at this point, because Ted
added as a P.S., <quote who="Theodore Y. Ts'o">Can we at least *please*
chance all occurances of "disc" to "disk" in the publically visible devfs
namespace? The kernel uses American english everywhere else, and having a
mixture of British and American english is just going to cause massive
confusion.</quote> There was much humour made of this, but at some point,
Jes Sorensen put in, <quote who="Jes Sorensen">Ted's request is perfectly
valid, just about every single Linux application I have seen refers to disk
as "disk" and not disc. Changing it in one place like that is silly and
going to cause a lot of nusiance for the users.</quote> Alan Cox recommended
against using 'devfs'. He said, <quote who="Alan Cox">it's policy in the
wrong place, if you dont like it you are screwed.</quote></p>

<editorialize>My own personal opinion of this discussion, is that something
very important is taking place. In general, the top kernel hackers accept
Linus' decisions because they trust him in the wider sense, whether they
agree about a particular issue or not. This is one of the only (if not
<i>the</i> only case I've seen in which a fair number of major contributors
are strongly and vocally dissatisfied by Linus' decision about something.
I'm very interested to see how this eventually resolves itself. Will the
disgruntled folks quit submitting patches? Will they fork a parallel
project? Will 'devfs' improve enough to satisfy their objections? Will Linus
change his mind? Or will the whole debate just fade away? It's a very
strange and interesting situation.&#160;--&#160;Z.B.</editorialize>

</section>

<section
  title="XFS Goes GPL!! (Finally)"
  subject="Source code for Linux XFS now available!"
  archive=""
  posts="14"
  startdate="30 Mar 2000 00:00:00 -0800"
  enddate="04 Mar 2000 00:00:00 -0800"
>
<topic>Access Control Lists</topic>
<topic>FS: EFS</topic>
<topic>FS: JFS</topic>
<topic>FS: XFS</topic>
<topic>Raw IO</topic>
<topic>Version Control</topic>

<mention>Stephen C. Tweedie</mention>
<mention>Steve Lord</mention>
<mention>Dominik Kubla</mention>

<p>The possibility of Open Sourcing XFS was first covered in <kcref
subject="EFS in 2.3.2 ???" startdate="16 May 1999 00:00:00 -0800"></kcref><!--
kt19990527_20.html#4 -->; SGI's announcement was still spawning discussion
in <kcref subject="[OT] SGI to OpenSource XFS"
startdate="20 May 1999 00:00:00 -0800"></kcref><!-- kt19990603_21.html#2 -->. XFS came up in
a general journaling filesystem discussion in <kcref subject="jfs/linux"
startdate="28 Oct 1999 00:00:00 -0800"></kcref><!-- kt19991115_43.html#2 -->, and again in
<kcref subject="JFS" startdate="17 Dec 1999 00:00:00 -0800"></kcref><!--
kt20000103_49.html#3 -->.</p>

<p>This time there was no speculation necessary, XFS has been <a
href="http://oss.sgi.com/projects/xfs/license.html">GPLed</a>. Jim Mostek
made the announcement:</p>

<quote who="Jim Mostek">

<p>Source code for Linux XFS now available!</p>

<p>A complete linux 2.3.99pre2 tree including the XFS filesystem is available
for cvs checkout.</p>

<p>Please refer to: <a
href="http://oss.sgi.com/projects/xfs/cvs_download.html">http://oss.sgi.com/projects/xfs/cvs_download.html</a>
for instructions.</p>

<p>A snapshot of the CVS tree is also availble: <a
href="ftp://oss.sgi.com/projects/xfs/ftpdir/03302000linux-2.3-xfs.tgz">ftp://oss.sgi.com/projects/xfs/ftpdir/03302000linux-2.3-xfs.tgz</a>
This tar file will not be generated on a reqular basis. A "cvs update -d"
should be performed once the tree is download and unpacked.</p>

<p>*************** PRELIMINARY WORK IN PROGRESS CODE *****************</p>

<p>While most of the basic functionality of the XFS file system is working,
this code is still very unstable.</p>

<p>IT MAY CRASH OR HANG YOUR SYSTEM! sooner or later. THIS IS BLEEDING-EDGE
CODE.</p>

<p>This release has only been tried on IA32 systems. People are certianly free
to work on getting it running on other architectures.</p>

<p>Many of the more advanced XFS features are yet to be completed:</p>

<p>

<ul>

<li>        Guaranteed Rate IO</li>
<li>        Direct IO (Raw I/O)</li>
<li>        Real time IO</li>
<li>        Delayed Allocation</li>
<li>        Integration with Volume Managers</li>
<li>        Access Control Lists.</li>
<li>        etc...</li>

</ul>

</p>

<p>For a list of items currently being working on or soon to be worked on refer
to: <a
href="http://oss.sgi.com/projects/xfs/todos.html">http://oss.sgi.com/projects/xfs/todos.html</a></p>

<p>This list will updated as new items are found.</p>

<p>A beta release is planned in a few months and at that time we will release
an xfs rpm.</p>

<p>There is a <a href="mailto:linux-xfs@oss.sgi.com">linux-xfs@oss.sgi.com</a>
mail list that you can subscribe to and watch problems/issues as the get
fixed and are found.</p>

<p>Please e-mail linux-xfs with any issues/problems/... that you find in the
code or while running.</p>

<p>If you want to help with specific work items, please e-mail <a
href="mailto:xfs-masters@oss.sgi.com">xfs-masters@oss.sgi.com</a>.</p>

</quote>

<p>There were a few threadlets in reply. Christoph Hellwig wanted to know where
the archives of the linux-xfs mailing list were, and after asking a couple
times, Dominik Kubla gave a link to <a
href="http://oss.sgi.com/cgi-bin/archive/linux-xfs">http://oss.sgi.com/cgi-bin/archive/linux-xfs</a>.
However, Steve Lord from SGI replied that this link appeared not to be
working, and said it was being looked into. By KT press time, however, the
problem seems to have been cleared up, and the archives go all the way back
to February!</p>

<p>Several people also asked for discrete patches against the Linux sources,
instead of having to download an entire CVS tree. Jim Mostek replied that
Russell Cattelan had just uploaded a patch to <a
href="ftp://oss.sgi.com/projects/xfs/ftpdir/03312000linux-2.3.99pre2-linux-2.3-xfs.patch.gz">ftp://oss.sgi.com/projects/xfs/ftpdir/03312000linux-2.3.99pre2-linux-2.3-xfs.patch.gz</a>.
Christoph replied, <quote who="Christoph Hellwig">Ok, I've downloaded it.
BTW: the patch has all the CVS dirs included, so it is not very well
readable. Could you please remove this in the next version?</quote> Russel
replied with two points. First, he said, <quote who="Russell
Cattelan">Neither the patch file nor the snapshot will be generated on a
regular basis. The CVS stuff will be needed to keep up with the current
state of the tree.</quote> And second, he asked why anyone would want to
read the patch anyway, since it was so large. Christoph said simply, <quote
who="Christoph Hellwig">To know what's inside.</quote></p>

<p>In Christoph's original reply to the announcement, he also mentioned that
direct I/O, as touted in the announcement, seemed to him to not be a
filesystem issue. But Peter Rival replied, <quote who="Peter Rival">No,
Direct I/O _is_ an FS issue. Direct I/O != raw devices. It's more like
taking both of them, slamming them together, and coming up with something
really fast that people like Oracle get all sorts of excited about. It's
actually very cool, and I'd imagine not too hard with all the work
sct</quote> [Stephen C. Tweedie] <quote who="Peter Rival">(et. al.) put in
2.3 with kiobufs and all.</quote> There was no reply.</p>

</section>

<section
  title="Nearing 2.2.15; Assembly Warnings; Tape Drives"
  subject="Linux 2.2.15pre17"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0004_01/msg00101.html"
  posts="18"
  startdate="02 Apr 2000 00:00:00 -0800"
  enddate="05 Apr 2000 00:00:00 -0800"
>
<topic>Assembly</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>Kernel Release Announcement</topic>
<topic>Networking</topic>

<mention>Chris Kloiber</mention>
<mention>Ron Flory</mention>
<mention>Barry K. Nathan</mention>
<mention>Richard Henderson</mention>

<p>Alan Cox announced 2.2.15-pre17, and said that if there were no new
problems, he'd release 2.2.15 in a day or so. He posted the changelog:</p>

<p>

<ul>

<li>Revert the alpha FPU misfix                     (Richard Henderson)</li>

<li>Really apply the typo fix this time             (Barry K. Nathan)</li>

<li>Fix ISDN symbol collision                       (Arjan Van de Ven)</li>

<li>Loose UDP masquerade is now configurable so security concious users can
disable it and game freaks turn it on               (Nigel
Metheringham)</li>

</ul>

</p>

<p>Henrik Storner reported some "Warning: using `%eax' instead of `%ax' due to
`l' suffix" warnings he hadn't seen before, on his Red Hat 6.2 system, with
binutils 2.9.5.0.22 and egcs 1.1.2; and Ron Flory confirmed seeing these
errors on a Red Hat 6.2 system running 2.2.15-pre15; but Alan Modra, also
replying to Henrik, explained, <quote who="Alan Modra">Ignore them, at least
for 2.2.x The newer assemblers have much better syntax checking than older
ones, and are just warning that the asm code here isn't completely
self-consistent. It's done that way for compatibilty with really old
assemblers that add a redundant opcode prefix on certain instructions. In
the case of 2.3.x and the coming 2.4.x, these warnings should be fixed. You
require a fairly new assembler for 2.3.x anyway, to assemble the x86 boot
code.</quote></p>

<p>Elsewhere, Andre Hedrick asked Alan C. if he could get the basic OnStream
driver in for ide-tape. Chris Kloiber supported this and all of Andre's IDE
patches, but Alan C. replied, <quote who="Alan Cox">No. 2.2.16pre1 for the
pending new driver stuff and anything not obviously correct - that wont be
long.</quote></p>

<p>H. Peter Anvin replied peripherally, asking about the performance,
reliability, and portability of tape backup devices, adding that they seemed
to be <quote who="H. Peter Anvin">the only affordable backup drives in their
size range -- currently 25 GB actual.</quote> Andre replied, <quote
who="Andre Hedrick">Yes, their DI-30 flys at ~1200KB per second. This is an
internal hardware limit of the device,</quote> an offered to give H. Peter
the name of a contact inside the company. There was no reply to that, but
Peter Svensson replied to H. Peter's post, adding, <quote who="Peter
Svensson">There is also the VXA drive from Ecrix which (at least in Sweden)
is priced similar and with a similar tape size (33GB uncompressed). It works
as advertised under Linux.</quote> Ha Quoc- Viet replied to this with his
own experiences of OnStream tape drives:</p>

<quote who="Ha Quoc- Viet">

<p>In my own experience :</p>

<p>

<ul>

<li>reading and writing with one CPU is ok with 2.2.15pre15 and 2.3.51</li>

<li>reading with 2 CPUs with 2.2.15pre14 and 2.3.51 doesn't work</li>

<li>reading with 2 CPUs with 2.3.99pre3 is fine.</li>

</ul>

</p>

<p>now, for the SCSI version of OnStream tape drives, Documentation/ide.txt
mentions that no support is currently available. I havent' try though, and I
don't know how updated this file is.</p>

<p>as far as realiability is concerned, I have written 2 tapes so far,
about 10Gigs on a 15 actual gig tape :</p>

<p>

<ul>

<li>I had 1 crc error on the first</li>

<li>I had 3 read/write error on the second</li>

</ul>

</p>

<p>please remember, this is an IDE tape drive. SCSI tape drives perform better
usually.</p>

<p>performance is as expected, no more no less.</p>

</quote>

<p>There was no reply to that, but elsewhere, Philipp Thomas also replied to H.
Peter's initial question, correcting him about the size of the available
drives. As he put it, <quote who="Philipp Thomas">OnStreams IDE drives
currently only support the 15 GB tapes. And if I remember correctly, that's
15 * 10^6 bytes, making it ~13 GB for normal computer users. But even at
that capacity they're still an attractive buy.</quote> H. Peter pointed out
that SCSI drives were larger, to which Philipp replied, <quote who="Philipp
Thomas">Yes, they do. But at least here in Germany the SCSI drives cost
nearly twice as much, although at that capacity that's still a lot cheaper
than comparable streamers.</quote></p>

</section>

<section
  title="Mounting Audio CDs; The Open Source Development Process"
  subject="Music CD's"
  archive=""
  posts="68"
  startdate="02 Apr 2000 00:00:00 -0800"
  enddate="10 Apr 2000 00:00:00 -0800"
>
<topic>Disks: SCSI</topic>
<topic>FS: FAT</topic>
<topic>FS: NFS</topic>
<topic>FS: devfs</topic>
<topic>Ioctls</topic>

<mention>Linus Torvalds</mention>
<mention>David Balazic</mention>

<p>Someone wanted to mount audio CDs, but several people, including Alan Cox,
pointed out that audio CDs did not contain filesystems, and therefore
couldn't be mounted. Several other folks pointed out that tracks could be
interpreted as files, and so <i>something</i> should be workable. At one
point, David Elliott said:</p>

<quote who="David Elliott">

<p>Sorry, but I have to say that that has to be the
dumbest idea I have ever seen.</p>

<p>Reading audio off of an audio CD is not a perfect process.  If you read the
Audio CD specification you'll notice that the best resolution you can get is
1/63 of a second (since every frame is 1/75 of a second). So to fix that
problem you need things like jitter correction algorithms (unless your
CD-ROM already does it) and algorithms to correctly get around scratches.</p>

<p>Trying to put all that crap in the kernel is pretty dumb.  And if you just
do a half-assed job and only let it work for perfect non-scratched CDs on
CD-ROMs with built-in jitter correction, then we will have even more
half-assed MP3s with pops and skips in them.</p>

<p>By far, the best thing to do is keep this crap OUT of the kernel.  The
cdparanoia program can do just about anything you want, and NEVER pops or
skips even on shitty drives. If you are making MP3s of CDs I strongly
suggest that you use cdparanoia and a good encoder.</p>

</quote>

<p>Jens Axboe burst into applause, saying, <quote who="Jens Axboe">This "audio
file system" topic has been brought up so many times before, your comment is
right on the spot. Should be added to an FAQ.</quote> And JM Geremia added:</p>

<quote who="JM Geremia">

<p>As someone who has written an extremely
sophisticated audio cd filesystem, I must say that I completely agree with
Jens. It's a BAD IDEA. Actually, he yelled at me about this about a year ago
:) This would be a great topic to add to the FAQ!</p>

<p>There are two schools of thought:</p>

<p>

<ol>

<li>Things like jitter and scratch correction are not obvious kernel
functionality. They bloat the kernel and can be done just as effectively in
user space. Implementing corrections for drives that do it with hardware is
a waste. Not implementing corrections is inadequate for the rest. The whole
idea behind standards like ide and SCSI is that the drivers can be more
generic.</li>

<li>

<p>The CD-ROM is a device, and doing corrections are the job of the driver.
However, the audio sector size is bigger than the pagesize and this means
doing translation if the filesystem is to use the normal blkdev approach.</p>

<p>The inodes and superblock would all have to be virtual since the only
directory structure on an audio cd is the TOC. I have no problem with this,
personally.</p>

<p>This means that the cd drivers (all of them) would need to be changed to
translate between pagesized blocks and framesize blocks and then have a
fairly intricate cache scheme. Otherwise, the audiofs implementation would
need to make ioctl() calls. I, for one, don't think that the kernel should
use ioctl's. Personally, I don't like them because the kernel has to turn
off memory write verification using get_FS() and set_FS(). I'm not happy
about that.</p>

</li>

</ol>

</p>

<p>Now, honestly, do you think Option (2) is worth all that?  Having
implemented it all (for fun, mainly) I can tell you to stick with the
userspace rippers/encoders. They are the right way to go.</p>

</quote>

<p>Elsewhere, a discussion cropped up about the Linux development process in
general. Leading in, Alan reiterated that an audio FS should not be in the
kernel. As he put it, <quote who="Alan Cox">If its in kernel someone did it
wrong. You can do it just as well using userspace and the coda vfs
hooks.</quote> David Balazic replied that the coda VFS hooks could be used
to implement any other filesystem (FAT, NFS, UFS, etc.) as well; and Richard
agreed, saying he didn't understand where the distinction was drawn. Why
would one filesystem be done in the kernel, while another would have to be
in user space? Matthew Kirkwood stepped forward:</p>

<quote who="Matthew Kirkwood">

<p>Isn't this what makes Linux good?  We don't
have to have absolute, rock-solid, hard-and-fast rules about what goes
where, or how it is done.</p>

<p>We can use what has gone before as precedent, but not be tied by it.</p>

<p>Do we always have to draw a line?</p>

</quote>

<p>Richard replied, <quote who="Richard Gooch">We don't really have guidelines
either, or discussion papers giving at least halfway rational reasons. What
we have now is agitation and flaming and a lot of hysteria.</quote> But
Matthew warned, <quote who="Matthew Kirkwood">Anyone who has watched
linux-kernel for a while should have picked up a reasonable intuition about
such things. A set of written heuristics would quickly degenerate to dogma,
and prevent people from judging each case on its own merit, IMO.</quote>
Richard came back with:</p>

<quote who="Richard Gooch">

<p>But it's not consistent. I'm not asking for
dogma. If it's not written down somewhere (even if marked "in the opinion of
the author"), then every new FS^H^Hpiece of code has to survive a trial by
flamewar. And inevitably, the same old ground is covered each time. It's
wasteful of the time of the people flaming, and it makes linux-kernel more
voluminous, which leads to more people filtering it (or unsubscribing).</p>

<p>Something that might work is that opposing views are written up, by
respected people (i.e. they should have contributed real code, rather than
vocal hangers-on), and referred to in the FAQ. And they should have links to
each other, as well.</p>

</quote>

<p>Thomas Molina entered the debate, with:</p>

<quote who="Thomas Molina">

<p>IMHO this flamage/trial by fire is a strength,
not a weakness. Yes, each "new" idea generates the same/similar arguments.
However, it is through the trial of the arguments that the ideas are tested
and retested to see if they are valid.</p>

<p>Certainly anything which has gone through the wringer more than once
deserves mention in the FAQ. If it generates identical arguments then it
deserves to be ignored. However, what about when someone says I understand
that a, b, and c were extensively discussed before, but here is a new answer
which I think invalidates some of the objections and here is the code which
demonstrates that.</p>

<p>Good/Bad/Indifferent ideas are certainly floatin around all over the place.
I've seen a number of them, and a percentage of those have matured in their
seperateness and eventually got included in the kernel. vfat support and
devfs are cases in point.</p>

<p>We also have the court of final authority in our benevolent dictator, Linus
Torvalds -- even if sometimes he claims to wear a brown bag. He's said more
than once, "I won't even consider X, so don't bother submitting patches for
it." Let's use that; such things also belong in the FAQ. The system works
well, even if it occasionally generates numerous messages. That is what
procmail recipies and the 'n' key are for.</p>

</quote>

<p>Albert D. Cahalan replied somewhat cryptically:</p>

<quote who="Albert D. Cahalan">

<p>Trial by fire excludes some very important
parts of the world. There is a cultural issue here. Consider world
population and economic strength, then notice a really major country from
which there are seldom any linux-kernel posts. (no, English is not the most
serious problem - many can write it well enough)</p>

<p>Yes, really, there are places where flaming isn't accepted.</p>

<p>Not that I have an answer though, and don't bother asking me to single out
the place that comes to mind.</p>

</quote>

</section>

<section
  title="2.4 Jobs List: Saga Continues"
  subject="Linux 2.4 Jobs Update"
  archive=""
  posts="16"
  startdate="03 Apr 2000 00:00:00 -0800"
  enddate="10 Apr 2000 00:00:00 -0800"
>
<topic>Compression</topic>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS: Coda</topic>
<topic>FS: FAT</topic>
<topic>FS: NFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: UMSDOS</topic>
<topic>FS: ext2</topic>
<topic>I2O</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>Power Management: ACPI</topic>
<topic>SMP</topic>
<topic>Security</topic>
<topic>USB</topic>
<topic>Virtual Memory</topic>
<topic>VisWS</topic>

<p>Alan Cox posted his latest list of things to do before 2.4:</p>

<quote who="Alan Cox">

<p>

<ol>

<li>Fixed</li>

<p>

<ol>

<li>Tulip hang on rmmod (fixed in .51 ?)</li>

<li>Incredibly slow loopback tcp bug (believed fixed about 2.3.48)</li>

<li>COMX series WAN now merged</li>

<li>VM needs rebalancing or we have a bad leak</li>

<li>SHM works chroot</li>

<li>SHM back compatibility</li>

<li>Intel i960 problems with I2O</li>

<li>Symbol clashes and other mess from _three_ copies of zlib!</li>

<li>PCI buffer overruns</li>

<li>Shared memory changes change the API breaking applications (eg gimp)</li>

<li>Finish softnet driver port over and cleanups</li>

<li>via rhine oopses under load ?</li>

<li>SCSI generic driver crashes controllers (need to pass PCI_DIR_UNKNOWN..)</li>

</ol>

</p>

<li>In Progress</li>

<p>

<ol>

<li>Merge the network fixes  (DaveM)</li>

<li>Merge 2.2.15 changes     (Alan)</li>

<li>Get RAID 0.90 in         (Ingo)</li>

</ol>

</p>

<li>Fix Exists But Isnt Merged</li>

<p>

<ol>

<li>Signals leak kernel memory (security)</li>

<li>msync fails on NFS</li>

<li>Semaphore races</li>

<li>Semaphore memory leak</li>

<li>Exploitable leak in file locking</li>

<li>Merge the RIO driver (probably do post 2.4.0 as it is large) (in AC tree)</li>

<li>S/390 Merge (merged in AC tree)</li>

<li>1.07 AMI MegaRAID</li>

<li>Any user can crash FAT fs code with ftruncate</li>

<li>Mark SGI VisWS obsolete</li>

</ol>

</p>

<li>To Do</li>

<p>

<ol>

<li>Restore O_SYNC functionality</li>

<li>Fix eth= command line</li>

<li>Trace numerous random crashes in the inode cache</li>

<li>Fix Space.c duplicate string/write to constants</li>

<li>VM kswapd has some serious problems</li>

<li>vmalloc(GFP_DMA) is needed for DMA drivers</li>

<li>put_user appears to be broken for i386 machines</li>

<li>Fix module remove race bug              (mostly done - Al Viro)</li>

<li>Test other file systems on write</li>

<li>Security holes in execve()</li>

<li>Directory race fix for UFS</li>

<li>Audit all char and block drivers to ensure they are safe with the 2.3 locking - a lot of them are not especially on the open() path.</li>

<li>Stick lock_kernel() calls around driver with issues to hard to fix nicely for 2.4 itself</li>

<li>IDE fails on some VIA boards (eg the i-opener)</li>

<li>PCMCIA/Cardbus hangs, IRQ problems, Keyboard/mouse problem (may be fixed ?)</li>

<li>Use PCI DMA by default in IDE is unsafe (must not do so on via VPx x&lt;3)</li>

<li>Use PCI DMA 'lost interrupt' problem with some hw [which ?]</li>

<li>Crashes on boot on some Compaqs ?</li>

<li>pci_set_master forces a 64 latency on low latency setting devices.Some boards require all cards have latency
&lt;= 32</li>

<li>usbfs hangs on mount sometimes</li>

<li>Loopback fs hangs</li>

<li>Problems with ip autoconfig according to Zaitcev</li>

<li>Still some SHM bug reports</li>

<li>SMP affinity code creates multiple dirs wit the same name</li>

<li>TLB flush should use highest priority</li>

<li>Set SMP affinity mask to actual cpu online mask (needed for some boards)</li>

<li>pci_socket crash on unload</li>

</ol>

</p>

<li>To Do But Non Showstopper</li>

<p>

<ol>

<li>Make syncppp use new ppp code</li>

<li>Finish 64bit vfs merges (lockf64 and friends missing)</li>

<li>NCR5380 isnt smp safe</li>

<li>DMFE is not SMP safe</li>

<li>ACPI hangs on boot for some systems</li>

<li>Get the Emu10K merged</li>

<li>Finish I2O merge</li>

<li>Go through as 2.4pre kicks in and figure what we should mark obsolete for the final 2.4</li>

<li>Per Process rtsigio limit</li>

<li>Fix SPX socket code</li>

<li>Boot hangs on a range of Dell docking stations (Latitude)</li>

<li>HFS is still broken</li>

<li>iget abuse in knfsd</li>

<li>Mark NTFS as obsolete</li>

<li>Paride seems to need fixes for the block changes yet</li>

<li>PIII FXSAVE/FXRESTORE support</li>

<li>Some people report 2.3.x serial problems</li>

<li>AIC7xxx doesnt work non PCI ?</li>

<li>USB hangs on APM suspend on some machines</li>

<li>PCMCIA crashes on unloading pci_socket</li>

<li>DEFXX driver appears broken</li>

<li>ISAPnP IRQ handling failing on SB1000 + resource handling bug</li>

</ol>

</p>

<li>Compatibility Errors</li>

<p>

<ol>

<li>exec() returns wrong codes on a file not found</li>

</ol>

</p>

<li>Probably Post 2.4</li>

<p>

<ol>

<li>per super block write_super needs an async flag</li>

<li>addres_space needs a VM pressure/flush callback</li>

<li>per file_op rw_kiovec</li>

<li>enhanced disk statistics</li>

<li>AFFS fixups</li>

<li>UMSDOS fixups resync</li>

</ol>

</p>

<li>Drivers In 2.2 not 2.4</li>

<p>

<ol>

<li>Lan Media WAN</li>

</ol>

</p>

<li>To Check</li>

<p>

<ol>

<li>Truncate races (Debian apt shows it nicely) [done ? - all but Coda]</li>

<li>Elevator and block handling queue change errors are all sorted</li>

<li>Check O_APPEND atomicity bug fixing is complete</li>

<li>Make sure all drivers return 1 from their __setup functions</li>

<li>Protection on isize  (sct) [Al Viro mostly done]</li>

<li>Mikulas claims we need to fix the getblk/mark_buffer_uptodate thing for 2.3.x as well</li>

<li>Network block device seems broken by block device changes</li>

<li>Fbcon races</li>

<li>Fix all remaining PCI code to use new resources and enable_Device</li>

<li>VFS?VM - mmap/write deadlock</li>

<li>rw sempahores on page faults (mmap_sem)</li>

<li>kiobuf seperate lock functions/bounce/page_address fixes</li>

<li>Fix routing by fwmark</li>

<li>Some FB drivers check the A000 area and find it busy then bomb out</li>

<li>rw semaphores on inodes to fix read/truncate races ? [Probably fixed]</li>

<li>Not all device drivers are safe now the write inode lock isnt taken on write</li>

<li>File locking needs checking for races</li>

<li>Multiwrite IDE breaks on a disk error</li>

<li>AFFS doesn't work on current page cache</li>

<li>ACPI/APM suspend issue</li>

</ol>

</p>

</ol>

</p>

</quote>

<p>Tigran Aivazian pointed out, <quote who="Tigran Aivazian">One issue that you
did not mention and I believe is a show-stopper is the malfunctioning of
8139too driver. I have it easily reproduced here on 100M hub. I have a
suggestion from Mark Hemment to try if it is a RxFIFO overflow issue (then
insert a reset in appropriate place) which I still haven't found a minute to
try and confirm/disprove.</quote> Mark posted a couple patches, and
explained:</p>

<quote who="Mark Hemment">

<p>I've attached two patches for 2.2.15 (made against
2.2.2.15pre16).</p>

<p>The first prevents the RealTek 8139 NIC from wedging after a receive FIFO
overflow. There maybe a better work around for this, but what I've got works
here.</p>

<p>The second is not a high priority patch.  In ide-pci.c/ide_match_hwif(), the
code assumes that MAX_HWIFS is at least two. For those of us trying to build
small kernels, this isn't always true.</p>

</quote>

<p>Elsewhere, Andre Hedrick asked for more explanation of item 9.18 (Multiwrite
IDE breaks on a disk error). Alan replied:</p>

<quote who="Alan Cox">

<p>If you have one bad sector you should write the other
7..</p>

<p>Also the error recovery code was wrong. I've not checked this for a while
and much has changed.</p>

</quote>

<p>To this last comment, Andre asked exactly how long it had been since Alan
had last checked it. Alan said about 6 weeks ago, and Andre replied that he
was pretty sure it had been fixed since then.</p>

<p>To Alan's remark in his same post about bad sectors, Andre replied in
disbelief, <quote who="Andre Hedrick">Are you kidding that this does not
happen?</quote> Alan replied, <quote who="Alan Cox">Not when I got a bad
block it didnt. Its a corner case so relatively low priority. At the point
it bites you have problems anyway</quote> Andre replied after some thought:</p>

<quote who="Andre Hedrick">

<p>Yes, but that is a "multi-mode" RW.</p>

<p>I need to think how to do a complete recovery.</p>

<p>A preferred solution in my mind would all for resetting the request cue and
retry in the next sector and continue on; however, the need to update the
badblock table that is written/created or needs to be similar to the
"badblocks" call from "mke2fs". Do you agree?</p>

</quote>

<p>Stephen C. Tweedie came in at this point, and had the last word, with,
<quote who="Stephen C. Tweedie">There is no automatic bad block grokking in
ext2 right now --- if you need to update the bad blocks list, "e2fsck
-[Llc]" is currently the only way to do it.</quote></p>

</section>

<section
  title="Structural Changes Before Stable Series"
  subject="patch] Space.c and -fwritable-strings"
  archive=""
  posts="17"
  startdate="04 Apr 2000 00:00:00 -0800"
  enddate="08 Apr 2000 00:00:00 -0800"
>

<mention>David S. Miller</mention>
<mention>Tim Waugh</mention>

<p>Tim Waugh and Andrew Morton went back-and-forth on a patch, then took it to
Linus Torvalds. Andrew explained:</p>

<quote who="Andrew Morton">

<p>Linus, Tim and I come to you hand-in-hand with a
patch to Space.c.</p>

<p>It does the following:</p>

<p>

<ul>

<li>Arranges for the eight "eth%d" and "tr%d" strings to be generated
separately, rather than commoned up by the compiler.</li>

<li>Arranges for said strings to be placed in .data, not .rodata</li>

<li>Correctly pads all these overwritable strings out to length IFNAMSIZ
with trailing nulls.</li>

</ul>

</p>

<p>A patch against 2.3.99-pre4-1 is attached.</p>

</quote>

<p>Linus replied:</p>

<quote who="Linus Torvalds">

<p>Ok, I have an alternative approach that I think
should be a lot cleaner and that looks obviously correct. How about this
one-liner patch instead:</p>

<p>include/linux/netdevice.h:</p>

<blockquote>

<code>

        struct net_device {<br />
        ...<br />
        -       char *name;<br />
        +       char name[16];<br />
        ...

</code>

</blockquote>

<p>The above gets rid of _all_ of the problems, and gets rid of the need to use
the silly PAD macros - both the writable-strings and the PAD macro are only
needed because this thing was misdesigned in the first place. Putting the
device name into the net_device thing just automagically makes both things
work correctly.</p>

<p>Sure, some drivers would have to be changed to do</p>

<blockquote>

<code>

        strcpy(dev-&gt;name, namelist[index]);

</code>

</blockquote>

<p>instead of doing the current</p>

<blockquote>

<code>

        dev-&gt;name = namelist[index];

</code>

</blockquote>

<p>but looking at at least one of the drivers (3c503.c), the whole and only
reason for the name games is _again_ that what 3c503.c really wanted in the
first place was really to have the name be done as an array rather than as a
pointer (so at least 3c503.c would be trivially cleaned up a bit by that
simple change too).</p>

</quote>

<p>Alexey Kuznetsov and David S. Miller both thought this hit the nail on the
head (Alexey's comment was <quote who="Alexey Kuznetsov">Aggressively
agreed.</quote>), but Nick Holloway objected:</p>

<quote who="Nick Holloway">

<p>Less obviously correct are the modifications to
the network drivers :-)</p>

<p>I did start this (just to see how bad it really was), and I have 46 modified
source files. This is only looking at "drivers/net/*.c".</p>

<p>I have checked it compiles with all network drivers as modules, but that is
all. I may have goofed in moving from 2.3.99-pre2 to 2.3.99-pre3 (no
compilation test performed).</p>

<p>If you want to have a look, point an HTTP client at:</p>

<p>        <a href="http://www.alfie.demon.co.uk/dev_name-2.3.99-pre3.diff.gz">http://www.alfie.demon.co.uk/dev_name-2.3.99-pre3.diff.gz</a></p>

<p>My own feeling is that this is rather a large upheaval close to 2.4. Then
again, it isn't my call. In addition, many of the modified drivers should be
using init_etherdev anyway.</p>

</quote>

<p>Linus agreed that the network drivers would be more difficult to fix, but he
felt they'd be fairly straightforward anyway, and the changes should be
considered "cleanup" more than anything else. To the idea of upheaving the
code soon before a stable release, he replied, <quote who="Linus
Torvalds">What I hate having is to have pending structural changes
immedately after a stable release - it makes it very hard to maintain
patches between a stable and the next development series if there issome
fundamental small detail that has changed, and there ends up being lots of
small syntactic differences that hide the really big and scary ones
;)</quote></p>

</section>

<section
  title="Some Discussion Of mmap"
  subject="mmap/mlock performance versus read"
  archive=""
  posts="5"
  startdate="04 Apr 2000 00:00:00 -0800"
  enddate="05 Apr 2000 00:00:00 -0800"
>
<topic>Virtual Memory</topic>

<p>Paul Barton-Davis posted two benchmark programs, each of which would copy
data from a file into memory. He reported:</p>

<quote who="Paul Barton-Davis">

<p>One program uses mmap/mlock to accomplish the
lockdown, and calls munmap to release the previously locked chunk.</p>

<p>The other locks down a malloc-ed buffer for each file, and uses read to move
the data into user space.</p>

<p>I was very disheartened to find that on my system the mmap/mlock approach
took *3 TIMES* as long as the read solution. It seemed to me that mmap/mlock
should be at least as fast as read. Comments are invited.</p>

</quote>

<p>Linus Torvalds explained:</p>

<quote who="Linus Torvalds">

<p>People love mmap() and other ways to play with
the page tables to optimize away a copy operation, and sometimes it is worth
it.</p>

<p>HOWEVER, playing games with the virtual memory mapping is very expensive in
itself. It has a number of quite real disadvantages that people tend to
ignore because memory copying is seen as something very slow, and sometimes
optimizing that copy away is seen as an obvious improvment.</p>

<p>Downsides to mmap:</p>

<p>

<ul>

<li>quite noticeable setup and teardown costs. And I mean _noticeable_. It's
   things like following the page tables to unmap everything cleanly. It's
   the book-keeping for maintaining a list of all the mappings. It's The TLB
   flush needed after unmapping stuff.</li>

<li>page faulting is expensive. That's how the mapping gets populated, and
   it's quite slow.</li>

</ul>

</p>

<p>Upsides of mmap:</p>

<p>

<ul>

<li>

<p>if the data gets re-used over and over again (within a single map
   operation), or if you can avoid a lot of other logic by just mapping
   something in, mmap() is just the greatest thing since sliced bread.</p>

<p>   This may be a file that you go over many times (the binary image of an
   executable is the obvious case here - the code jumps all around the
   place), or a setup where it's just so convenient to map the whole thing
   in without regard of the actual usage patterns that mmap() just wins. You
   may have random access patterns, and use mmap() as a way of keeping track
   of what data you actually needed.</p>

</li>

<li>

<p>if the data is large, mmap() is a great way to let the system know what
   it can do with the data-set. The kernel can forget pages as memory
   pressure forces the system to page stuff out, and then just automatically
   re-fetch them again.</p>

<p>   And the automatic sharing is obviously a case of this..</p>

</li>

</ul>

</p>

<p>But your test-suite (just copying the data once) is probably pessimal for
mmap().</p>

</quote>

<p>To Linus' second downside ("page faulting is expensive" etc), Albert D.
Cahalan asked, <quote who="Albert D. Cahalan">Could mmap get a flag that
asks for async read and map? So mmap returns, then pages start to appear as
the IO progresses.</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>It's not the IO on the pages themselves, it's
actually the act of populating the page tables that is quite costly. And
doing that in the background is basically impossible.</p>

<p>You can do it synchronously, and that is basically what mlock() will do with
"make_pages_present()". However, that path is not all that optimized (not
worth it), and even if it was hugely optimized it would _still_ be quite
slow. The page tables are just fairly complex data structures.</p>

<p>And on top of that you still have the actual CPU TLB miss costs etc. Which
can often be avoided if you just re-read into the same area instead of being
excessively clever with memory management just to avoid a copy.</p>

<p>memcpy() (ie "read()" in this case) is _always_ going to be faster in many
cases, just because it avoids all the extra complexity. While mmap() is
going to be faster in other cases.</p>

</quote>

</section>

<section
  title="Legal Status Of LVM"
  subject="**** LVM 0.8final patch vs. 2.3.99-pre3 ***"
  archive=""
  posts="6"
  startdate="05 Apr 2000 00:00:00 -0800"
  enddate="05 Apr 2000 00:00:00 -0800"
>
<topic>Disk Arrays: LVM</topic>

<p>In the course of discussion, Bert Hubert asked, <quote who="Bert
Hubert">I was wondering, LVM very closely emulates the 'look
and feel' (So closely that my LVM Viewer tool (screenshot on <a
href="http://ds9a.nl/lvm-howto">http://ds9a.nl/lvm-howto</a>) actually
works on both HP/UX and Linux with the same code) of HP/UX Logical Volume
Management - is there any chance of HP/UX getting upset about this?</quote>
Heinz Mauelshagen replied, <quote who="Heinz Mauelshagen">I don't hope
that this could happen still, because i talked to HP and asked for legal
constraints reimplementing (most of) their command line interface on Linux
before i first released LVM 0.1 back in 1998.</quote></p>

</section>

<section
  title="Using 'reiserfs' As The Root Partition"
  subject="What boot loader supports reiserfs root partitions?"
  archive=""
  posts="8"
  startdate="09 Apr 2000 00:00:00 -0800"
  enddate="10 Apr 2000 00:00:00 -0800"
>
<topic>FS: ReiserFS</topic>
<topic>FS: ext2</topic>

<mention>Felix von Leitner</mention>
<mention>Christoph Hellwig</mention>

<p>Felix von Leitner wanted to use reiserfs for his root partition, but neither
'lilo', 'grub', or other bootloaders seemed to work; 'lilo', for example,
would give a "Hole found in map file (alloc_page)" error. Erik Andersen
offered a possible solution:</p>

<quote who="Erik Andersen">

<p>lilo works, but you must mount the reiserfs
partition with the "notail" option. reiserfs tries to be efficient with disk
space by taking the excess portions of files that do not fill up a whole
block and it takes these "tails" and packs them together. This leaves holes
in the files which prevents lilo from finding a continuous kernel image.</p>

<p>As root something like:</p>

<blockquote>

<code>

    # mount /dev/root / -o remount,rw,notail<br />
    # cp -a /boot /boot1<br />
    # rm -rf /boot<br />
    # mv /boot1 /boot<br />
    # lilo

</code>

</blockquote>

<p>The process of copying the files after the remount will cause the files to
all be rewritten without any tails</p>

</quote>

<p>Moritz Schulte gave a similar answer, and suggested there might be more
information at <a
href="http://devlinux.org/namesys/">http://devlinux.org/namesys/</a>.</p>

<p>Albert D. Cahalan said alternatively, <quote who="Albert D. Cahalan">Look at
GRUB again. There is a patch that lets it read Reiserfs. Unlike LILO, GRUB
actually reads the filesystem. I think you can even type in a pathname to
select a kernel.</quote> And Otto E Solares added from his own experience,
<quote who="Otto E Solares">grub is more capable and user friendly than
lilo. It actualy works nice here with reiserfs in twelve servers (for the
idiots that think reiserfs doesn't have to be included in the kernel this is
a serious complain, all good admins have take a look @ reiserfs, i just
remember when ext2 generates massive fs curruption like 3 years ago on two
of our servers and yes ext2 was IN the kernel).</quote> Christoph Hellwig
asked where the necessary patch for 'GRUB' could be found, and Otto replied
with a pointer to <a
href="http://www.mail-archive.com/bug-grub@gnu.org/msg01186.html">http://www.mail-archive.com/bug-grub@gnu.org/msg01186.html</a>.
End of thread.</p>

</section>

</kc>
