<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="87" date="02 Oct 2000 00:00:00 -0800" />

<intro>

<p>

Thanks go to Chris Beckenbach, Michael Cope, and Jeff Gage For catching
an unexpanded &lt;kcref&gt; (inter-issue reference) last week in <kcref
subject="Linux 2.2.18pre9" startdate="16 Sep 2000 00:00:00 -0800"></kcref>. Thanks, guys!
Jeff additionally caught part of a quote in <kcref subject="elevator code"
startdate="12 Sep 2000 00:00:00 -0800"></kcref> that was surrounded by a &lt; and &gt;,
rendering that text invisible. Good catch! Those are really tough bugs
to spot.  Thanks!

</p><p>

Thanks also go to Peter Samuelson for catching me inadvertantly sticking
extra text into a quote by Alan Cox in <kcref subject="Linux 2.2.18pre6"
startdate="12 Sep 2000 00:00:00 -0800"></kcref>. I've fixed it so that at the bottom of that
section, Alan no longer seems to direct people to a different KT section
;-). Thanks, Peter!

</p>

</intro>

<stats posts="1594" size="5945" contrib="402" multiples="203" lastweek="161">

<person posts="73" size="283" who="&quot;Jeff V. Merkey&quot; " />
<person posts="61" size="234" who="Linus Torvalds " />
<person posts="58" size="159" who="Alan Cox " />
<person posts="42" size="145" who="Alexander Viro " />
<person posts="41" size="160" who="&quot;Andi Kleen&quot; " />
<person posts="40" size="139" who="Rik van Riel " />
<person posts="37" size="133" who="Keith Owens " />
<person posts="33" size="136" who="David Howells " />
<person posts="31" size="99" who="&quot;David S. Miller&quot; " />
<person posts="28" size="108" who="Andrea Arcangeli " />
<person posts="28" size="104" who="Andre Hedrick " />
<person posts="25" size="97" who="Daniel Phillips " />
<person posts="25" size="75" who="Ingo Molnar " />
<person posts="21" size="74" who="Tigran Aivazian " />
<person posts="20" size="72" who="Torben Mathiasen " />
<person posts="19" size="78" who="David Ford " />
<person posts="18" size="90" who="Andrew Morton " />
<person posts="17" size="63" who="safemode " />
<person posts="16" size="63" who="Jeff Garzik " />
<person posts="16" size="56" who="Jamie Lokier " />
<person posts="14" size="53" who="Russell King " />
<person posts="13" size="59" who="&quot;J. Dow&quot; " />
<person posts="13" size="53" who="Henner Eisen " />
<person posts="13" size="47" who="Mike Galbraith " />
<person posts="12" size="50" who="Peter Samuelson " />
<person posts="12" size="49" who="Horst von Brand " />
<person posts="11" size="68" who="Marty Fouts " />
<person posts="11" size="43" who="&quot;Richard B. Johnson&quot; " />
<person posts="11" size="42" who="Byron Stanoszek " />
<person posts="11" size="41" who="&quot;H. Peter Anvin&quot; " />
<person posts="11" size="32" who="Igmar Palsenberg " />
<person posts="10" size="40" who=" (Linus Torvalds)" />
<person posts="10" size="30" who="David Woodhouse " />
<person posts="9" size="42" who="&quot;Mike A. Harris&quot; " />
<person posts="9" size="29" who="Martin Dalecki " />
<person posts="9" size="25" who="Timur Tabi " />
<person posts="8" size="29" who="Elmer Joandi " />
<person posts="8" size="24" who="Andries Brouwer " />
<person posts="8" size="24" who="Oliver Xymoron " />
<person posts="8" size="20" who="Michael Elizabeth Chastain " />
<person posts="8" size="19" who="Dan Hollis " />
<person posts="7" size="27" who="Roger Larsson " />
<person posts="7" size="24" who="Richard Gooch " />
<person posts="7" size="22" who="Chris Wedgwood " />
<person posts="7" size="20" who="Pavel Machek " />
<person posts="7" size="19" who="Andreas Dilger " />
<person posts="6" size="25" who=" (Jeremy Higdon)" />
<person posts="6" size="25" who="Marco Colombo " />
<person posts="6" size="24" who="Horst von Brand " />
<person posts="6" size="23" who="Richard Henderson " />
<person posts="6" size="23" who="Julian Anastasov " />
<person posts="6" size="23" who="&quot;Henning P. Schmiedehausen&quot; " />
<person posts="6" size="22" who="Chris Mason " />
<person posts="6" size="20" who="Cort Dougan " />
<person posts="6" size="20" who="&quot;Maciej W. Rozycki&quot; " />
<person posts="6" size="19" who="" />
<person posts="6" size="18" who="Helge Hafting " />
<person posts="6" size="18" who="Marko Kreen " />
<person posts="6" size="17" who="&quot;Albert D. Cahalan&quot; " />
<person posts="6" size="16" who="Jeff Garzik " />
<person posts="5" size="54" who="Christoph Rohland " />
<person posts="5" size="29" who="&quot;M.H.VanLeeuwen&quot; " />
<person posts="5" size="29" who="Vojtech Pavlik " />
<person posts="5" size="24" who="Simon Kirby " />
<person posts="5" size="22" who="Douglas Gilbert " />
<person posts="5" size="22" who="=?ISO-8859-1?Q?G=E9rard_Roudier?= " />
<person posts="5" size="18" who="" />
<person posts="5" size="18" who="Matthew Kirkwood " />
<person posts="5" size="18" who="Gregory Maxwell " />
<person posts="5" size="18" who="Michael Peddemors " />
<person posts="5" size="17" who="&quot;Theodore Y. Ts'o&quot; " />
<person posts="5" size="17" who="&quot;Mohammad A. Haque&quot; " />
<person posts="5" size="16" who="Tom Rini " />
<person posts="5" size="16" who="Robert Redelmeier " />
<person posts="5" size="15" who="dean gaudet " />
<person posts="5" size="14" who="Marcelo Tosatti " />
<person posts="5" size="14" who="Matti Aarnio " />
<person posts="4" size="29" who="Simon Richter " />
<person posts="4" size="22" who="Molnar Ingo " />
<person posts="4" size="22" who=" (Kai Henningsen)" />
<person posts="4" size="20" who="&quot;Eric Youngdale&quot; " />
<person posts="4" size="18" who="Andi Kleen " />
<person posts="4" size="17" who="Martin Diehl " />
<person posts="4" size="16" who="James Cownie " />
<person posts="4" size="16" who="&quot;Dunlap, Randy&quot; " />
<person posts="4" size="14" who="John Byrne " />
<person posts="4" size="14" who="Yuri Pudgorodsky " />
<person posts="4" size="14" who="Sushil " />
<person posts="4" size="13" who=" (Rogier Wolff)" />
<person posts="4" size="13" who="&quot;Bruce A. Locke&quot; " />
<person posts="4" size="13" who="James Sutherland " />
<person posts="4" size="12" who="John Levon " />
<person posts="4" size="12" who="Martin Mares " />
<person posts="4" size="10" who="&quot;Stephen E. Clark&quot; " />
<person posts="4" size="10" who="Lee Chin " />
<person posts="3" size="26" who="" />
<person posts="3" size="15" who="FORT David " />
<person posts="3" size="15" who="&quot;Wael Ashmawi&quot; " />
<person posts="3" size="12" who="jamal " />
<person posts="3" size="12" who="Trond Myklebust " />
<person posts="3" size="12" who="" />
<person posts="3" size="12" who="Nathan Neulinger " />
<person posts="3" size="11" who="Gisle S{lensminde " />
<person posts="3" size="11" who="Jens Axboe " />
<person posts="3" size="11" who="Ted Deppner " />
<person posts="3" size="10" who="Wakko Warner " />
<person posts="3" size="10" who="J Brook " />
<person posts="3" size="10" who="octave klaba " />
<person posts="3" size="10" who="" />
<person posts="3" size="10" who="Andrzej Krzysztofowicz " />
<person posts="3" size="10" who="Steve Hill " />
<person posts="3" size="9" who="Daniel Stone " />
<person posts="3" size="9" who="Terence Ang " />
<person posts="3" size="9" who="Les Schaffer " />
<person posts="3" size="9" who="Jes Sorensen " />
<person posts="3" size="9" who="Benjamin Herrenschmidt " />
<person posts="3" size="9" who="John Wehle " />
<person posts="3" size="9" who="Brian Gerst " />
<person posts="3" size="9" who="Abramo Bagnara " />
<person posts="3" size="9" who="Harald Welte " />
<person posts="3" size="9" who="&quot;Matt D. Robinson&quot; " />
<person posts="3" size="9" who="Mark Hahn " />
<person posts="3" size="8" who="Jan Niehusmann " />
<person posts="3" size="8" who="Vitaly Luban " />
<person posts="3" size="8" who=" (Prasanna Narayana)" />
<person posts="3" size="7" who="Andrey Savochkin " />
<person posts="3" size="7" who="Bernd Eckenfels " />
<person posts="3" size="7" who="Rusty Russell " />
<person posts="3" size="7" who="Ricky Beam " />
<person posts="3" size="6" who="MOHAMMED AZAD " />
<person posts="2" size="26" who="&quot;Andrew C. Dingman&quot; " />
<person posts="2" size="22" who="&quot;Howell, David P&quot; " />
<person posts="2" size="16" who="Frank Dekervel " />
<person posts="2" size="13" who="Miles Lane " />
<person posts="2" size="13" who="Dan Aloni " />
<person posts="2" size="12" who="&quot;Craig Whitmore&quot; " />
<person posts="2" size="11" who="Mark Cooke " />
<person posts="2" size="10" who="Dag B " />
<person posts="2" size="10" who="Arnaud Installe " />
<person posts="2" size="9" who="Gary Lawrence Murphy " />
<person posts="2" size="9" who="Petr Vandrovec " />
<person posts="2" size="9" who="=?iso-8859-1?Q?Andr=E9_Dahlqvist?= " />
<person posts="2" size="9" who="Michal Jaegermann " />
<person posts="2" size="9" who="Jorge Nerin " />
<person posts="2" size="9" who="Michel Lanners " />
<person posts="2" size="8" who="Dag Bakke " />
<person posts="2" size="8" who="Hisaaki Shibata " />
<person posts="2" size="8" who="Lars Marowsky-Bree " />
<person posts="2" size="8" who="Derek Wildstar " />
<person posts="2" size="7" who="&quot;Claude LeFrancois (LMC)&quot; " />
<person posts="2" size="7" who="Jan-Benedict Glaw " />
<person posts="2" size="7" who="&quot;J. Robert von Behren&quot; " />
<person posts="2" size="7" who="&quot;Lyle Coder&quot; " />
<person posts="2" size="7" who="Julien Oster " />
<person posts="2" size="7" who=" (John Alvord)" />
<person posts="2" size="7" who="Bob Taylor " />
<person posts="2" size="7" who="James Lewis Nance " />
<person posts="2" size="7" who="Rasmus Andersen " />
<person posts="2" size="6" who="Matthias Andree " />
<person posts="2" size="6" who="Mike Panetta " />
<person posts="2" size="6" who="Philippe Troin " />
<person posts="2" size="6" who="Ryan Tokarek " />
<person posts="2" size="6" who="Peter Steiner " />
<person posts="2" size="6" who="Paul Jakma " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who=" (Marek Habersack)" />
<person posts="2" size="6" who="Matthew Jacob " />
<person posts="2" size="6" who="Marc Lehmann " />
<person posts="2" size="6" who="Alvaro Lopes " />
<person posts="2" size="6" who="&quot;James R. Van Zandt&quot; " />
<person posts="2" size="6" who="David Woodhouse " />
<person posts="2" size="6" who="Frank van de Pol " />
<person posts="2" size="6" who="Michael Meding " />
<person posts="2" size="6" who="&quot;Armand&quot; " />
<person posts="2" size="6" who="Jon Evans " />
<person posts="2" size="6" who="&quot;Mike Jagdis&quot; " />
<person posts="2" size="5" who="Marco d'Itri " />
<person posts="2" size="5" who="Tigran Aivazian " />
<person posts="2" size="5" who="Mike Porter " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="Kamlesh Bans " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="Ralf Baechle " />
<person posts="2" size="5" who="&quot;Robert H. de Vries&quot; " />
<person posts="2" size="5" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="2" size="5" who="Alex Buell " />
<person posts="2" size="5" who="Olivier Galibert " />
<person posts="2" size="5" who="Giuliano Pochini " />
<person posts="2" size="5" who="Mark James " />
<person posts="2" size="5" who="Jeff Dike " />
<person posts="2" size="5" who="&quot;Barry K. Nathan&quot; " />
<person posts="2" size="5" who="Chris Meadors " />
<person posts="2" size="5" who="&quot;Trainee-HBC (IE10)&quot; " />
<person posts="2" size="5" who=" (Henrik =?ISO-8859-1?Q?St=F8rner?=)" />
<person posts="2" size="5" who="Adam " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="Gerhard Mack " />
<person posts="2" size="4" who="&quot;Michael J. Dikkema&quot; " />
<person posts="2" size="4" who="Dan Kegel " />
<person posts="2" size="4" who="pb " />
<person posts="2" size="4" who="Dan Podeanu " />
<person posts="2" size="4" who="Carrer Yuri " />
<person posts="2" size="4" who="Christoph Lameter " />
<person posts="1" size="26" who="&quot;Michael R. Jinks&quot; " />
<person posts="1" size="20" who="&quot;Thomas Jarosch&quot; " />
<person posts="1" size="12" who="Floris Kraak " />
<person posts="1" size="11" who="Derrik Pates " />
<person posts="1" size="8" who="Riley Williams " />
<person posts="1" size="8" who="Erik McKee " />
<person posts="1" size="7" who="" />
<person posts="1" size="6" who="Erick Kinnee " />
<person posts="1" size="6" who="" />
<person posts="1" size="6" who="pavelk " />
<person posts="1" size="6" who="Sandy Harris " />
<person posts="1" size="6" who="Larry McVoy " />
<person posts="1" size="5" who="Pierre Brua " />
<person posts="1" size="5" who="William Stearns " />
<person posts="1" size="5" who="Bennett Feitell " />
<person posts="1" size="5" who="Donn Washburn " />
<person posts="1" size="5" who="Chris Ricker " />
<person posts="1" size="5" who="Vince Weaver " />
<person posts="1" size="5" who="Alex Romosan " />
<person posts="1" size="5" who="Henrik Nordstrom " />
<person posts="1" size="5" who="Henrik Nordstrom " />
<person posts="1" size="5" who="&quot;Henning P . Schmiedehausen&quot; " />
<person posts="1" size="5" who="Thomas Kraetzig " />
<person posts="1" size="5" who="Stephen Satchell " />
<person posts="1" size="4" who="Michael Zieger " />
<person posts="1" size="4" who="Joel Jaeggli " />
<person posts="1" size="4" who="Anton Altaparmakov " />
<person posts="1" size="4" who="Jonathan Walther " />
<person posts="1" size="4" who="Matthew Dharm " />
<person posts="1" size="4" who="Jorg de Jong " />
<person posts="1" size="4" who="Chuck Lever " />
<person posts="1" size="4" who="Daniel Jacobowitz " />
<person posts="1" size="4" who="Marcus Meissner " />
<person posts="1" size="4" who="Marko van Dooren " />
<person posts="1" size="4" who="ismael ripoll " />
<person posts="1" size="4" who="Graham Leggett " />
<person posts="1" size="4" who="John Kennedy " />
<person posts="1" size="4" who="Jesse C Cronce " />
<person posts="1" size="4" who="Adam Sampson " />
<person posts="1" size="4" who="Tracy Stenvik " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="&quot;Juan J. Quintela&quot; " />
<person posts="1" size="4" who="&quot;Jeff V. Merkey&quot; " />
<person posts="1" size="4" who="&quot;Petr Vandrovec&quot; " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Harald Dunkel " />
<person posts="1" size="4" who="Sebastian Willing " />
<person posts="1" size="4" who="&quot;Andrew Scott&quot; " />
<person posts="1" size="3" who="Thorsten Kranzkowski " />
<person posts="1" size="3" who="Kurt Roeckx " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Aki M Laukkanen " />
<person posts="1" size="3" who="Andreas Schwab " />
<person posts="1" size="3" who="Roderich Schupp " />
<person posts="1" size="3" who="David Weinehall " />
<person posts="1" size="3" who="Marek Habersack " />
<person posts="1" size="3" who="&quot;Andrea Santoro&quot; " />
<person posts="1" size="3" who="Ondrej Feela Filip " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Mark Hindley " />
<person posts="1" size="3" who="Admin Mailing Lists " />
<person posts="1" size="3" who=" &lt;kernel@netravi.net&gt;" />
<person posts="1" size="3" who="Eric PAIRE " />
<person posts="1" size="3" who="Lee Cremeans " />
<person posts="1" size="3" who="Chris Pascoe " />
<person posts="1" size="3" who="Paul Mackerras " />
<person posts="1" size="3" who="Jens Luedicke " />
<person posts="1" size="3" who="&quot;White, Charles&quot; " />
<person posts="1" size="3" who="&quot;Mike Klar&quot; " />
<person posts="1" size="3" who="Vincent Schultz " />
<person posts="1" size="3" who="Tuncer Ayaz " />
<person posts="1" size="3" who="Hannah Schroeter " />
<person posts="1" size="3" who="&quot;Schulz, Michael (Presales)&quot; " />
<person posts="1" size="3" who="Alexander S A Kjeldaas " />
<person posts="1" size="3" who="root " />
<person posts="1" size="3" who="Jamie Lokier " />
<person posts="1" size="3" who="frank " />
<person posts="1" size="3" who="Joshua Jore " />
<person posts="1" size="3" who="Evan Jeffrey " />
<person posts="1" size="3" who="Frederic Magniette " />
<person posts="1" size="3" who="=?iso-8859-1?Q?Jakob_=D8stergaard?= " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Donald Becker " />
<person posts="1" size="3" who="Steven Cole " />
<person posts="1" size="3" who="Christopher Allen Wing " />
<person posts="1" size="3" who="Jeff Epler " />
<person posts="1" size="3" who="Damien Miller " />
<person posts="1" size="3" who="Yoichi Imai " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Jon Mitchell " />
<person posts="1" size="3" who=" (John Rafferty Zedlewski)" />
<person posts="1" size="3" who=" (Stuart Lynne)" />
<person posts="1" size="3" who="Olaf Titz " />
<person posts="1" size="3" who="David Riley " />
<person posts="1" size="3" who="Marcus Sundberg " />
<person posts="1" size="3" who="Trever Adams " />
<person posts="1" size="3" who="Paul Gortmaker " />
<person posts="1" size="3" who="David Hinds " />
<person posts="1" size="3" who="Joshua Uziel " />
<person posts="1" size="3" who="Dan Malek " />
<person posts="1" size="3" who="Seth R Arnold " />
<person posts="1" size="3" who=" (Arjan van de Ven)" />
<person posts="1" size="3" who="Jesper Juhl " />
<person posts="1" size="3" who="&quot;Michael H. Warfield&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Matt Yourst " />
<person posts="1" size="3" who="Malcolm Beattie " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Steven Cole " />
<person posts="1" size="2" who="Mordechai Ovits " />
<person posts="1" size="2" who="Andrzej Krzysztofowicz " />
<person posts="1" size="2" who="Geert Uytterhoeven " />
<person posts="1" size="2" who="&quot;Chris Swiedler&quot; " />
<person posts="1" size="2" who="Ari Pollak " />
<person posts="1" size="2" who="Bill Wendling " />
<person posts="1" size="2" who="poke " />
<person posts="1" size="2" who="mberglund " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Giampaolo Gallo " />
<person posts="1" size="2" who="Tim Mann " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Roman Zippel " />
<person posts="1" size="2" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="1" size="2" who="Adam " />
<person posts="1" size="2" who="Richard Guenther " />
<person posts="1" size="2" who="SMU " />
<person posts="1" size="2" who="kjh63 " />
<person posts="1" size="2" who="Mikael Pettersson " />
<person posts="1" size="2" who=" (Patrick J. LoPresti)" />
<person posts="1" size="2" who="Dietmar Kling " />
<person posts="1" size="2" who="Nathan Paul Simons " />
<person posts="1" size="2" who=" (Arjan van de Ven)" />
<person posts="1" size="2" who="Moritz Schulte " />
<person posts="1" size="2" who="Keith Owens " />
<person posts="1" size="2" who="Marc Mutz " />
<person posts="1" size="2" who="Mark Orr " />
<person posts="1" size="2" who="George Anzinger " />
<person posts="1" size="2" who="Steven Pritchard " />
<person posts="1" size="2" who="Dmitry Pogosyan " />
<person posts="1" size="2" who="Richard Henderson " />
<person posts="1" size="2" who="Andreas Tobler " />
<person posts="1" size="2" who="&quot;Al&quot; " />
<person posts="1" size="2" who="Ralf Baechle " />
<person posts="1" size="2" who="Thomas Davis " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="=?iso-8859-1?q?Samuel=20Thibault?= " />
<person posts="1" size="2" who="Matthew Wilcox " />
<person posts="1" size="2" who="Mark Salisbury " />
<person posts="1" size="2" who="&quot;Greg Zhang&quot; " />
<person posts="1" size="2" who="Marius Aamodt Eriksen " />
<person posts="1" size="2" who="Adrian Cox " />
<person posts="1" size="2" who=" (Christer Weinigel)" />
<person posts="1" size="2" who="&quot;Dr. Kelsey Hudson&quot; " />
<person posts="1" size="2" who="Ingo Molnar " />
<person posts="1" size="2" who="Anton Petrusevich " />
<person posts="1" size="2" who=" (Arjan van de Ven)" />
<person posts="1" size="2" who="Michael Bacarella " />
<person posts="1" size="2" who="&quot;Adam Watson&quot; " />
<person posts="1" size="2" who=" (Miquel van Smoorenburg)" />
<person posts="1" size="2" who="Val Henson " />
<person posts="1" size="2" who="&quot;Mahadev K Cholachagudda&quot; " />
<person posts="1" size="2" who="&quot;Glenn C. Hofmann&quot; " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Chris Wing " />
<person posts="1" size="2" who="Rui Sousa " />
<person posts="1" size="2" who="&quot;his dad&quot; " />
<person posts="1" size="2" who="Daniel Lange " />
<person posts="1" size="2" who="Sven Koch " />
<person posts="1" size="2" who="ebi4 " />
<person posts="1" size="2" who="Patrick Mau " />
<person posts="1" size="2" who="Andrew McNabb " />
<person posts="1" size="2" who="Anton Petrusevich " />
<person posts="1" size="2" who="Martin Costabel " />
<person posts="1" size="2" who="Mark Lehrer " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Florian Lohoff " />
<person posts="1" size="2" who="Frank Davis " />
<person posts="1" size="2" who="Meelis Roos " />
<person posts="1" size="2" who="Michael Vines " />
<person posts="1" size="2" who="Kernel Related Emails " />
<person posts="1" size="2" who="Andrius Adomaitis " />
<person posts="1" size="2" who="Anton Blanchard " />
<person posts="1" size="2" who="&quot;Mark Givens&quot; " />
<person posts="1" size="2" who="Michael Shields " />
<person posts="1" size="2" who="Lee " />
<person posts="1" size="2" who="J Sloan " />
<person posts="1" size="2" who="&quot;Tulika Pradhan&quot; " />
<person posts="1" size="2" who="&quot;Pedro M. Rodrigues&quot; " />
<person posts="1" size="2" who="Angel Luis =?iso-8859-1?Q?Uru=F1uela?= " />
<person posts="1" size="2" who="Felix von Leitner " />
<person posts="1" size="2" who="&quot;Metod S56WMN&quot; " />
<person posts="1" size="2" who="&quot;Mao Yun&quot; " />
<person posts="1" size="2" who="=?iso-8859-1?Q?Lubom=EDr?= Bulej " />
<person posts="1" size="2" who="Oren Held " />
<person posts="1" size="2" who="Paavo Nikula " />
<person posts="1" size="2" who="&quot;Nick Loman&quot; " />
<person posts="1" size="1" who="Robert Greimel " />

</stats>

<section
  title="Possible GPL Violations By Microsoft; Kernel Debugger In Official Sources"
  subject="[ANNOUNCE] Withdrawl of Open Source NDS Project/NTFS/M2FS for Linux"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/0334.html"
  posts="376"
  startdate="02 Sep 2000 00:00:00 -0800"
  enddate="19 Sep 2000 00:00:00 -0800"
>
<topic>Microsoft</topic>
<topic>SMP</topic>

<mention>Andi Kleen</mention>
<mention>Jes Sorensen</mention>

<p>

In the course of discussion, Jeff V. Merkey explained why he couldn't release
certain code. He said, <quote who="Jeff V. Merkey">If we post it, Microsoft
will grab it and it will be in NT within 48 hours of them downloading it
from our site.</quote> Andre Hedrick replied, <quote who="Andre Hedrick">I
know what you mean about microsoft.  My and co-worker's code for doing full
taskfile access under linux was rejected here but is being used in MicroSoft
Whistler 2001.  They are quick to grab the very best of Linux and adopt it
for their own.</quote> Henning P. Schmiedehausen suggested going to the FSF
about the GPL violations, but Andre replied that if patches were rejected
from the kernel, it wasn't a GPL issue and MS could do what it liked. But
Theodore Y. Ts'o pointed out, <quote who="Theodore Y. Ts'o">That's B.S.
The GPL is a Copyright license; it applies whether or not it is in the kernel.
Microsoft (or anyone else for that matter) can't take your code and use it
without consent.  The GPL is one way of giving consent, with certain strings
attached.</quote> As Andrew McNabb put it elsewhere, <quote who="Andrew
McNabb">You automatically own an implicit copyright on anything you create.
Regardless of whether you specify a license for code you write, anyone who
steals it is breaking the law.  The GNU license, if specified, allows people
to use your code if they agree to your terms.</quote>. In response to Ted,
someone mentioned that no one would have the money to go after MS for those
violations, but Henning said, <quote who="Henning P. Schmiedehausen">The
FSF will surely step up (that's what RMS dreamed all about since he started
GNU. :-)).</quote> [...] <quote who="Henning P. Schmiedehausen">I'm sure
that once the FSF is willing to step up, there will be lots of supporters
and sponsors to finance this.</quote>

</p><p>

Elsewhere, and on a completely different topic, Jeff complained about the
absense of a kernel debugger. Jes Sorensen said that 'kdb' had existed for quite
awhile, and Jeff vented:

</p>

<quote who="Jeff V. Merkey">

<p>

KDB is putrid.  Can it debug double faults?  NO.  Can it debug complex
register and numeric evaluation statements like IF ((EAX == 1) &amp;&amp;
[ESP-4] == 0x3000)?  NO.  Can it debug nested task gate exceptions?  NO.
Can it debug SMP locks races?  NO.  Can it debug priority inversion problems
in sleep locks?  NO.

</p><p>

Can the Kernel debugger in NetWare?  YES.  Can the Kernel Debugger in NT?  YES.

</p>

</quote>

<p>

Alan Cox replied:

</p>

<quote who="Alan Cox">

<p>

Remote gdb on Linux - yes and I can do my debugging source level. Unfortunately
Linus seems to have a one man campaign against putting sensible debugging
into his kernel.

</p><p>

The tools exist and they should be in the x86 tree as well as sparc etc
where with other maintainers it is present

</p>

</quote>

<p>

Jeff speculated, <quote who="Jeff V. Merkey">I can only assume the reason for
this is one of control, and that there are no valid technical reasons for it.
I have spent more nights with printk() than I care to.</quote> And David S.
Miller replied:

</p>

<quote who="David S. Miller">

<p>

And I bet the lessons learned and the issues involved in those nights with
printk will never leave your brain, you will remember precisely in the future
next time you see the same types of symptoms what kinds of things to look
for and where.

</p><p>

This is what a debugger does not do for you.  The debugger allows you to
be lazy, step around, "oh yeah check for NULL" and never have to _think_
about what you're doing or the changes you're making or even if the same
bug might be elsewhere.

</p><p>

This is why Linus does not allow a debugging facility like this into the
kernel, so people spend time _thinking_ when they go hunting down bugs.

</p><p>

It takes longer to nail a bug, yes, but the resulting fix is always far
superior.  And the person who discovers the bug leaves with a much larger
amount of knowledge about how that area of the kernel works.

</p>

</quote>

<p>

Alan replied, <quote who="Alan Cox">There are only a few things I think
Linus is a complete loon about 8) but the debugging stuff is one.</quote>
David disagreed with this, and added, <quote who="David S. Miller">I take
much comfort in the fact that 2 hackers who have been debugging programms
probably longer that I have been alive (Kernighan and Pike) agree with me.
See chapter 5 of their book "The Practice of Programming".  Note in particular
the second paragraph on page 119.</quote>

</p><p>

Elsewhere, Ingo Molnar gave his take on kernel debugging:

</p>

<quote who="Ingo Molnar">

<p>

There are two basic types of 'debugging behaviors':

</p>

<blockquote>

<p>

 A) 'Collect enough data to understand the local context and fix the bug.'

</p><p>

 B) 'See the point of the immediate crash, think about that code, think
     about code that called this code, think about the intent and
     implementation of that code and find the bug based on understanding
     the code.'

</p>

</blockquote>

<p>

A) results in people being able to debug easy and moderate kernel bugs.
The same people are lost if faced with bugs that are not apparent in the
'state of the system around the bug' represented by the debugger.

</p><p>

B) results in people with the ability to identify bugs based on the source
code - and the ability to fix the really mindblowing tough bugs. We had
about 10 such bugs during the cycle of the 2.3 kernel.

</p><p>

I do claim that the real mainsteam-kernel development 'bottleneck' is the
ability to fix the tough bugs. It's always these tough bugs that keep up the
addition of new features in devel kernels. We should thus do everything to
teach people the proper debugging methodology.

</p><p>

A) takes less time for the easy bugs - it might also speed up driver
development. But it is utterly useless for the really tough problems. We
had really tough bugs in 2.3 that one couldnt find even with the heaviest
hitting debugging equipment. Debugging code in the kernel also blurs the
intention of the code, which makes B) harder.

</p><p>

B) is a slower process to both learn and practice, but will also lead to
more (unrelated) code improvements (based on better understanding of various
kernel subsystems) and ultimately leads to better kernel developers.

</p><p>

one problem is developer laziness ;-) We could as well include debugging code
so that experienced people like you can fix easy / moderate bugs quicker. But
the problem is that in this case people are not forced to understand the
code as much as if the debugging tools were 'minimalistic' like today.

</p><p>

i have nothing against (in fact contributed to) independent debugging
functionality like IKD / KDB. It's slightly more pain to keep it uptodate
with the devel kernel, but the devel kernel itself must stay focused on the
strategic goals, not the tactical ones.

</p>

</quote>

<p>

Andi Kleen said he didn't think that omitting useful debugging tools would
make anyone less likely to use ingo's "A" approach, and Ingo replied, <quote
who="Ingo Molnar">well, they will sooner or later notice that it's easier
to fix bugs by following the development of the kernel and understanding the
underlying principles and the code. As elitist as it might seem, we rather need
10 highly skilled developers who understand the kernel than 100 moderately
skilled ones who know how to operate a kernel debugger and barely anything
else. [this is not an insult towards people with less experience - having
less experience is just a temporary stage of a process, nothing else. But
if it becomes the end station thats a problem IMHO.]</quote> Richard Gooch
replied, <quote who="Richard Gooch">I think there's a certain amount of wishful
thinking here. As you say, everyone has to start from nothing. But if the
learning/development curve is too steep, or the process is too frustrating,
you are going to lose a proportion of the potential gurus. You can't push
people in a direction they don't want to go.</quote> Ingo replied that anyone
was free to apply the 'kdb' and other debugging patches themselves.

</p><p>

At one point farther down in the thread, Linus Torvalds finally got involved. He
stated his position:

</p>

<quote who="Linus Torvalds">

<p>

I don't like debuggers. Never have, probably never will. I use gdb all
the time, but I tend to use it not as a debugger, but as a disassembler on
steroids that you can program.

</p><p>

None of the arguments for a kernel debugger has touched me in the least.
And trust me, over the years I've heard quite a lot of them. In the end,
they tend to boil down to basically:

</p><p>

<ul>

<li>it would be so much easier to do development, and we'd be able to add
   new things faster.</li>

</ul>

</p><p>

And quite frankly, I don't care. I don't think kernel development should be
"easy". I do not condone single-stepping through code to find the bug.  I do
not think that extra visibility into the system is necessarily a good thing.

</p><p>

Apparently, if you follow the arguments, not having a kernel debugger leads
to various maladies:

</p><p>

<ul>

<li>you crash when something goes wrong, and you fsck and it takes forever
   and you get frustrated.</li>
<li>people have given up on Linux kernel programming because it's too hard
   and too time-consuming</li>
<li>it takes longer to create new features.</li>

</ul>

</p><p>

And nobody has explained to me why these are _bad_ things.

</p><p>

To me, it's not a bug, it's a feature. Not only is it documented, but it's
_good_, so it obviously cannot be a bug.

</p><p>

"Takes longer to create new features" - this one in particular is not a very
strong argument for having a debugger. It's not as if lack of features or new
code would be a problem for Linux, or, in fact, for the software industry as
a whole. Quite the reverse. My biggest job is to say "no" to new features,
not trying to find them.

</p><p>

Oh. And sure, when things crash and you fsck and you didn't even get a clue
about what went wrong, you get frustrated. Tough. There are two kinds of
reactions to that: you start being careful, or you start whining about a
kernel debugger.

</p><p>

Quite frankly, I'd rather weed out the people who don't start being careful
early rather than late. That sounds callous, and by God, it _is_ callous. But
it's not the kind of "if you can't stand the heat, get out the the kitchen"
kind of remark that some people take it for. No, it's something much more
deeper: I'd rather not work with people who aren't careful. It's darwinism
in software development.

</p><p>

It's a cold, callous argument that says that there are two kinds of people,
and I'd rather not work with the second kind. Live with it.

</p><p>

I'm a bastard. I have absolutely no clue why people can ever think
otherwise. Yet they do. People think I'm a nice guy, and the fact is that
I'm a scheming, conniving bastard who doesn't care for any hurt feelings or
lost hours of work if it just results in what I consider to be a better system.

</p><p>

And I'm not just saying that. I'm really not a very nice person. I can say
"I don't care" with a straight face, and really mean it.

</p><p>

I happen to believe that not having a kernel debugger forces people to
think about their problem on a different level than with a debugger. I
think that without a debugger, you don't get into that mindset where you
know how it behaves, and then you fix it from there. Without a debugger,
you tend to think about problems another way. You want to understand things
on a different _level_.

</p><p>

It's partly "source vs binary", but it's more than that. It's not that you
have to look at the sources (of course you have to - and any good debugger will
make that _easy_). It's that you have to look at the level _above_ sources. At
the meaning of things. Without a debugger, you basically have to go the next
step: understand what the program does. Not just that particular line.

</p><p>

And quite frankly, for most of the real problems (as opposed to the stupid
bugs - of which there are many, as the latest crap with "truncate()" has
shown us) a debugger doesn't much help. And the real problems are what I
worry about. The rest is just details. It will get fixed eventually.

</p><p>

I do realize that others disagree. And I'm not your Mom. You can use a kernel
debugger if you want to, and I won't give you the cold shoulder because you
have "sullied" yourself. But I'm not going to help you use one, and I wuld
frankly prefer people not to use kernel debuggers that much. So I don't make
it part of the standard distribution, and if the existing debuggers aren't
very well known I won't shed a tear over it.

</p><p>

Because I'm a bastard, and proud of it!

</p>

</quote>

<p>

There were a lot of replies to this, and a number of smaller subthreads branched
off, with everyone falling strongly on one side or the other.

</p>

</section>

<section
  title="Wine In The Kernel; GPL Loopholes"
  subject="[RFC] Wine speedup through kernel module"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/1296.html"
  posts="64"
  startdate="07 Sep 2000 00:00:00 -0800"
  enddate="19 Sep 2000 00:00:00 -0800"
>
<topic>Clustering: Mosix</topic>
<topic>IBCS</topic>
<topic>Ioctls</topic>
<topic>Sound: ALSA</topic>

<p>

David Howells announced:

</p>

<quote who="David Howells">

<p>

I've done an implementation of some of the Win32 "system calls" in a kernel
module in an attempt to speed up Wine.

</p><p>

The preliminary benchmarks that I made, while not very real-world since I don't
think I have managed to implement enough for that yet, seem to indicate that
in some tests, I can beat Win2000 by 20% on syscall latency, and Wine by 900%.

</p><p>

Wine is this slow, I think, because it uses an extra process (the wineserver)
to implement synchronisation and handle&lt;-&gt;fd mapping, and involves
the use of sendmsg and recvmsg to communicate.

</p><p>

I'm interested in your comments on the code I've written (attached to the
bottom of this document). I'm also interested in ideas as to how a large
speed up might be implemented by some other user-space mechanism or by less
intrusive kernelspace intervention.

</p><p>

I'm also interested in finding a better way of getting to kernel space from
user space... Currently, this involves the client process opening a proc
file and doing ioctl's on it to request Win32 operations (easy to do from
a kernel module).

</p><p>

However, the ioctl syscall seems to incur a fairly large penalty in the
number of standard I/O commands it checks for first, before calling the
supplied service routine.

</p><p>

Other methods that have been mentioned include persuading Linus to reserve
a syscall number specifically for this purpose, and having the module supply
a handler for it.

</p>

</quote>

<p>

Martin Dalecki objected harshly:

</p>

<quote who="Martin Dalecki">

<p>

Please by no way don't include this patch into the official tree.  It's insane
due to the following:

</p><p>

<ol>

<li>Linux is UNIX not NT... (in terms of API)</li>

<li>WINE in itself is barely usefull - even in fact non existant, since
there is no official stable release out there.</li>

</ol>

</p>

</quote>

<p>

Adam Sampson agreed, though added soberly, <quote who="Adam Sampson">I also
don't think this patch should go into the official tree, but in my case it's
because it's too closely related to the WINE userspace libraries; it should
become part of the WINE tree instead. (Note that this is how other packages
such as ALSA and lm_sensors are maintained.)</quote> He (and others) also
objected that Wine was very useful, and shouldn't be put down just for being
pre-1.0

</p><p>

Albert D. Cahalan was not opposed to David's idea, and remarked, <quote
who="Albert D. Cahalan">If you implement enough to run the common Windows
benchmarks, we can have loads of fun.</quote> Elsewhere, also in reply to
David's initial proposal, Linus Torvalds replied:

</p>

<quote who="Linus Torvalds">

<p>

Hmm.. I have this feeling that it would be much nicer to just implement the
NT system calls directly.

</p><p>

We used to have the iBCS2 project, and I was actually considering making
it part of the standard kernel when it started becoming a non-issue simply
because there started to be more native Linux programs than iBCS2 programs.

</p><p>

And we've already had the vm86 mode and the BIOS trap stuff speedups for
DOSEMU for a long time.

</p><p>

It looks like if you want to do this, it would be better to just try to do
it outright, and have the same kind of "emulate the ones we know about and
care about performance" in the kernel that we already have with the vm86
mode emulation.

</p><p>

I wouldn't be adverse to supporting Wine better - as long as it's fairly
cleanly separated. This doesn't look too bad.

</p>

</quote>

<p>

There followed a technical discussion, during which there arose the possibility
of dynamically allocated syscall entries. There was a bit of back-and-forth on
this, until Linus came down on it, saying:

</p>

<quote who="Linus Torvalds">

<p>

The problem is that dynamic system calls are not going to happen.

</p><p>

Why?

</p><p>

License issues. I will not allow system calls to be added from modules.
Because I do not think that adding a system call is a valid thing for a
module to do. It's that easy.

</p><p>

It's the old thing about "hooks". You must not sidestep the GPL by just
putting a hook in place. And dynamic system calls are the ultimate hook.

</p>

</quote>

<p>

Pavel Machek pointed out, <quote who="Pavel Machek">Well, you can't stop
_GPL-ed_ modules from adding dynamic system calls.</quote>

</p><p>

KT previously covered the possibility of this kind of loophole in
<kcref subject="[OFFTOPIC] Potential GPL violation of Linux kernel by
MOSIX?" startdate="27 Feb 1999 00:00:00 -0800"></kcref>, in which Richard Stallman also made
some pointed remarks.

</p>

</section>

<section
  title="Uncertainty About PowerPC Port Maintainership"
  subject="PowerPC Linux for AS/400 &amp; RS/6000 Hardware"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/2606.html"
  posts="44"
  startdate="13 Sep 2000 00:00:00 -0800"
  enddate="23 Sep 2000 00:00:00 -0800"
>
<topic>MAINTAINERS File</topic>

<mention>Tom Gall</mention>

<p>

Dwayne Grant McConnell said to Linus (and a bunch of other folks, and a
couple lists), <quote who="Dwayne Grant McConnell">Cort Dougan recently
announced he was no longer going to be maintaining the PowerPC Linux
tree. There is a team within IBM actively working on PowerPC Linux for both
32-bit and 64-bit hardware and we are very interested in continuing the
development of PowerPC Linux.  We have been working with Paul Mackerras
and others on the current set of issues for PowerPC Linux and future
directions. We have been preparing to announce our PowerPC Linux trees
and should do so within the next few days.  Could you please add the
following changes to the MAINTAINERS file indicating we are willing to
maintain PowerPC Linux for AS/400 and RS/6000 hardware?</quote> He included
a patch to add himself and Tom Gall to the MAINTAINERS list, as taking
responsibility for the port. But Paul Mackerras replied, <quote who="Paul
Mackerras">I believe what Cort said is that he is no longer maintaining the
<a href="http://www.ppc.linux.org/">http://www.ppc.linux.org/</a> web site.
I don't think he meant that he was no longer maintaining Linux for PowerPC.
He is away at the moment though.</quote> Dan Malek had the same impression,
and replied:

</p>

<quote who="Dan Malek">

<p>

I met with Cort for a couple of hours on Tuesday.  I thought he was going
to be back in NM sometime today (Wednesday), and I was hoping he would have
responded to the messages of confusion by now.

</p><p>

We discussed how to better manage the kernel source trees, and it was pretty
clear to me he intended to keep working on this.  Like all of us, he has
other jobs to do, and sometimes he just can't respond as quickly as we like.
This kind of work has a multiplier effect as it moves upstream.

</p>

</quote>

<p>

Meanwhile, Cort Dougan also replied to Paul, <quote who="Cort Dougan">What
I'd said was I'm taking a vacation from maintaining the PPC-tree for a
while so I can do some of my real job.  I'm not abandoning it in any way -
just spending less time on it for a while.</quote>

</p><p>

The discussion skewed off into other stuff at this point.

</p>

</section>

<section
  title="More Kernel Debugger Advocacy"
  subject="The case for a standard kernel debugger"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/1925.html"
  posts="31"
  startdate="14 Sep 2000 00:00:00 -0800"
  enddate="15 Sep 2000 00:00:00 -0800"
>

<p>

Keith Owens proposed:

</p>

<quote who="Keith Owens">

<p>

This note puts the case for including a kernel debugger in the master tarballs.
These points do not only apply to kdb, they apply to any kernel debugger.
Comments about the perceived deficiencies of kdb, kgdb, xmon or any other
debugger are not relevant here, nor are questions about how or when debuggers
should be activated.  I want to concentrate of whether the kernel should
have *any* standard debugger at all.

</p><p>

If Linus still says "no" to including any debugger in the master tarball
then that will be the end of this thread as far as I am concerned.  I will
then talk to distributors about getting a debugger included in their kernels
as a patch.  Hopefully the distributors who want a kernel debugger can then
agree on a standard one.

</p><p>

Disclaimer: Part of my paying job is to maintain kdb.  SGI want kdb to
            be used more widely to benefit from GPL support.  More eyes and
            hands means better code for everybody.

</p><p>

<ol>

<li>Random kernel errors are easier to document and report with a
    debugger.  Oops alone is not always enough to find a problem, sometimes
    you need to look at parameters and control blocks.  This is particularly
    true for hardware problems.</li>

<li>Support of Linux in commercial environments will benefit from a
    standard kernel debugger.  The last thing we want is each commercial
    support contract including a different debugger and supplying different
    bug reports.  Bug reports on supported systems should go to the support
    contractor but some will filter through to the main linux lists.</li>

<li>Architecture consistency.  Sparc, mips, mips64, ppc, m68k, superh,
    s390 already have remote debugger support in the standard kernel.  i386,
    alpha, sparc64, arm, ia64 do not have standard debuggers, they have to
    apply extra patches.  Some architectures have extra debugger code in
    addition to the remote gdb support.</li>

<li>Debugger consistency.  Back in 1997 there were a lot of individual
    kernel debugging patches going around for memory leaks, stack overflow,
    lockups etc.  These patches conflicted with each other so they were
    difficult for people to use.  I built the original set of Integrated
    Kernel Debugging (IKD) patches because I contend that having a standard
    debugging patch instead of lots of separate ones is far easier for
    everybody to use.  The same is true of a kernel debugger, having one
    standard debugger that all kernels use will improve the productivity of
    everyone who has to support kernel code, no need to learn the semantics
    of multiple separate debuggers.</li>

<li>

<p>

    Easier for kernel beginners to learn the kernel internals.  Having worked
    on 10+ operating systems over the years, I can testify that some form
    of kernel/OS tracing facility is extremely useful to get people started.
    I agree with Linus when he said

</p><p>

       "'Use the Source, Luke, use the Source.  Be one with the code.'.
       Think of Luke Skywalker discarding the automatic firing system when
       closing on the deathstar, and firing the proton torpedo (or whatever)
       manually.  _Then_ do you have the right mindset for fixing kernel bugs."

</p><p>

    But Linus has also said "The main trick is having 5 years of experience
    with those pesky oops messages ;-)".  Beginners need some way of getting
    that experience.  Reading the source from a cold start is an horrendous
    learning curve, debuggers help to see what the source is really doing.
    Always remember that 90%+ of kernel users are beginners, anything that
    helps to convert somebody from kernel beginner to kernel expert cannot
    be bad.

</p>

</li>

<li>

<p>

    I contend that kernel debuggers result in better patches, most of the time.
    Sometimes people misuse a debugger, as Linus said

</p><p>

       "I'm afraid that I've seen too many people fix bugs by looking
       at debugger output, and that almost inevitably leads to fixing
       the symptoms rather than the underlying problems."

</p><p>

    Does that occur?  Of course it does, I have been guilty of that myself
    over the years.  Is it inevitable?  IMNSHO, no.  Seven of the twelve
    architectures in the standard kernel already have built in debuggers.
    Where is the evidence that these architectures have more bad patches
    because of the presence of the debuggers?

</p><p>

    Even if somebody does submit a patch to fix the symptom instead of the
    problem, that alone is valuable information.  Fixing the symptom focuses
    attention and the associated information helps to fix the real problem.
    We get problem patches even without debuggers (let's not mention the
    recent truncate problems ;) but there are enough eyes on the kernel to
    find problem patches and remove them.  Adding a standard debugger will
    improve the quality of some of those eyes at a faster rate.

</p>

</li>

</ol>

So how about it Linus?  Does any of this change your mind about including
a standard kernel debugger?

</p>

</quote>

<p>

Jeff V. Merkey gave a happy yell and threw his fist in the air, as did David
P Howell; and Richard Moore added:

</p>

<quote who="Richard Moore">

<p>

I think  the case for the kernel debugger is better stated as the case for RAS
(Reliability, Serviceability and Availability) in the kernel, in other words,
there is a case for having the right diagnostic, reporting and recovery tools
in the right place at the right time. A kdb does not fulfil all diagnostic
RAS needs. IMHO it's an extremely powerful developement tool, but hang on
so is a logic analyser and a source-level debugger. It can also be a real
pain if trying to debug HLL source using an assembler based debugger. The
point is, one generally needs a debugger that matches the semantics that
the programmer is dealing with. If its, assembler code the so be it, use a
kdb. If you're poking around with H/W specific interfaces and system busses
the you make need a lower level tool.

</p><p>

But should a kdb be a standard part of the kernel for use in
production/commercial/enterprise environments? I don't believe so. Looking
back at the techniques we've deployed over the years to debug system problems
in commercial environments, we only ever had the luxury of using a kdb
with OS/2. Just about every other OS we supported did not  have a kdb.
The OS/2 case is interesting because initially, we had only the kdb for
debugging, and it was the worst platform for serviceability that we ever
supported. We couldn't debug those typically obscure problems that occurred
only in production environments and which could never  be readily re-created
in the lab.  We took an enormous amount of pain over this from our customers
over poor serviceability. They hated every minute of production time we took
from them when a developer took control of their systems in order to debug,
or in many cases not debug the problem.  Of course we had created a rod
for our own backs. Customers knew we never sent developers on site to debug
OS/390 (or MVS as it was called in those days).  They also knew that we never
rejected a problem because it was not re-creatable and we never even asked
for a re-creation scenario. The reason for this was that we had appropriate
RAS capability in MVS which allowed data to be captured automatically at
fault time combined with a certain amount of self-healing capability and
automated recovery. What we did to OS/2 to make it approach this level of
RAS capability was to implement a system dump capability - similar to SGI's
kernel crash dump, + a comprehensive system tracing facility that could be
dynamically customised to tracing events in any code path without any code
recompilation - IBM's Dynamic Probes for Linux is an initial port of the
capability + a comprehensive and customisable virtual storage based dump,
a bit like core dump, except that it could dump process trees if required
and memory from not only from user space, but from system space based upon
kernel sub-component, for example file-system structures etc..

</p><p>

That capability completely transformed our ability to debug serious and
obscure problems, with minimal disruption. It's true that we weren't
immediately successful when we implemented this stuff. There's a major
learning curve and mind-set change required to work with captured data as
opposed to interactive debugging.

</p><p>

We didn't throw away the kdb, it's still very useful:

</p><p>

<ol>

<li>as a didactic tool.</li>

<li>for the final stages of problem determination - every problem is
re-creatable once you know the triggers. And when you do, which you can get
from dumps and traces, then you can set up a lab-based experiment where you
use a debugger to solve the final mystery.</li>

<li>in production for those exceedingly rare cases where we needed to know
what the underlying hardware was up to - it's a cheaper option than using
a logic analyser.</li>

</ol>

</p><p>

One big argument against RAS of any sort is that it bloats the kernel and
not every one wants it (until they have a problem). A further argument with
Linux is that you may have to do quite a bit of hard work to get the subset
of RAS you need to co-exist, if it exists at all. Something we're working on
which may help resolve this, and will be made available with the next drop of
Dynamic Probes is Generalised Kernel Hooks Interface (GKHI). The idea here
is to make all our RAS function the option  of being dynamically loadable
kernel modules. In most cases we don't need to modify kernel function,
just get control at the right time. So we place hooks in kernel source,
which remain dormant until activated by the GKHI when a RAS module asks it
to. Maybe this will provide a way out of the difficulty.

</p>

</quote>

<p>

Timur Tabi also approved of Keith's proposal, but added that he could relate
to Keith's 5th point the best: using a debugger made it easier for beginners
to learn kernel hacking. Timur added, <quote who="Timur Tabi">I lost a lot
of respect for Linus when he made comments that basically implied that I was
not worthy of learning the Linux kernel because I did not want to do it the
hard way.</quote> To which Marco Colombo replied:

</p>

<quote who="Marco Colombo">

<p>

So Linus is right. His main argument is about people selection. Keep the
ones who don't want to do it the hard way out of the door.  You're just
saying that his strategy is succeeding.

</p><p>

Let me ask: if you want to learn how the kernel works, and you think you
need a debugger, why don't you apply the patches yourself? What Linus does
with his own tree has little impact on you. You won't buy Linus with the
'learning' argument, I think.

</p><p>

I don't think Linus' main point is "do I the hard way or don't". The point
is that "doing it with a debugger is not the easy way". It seems to be easier
but you don't get the Knowledge. So in the end it's 'the right way' vs. 'the
wrong way'. not 'hard' vs. 'easy'.  In this, I must say I agree with him. I'd
also add that source code is (should be) a language to express ideas (at the
same time to implement them).  With a well written source, you don't need a
debugger at all to understand 'how it works'.  And if you find you need it,
we've quite a problem with the source in the beginning. Source code should
be more human readable than debugger output, *expecially* for beginners. In
this Linus is doing a great job.

</p><p>

My points againts Linus' arguments:

</p><p>

<ol>

<li>you should give people freedom to do what they do. If they want to spend
   thier time with a debugger let them do. This 'social engineering' thing
   is crap. You don't make people better by filtering them.</li>

<li>apply tight filters on what people produce (patches, features) not on
   how they produce. If Linus is right (and in the end I believe it),
   'debugger people' will produce low quality patches (the ones that fix the
   syntoms not the problems), and those patches won't be blessed by Linus. I
   think Alan made the point that those patches sometimes may be useful to
   others who are looking for the real problems.</li>

</ol>

</p>

</quote>

<p>

Frederic Magniette agreed that a kernel debugger could end up letting people
produce bad patches, but he added that it was very difficult to debug one's
own kernel code, especially if the kernel started segfaulting. He argued,
<quote who="Frederic Magniette">Then you have to begin a very slow process
of printing lots of parameters and wondering about what you could have done
which is so bad.  This can be really awful if your code is called very often
and then saturate the logs.  In that way, I think that a kernel debugger could
be a powerful coding tool and not only a patching tool as you say.</quote>

</p><p>

There was more discussion, but at one point, Keith said, <quote who="Keith
Owens">Various people have replied to my note on "The case for a standard
kernel debugger" discussing whether or not it is a good idea.  However only
one person's reply matters here - Linus.  I ask other people to refrain
from replying to this thread until Linus has had a chance to read my note
and (if he chooses) to reply to it.</quote> Jeff replied, <quote who="Jeff
V. Merkey">I think he did already Keith -- he said he would reject any kernel
debugger submissions.  :-)</quote>

</p>

</section>

<section
  title="Removing Distinctions Between Modules And In-Kernel Drivers"
  subject="SCSI scanning"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/3079.html"
  posts="54"
  startdate="16 Sep 2000 00:00:00 -0800"
  enddate="23 Sep 2000 00:00:00 -0800"
>
<topic>Disks: SCSI</topic>

<mention>Jan Niehusmann</mention>
<mention>Jeff Garzik</mention>

<p>

Jan Niehusmann reported that test9-pre1 didn't include the fix for the problem
where SCSI disks were detected twice when the driver was compiled directly into
the kernel (as opposed to as a module). Torben Mathiasen, the author of a patch
to fix this, suggested adding an '#ifdef MODULE' and eventually overhauling the
SCSI subsystem in 2.5; but Linus Torvalds replied:

</p>

<quote who="Linus Torvalds">

<p>

Please explain why it does it twice for compiled-in, and only once for
modules. There must be some other logic that does the extra initializations
(and that does not trigger for modules), and I'd much rather just get rid
of THAT thing instead.

</p><p>

I don't like it that modules behave differently from built-in. You're
suggesting I make them even _more_ different, so that the end result would be
similar. I'd like to know why we cannot just make them the exact same logic,
and not break it more.

</p><p>

Basically, there has to be some other place that does the equivalent of

</p>

<blockquote>

<p>

        if (!module) init_subsystems();

</p>

</blockquote>

<p>

and I don't see why we can't just remove that one and make modules and
compiled-in behave the same.

</p>

</quote>

<p>

Jan and Torben hunted around for a few posts, and Torben said, <quote
who="Torben Mathiasen">I've attached a patch that seems to do "The Right
Thing".  The problem was that the host detection routines would initialize the
upper layers of scsi drivers (sd/st/sr), and then the module_init routines
would do it again. I've removed this so now all device initialization is
done through the module_init stuff.</quote> Linus replied, <quote who="Linus
Torvalds">Looks good, and cleans up the code.</quote> [...] <quote who="Linus
Torvalds">This is the patch I was looking for. Thanks.</quote> He rooted around
in the code himself for a bit, and finally added:

</p>

<quote who="Linus Torvalds">

<p>

That's another case where the SCSI layer is module dependent. If it's a
module, we use the "init_module()" in scsi/scsi.c, and if not, we instead use
"scsi_dev_init()". They do some of the same things (well, they obviously would
have to, otherwise there wouldn't be any point to having a init routine at
all), but in general do it in very different ways for no good reason I can see.

</p><p>

Torben, would you mind terribly expanding on your previous patch a bit,
and also cleaning this part up? As far as I can tell, we should just
remove scsi_dev_init() completely, and use the module init code with an
initcall(). Two less regions of #ifdef MODULE, and one less different
code-path to worry about..

</p><p>

Why was this done this way anyway? I've never seen this kind of setup in
any of the other drivers that have been de-liced of module dependencies..

</p>

</quote>

<p>

Jeff Garzik and Eric Youngdale replied that this was historical code. As
Eric put it, <quote who="Eric Youngdale">SCSI was made modular very early
on when the modules technology was pretty primative.  As time has gone on,
the two initialization paths have converged, and now they are essentially
redundant.</quote> Torben said he'd started work on a patch and expected to
have a preliminary version shortly. At this point Linus had second thoughts,
and said, <quote who="Linus Torvalds">Actually, hold off a moment.</quote>
He explained, <quote who="Linus Torvalds">It turns out that the MODULE case
does all the right things, for all the obvious reasons. I'm running a kernel
that has the #ifdef MODULE stuff just removed, and it seems to be a rather
easy approach. It really only required making a few things static (the
init routines would clash otherwise), and removing a lot of #ifdef MODULE.
(And removing some code that was enabled only for non-modules).  It looks
very straightforward.</quote>

</p><p>

Eric asked, just for his own sense of clarity, <quote who="Eric Youngdale">What
is the primary objective here - getting rid of #ifdef MODULE, or is it
removing redundant code for the two paths?  Or both?</quote> Linus replied,
<quote who="Linus Torvalds">both.</quote> and summed up the situation to that
point:

</p>

<quote who="Linus Torvalds">

<p>

As you probably saw, it really started out from fixing this silly bug that
was introduced by mistake some time ago - which was due to both the module
init and the "built-in" init code kicking in. The fact that it wasn't clear
which happened where is really for me the driving force here - I'd like to
avoid the same bug cropping up in half a year when somebody cleans up some
low-level driver init.

</p><p>

Oh, and getting rid of the init list in hosts.c is a nice bonus. It just
goes away automatically if you look at the module init path instead ;)

</p>

</quote>

<p>

At one point, Linus put out test9-pre3 and a lot of people went over the change,
discussing various technical points.

</p>

</section>

<section
  title="Keeping Reserve Pages Available In The New VM"
  subject="/proc/sys/vm/freepages not writable."
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/3199.html"
  posts="13"
  startdate="17 Sep 2000 00:00:00 -0800"
  enddate="19 Sep 2000 00:00:00 -0800"
>
<topic>FS: sysfs</topic>
<topic>Virtual Memory</topic>

<p>

Patrick Mau reported that /proc/sys/vm/freepages no longer had the write
permission set in 2.4.0-test9-pre1. He asked if this was intentional, and
Dave Jones said that with the new VM, <quote who="Dave Jones">Changing this
field is no longer relevant to the restructured code.</quote> Rik van Riel went
into more detail, also replying to Patrick:

</p>

<quote who="Rik van Riel">

<p>

It was intentional. Writing to this file hasn't worked well since 2.3.50 or
so, when the zoned VM was merged.

</p><p>

Also, the fact that the new VM keeps a list of directly reclaimable inactive
pages around that varies according to the amount of VM activity should make
tweaking this value no longer needed...

</p>

</quote>

<p>

Andi Kleen felt there should be a way to force the VM to keep lots of pages
around for interrupt-intensive load such as gigabit networking. Rik gave
a technical explanation that confirmed this couldn't be done, and Andi
replied, <quote who="Andi Kleen">So it cannot take load bursts. That's ok
for a default, but for special loads it would be good if there was a way for
the administrator to overwrite that, similar to the old freepages.</quote>
Rik suggested, <quote who="Rik van Riel">OK, lets see if we can come up
with some nice (self-tuning?)  idea for this at Linux Kongress ;)</quote>
Andi didn't like self-tuning in this case, because it would tend to drop
a lot of packets on the first spike, before the VM could adjust. He said,
<quote who="Andi Kleen">When the admin says "I don't care if 10MB are wasted,
I want it this way" explicitely he should get his will.</quote> Rik agreed,
and said he'd add the feature, and Andi suggested, <quote who="Andi Kleen">It
would be nice if you could do it via freepages again, then documentation
would not need to be rewriten. Even if some of the numbers are meaningless
now, e.g. the middle number could give a goal for the VM.</quote>

</p>

</section>

<section
  title="PERCRAID 3 Drivers Going Open Source"
  subject="PERCRAID 3 drivers?"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/3234.html"
  posts="13"
  startdate="17 Sep 2000 00:00:00 -0800"
  enddate="20 Sep 2000 00:00:00 -0800"
>
<topic>Disk Arrays: RAID</topic>

<p>

Bruce A. Locke got a PERCRAID 3 card from Dell that seemed only to work with
a binary kernel module for kernel 2.2.14; he asked, <quote who="Bruce A.
Locke">A check of Dell's (rather horrible) support website only turns up the
binary module mentioned above. Does anyone know anything about these PERCRAID
3 cards and if there is an opensource driver? or at least a binary module for
a newer kernel?</quote> There were two main subthreads coming off of this. In
the first, Wakko Warner replied, <quote who="Wakko Warner">AFAIK, Dell wrote
these drivers themselfs and they are unwilling to release the source.</quote>
Alan Cox replied, <quote who="Alan Cox">The drivers for the percraid have
adaptec copyrights and have been made available finally but were too ugly at
the moment to merge (and had some obvious potentially nasty bugs like using
down() on a spinlock.  The adaptec guys are cleaning it up.</quote> He added
later, <quote who="Alan Cox">Im quite sure the same bug is in there binary only
drivers too. I think it just happens to work for all the wrong reasons.</quote>

</p><p>

In the other subthread replying to Bruce, Matt Domsch from Dell said,
<quote who="Matt Domsch">The aacraid driver was submitted to Alan Cox, but
rejected because it has too many "NTism's" in it, which are being addressed.
Please see the Red Hat Linux "Pinstripe" beta kernel source RPM for the
source code, or contact me privately.</quote> Jon Mitchell pointed out
that the sources were available from Dell's site, and at one point Bruce
said, <quote who="Bruce A. Locke">The aacard driver patches that were in
the Redhat pinstripe kernel SRPM work fine with 2.2.17.  The machine seems
pretty stable and speed is about the same as with the binary driver.</quote>
Elsewhere in the subthread Igmar Palsenberg remarked, <quote who="Igmar
Palsenberg">In my opinion, manufacturers should provide docs, not some buggy
peace of software that needs to be completely rewritten afterwards.</quote>
Alan replied, <quote who="Alan Cox">Well they are doing the rewriting so
I don't mind. Its also easy to see how the code works one you read the
driver. They aren't hiding stuff on the scsi side although the filesystem
(yes aacraid can do its own file system on card) is missing.</quote>

</p>

</section>

<section
  title="Getting Very Close To 2.4.0"
  subject="Linux-2.4.0-test9-pre2"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/3263.html"
  posts="61"
  startdate="17 Sep 2000 00:00:00 -0800"
  enddate="22 Sep 2000 00:00:00 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>PCI</topic>
<topic>Virtual Memory</topic>

<mention>Russell King</mention>

<p>

Linus Torvalds announced 2.4.0-test9-pre2 and said, <quote who="Linus
Torvalds">Ok. I think we're getting to the point where there are no major
known bugs. That means that as of the final 2.4.0-test9 I will no longer
accept any patches that don't have a critical problem (as defined by Teds list)
associated with them.</quote> Alan Cox replied, <quote who="Alan Cox">Argh. Im
not going to have time to push all the driver fixes from 2.2 into 2.4 then,
I've got a house move to do yet</quote> And Rik van Riel also replied to
Linus, <quote who="Rik van Riel">Hmm, the new VM doesn't have the out of
memory killer integrated yet. I'll do some out of memory / low on swap work
and will send you the patch soon, dependant on how connected I will be during
Linux Kongress...</quote>

</p><p>

Russell King asked about the various port maintainers, and if they'd be
allowed to get their changes into the tree at this late date. Tom Rini also
felt this was a good question, and summed up, <quote who="Tom Rini">I know
PPC still has some issues that need to be sorted out (We got lots of PCI
resource collisions on most(all?) new machines, which really shouldn't be).
I'm sure other arches have problems which haven't been posted on l-k but have
been on their respective -dev list.</quote> Martin Schwidefsky added, <quote
who="Martin Schwidefsky">I wanted to do an update for the s/390 architecture
since weeks but there was always something more important. I finally cut some
hours out of my ribs and made a patch against linux-2.4.0-test8. The diff for
files in arch/s390, include/asm-s390 and drivers/s390 is pretty big, about
1 MB. The diffs for non s/390 files is smaller, only 35 KB.  The question
is now do you want to have the patch or do we wait until 2.4.1?</quote>

</p><p>

At around this point some folks started complaining about 2.4 taking too long,
and Cort Dougan mentioned:

</p>

<quote who="Cort Dougan">

<p>

My opinion is that 2.4 bug fixes are less common than unnecessary rewrites
of working code that brings about even more instability and delays for a
real and stable 2.4.  Bitterness leaks out...

</p><p>

I have a start to the 2.5 tree for PPC.  We're keeping up-to-date with 2.4
changes so when the official 2.5 does come out we can merge our changes into
it without too much trouble.  I'm only allowing bugfixes into our 2.4 tree
now that we have some place to play.

</p><p>

If anyone else wants access to the 2.5 tree we have as a place to keep
experimental changes I'm happy to open it up to the outside.

</p>

</quote>

<p>

David S. Miller replied:

</p>

<quote who="David S. Miller">

<p>

The _whole reason_ 2.5.x isn't started is so that people concentrate on
stabilizing 2.4.x instead of working on new stuff.  Why not just tell these
people "why are you working on experimental stuff, put together PPC stress
test and kernel regression suites if you are bored, because we know 2.4.x
isn't read for prime time"

</p><p>

You cannot complain about 2.4.x not being timely if you are doing things
which directly encourage folks to not work on 2.4.x at all.  Right?

</p>

</quote>

<p>

Cort replied:

</p>

<quote who="Cort Dougan">

<p>

My PPC guys want to change things.  I can't stop them, but I can prevent
them from screwing with 2.4 which needs to stay stable.  If they don't wan
to fix bugs in 2.4 then I can't force them to.  They don't work for me, and
I don't work for anyone who cares about PPC.  So I'm not going to put a great
deal of effort into forcing them to them to do something they don't want to.
I've effectively kept them from making 2.4 unstable on PPC.  That's a good
thing, I think.

</p><p>

I've also given them a place to do their experimentation before it becomes
safe.  Once it does, I can move it into 2.4 or wait for 2.5 if the changes
don't become stable.

</p>

</quote>

<p>

David Disagreed with that approach, and the discussion went on for awhile before
petering out.

</p>

</section>

<section
  title="Deadlock Hiding In New VM"
  subject="Rik's VM contains a deadlock somewhere"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/3607.html"
  posts="4"
  startdate="19 Sep 2000 00:00:00 -0800"
>
<topic>Disks: SCSI</topic>
<topic>SMP</topic>
<topic>Virtual Memory</topic>

<mention>Mike Galbraith</mention>

<p>

Anton Petrusevich reported a deadlock with the new VM code on low memory
systems. He'd told Rik van Riel about it, but Rik hadn't been able to find
the problem. He urged folks to test it thoroughly on their own systems,
since <quote who="Anton Petrusevich">With mem=8m it couldn't finish init
scripts even.</quote> Mike Galbraith reported a similar problem on a higher
memory machine (128M), and Rik said to Anton:

</p>

<quote who="Rik van Riel">

<p>

I /thought/ I had fixed this, since the system runs fine on my (SMP, SCSI)
test machine when I boot it with mem=8m.

</p><p>

Somebody on IRC suggested to me that this may be an UP-only bug ... I'm
looking into this and hope to fix it soon, but I have to admit some help
would be welcome ;)

</p><p>

(I'm still at Linux Kongress and won't be back in the office for about a week)

</p>

</quote>

<p>

Anyone wanting to talk to Rik and others on IRC should check out #kernelnewbies
at irc.debian.org

</p><p>

For coverage of Linus' acceptance of the VM patches into the official sources,
see <kcref subject="test9-pre1" startdate="15 Sep 2000 00:00:00 -0800"></kcref>.

</p>

</section>

<section
  title="linux-kernel Digest Discontinued"
  subject="linux-kernel-digest ?"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/3890.html"
  posts="14"
  startdate="20 Sep 2000 00:00:00 -0800"
  enddate="22 Sep 2000 00:00:00 -0800"
>

<p>

Robert Greimel asked if the linux-kernel digest would be coming back (it was
left out when linux-kernel moved from vger.rutgers.edu to vger.kernel.org), and
Matti Aarnio replied that according to David S. Miller, no. He went on, <quote
who="Matti Aarnio">Sometimes he holds possibly bad opinnions as ferociously as
Linus, but on the other hand, that Majordomo 1.x digester breaks structured
MIME messages BADLY.  It should be trivial to fix, but I don't hack Md,
I hack ZMailer -- and also sometimes the kernel.</quote> Dmitry Pogosyan
replied in dismay, <quote who="Dmitry Pogosyan">This is very unfortunate,
since linux-kernel-digest was the great way to keep many interested people
informed about state of Linux development Without it,  &gt; 200 mails daily in
linux-kernel is fairly prohibitive if you are not an active developer.</quote>
Matti suggested using 'procmail' to sift linux-kernel into its own mailbox.

</p><p>

Elsewhere, Alan Cox remarked, <quote who="Alan Cox">Having slowly switched
every list I have to run or help run to mailman I can recommend the pain of
the switch over the pain of running majordomo.</quote> David replied, <quote
who="David S. Miller">I suggested this but Matti immediately told me that
mailman has
several RFC compliancy "issues" which I am sure he can elaborate on.</quote>
Alan expressed interest in hearing more, and Matti replied:

</p>

<quote who="Matti Aarnio">

<p>

A year or two ago I had a peek after I got reports that it didn't work together
with ZMailer -- turned out that some baseline PYTHON library for SMTP does
something stupid in its protocol line construction..  The system experiencing
problems was running ZMailer with ultra-strict RFC 821 (plus amendaments) mode.

</p><p>

Ergo, the MAILMAN might be ok, but underneath it there may be buggy language
library..  (may STILL be, that is.)

</p><p>

Another point, DaveM, was that MAILMAN is written in Python, and neither of us
"speaks" that language...

</p>

</quote>

<p>

Oliver Xymoron remarked, <quote who="Oliver Xymoron">Python is quite readable
though. Hacking existing code isn't too painful for anyone who knows Perl
and C.</quote> No one replied to that, but elsewhere, Steven Pritchard
mentioned:

</p>

<quote who="Steven Pritchard">

<p>

There is a Majordomo 2 in development.  I'm using it for all of my lists now.
The upgrade from Majordomo 1 wasn't terribly painful.

</p><p>

Note that it's not really a new version, but rather a total rewrite.  MIME,
archives, digests, and everything else you would expect to "just work" does.
Of course, the catch is that there hasn't been an official, stable release yet.

</p>

</quote>

<p>

It seems that for linux-kernel, folks wanting the old digest will have to
wait for the majordomo upgrade or the changeover to different software.

</p>

</section>

<section
  title="New VM May Not Make It Into 2.4"
  subject="[patch *] VM deadlock fix"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/4023.html"
  posts="22"
  startdate="21 Sep 2000 00:00:00 -0800"
  enddate="22 Sep 2000 00:00:00 -0800"
>
<topic>SMP</topic>
<topic>Virtual Memory</topic>

<p>

Rik van Riel announced:

</p>

<quote who="Rik van Riel">

<p>

I've found and fixed the deadlocks in the new VM. They turned out to be
single-cpu only bugs, which explains why they didn't crash my SMP tesnt box ;)

</p><p>

They have to do with the fact that processes schedule away while holding IO
locks after waking up kswapd. At that point kswapd spends its time spinning
on the IO locks and single-cpu systems will die...

</p><p>

Due to bad connectivity I'm not attaching this patch but have only put it
online on my home page:

</p><p>

<a
href="http://www.surriel.com/patches/2.4.0-t9p2-vmpatch">http://www.surriel.com/patches/2.4.0-t9p2-vmpatch</a>

</p><p>

(yes, I'm at a conference now ... the worst beating this patch has had is
a full night in 'make bzImage' with mem=8m)

</p>

</quote>

<p>

A lot of folks reported the same or worse deadlocks, and at one point Linus
Torvalds warned, <quote who="Linus Torvalds">those VM patches are going away
RSN if these issues do not get fixed. I'm really disappointed, and suspect
that it would be easier to go back to the old VM with just page aging added,
not your new code that seems to be full of deadlocks everywhere.</quote> Rik
replied:

</p>

<quote who="Rik van Riel">

<p>

I've been away on a conference last week, so I haven't had much chance to take
a look at the code after you integrated it and the test base got increased ;(

</p><p>

One thing I discovered are some UP-only deadlocks and the page ping-pong
thing, which I am fixing right now.

</p><p>

If I had a choice, I'd have chosen /next/ week as the time to integrate the
code ... doing this while I'm away at a conference was really inconvenient ;)

</p><p>

I'm looking into the email backlog and the bug reports right now (today,
tuesday and wednesday I'm at /another/ conferenc and thursday will be the
next opportunity).

</p><p>

It looks like ther are no fundamental issues left, just a bunch of small
thinkos that can be fixed in a (few?)  week(s).

</p>

</quote>

<p>

A little bit before this exchange, Rik found a spot in the code where
he'd inadvertantly reversed the logic on a test in an 'if' statement. Ingo
Molnar tested it out right away and replied (with a patch), <quote who="Ingo
Molnar">yep this has done the trick, the deadlock is gone. I've attached the
full VM-fixes patch (this fix included) against vanilla test9-pre5.</quote>
Rik asked Linus to include Ingo's patch in the next pre-release, but Andr&#233;
Dahlqvist and Yuri Pudgorodsky reported oopses with the patch. There was no
reply, and the thread ended.

</p><p>

Elsewhere, under the Subject: <a
href="http://lists.insecure.org/linux-kernel/2000/Sep/4245.html">test9-pre6</a>,
Linus Torvalds released 2.4.0-test9-pre6 and remarked, <quote who="Linus
Torvalds">This should fix the VM deadlocks (knock wood).</quote>

</p>

</section>

<section
  title="es1371 Sound Card Catches Bad Fixes"
  subject="No sound (es1371) after test7"
  archive="http://lists.insecure.org/linux-kernel/2000/Sep/4163.html"
  posts="12"
  startdate="22 Sep 2000 00:00:00 -0800"
  enddate="24 Sep 2000 00:00:00 -0800"
>
<topic>Forward Port</topic>
<topic>Sound</topic>

<p>

Someone reported that their es1371 sound card stopped working in
2.4.0-test9-pre5. The last kernel he'd tried had been test7, which had
worked fine. Mordechai Ovits added that the same card worked fine for him
under test8.  Linus Torvalds looked around in the code and found a bugfix
that seemed to miss the point. He suggested reverting it, but then replied
to himself later with another bogus bugfix. Jon Evans reported success with
Linus' fix, and Linus said, <quote who="Linus Torvalds">I will now hunt down
the person who sent me that patch, and do nasty things to him. After I whip
myself for accepting it in the first place.</quote> Alan Cox replied that he'd
add the fix to 2.2.18pre, and added, <quote who="Alan Cox">Its an escapee
bug from 2.2 that leaked into 2.4. Not the fault of whoever forward ported,
its a debugging thing that wasnt removed.</quote> Jeff Garzik took the bullet
(also in reply to Linus), with, <quote who="Jeff Garzik">hmmmm  The patch was
submitted by me, but it came straight from 2.2.x...  after being whipped,
I shall look into both versions of ac97_codec some more...</quote> Linus
remarked, <quote who="Linus Torvalds">I'm surprised that it works at all in
2.2.x - that implies that the 2.2.x code is completely different from the
2.4.x logic.</quote>

</p>

</section>

</kc>

