<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="79" date="07 Aug 2000 00:00:00 -0800" />

<intro>

<p>Thanks go to Leena Heino and Tom Davey for catching an HTML bug that caused
an end-comment tag to show up where it wasn't wanted. Thanks, folks!</p>

<p>Some folks have written me asking how to find the latest KC news now that
the right nav bar is gone. These can all still be found on the <a
href="http://www.linuxcare.com">Linuxcare Homepage</a> or the <a
href="http://kt.zork.net/news.html">Kernel Cousin News Page</a>.</p>

</intro>

<stats posts="1441" size="6470" contrib="432" multiples="194" lastweek="150">

<person posts="115" size="451" who="Andre Hedrick " />
<person posts="55" size="259" who="&quot;Khimenko Victor&quot; " />
<person posts="48" size="211" who="James Sutherland " />
<person posts="47" size="173" who="Stephen Frost " />
<person posts="43" size="180" who="Tigran Aivazian " />
<person posts="37" size="179" who="&quot;Mike A. Harris&quot; " />
<person posts="33" size="98" who="Alan Cox " />
<person posts="28" size="122" who="Vojtech Pavlik " />
<person posts="26" size="90" who="Alexander Viro " />
<person posts="17" size="77" who="David Ford " />
<person posts="16" size="58" who="Bartlomiej Zolnierkiewicz " />
<person posts="16" size="56" who="Linus Torvalds " />
<person posts="15" size="49" who="Oliver Xymoron " />
<person posts="13" size="69" who="Horst von Brand " />
<person posts="13" size="64" who="Horst von Brand " />
<person posts="12" size="46" who="&quot;H. Peter Anvin&quot; " />
<person posts="12" size="40" who="Andrea Arcangeli " />
<person posts="11" size="44" who="&quot;Richard B. Johnson&quot; " />
<person posts="11" size="42" who="Russell King " />
<person posts="11" size="34" who="&quot;Theodore Y. Ts'o&quot; " />
<person posts="10" size="35" who="&quot;Stuart MacDonald&quot; " />
<person posts="9" size="274" who="&quot;Adam J. Richter&quot; " />
<person posts="9" size="52" who="Keith Owens " />
<person posts="9" size="50" who="&quot;Petr Vandrovec&quot; " />
<person posts="9" size="43" who="Info " />
<person posts="9" size="42" who="&quot;Dunlap, Randy&quot; " />
<person posts="9" size="33" who="Ville Herva " />
<person posts="9" size="26" who="" />
<person posts="8" size="37" who="&quot;Jeff V. Merkey&quot; " />
<person posts="8" size="36" who="David Luyer " />
<person posts="8" size="30" who="Agust Karlsson " />
<person posts="8" size="30" who=" (Linus Torvalds)" />
<person posts="8" size="30" who="&quot;H. Peter Anvin&quot; " />
<person posts="8" size="29" who="Andries Brouwer " />
<person posts="8" size="28" who="Matthias Andree " />
<person posts="8" size="26" who="Krzysztof Halasa " />
<person posts="7" size="103" who="James Simmons " />
<person posts="7" size="18" who="Dan Hollis " />
<person posts="6" size="30" who="Andrew Morton " />
<person posts="6" size="26" who="Andreas Bombe " />
<person posts="6" size="25" who="&quot;Eric S. Raymond&quot; " />
<person posts="6" size="25" who="Adam Sampson " />
<person posts="6" size="25" who="Paul Barton-Davis " />
<person posts="6" size="23" who="Marc Lehmann " />
<person posts="6" size="23" who="Matthew Harrell " />
<person posts="6" size="23" who=" (Rogier Wolff)" />
<person posts="6" size="17" who="&quot;David S. Miller&quot; " />
<person posts="6" size="17" who="Igmar Palsenberg " />
<person posts="6" size="16" who="Jeff Garzik " />
<person posts="6" size="15" who="Kai Schulte " />
<person posts="5" size="45" who="Christoph Hellwig " />
<person posts="5" size="31" who="Pavel Machek " />
<person posts="5" size="21" who="Malcolm Beattie " />
<person posts="5" size="21" who="George Anzinger " />
<person posts="5" size="20" who="Steve VanDevender " />
<person posts="5" size="17" who="Jamie Lokier " />
<person posts="5" size="16" who="Myrddin Emrys " />
<person posts="5" size="16" who="Frank van Maarseveen " />
<person posts="5" size="15" who="Jeff Garzik " />
<person posts="4" size="56" who="" />
<person posts="4" size="38" who="&quot;Anthony Barbachan&quot; " />
<person posts="4" size="25" who="Randy Dunlap " />
<person posts="4" size="18" who="Andrew McNabb " />
<person posts="4" size="18" who="Chris Kloiber " />
<person posts="4" size="17" who="Urban Widmark " />
<person posts="4" size="16" who="&quot;Dr. Kelsey Hudson&quot; " />
<person posts="4" size="16" who="Miles Lane " />
<person posts="4" size="16" who="Jun Sun " />
<person posts="4" size="15" who="" />
<person posts="4" size="15" who="Mark Gray " />
<person posts="4" size="15" who="&quot;Henning P. Schmiedehausen&quot; " />
<person posts="4" size="14" who="Erik Mouw " />
<person posts="4" size="14" who="&quot;Rask Ingemann Lambertsen&quot; " />
<person posts="4" size="14" who="Thomas Dodd " />
<person posts="4" size="13" who="Ragnar Hojland Espinosa " />
<person posts="4" size="13" who="Peter Svensson " />
<person posts="4" size="13" who="BenHanokh Gabriel " />
<person posts="4" size="12" who="&quot;Andi Kleen&quot; " />
<person posts="4" size="12" who="&quot;Heusden, Folkert van&quot; " />
<person posts="4" size="12" who="" />
<person posts="4" size="11" who="Gregory Maxwell " />
<person posts="3" size="42" who="Brian Hall " />
<person posts="3" size="20" who="" />
<person posts="3" size="18" who="&quot;Robert H. de Vries&quot; " />
<person posts="3" size="18" who="Mike Perry " />
<person posts="3" size="16" who="Rob Landley " />
<person posts="3" size="14" who="Richard Zidlicky " />
<person posts="3" size="12" who="Karen Shaeffer " />
<person posts="3" size="12" who="TimO " />
<person posts="3" size="11" who="Bob Taylor " />
<person posts="3" size="11" who="&quot;Maciej W. Rozycki&quot; " />
<person posts="3" size="11" who="Paul Gortmaker " />
<person posts="3" size="11" who="Benno Senoner " />
<person posts="3" size="11" who="Chris Meadors " />
<person posts="3" size="11" who="&quot;Peter T. Breuer&quot; " />
<person posts="3" size="11" who="Kanoj Sarcar " />
<person posts="3" size="11" who="Enrico Demarin " />
<person posts="3" size="11" who="Peter Steiner " />
<person posts="3" size="10" who="Matthew Dharm " />
<person posts="3" size="10" who="Dax Kelson " />
<person posts="3" size="10" who="" />
<person posts="3" size="10" who="" />
<person posts="3" size="9" who="Meelis Roos " />
<person posts="3" size="9" who="Ralf Baechle " />
<person posts="3" size="9" who="&quot;MWP&quot; " />
<person posts="3" size="9" who="Matti Aarnio " />
<person posts="3" size="9" who="Art Boulatov " />
<person posts="3" size="9" who="&quot;David Schwartz&quot; " />
<person posts="3" size="9" who="Trond Myklebust " />
<person posts="3" size="9" who="Shalon Wood " />
<person posts="3" size="9" who="Matthew Jacob " />
<person posts="3" size="9" who="Rik van Riel " />
<person posts="3" size="9" who="Roy Sigurd Karlsbakk " />
<person posts="3" size="9" who="David Lombard " />
<person posts="3" size="8" who="Mark Stewart " />
<person posts="3" size="8" who="Ivan Passos " />
<person posts="3" size="8" who="Rusty Russell " />
<person posts="3" size="8" who="Sujit Vaidya " />
<person posts="3" size="8" who="David Hinds " />
<person posts="3" size="8" who=" (Miquel van Smoorenburg)" />
<person posts="3" size="8" who="Willy Tarreau " />
<person posts="3" size="7" who="Brian Gerst " />
<person posts="3" size="7" who="Paul Jakma " />
<person posts="2" size="22" who="&quot;Justin C. Ferguson&quot; " />
<person posts="2" size="17" who="&quot;Alan Curry&quot; " />
<person posts="2" size="14" who="&quot;Andy Turk&quot; " />
<person posts="2" size="14" who="Robert Cohen " />
<person posts="2" size="14" who="Ahmed El-Mahmoudy " />
<person posts="2" size="13" who="Kurt Garloff " />
<person posts="2" size="12" who="Roger Larsson " />
<person posts="2" size="12" who="octave klaba " />
<person posts="2" size="12" who=" (Stephen Harris)" />
<person posts="2" size="11" who="&quot;J. Robert von Behren&quot; " />
<person posts="2" size="10" who="David Mansfield " />
<person posts="2" size="10" who="Michael Poole " />
<person posts="2" size="10" who="Anton Ivanov " />
<person posts="2" size="10" who="Dmitry Melekhov " />
<person posts="2" size="10" who="=?ISO-8859-1?Q?G=E9rard_Roudier?= " />
<person posts="2" size="9" who="Peter Rival " />
<person posts="2" size="9" who=" (Kai Henningsen)" />
<person posts="2" size="9" who="Sasa Ostrouska " />
<person posts="2" size="9" who="Ralf Baechle " />
<person posts="2" size="8" who="&quot;Vinay Vernekar&quot; " />
<person posts="2" size="8" who="Admin Mailing Lists " />
<person posts="2" size="8" who=" (John Alvord)" />
<person posts="2" size="8" who="Matt Yourst " />
<person posts="2" size="7" who="Francis Galiegue " />
<person posts="2" size="7" who="Neil Brown " />
<person posts="2" size="7" who="jeremy brand " />
<person posts="2" size="7" who="Johannes Erdfelt " />
<person posts="2" size="7" who="Douglas Gilbert " />
<person posts="2" size="7" who="Khimenko Victor " />
<person posts="2" size="7" who="David Weinehall " />
<person posts="2" size="7" who="clubneon " />
<person posts="2" size="7" who="Matthias Andree " />
<person posts="2" size="7" who="Gabor Lenart " />
<person posts="2" size="7" who="Mike Castle " />
<person posts="2" size="7" who="Hajime Inoue " />
<person posts="2" size="7" who="YH Gian " />
<person posts="2" size="7" who="&quot;Theodore Ts'o&quot; " />
<person posts="2" size="7" who="Timur Tabi " />
<person posts="2" size="7" who="kevin " />
<person posts="2" size="7" who="Borislav Deianov " />
<person posts="2" size="7" who="Nadeem Riaz " />
<person posts="2" size="6" who="Franz Sirl " />
<person posts="2" size="6" who="German Jose Gomez Garcia " />
<person posts="2" size="6" who="Frank v Waveren " />
<person posts="2" size="6" who="Edward Betts " />
<person posts="2" size="6" who="Chris Wedgwood " />
<person posts="2" size="6" who="Pavel Roskin " />
<person posts="2" size="6" who="Jeff Dike " />
<person posts="2" size="6" who="NIIBE Yutaka " />
<person posts="2" size="6" who="Manfred Spraul " />
<person posts="2" size="6" who="Alexander Viro " />
<person posts="2" size="6" who="Brian Gerst " />
<person posts="2" size="6" who="&quot;Barry K. Nathan&quot; " />
<person posts="2" size="6" who="Martin Mares " />
<person posts="2" size="6" who="Edward Muller " />
<person posts="2" size="6" who="Ruth Ivimey-Cook " />
<person posts="2" size="6" who="Stephen Tweedie " />
<person posts="2" size="6" who="&quot;Nerijus Baliunas&quot; " />
<person posts="2" size="5" who="&quot;Leonard N. Zubkoff&quot; " />
<person posts="2" size="5" who="Michael Elizabeth Chastain " />
<person posts="2" size="5" who="Tony Hoyle " />
<person posts="2" size="5" who="Mahesh Mahadevan " />
<person posts="2" size="5" who="Paul Klissner " />
<person posts="2" size="5" who="Jes Sorensen " />
<person posts="2" size="5" who="Chris Quinn " />
<person posts="2" size="5" who="Alex Buell " />
<person posts="2" size="5" who="Ricky Beam " />
<person posts="2" size="5" who="Ramon Garcia Fernandez " />
<person posts="2" size="5" who="Anton Blanchard " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="&quot;Russo, Brian&quot; " />
<person posts="1" size="78" who="&quot;Stanley Tai&quot; " />
<person posts="1" size="76" who="" />
<person posts="1" size="42" who="" />
<person posts="1" size="41" who="Kaoru Fukui " />
<person posts="1" size="32" who="Yutaka Tamiya " />
<person posts="1" size="25" who="Tonglu Yi " />
<person posts="1" size="18" who="David Gibson " />
<person posts="1" size="17" who="Philipp Matthias Hahn " />
<person posts="1" size="17" who="Mario Lorenz " />
<person posts="1" size="15" who="Johnny Luong " />
<person posts="1" size="12" who="Jim Dennis " />
<person posts="1" size="11" who="&quot;Dan Johnson (kernel account)&quot; " />
<person posts="1" size="9" who="&quot;Robert M. Love&quot; " />
<person posts="1" size="8" who="Peter Stuge " />
<person posts="1" size="8" who="Manfred " />
<person posts="1" size="8" who="&quot;Anand Subramanian&quot; " />
<person posts="1" size="7" who="Andre Hedrick " />
<person posts="1" size="7" who="Remi Turk " />
<person posts="1" size="7" who="Jens Petersohn " />
<person posts="1" size="7" who="&quot;Strahm, Bill&quot; " />
<person posts="1" size="7" who="Pavel Machek " />
<person posts="1" size="6" who="Daniel Stone " />
<person posts="1" size="6" who="David Lang " />
<person posts="1" size="6" who=" (Remco B. Brink)" />
<person posts="1" size="6" who="Camm Maguire " />
<person posts="1" size="6" who="Christoph Hellwig " />
<person posts="1" size="6" who="Darin Smith " />
<person posts="1" size="6" who="&quot;Bryan J. Smith&quot; " />
<person posts="1" size="6" who="&quot;W. Michael Petullo&quot; " />
<person posts="1" size="6" who="&quot;Sheldon Easterbrook&quot; " />
<person posts="1" size="6" who="Brion Vibber " />
<person posts="1" size="6" who="&quot;Rask Ingemann Lambertsen&quot; " />
<person posts="1" size="6" who="&quot;Joe Pranevich&quot; " />
<person posts="1" size="6" who="david " />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who="Scott Long " />
<person posts="1" size="5" who=" &lt;nate@firetrail.com&gt;" />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who="Byron Stanoszek " />
<person posts="1" size="5" who="Marco Colombo " />
<person posts="1" size="5" who="&quot;Evangelisa Hartmann&quot; " />
<person posts="1" size="5" who="Eli Carter " />
<person posts="1" size="5" who=" (Jens-Uwe Mager)" />
<person posts="1" size="5" who="Doug Hass " />
<person posts="1" size="5" who="Herbert Xu " />
<person posts="1" size="5" who="&quot;Raj, Ashok&quot; " />
<person posts="1" size="5" who="Wilfried Philips " />
<person posts="1" size="4" who="safemode " />
<person posts="1" size="4" who="=?iso-8859-1?Q?Jakob_=D8stergaard?= " />
<person posts="1" size="4" who="Daniel Kobras " />
<person posts="1" size="4" who="FORT David " />
<person posts="1" size="4" who="Fabio Coatti " />
<person posts="1" size="4" who="&quot;Soeren Sonnenburg&quot; " />
<person posts="1" size="4" who="&quot;S.Debler (Bitways)&quot; " />
<person posts="1" size="4" who="Scott Long " />
<person posts="1" size="4" who="Steve Lord " />
<person posts="1" size="4" who="Dan Hopper " />
<person posts="1" size="4" who="Bryan -TheBS- Smith " />
<person posts="1" size="4" who="Evan Langlois " />
<person posts="1" size="4" who="Michael Meissner " />
<person posts="1" size="4" who="Mathieu Arnold " />
<person posts="1" size="4" who="&quot;Michael T. Gilmore&quot; " />
<person posts="1" size="4" who="Fred Reimer " />
<person posts="1" size="4" who="Stephen Frost " />
<person posts="1" size="4" who="Karl Fischer " />
<person posts="1" size="4" who="Mike Miller " />
<person posts="1" size="4" who="&quot;Dake, Steven C&quot; " />
<person posts="1" size="4" who="Shane Shrybman " />
<person posts="1" size="4" who="CaT " />
<person posts="1" size="3" who="Matan Ziv-Av " />
<person posts="1" size="3" who="Barrie Spence " />
<person posts="1" size="3" who="Walter Zimmer " />
<person posts="1" size="3" who="Pollei " />
<person posts="1" size="3" who="&quot;Walter Hofmann&quot; " />
<person posts="1" size="3" who="Al Borchers " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Charles Cazabon " />
<person posts="1" size="3" who="Walter Hofmann " />
<person posts="1" size="3" who="Peter Enderborg " />
<person posts="1" size="3" who="Phil Wilshire " />
<person posts="1" size="3" who="Casey Schaufler " />
<person posts="1" size="3" who="Russell Coker " />
<person posts="1" size="3" who="Steven Walter " />
<person posts="1" size="3" who="Christophe Broult " />
<person posts="1" size="3" who="Robert M.Love " />
<person posts="1" size="3" who="Peter Samuelson " />
<person posts="1" size="3" who="Joe Kellner " />
<person posts="1" size="3" who=" (Aaron Denney)" />
<person posts="1" size="3" who="David Given " />
<person posts="1" size="3" who="martin leisner " />
<person posts="1" size="3" who="Keith Owens " />
<person posts="1" size="3" who="&quot;Mr. Shannon Aldinger&quot; " />
<person posts="1" size="3" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="1" size="3" who="Mads Bondo Dydensborg " />
<person posts="1" size="3" who="Rene Goerlich " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Ingo Oeser " />
<person posts="1" size="3" who="&quot;Linda Walsh&quot; " />
<person posts="1" size="3" who="Jens Axboe " />
<person posts="1" size="3" who=" (Krnl Programmers)" />
<person posts="1" size="3" who="Stephane Dalton " />
<person posts="1" size="3" who="Paul Jakma " />
<person posts="1" size="3" who="Nils Rennebarth " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Jochen Striepe " />
<person posts="1" size="3" who="Dylan Griffiths " />
<person posts="1" size="3" who="Joseph Elwell " />
<person posts="1" size="3" who="Naside Ozer " />
<person posts="1" size="3" who="&quot;really  &lt;lnx-kern@pie-9.soo.com&gt;" />
<person posts="1" size="3" who="watermodem " />
<person posts="1" size="3" who="Timothy Knox " />
<person posts="1" size="3" who="Lars Magne Ingebrigtsen " />
<person posts="1" size="3" who="Laurent CREPET " />
<person posts="1" size="3" who="&quot;Black, Richard&quot; " />
<person posts="1" size="3" who="Mitchell Blank Jr " />
<person posts="1" size="3" who="&quot;Bradley D. LaRonde&quot; " />
<person posts="1" size="3" who="Mark Hemment " />
<person posts="1" size="3" who=" (Steve Ralston)" />
<person posts="1" size="3" who=" (Steven S. Dick)" />
<person posts="1" size="3" who="Jack " />
<person posts="1" size="3" who="Ove Ewerlid " />
<person posts="1" size="3" who="Pete Wyckoff " />
<person posts="1" size="3" who="John O'Connor " />
<person posts="1" size="3" who="Rick Hohensee " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="1" size="3" who="Michael Elizabeth Chastain " />
<person posts="1" size="3" who="Brian Poole " />
<person posts="1" size="3" who="Trever Adams " />
<person posts="1" size="3" who="Michael Bacarella " />
<person posts="1" size="3" who="Dimitris Michailidis " />
<person posts="1" size="3" who="Derek Martin " />
<person posts="1" size="3" who="&quot;nope nope&quot; " />
<person posts="1" size="3" who="dean gaudet " />
<person posts="1" size="3" who="Miquel van Smoorenburg " />
<person posts="1" size="3" who="Matt Sherer " />
<person posts="1" size="3" who="Bill Sidhipong " />
<person posts="1" size="3" who="Andreas Schwab " />
<person posts="1" size="3" who="Alex Belits " />
<person posts="1" size="3" who=" (David A. Wagner)" />
<person posts="1" size="3" who="Daniel Marmier " />
<person posts="1" size="3" who="Matthew Wilcox " />
<person posts="1" size="3" who="Willem Riede " />
<person posts="1" size="3" who="'Matthew Harrell' " />
<person posts="1" size="3" who="Jeffrey Fielding " />
<person posts="1" size="3" who="Pauline Middelink " />
<person posts="1" size="3" who="Marcus Meissner " />
<person posts="1" size="3" who="Alexander S A Kjeldaas " />
<person posts="1" size="3" who="Adrian Bunk " />
<person posts="1" size="3" who="&quot;Roeland Th. Jansen&quot; " />
<person posts="1" size="3" who="Levi Ruiz " />
<person posts="1" size="3" who=" (Stuart Lynne)" />
<person posts="1" size="3" who="David Woodhouse " />
<person posts="1" size="3" who="Lars Marowsky-Bree " />
<person posts="1" size="3" who="Andrzej Krzysztofowicz " />
<person posts="1" size="3" who="Naohiko Shimizu " />
<person posts="1" size="3" who="&quot;=?us-ascii:iso-8859-2:utf-8?Q?Jaros=B3aw_Bekas?=&quot; " />
<person posts="1" size="3" who="Piete Brooks " />
<person posts="1" size="3" who="Rasmus Andersen " />
<person posts="1" size="3" who="I Lee Hetherington " />
<person posts="1" size="3" who="Aaron Sethman " />
<person posts="1" size="3" who="Christopher Thompson " />
<person posts="1" size="2" who="Steve Dodd " />
<person posts="1" size="2" who="Billy Harvey " />
<person posts="1" size="2" who="Martin Brooks " />
<person posts="1" size="2" who="Mark Orr " />
<person posts="1" size="2" who="Simon Kirby " />
<person posts="1" size="2" who="Matthew Kirkwood " />
<person posts="1" size="2" who="Werner Almesberger " />
<person posts="1" size="2" who="Petko Manolov " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Eli Carter " />
<person posts="1" size="2" who="&quot;Rahul Shrivastava&quot; " />
<person posts="1" size="2" who="Michael Rozhavsky " />
<person posts="1" size="2" who="&quot;B. James Phillippe&quot; " />
<person posts="1" size="2" who="Sandy Harris " />
<person posts="1" size="2" who="Robert Dale " />
<person posts="1" size="2" who="Enrico Weigelt " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Antonin Kral " />
<person posts="1" size="2" who="Arvind Sankar " />
<person posts="1" size="2" who="&quot;Justin C. Ferguson&quot; " />
<person posts="1" size="2" who="Matthias Schniedermeyer " />
<person posts="1" size="2" who="&quot;Andrew Stubbs&quot; " />
<person posts="1" size="2" who="Olaf Titz " />
<person posts="1" size="2" who="Christian Iseli " />
<person posts="1" size="2" who="=?iso-8859-1?Q?Andr=E9_Dahlqvist?= " />
<person posts="1" size="2" who="Michael Meding " />
<person posts="1" size="2" who="Jim Wilson " />
<person posts="1" size="2" who="Jan Kara " />
<person posts="1" size="2" who="Jesse Pollard " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="sasahara " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Arjan van de Ven " />
<person posts="1" size="2" who="Derek Wildstar " />
<person posts="1" size="2" who="Jacques Richer " />
<person posts="1" size="2" who="Felix von Leitner " />
<person posts="1" size="2" who="Olivier Galibert " />
<person posts="1" size="2" who="Benson Chow " />
<person posts="1" size="2" who="Jamie Lokier " />
<person posts="1" size="2" who="Kev " />
<person posts="1" size="2" who="&quot;Home Workers&quot; " />
<person posts="1" size="2" who="Greg KH " />
<person posts="1" size="2" who="Reto Baettig " />
<person posts="1" size="2" who="&quot;Stephen Liu&quot; " />
<person posts="1" size="2" who="Ari Pollak " />
<person posts="1" size="2" who="&quot;Steven N. Hirsch&quot; " />
<person posts="1" size="2" who="&quot;daniel sheltraw&quot; " />
<person posts="1" size="2" who="Roy Sigurd Karlsbakk " />
<person posts="1" size="2" who="Chris Evans " />
<person posts="1" size="2" who="&quot;Copeland, Matthew&quot; " />
<person posts="1" size="2" who=" (Rene Blokland)" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;Jim Howarth&quot; " />
<person posts="1" size="2" who="Pau Aliagas " />
<person posts="1" size="2" who="&quot;Albert D. Cahalan&quot; " />
<person posts="1" size="2" who="Markus Kohls " />
<person posts="1" size="2" who="&quot;Nick&quot; " />
<person posts="1" size="2" who="Michal Kosek " />
<person posts="1" size="2" who="&quot;Anthony D. Urso&quot; " />
<person posts="1" size="2" who="Jean Schurger " />
<person posts="1" size="2" who="Boszormenyi Zoltan " />
<person posts="1" size="2" who="&quot;Ibrahim El-Shafei&quot; " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Mohamed Sridi " />
<person posts="1" size="2" who="Aaron Macks " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="david " />
<person posts="1" size="2" who="Aleksandr Koltsoff " />
<person posts="1" size="2" who="Dan Hollis " />
<person posts="1" size="2" who="Alessandro Zummo " />
<person posts="1" size="2" who="DL " />
<person posts="1" size="2" who="Taso Hatzi " />
<person posts="1" size="2" who="&quot;Robinson, Daniel&quot; " />
<person posts="1" size="2" who="cali nono " />

</stats>

<section
  title="Approaching 2.0.39"
  subject="pre-patch-2.0.39-6"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_03/msg00192.html"
  posts="4"
  startdate="17 Jul 2000 00:00:00 -0800"
  enddate="24 Jul 2000 00:00:00 -0800"
>
<topic>Disks: IDE</topic>
<topic>FS: ext2</topic>

<mention>Alan Cox</mention>
<mention>Ville Herva</mention>
<mention>David Weinehall</mention>
<mention>Rask Ingemann Lambertsen</mention>

<p>David Weinehall initially took over the 2.0 series with Alan Cox's blessings
in <kcref subject="[security] Big problem on 2.0.x? (fwd)"
startdate="13 Dec 1999 00:00:00 -0800"></kcref>. He gave a status report in <kcref
subject="Standard Development Integration" startdate="04 Jan 2000 00:00:00 -0800"></kcref>,
and released 2.0.39-pre4 in <kcref subject="[Announcement]
pre-patch-2.0.39-4" startdate="30 Apr 2000 00:00:00 -0800"></kcref>, and in <kcref
subject="[PATCH] 2.2.X fix ext2 socket filetype"
startdate="27 May 2000 00:00:00 -0800"></kcref> revealed that he was willing to backport
fixes from 2.2 and 2.4 if it seemed worthwhile.</p>

<p>This week he announced 2.0.39-pre6; apparently -pre5 had some IDE breakage.
He intended pre-6 to fix only those breakages, deferring other fixes until
-pre7 and later. Two replies came to this. Ville Herva reported an oops with
the old 2.0.37, to which there was no reply; and Rask Ingemann Lambertsen
reported that he couldn't find 2.0.39-pre6 on any of <a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/tao/2.0.39pre/">David's
directories</a> in the kernel archive repositories. David replied that he'd
messed up somehow, but that the patch should be available now. End Of
Thread.</p>

</section>

<section
  title="Status Of Asynchronous I/O"
  subject="Async disk i/o in Linux"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_03/msg00263.html"
  posts="6"
  startdate="17 Jul 2000 00:00:00 -0800"
  enddate="25 Jul 2000 00:00:00 -0800"
>

<mention>Ingo Molnar</mention>

<p>This previously came up in <kcref subject="[RFC] - Some notions that I would
like comments on" startdate="11 Jul 1999 00:00:00 -0800"></kcref>.</p>

<p>This week, Ramon Garcia Fernandez said, <quote who="Ramon Garcia
Fernandez">Traditionally, Linux only supports async i/o with sockets and
terminals. You can use select on several handles to wait until pending input
is available on any of them (not exactly async); or you can use fcntl/sigio
and the kernel will tell you when input is available.</quote> But he added
that a remark from Ingo Molnar on Slashdot had seemed to suggest that
asynchronous disk I/O with these tools ('select' and 'fcntl/sigio') was also
possible in 2.4; he asked if this were true, and Stephen C. Tweedie replied,
<quote who="Stephen C. Tweedie">The kernel has async block device and file
IO support already --- it uses that sort of thing for file readahead, for
example. There isn't an exported async IO api for user applications yet,
although we're working on one. Kernel internal modules such as TUX can
access the async properties of the page cache if they want to.</quote> And
Jeff V. Merkey added, <quote who="Jeff V. Merkey">NWFS has a very good
Asynch IO API for Linux AIO. You can get the code at <a
href="ftp://207.109.151.240">207.109.151.240</a>. I already handle all the
buffer head allocations and returns and locking issues with the Linux
kernel. The file block.c has generic functions for all Linux versions
2.0/2.2/2.4 with a consistent asynch IO interface that runs across all
Linuxes. The code is all GPL, so you can pull it apart and use it anyway you
want.</quote></p>

</section>

<section
  title="DAC960 RAID Problems With Latest Development Kernels"
  subject="2.4.0-test4 and DAC960"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_03/msg00438.html"
  posts="3"
  startdate="18 Jul 2000 00:00:00 -0800"
  enddate="26 Jul 2000 00:00:00 -0800"
>
<topic>Disk Arrays: RAID</topic>
<topic>Ottawa Linux Symposium</topic>

<mention>Matthew Dharm</mention>

<p>Matthew Dharm reported that his DAC960 RAID controller had stopped working
somewhere between 2.4.0-test1 and 2.4.0-test4. During boot, as soon as the
kernel began to initialize the controller the machine would oops with a null
pointer dereferenced in the swapper. Matthew couldn't capture the oops, but
he explained that it happened every time the kernel tried to check the
partition on boot before mounting it, and it also happened regardless of
whether the driver was compiled directly into the kernel or only as a
binary. Jens Axboe replied, <quote who="Jens Axboe">This is a known problem.
It happens because the DAC960 driver tries to use the block queue _before_
calling blk_init_queue(). I have informed Leonard about the problem, so he
is aware of it and will fix it. I saw him at OLS today, so it probably won't
get fixed within the next couple of days ;)</quote> and Leonard N. Zubkoff
posted a patch and explained, <quote who="Leonard N. Zubkoff">The DAC960
driver in 2.4.0-testN is currently out of date and I will be sending an
update as soon as I verify that the next release works. The above problem
was actually already fixed in the 2.4.6 driver on my web page, but changes
to 2.4.0-test4 broke compilation. If you need a temporary fix for the
moment, please apply the following patch to the 2.4.6 driver from my web
page.</quote> End Of Thread.</p>

</section>

<section
  title="IDE Flamewar"
  subject="Wide spread test needed before 2.4.0 is released."
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_03/msg00545.html"
  posts="389"
  startdate="19 Jul 2000 00:00:00 -0800"
  enddate="28 Jul 2000 00:00:00 -0800"
>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>Microsoft</topic>
<topic>Security</topic>

<mention>Victor Khimenko</mention>
<mention>Bartlomiej Zolnierkiewicz</mention>

<p>This was a long and bitter series of threads, in which Andre Hedrick was
very upset and agitated through pretty much all of it. He had noticed that a
benevolent root user writing to an IDE drive (something one might not
generally expect to be dangerous to hardware), could wipe or even physically
break the drive, if a small miscalculation were made in the data sent to the
drive. He reported that this was true for all versions of Linux, and over
the course of threads added that since the data in question was only a few
bytes long, any simple exploit such as a small buffer overrun, could be
enough for "Joe six-pack hacker" to take advantage of the weakness and
destroy the drive.</p>

<p>However, in order to avoid giving away the details of how to do this, Andre
felt the need to be somewhat oblique in his initial descriptions of the
problem, and as a result many folks got the idea that he was simply
concerned with security, to which they replied that there were so many ways
for root to trash a system already, that it wasn't neccessary to include
Andre's patch in 2.4; 2.5 would be soon enough.</p>

<p>Linus also rejected the patch on the grounds that the changes it made to the
guts of the driver were too extensive for a code-freeze. Andre felt that
this was not only a true fix, but a very important one that could
significantly embarrass Linux as being a 'trash your hardware' OS. At one
point he argued:</p>

<quote who="Andre Hedrick">

<p>even priviledged users can not be allowed to send
disk level distructive commands.
  </p>

<p>YES/NO ??
  </p>

<p>The subsystem needs to protect itself and the hardware from general abuse.
In order to do that you must construct a superset (or complete set) of
commands that to get blanket access must be a complied option and user is at
their own risk. The default should be able to accept all commands and reject
the harmful ones. Currently you could issue a modified setfeature used in
configuring drive speed and destroy the drive or device.
  </p>

<p>The object is to protect this from happening even if you are ROOT or have
stolen ROOT priviledges.
  </p>

<p>Does this help explain the issue or should I provide a "disk2brick.c"
program to make the point clearer? This will vaporize a drive to the
replacement level. Yes you can to that today!</p>

</quote>

<p>Later he amended, <quote who="Andre Hedrick">I used a bad word of choice.  I
can not DISKTOBRICK. But can genrate code that will attempt and may have
success. Regardless do you want access to such attempts available in the
kernel? Unchecked?</quote></p>

<p>At one point Chris Kloiber confirmed Andre's report and the patch to fix it,
saying, <quote who="Chris Kloiber">I know it's true. I have run the
disk-destroyer program. Twice. I compiled a 2.4.0-test5-pre2 kernel with an
earlier version of Andre's patch and actually ran the disk-destroyer program
as a test. Andre specifically did not include the fry-your-drive codes in
the test program, but on the first try it sucessfully hosed the MBR and
partition table (my /dev/hda1 was/is swap, so I don't know how much of that
went bye-bye too). After a fresh install of Red Hat 6.2, I (glutton for
punishment that I am) recompiled 2.4.0-test5-pre2 with the latest patch (has
it been restored to www.kernel.org?) and now my system can survive the
disk-destroyer (The drive still makes god awful noise when run, but no
permanant damage occurs). I captured the output of the disk-destroyer and
sent it to Andre with a list of my hardware (mobo &amp; drive models) so he
could further refine the patch.</quote></p>

<p>This and other reports were brushed aside by various folks, who reiterated
that if someone had root access, they could damage the system however they
pleased. Horst von Brand replied to Chris, <quote who="Horst von Brand">That
"disk-destroyer" just overwrites the partition table, something that can be
done in many easier ways. No real proof of the existence of the mythical
DISK2BRICK ATA command (that would in any case work only for certain
brands/models) that would make all this a real threat has been put forward.
No Windows/DOS virus/troyan has made use of this mythology either (and there
_have_ been instances of destroyed hardware, or close enough, in recent
history).</quote></p>

<p>Eventually Andre started replying "Thanks for the vote of no confidence" to
his patch's detractors, and began calling for the discussion to end. The
discussion continued however, and various other arguments were put forward.
Some folks pointed out that it was really the hardware that was broken
already, if it allowed a simple out-of-spec command to destroy it. Andre
countered this by saying that even if the hardware was poorly designed, the
kernel should prevent itself from accidentally taking advantage of that.</p>

<p>The discussion raged back and forth for a long time, with neither side
giving an inch, and in many cases talking directly past each other. Many
people failed to grasp the scope of Andre's report, while Andre in turn did
not appreciate the counter arguments folks gave him. To give an example of
the kind of misunderstandings that ran rampant throughout the entire series
of threads, at one point Andre, extremely agitated by this time and very
frustrated, asked, <quote who="Andre Hedrick">Why is this such a big fight?
Does everybody want the kernel to be able to screw itself just by
blinking?</quote> To which Oliver Xymoron replied, <quote who="Oliver
Xymoron">No, of course not, but we also don't want to make large changes to
the kernel to paper over a hole that we can't cement closed.</quote> I
interpret Oliver as referring to the fact that root will always be able to
do lots of damage, and that to take away just one of those possibilities was
to "paper over" the problem, since to truly "cement" it would involve
putting many more restrictions on root. But as far as I can see, Andre
misinterpreted Oliver as saying that Andre's initial bug report was the one
that could not be cemented over. And to that idea, Andre replied, <quote
who="Andre Hedrick">Here is you damn steel-plate-of-armor! I can close this
hole completely and you will never know the difference.</quote></p>

<p>Eventually Andre boiled over completely, giving this one-line reply to
several different posts: <quote who="Andre Hedrick">Here is your SECURITY
HOLE! JOE-SIX-PACK-HACKER can fry your butt.</quote> To one of these,
Stephen Frost replied, <quote who="Stephen Frost">Will you *please* wake up
and realize that it makes no difference if it can fit into a buffer overrun
or not? That does not mean *anything* since you can almost always fit the
code neccessary to gain a root shell to the machine in the same
space.</quote></p>

<p>At one point, Andre threw up his hands and said:</p>

<quote who="Andre Hedrick">

<p>At this point I have no interest in publishing a
finished patch to TASK and allow people to have fuller and more robust
control over the kernel.</p>

<p>Basically screw the project!</p>

<p>But would you like to know the predictive write caching of a given drive to
optimize things like the BLOCK_ELEVATOR, basically make it intellegent. You
know I can do this for SCSI but screw that project too!</p>

</quote>

<p>At another point, Andre said:</p>

<quote who="Andre Hedrick">

<p>Screw your hardware!  Since all of you are so
damn smart and know the ATA-ATAPI specification, you are not sensible enough
to see that I showed you that it can be violated. This violation of the
standard, which none of you have the membership to vote on, is what I was
trying to point out.
 </p>

<p>The reason why you can not do this level of destruction in Microsoft is that
it does not have a HOLE the size of a MAC TRUCK! There is no one to blame
for this, but I should have found it earlier. Now that it is found something
needs to be done.
 </p>

<p>Since most of you POMPUS SCSI users are down playing the point you have no
room or business to comment on a subsystem that you do not use. I base this
because if you were using ATA you might think twice before calling NIMBY. It
has been clearly pointed out that you have a problem of the same level, but
the hole is smaller and harder to work through.
 </p>

<p>Since 90% of Linux depends on the ATA subsystem being stable and safe, all I
will claim is that it is stable.
 </p>

<p>Nice to see that those with the biggest mouths fighting me on the issue are
as big an ASS as me pushing the issue. I am glad to have the company of
ASSHOLES as big as me debating the issue.</p>

</quote>

<p>A lot of people told Andre at various points throughout the thread to calm
down. Bob Taylor was one, and advised, <quote who="Bob Taylor">BTW, you seem
to lose your temper all to easily. Count slowly to (some number) while
taking a deep breath between each count. :-)</quote></p>

<p>At one point Victor Khimenko, after being entirely opposed to the patch,
admitted that for some extremely rare configurations, the patch might be
valuable, though he doubted that anyone actually used systems with that
configuration. Bartlomiej Zolnierkiewicz felt there might be some out there
somewhere, but Andre replied:</p>

<quote who="Andre Hedrick">

<p>No Bart,</p>

<p>Let them eat cake ............</p>

<p>The patch has been pulled .........</p>

</quote>

<p>Linus Torvalds got into the debate toward the end, when James Sutherland
observed, <quote who="James Sutherland">IF capabilities can be used to block
this (and similar), and Andre's "sanity checking" for ATA is added, then
surely it *IS* possible to prevent root screwing the HDD (without replacing
the kernel, at which point all bets are off, of course).</quote> Linus
replied:</p>

<quote who="Linus Torvalds">

<p>What's the point?
 </p>

<p>If the system is secure, then adding sanity checking to the ATA code makes
no difference: nobody gets to do anything improper anyway.</p>

<p>If the system is not secure, then adding sanity checking to the ATA code
makes no difference: people who could use the ATA thing can use other things
that are much more insidious.
 </p>

<p>The mechanism that everybody wants is _already_ there.  It's called
"permissions". No new driver code necessary.
 </p>

<p>If those permissions do not work, then they don't work, and adding
last-minute band-aids makes no difference.
 </p>

<p>Just as a comparison, look at Windows. It takes the opposite approach: it
has no real seurity, but a LOT of band-aids to avoid the "obvious" holes.
Leaving it wide open.</p>

</quote>

<p>To this, James replied, <quote who="James Sutherland">The "security" aspect
of this is largely a red herring, I suspect; at best, fixing this will make
a malicious root marginally less damaging. The real issue is just that the
kernel is accepting unvalidated parameters from userspace, and shooting
itself in the foot with them. MS took a fair bit of flak, IIRC, for doing
this with WIN32K.SYS in NT4. Do we now expect higher standards of design
from NT than Linux? :-)</quote> To which Linus replied:</p>

<quote who="Linus Torvalds">

<p>What validation?</p>

<p>The OS doesn't even know what the commands do. They are undocumented. And
they vary from drive to drive.</p>

<p>How do you expect the OS to validate the drive firmware update commands for
every drive manufacturer?</p>

<p>In short, should we</p>

<p> - know every single drive, know every command it can take, and do all of
   this inside the OS</p>

<p>OR should we</p>

<p> - move this policy into user space, and potentially have programs that
   know what different drives can do, and upgrade them the proper way
 </p>

<p>I think the thing is fairly clear. If you want "the OS" to validate the
parameters, then you should create a user-mode program that validates the
thing.
 </p>

<p>Basically, Linux already validates everything it _can_ validate. Sure, it
could also verify that only "approved" commands are sent, but what about the
undocumented yet potentially useful ones?</p>

<p>Let's take a hypothetial example (you judge on just _how_ hypothetical it
actually is): imagine that you have a drive that can be made to refuse to
read certain removable media based on where the drive was purchased. Imagine
that this was actually done in firmware, and that there was a way of
overriding it. Imagine further that you moved, and you wanted to make the
drive read certain removable media in the new location, using undocumented
commands..</p>

<p>Should the kernel block those commands because it doesn't know what they do?</p>

<p>Or should the kernel assume that "Oh, he has the permission to do this, then
sure, I'll let him do it..".</p>

<p>Note that everybody has gotten very lathered up about the fact that you can
kill certain hardware. Guess what? This is neither new nor very exciting.
Look at your XFree86 configuration file some time, and read the warnings in
the documentation. And ruminate on it. A monitor can be quite a bit more
expensive than your harddisk.</p>

<p>Firthermore, destroying your harddisk may be the most _polite_ thing that
can be done to you. Quite frankly, I'd personally rather have a dead
harddisk than have all my data on that harddisk be siphoned back to an
intruder.</p>

<p>A dead harddisk you might get a refund for under the warranty. Your credit
card information (or your browsing habits or copies of your personal emails)
made available all over the place might be more of a bother.</p>

<p>"There are worse things than death". Even with harddisks.</p>

</quote>

<p>Andre replied to this with a third choice in addition to Linus' two above:</p>

<quote who="Andre Hedrick">

<p>Or validate the commands listed in the SPEC for
the default enable interface, and grant unrestriced access to all command
with a compile option plus a sysctl flag that defaults in the off.
 </p>

<p>You will then no longer violate the usage of the SPEC by default. You will
preserve the drive warrenties, and protect the commerial distribution market
place for being liable for intent.</p>

<p>Specifically, it is public record that a distribution shipping without a
taskfile filter in ATA and SCSI (I have this now) to carry copablity of
knowingly with intent to sell product that allows no protection for improper
calls to the hardware.</p>

<p>All you have to do is provide a default approved filter, and include the
non-default option to disable the filter to not violate unix policies of
no-policies and cover linux and distrubtors from issues that can be deemed
actionable.</p>

<p>Upon the user disabling the command-filter, everyone is cleared of any and
all issues that can be deemed actionable, and make the individual
responsible for their actions and not you or the maintainers copablity.</p>

<p>This is all I want.........not to be sued in the future for decisions that
are not mine to be made.</p>

</quote>

<p>Linus replied:</p>

<quote who="Linus Torvalds">

<p>I can live with that. The simple
switch-statement that you posted as an alternative "minimal" approach would
work for me. Preferably with an opt-out (sysctl-like thing).
 </p>

<p>What I do NOT want to see is big re-organizations around this, especially
considering that this is not something new. Simple.</p>

</quote>

<p>This satisfied Andre.</p>

</section>

<section
  title="Making General Use Of A PCI Card's On-Board RAM"
  subject="adding physical memory-pages to Linux' pool-of-pages"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_03/msg00613.html"
  posts="9"
  startdate="20 Jul 2000 00:00:00 -0800"
  enddate="26 Jul 2000 00:00:00 -0800"
>
<topic>PCI</topic>

<mention>Timur Tabi</mention>
<mention>Jeff Garzik</mention>

<p>Folkert van Heusden wanted to use the on-board RAM from his PCI card as
regular RAM. Jeff Garzik remarked that this was likely to be very slow
compared to regular RAM; Timur Tabi agreed, and added, <quote who="Timor
Tabi">if you insist, ... the easiest way is to create another Zone, and
modify the zonelist structures to use that Zone as a backup zone for
ZONE_NORMAL. Then, whenever you run out of normal RAM, it will allocate your
PCI RAM.</quote> He also suggested moving the discussion over to the
'mm-linux' mailing list.</p>

<p>Lenart Gabor also replied to Jeff, suggesting that the PCI RAM might make
good swap space, and Mads Bondo Dydensborg replied:</p>

<quote who="Mads Bondo Dydensborg">

<p>I know that SCIos (<a
href="http://sci-serv.inrialpes.fr/">http://sci-serv.inrialpes.fr/</a>) does
something like this: They use SCI networks to do distributed shared memory
in a cluster. Then, if a node in the cluster wants to swap, it first checks
if there are free memory in the distributed shared memory. If there is, it
swaps to these pages. AFAIK they have found that it is quite a bit faster
then disk. The SCI controllers are on the PCI bus, but the memory is main
memory of a remote node. This means that they will have to travel 2 pci
busses, the network and the main memory bus of the remote node. Only going
through the local pci bus should be quite fast compared to this. (Slow
compared to main memory, yes).</p>

<p>SCIos is based on Linux (is a set of patches) - maybe there are some code in
there that could inspire someone.</p>

</quote>

<p>Folkert also replied to Jeff, saying, <quote who="Folkert van Heusden">it's
less slower than swapping to harddisk. Especially for the system I want to
implement this. That one has harddisks doing 1MB/sec. I think access trough
PCI can do better then that.</quote> Jeff replied that using the PCI RAM as
swap was perfectly feasible, and mentioned that patches had appeared on
'linux-kernel' at one time or another, though he couldn't give an exact
reference.</p>

<p>Folkert mentioned that Linux was aware of several different kinds of RAM,
and suggested that he might try to set the PCI RAM to the "slow" variety (he
also mentioned that the patches Jeff referred to might be Folkert's own
previous attempt at this). Several days later, Jamie Lokier explained:</p>

<quote who="Jamie Lokier">

<p>The kernel has "zones" for different kinds of RAM
that can be accessed in different ways, but it still assumes they are more
or less the same speed. This means that if the PCI RAM were allocated for a
user space page, it would stay continue using the PCI RAM even if it's used
heavily.
 </p>

<p>If instead you use the PCI RAM as a ramdisk and swap to it, any program
which makes heavy use of a page will cause the page to stay in main RAM
where it should remain.</p>

</quote>

<p>The thread ended there.</p>

</section>

<section
  title="Linus On Unions"
  subject="[patch-2.4.0-test5-pre3] struct inode shortened"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_03/msg00627.html"
  posts="16"
  startdate="20 Jul 2000 00:00:00 -0800"
  enddate="27 Jul 2000 00:00:00 -0800"
>

<mention>Tigran Aivazian</mention>

<p>Tigran Aivazian felt that by putting some inode data in a union, 4 bytes
could be saved from the inode structure on 32-bit machines, and 8 on 64-bit
machines. Linus Torvalds didn't think the saved space would be noticable
enough to warrant the change, and remarked, <quote who="Linus
Torvalds">You'd save more by making the quota stuff go away when quotas
aren't enabled..</quote> Later he explained his reluctance more fully:</p>

<quote who="Linus Torvalds">

<p>Unions are imho only acceptable when they
implicitly know their own type. The in-kernel example of this is the inode
per-filesystem thing. An inode has a filesystem-specific part, and there is
no way any other filesystem can access it except by a major bug somewhere.
 </p>

<p>Any union that needs code like</p>

<p>        if (xxx-&gt;type == yyy)..
                ....</p>

<p> 
is a design mistake.
 </p>

<p>I don't think you'll find all that many unions in Linux. And I don't think
we should add new ones..</p>

</quote>

</section>

<section
  title="'Virgin Connect' Violates GPL"
  subject="Linux GPL violations."
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_03/msg00705.html"
  posts="12"
  startdate="20 Jul 2000 00:00:00 -0800"
  enddate="26 Jul 2000 00:00:00 -0800"
>
<topic>BSD</topic>
<topic>Clustering: Mosix</topic>

<p>Joseph Elwell asked which was the best forum for reporting GPL violations
regarding the Linux kernel. He reported that Virgin Connect sold a web
device that shipped with Linux preinstalled, but that there was no mention
of this fact, the GPL, or any location of sources in the docs. He gave a
link to <a
href="http://www.kenseglerdesigns.com/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&amp;Board=vwgeneral&amp;Post=17&amp;Idle=0&amp;Sort=0&amp;Order=Descend&amp;Page=0&amp;Session=">a
discussion board</a> where the problem was discussed, and the the <a
href="http://www.virginconnectme.com/">VirginConnectMe home page</a>; as
well as the <a href="http://www.merinta.com/">Merinta home page</a>, the
company selling the machine to Virgin. From the <a
href="http://www.merinta.com/news/release000411.html">Merinta press
release</a> he verified that the machines were running Linux. Finally, he
concluded, <quote who="Joseph Elwell">I like the idea of all these new
Internet devices coming out, running Linux. But it worries me that they'll
all ignore the GPL as they go. Making it more difficult for fututre
improvements in the kernel code.</quote></p>

<p>Mike A. Harris replied that the best place to report that kind of thing was
linux-kernel. He went on:</p>

<quote who="Mike A. Harris">

<p>It's the best place indeed.  It might not be the most appropriate place, but
if you are looking for results, it generally reaches the widest audience of
insane bigmouths (and I don't exclude myself) that will fight to no end
arguing about it and causing a big public stir. This causes it to get seen
on Slashdot and the rest is history. If the FSF doesn't jump in, they likely
will eventually, or someone will try and establish communications with the
offending vendor.
 </p>

<p>It usually results in one of:
 </p>

<p><ol>

<li>The vendor eventually realizes they're screwed and does what is required
to get themselves out of the mess legally.</li>
 
<li>The vendor pulls the product</li>
 
<li>Darth Vendor joins dark side of the source. (releases code)</li>
 
</ol></p>

<p>Either way, a huge pissing match occurs that goes on for at least a month or
so, but it usually ends up getting the job done, so it is worth it.</p>

</quote>

<p>The pissing match did not occur in this thread, which petered out fairly
quickly. Other discussions of GPL violations were covered in <kcref
subject="[OFFTOPIC] Potential GPL violation of Linux kernel by MOSIX?"
startdate="27 Feb 1999 00:00:00 -0800"></kcref>, <kcref subject="Announce: DinX windowing
system 0.2.0" startdate="23 Dec 1999 00:00:00 -0800"></kcref>, <kcref subject="BSD Licensed
files in Linux kernel." startdate="08 Mar 2000 00:00:00 -0800"></kcref>, <kcref
subject="ABIT -- GENTUS Linux Steals GPL CODE AGAIN!!"
startdate="06 Jun 2000 00:00:00 -0800"></kcref>, <kcref subject="GPL violation is a Linux
Community standard" startdate="23 Jun 2000 00:00:00 -0800"></kcref>, and <kcref
subject="Symbols match 2.2 &lt;-&gt; 2.4" startdate="21 Jun 2000 00:00:00 -0800"></kcref>.</p>

</section>

<section
  title="Developer Interaction"
  subject="[PATCH] Remove extra shift in __SI_CODE macro"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg00191.html"
  posts="5"
  startdate="23 Jul 2000 00:00:00 -0800"
  enddate="28 Jul 2000 00:00:00 -0800"
>

<p>Robert H. de Vries posted a patch and reported, <quote who="Robert H. de
Vries">The __SI_CODE macro shifts its argument 16 bits to the left while the
only argument used is already shifted 16 bits to the left. In this way no
bits are left on a 32 bit architecture. Hence this patch, which removes the
superfluous shift.</quote> Linus Torvalds replied, <quote who="Linus
Torvalds">Sounds like the _users_ of __SI_CODE should be fixed, rather than
__SI_CODE. The new definition of __SI_CODE doesn't make much sense, in my
opinion.</quote> But Robert explained, <quote who="Robert H. de Vries">If I
would change the user, that would trigger an avalanche of changes, while my
proposition is limited to just one definition.</quote> He gave a single
(lengthy) example, and concluded, <quote who="Robert H. de Vries">I thought
I was being clever in finding the simplest patch. But then again you
decide.</quote> Linus replied, <quote who="Linus Torvalds">After having
looked at that mess, you're right. Let's just change __SI_CODE.</quote></p>

</section>

<section
  title="Status Of 2.4 To Do List; Kernel Bug Tracking System"
  subject="status page?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg00228.html"
  posts="20"
  startdate="23 Jul 2000 00:00:00 -0800"
  enddate="30 Jul 2000 00:00:00 -0800"
>
<topic>Bug Tracking</topic>
<topic>Compression</topic>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS: FAT</topic>
<topic>FS: NFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: UMSDOS</topic>
<topic>FS: devfs</topic>
<topic>FS: ext2</topic>
<topic>FS: procfs</topic>
<topic>FS: ramfs</topic>
<topic>I2C</topic>
<topic>I2O</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>Power Management: ACPI</topic>
<topic>Real-Time</topic>
<topic>SMP</topic>
<topic>Samba</topic>
<topic>Security</topic>
<topic>USB</topic>
<topic>Virtual Memory</topic>
<topic>VisWS</topic>

<mention>Kai Henningsen</mention>
<mention>Steven Walter</mention>
<mention>Derek Martin</mention>
<mention>Rogier Wolff</mention>
<mention>Andrew McNabb</mention>
<mention>Mikael Pettersson</mention>

<p>Derek Martin asked if there were a web page tracking the list of things
needed before 2.4 could come out. Alan Cox posted his latest list of items,
which he said was out of date but still useful. The last time he posted his
list was in <kcref subject="LINUX Jobs for 2.4 update"
startdate="25 May 2000 00:00:00 -0800"></kcref>. This week Alan added, <quote who="Alan
Cox">Dont mail me updates, find someone else to maintain it.</quote> Linus
Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>Note that this part of the status page really is worth some attention.
 </p>

<p>Alan doesn't have the time to maintain 2.4.x issues. Which means that right
now nobody is really doing it. I have a kind of general "map" in my head,
but that isn't nearly good enough..</p>

<p>Would somebody be interested in taking this over?
 </p>

<p>Note! It's more than just maintaining a list. It's realizing what are
show-stoppers, and what are just problems that should be fixed. It's trying
to work with people in trying to get enough information to get a good list
of problems, but it's also trying to confirm that the problem still exists
or is fixed.</p>

<p>It's also possibly maintaining potential fixes: keeping track of who has
suggested what fix (possibly with an actual patch). Sometimes the fixes
aren't actually usable as-is due to other issues, but even when they are not
usable they can be supremely important for people who try to fix the same
thing in a acceptable manner.
 </p>

<p>It's also good if you're respected by people already, or at least think you
can work with people without making them hate you.
 </p>

<p>In short: it's important.  And it's something that Alan did for both 2.0 and
2.2. Nobody can quite live up to "being Alan", but hey, if you don't like
long beards you may be just as heppy knowing that.
 </p>

<p>Anybody?</p>

</quote>

<p>Theodore Y. Ts'o volunteered, with, <quote who="Theodore Y. Ts'o">I'm
willing to take this over. Note that unless Alan can give me his secret of
making clones of himself, I can't necessarily read every single message on
linux-kernel; so folks will need to send me mail explicitly if they want to
make sure I'm going to read it. I'll try to skim postings on linux-kernel,
but like most kernel developers, that isn't necessarily the most reliable
way of making sure I'll read something.</quote> Kai Henningsen suggested
putting the list up on a web page for easy reference. At this point, Linus
said:</p>

<quote who="Linus Torvalds">

<p>A number of people have suggested to me that using one of the automated
bug-tracking systems would be nice.</p>

<p>I don't like using them myself, but some people do. Whoever would be the
maintainer (and hey, Ted has been around since pretty much the beginning of
Linux, so I'd certainly be inclined to trust him) would make his own choice
on _how_ he does it. A web-interface sounds like a good idea. It boils down
to how much work/help it is, and personal taste of the developer in
question.</p>

</quote>

<p>There was no reply here, but under the Subject: <a
href="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg01099.html">2.4
status page, lightly updated</a>, Theodore reported:</p>

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

<p>OK, this is my first attempt at publishing
Alan's 2.4 todo list. It's been lightly updated so far, but I *know* that
there's large parts of this list which are out of date.</p>

<p>So if you know that a particular problem has been dealt with, could you
please let me know? Especially if your name appears next to the item as the
one who reported the problem, or the kernel subsystem maintainer who's
working on the issue.</p>

<p>I'll be publishing another version which will hopefully be a bit more up to
date, and better at reflecting reality.</p>

</quote>

<p>He posted the list:</p>

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

<p><ol>

<li>Should Be Fixed (Confirmation Wanted)</li>

<ol>

<li>IDE fails on some VIA boards (eg the i-opener)</li>
<li>Floppy driver broken by VFS changes. Other drivers may be too (Stuff gets called after _close now - unload race possibly too)</li>
<li>Fbcon races</li>
<li>Fix all remaining PCI code to use pci_enable_device (mostly done)</li>

</ol>

<li>Capable Of Corrupting Your FS</li>

<ol>

<li>E820 memory setup causes crashes/corruption on some laptops[**VERY NASTY**]</li>
<li>Use PCI DMA by default in IDE is unsafe (must not do so on via VPx x&lt;3)</li>
<li>Data corruption on IDE disks (Generic PCI DMA and SiS support (Steven Walter)</li>

</ol>

<li>Security</li>

<ol>

<li>Fix module remove race bug              (mostly done - Al Viro)</li>
<li>access_process_mm oops/lockup if task-&gt;mm changes (Manfred) [user can cause deliberately]</li>

</ol>

<li>Boot Time Failures</li>

<ol>

<li>AHA29xx driver appears to stomp other cards (may be BIOS)</li>
<li>AHA27xx is broken (maybe 28xx too)</li>
<li>Use PCI DMA 'lost interrupt' problem with some hw [which ?] (NEC Versa LX with PIIX tuning)</li>
<li>HT6560/UMC8672 ide sets up stuff too early (before region stuff can be done)</li>
<li>Crashes on boot on some Compaqs ? (may be fixed)</li>
<li>Boot hangs on a range of Dell docking stations (Latitude)</li>

</ol>

<li>In Progress</li>

<ol>

<li>Dcache threading         (Al Viro)</li>
<li>Merge the network fixes  (DaveM)</li>
<li>Finish I2O merge         (Intel/Alan)</li>
<li>Exploitable leak in file locking (Willy)</li>
<li>Restore O_SYNC functionality    (Stephen) - core code and ext2 done</li>

</ol>

<li>Obvious Projects For People (well if you have the hardware..)</li>

<ol>

<li>pci_socket crash on unload</li>
<li>DEFXX driver appears broken</li>
<li>NCR5380 isnt smp safe</li>
<li>DMFE is not SMP safe</li>
<li>Make syncppp use new ppp code</li>
<li>Fix SPX socket code</li>
<li>Merge the 2.2 ServeRAID driver into 2.4</li>
<li>Merge the current Compaq RAID driver into 2.4</li>

</ol>

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

<ol>

<li>Update SGI VisWS to new-style IRQ handling (Ingo)</li>
<li>64bit lockf support</li>
<li>Support MP table above 1Gig (Ingo)</li>
<li>Dont panic on boot when meeting HP boxes with wacked APIC table numbering (AC)</li>
<li>Scheduler bugs in RT    (Dimitris)</li>
<li>HFS is still broken</li>
<li>AIC7xxx doesnt work non PCI ? (Doug says OK, new version due anyway)</li>
<li>Fix boards with different TSC per CPU and kill TSC use on them</li>
<li>Floppy last block cache flush error</li>
<li>TB Multisound driver hasnt been updated for new isa I/O totally.</li>

</ol>

<li>To Do</li>

<ol>

<li>mount crashes on Alpha platforms</li>
<li>Check all devices use resources properly</li>
<li>Tulip hang on rmmod/crashes sometimes</li>
<li>Devfs races, Sockfs (removing NULL -&gt;i_sb stuf) (Al Viro)</li>
<li>Debian report that the gcc 2.95 possibly miscompiles fault.c or mm/remap.c (Perl script available from Arjan)</li>
<li>Fix further NFS races  (Al Viro)</li>
<li>Test other file systems on write</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>PCMCIA/Cardbus hangs, IRQ problems. (Basically unusable - Hinds pcmcia code is reliable)_</li>
<li>Keyboard/mouse problems (may be fixed ?)</li>
<li>Fix mount failures due to copy_* user mishandling</li>
<li>Fix default mount behaviour to disallow repeat mounting</li>
<li>Check all file systems are either LFS compliant or error large files</li>
<li>Issue with notifiers that try to deregister themselves? (lnz)</li>
<li>Mount of new fs over existing mounted filesystem should return an error unless forced (Andrew McNabb, Alan Cox)</li>
<li>Kernel build has race conditions when building modversions.h (Mikael Pettersson)</li>

</ol>

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

<ol>

<li>Finish 64bit vfs merges (lockf64 and friends missing)</li>
<li>Go through as 2.4pre kicks in and figure what we should mark obsolete for the final 2.4</li>
<li>Union mount (Al Viro)</li>
<li>Per Process rtsigio limit</li>
<li>iget abuse in knfsd</li>
<li>Some people report 2.3.x serial problems</li>
<li>USB hangs on APM suspend on some machines</li>
<li>PCMCIA crashes on unloading pci_socket</li>
<li>ISAPnP IRQ handling failing on SB1000 + resource handling bug</li>
<li>DVD-RAM is apparently not working for write currently (Rogier Wolff)</li>
<li>Parallel ports should set SA_SHIRQ if PCI (eg in Plip)</li>
<li>Devfs compiled in but not mounted causes crap for -&gt;mnt_devname of root (Al Viro)</li>

</ol>

<li>Compatibility Errors</li>

<ol>

<li>Xterm broke in 2.3.99pre6 (FIONREAD/select loop)</li>

</ol>

<li>Probably Post 2.4</li>

<ol>

<li>per super block write_super needs an async flag</li>
<li>addres_space needs a VM pressure/flush callback  (Ingo)</li>
<li>per file_op rw_kiovec</li>

</ol>

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

<li>To Check</li>

<ol>

<li>Check O_APPEND atomicity bug fixing is complete</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>VFS?VM - mmap/write deadlock (demo code seems to show lock is there)</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 [minor issue at best]</li>
<li>ACPI/APM suspend issue - IDE related stuff ?</li>
<li>NFS bugs are fixed</li>
<li>Chase reports of SMB not working</li>
<li>IRDA calls get random bytes before random is set up</li>
<li>Some AWE cards are not being found by ISAPnP ??</li>
<li>SHM segments not always being detached and destroyed right ?</li>
<li>RAM disk contents vanishing on cramfs (block change) and bforget cases</li>
<li>ACPI hangs on boot for some systems (Are there any cases left ?)</li>

</ol>

<li>Fixed</li>

<ol>

<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>
<li>UMSDOS fixups resync (not quite done)</li>
<li>Make NTFS sort of work</li>
<li>Any user can crash FAT fs code with ftruncate</li>
<li>AFFS fixups</li>
<li>Directory race fix for UFS</li>
<li>Security holes in execve()</li>
<li>Lan Media WAN update for 2.3</li>
<li>Get the Emu10K merged</li>
<li>Paride seems to need fixes for the block changes yet</li>
<li>Kernel corrupts fs and gs in some situations (Ulrich has demo code)</li>
<li>1.07 AMI MegaRAID</li>
<li>Merge 2.2.15 changes     (Alan)</li>
<li>Get RAID 0.90 in         (Ingo)</li>
<li>S/390 Merge</li>
<li>NFS DoS fix (security)</li>
<li>Merge the RIO driver</li>
<li>Fix Space.c duplicate string/write to constants</li>
<li>Elevator and block handling queue change errors are all sorted</li>
<li>Make sure all drivers return 1 from their __setup functions (Done ?)</li>
<li>Enhanced disk statistics</li>
<li>Complete vfsmount merge  (Al Viro)</li>
<li>Merge removed-buf-open directory stuff into VFS (Al Viro)</li>
<li>Problems with ip autoconfig according to Zaitcev</li>
<li>NFS causes dup kmem_create on reload (Trond)</li>
<li>vmalloc(GFP_DMA) is needed for DMA drivers (Ingo)</li>
<li>TLB flush should use highest priority (Ingo)</li>
<li>SMP affinity code creates multiple dirs with the same name (Ingo)</li>
<li>Set SMP affinity mask to actual cpu online mask (needed for some boards) (Ingo)</li>
<li>heavy swapping corrupts ptes (believed so)</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>msync fails on NFS (probably fixed anyway)</li>
<li>Find out what has ruined disk I/O throughput. (mostly)</li>
<li>PIII FXSAVE/FXRESTORE support</li>
<li>The netdev name changing stuff broke GRE</li>
<li>put_user is broken for i386 machines (security) - sem stuff may be wrong too</li>
<li>BusLogic crashes when you cat /proc/scsi/BusLogic/0 (Robert de Vries)</li>
<li>Finish sorting out VM balancing (Rik Van Riel, Juan Quintela et al)</li>
<li>Fix eth= command line</li>
<li>8139 + bridging fails</li>
<li>RtSig limit handling bug</li>
<li>Signals leak kernel memory (security) [FIX in ac tree]</li>
<li>TTY and N_HDLC layer called poll_wait twice per fd and corrupt memory</li>
<li>ATM layer calls poll_wait twice per fd and corrupts memory</li>
<li>Random calls poll_wait twice per fd and corrupts memory</li>
<li>PCI sound calls poll_wait twice per fd and corrupts memory</li>
<li>sbus audio calls poll_wait twice per fd and corrupts memory</li>
<li>IBM MCA driver breaks on Device_Inquiry at boot</li>
<li>SHM code corrupts memory        (Russell)</li>
<li>Linux sends a 1K buffer with SCSI inquiries. The ANSI-SCSI limit is 255.</li>
<li>Linux uses TEST_UNIT_READY to chck for device presence on a PUN/LUN. The INQUIRY is the only valid test allowed by the spec.</li>
<li>truncate_inode_pages does unsafe page cache operations</li>
<li>Fix the ptrace code to be back compatible and add a new PTRACE call set for getting the PIII extra registers</li>
<li>EPIC100 fixes</li>
<li>Tlan and Epic100 crash under load</li>
<li>Fix hpfs_unlink (Al Viro)</li>
<li>exec loader permissions</li>
<li>Locking on getcwd</li>
<li>Loopback fs hangs</li>

</ol>

</ol></p>

</quote>

<p>Linus replied to item 2.1 (Capable Of Corrupting Your FS: "E820 memory setup
causes crashes/corruption on some laptops[**VERY NASTY**]"), saying:</p>

<quote who="Linus Torvalds">

<p>This should be fixed as of -pre5. I finally got a hold of a laptop that did
this.</p>

<p>Please, anybody that had random hangs/oopses that went away if you specified
the memory size by hand with the "mem=xxx" boot option, test if 2.4.0-test5
works without the workaround..</p>

</quote>

<p>Peter Enderborg replied to item 14.70 (Fixed: "Loopback fs hangs"), giving
an exploit:</p>

<quote who="Peter Enderborg">

<p>Sorry to say this. But the fs loopback is not fixed, or this some other bug
fixed but than i have shown before. This an example. This kills my
2.4.0test5 system, an Intel PII SMP box. Im out of the office so I can only
verfiy that i still exist on my machine.</p>

<p>This work is 2.2.14, but test[2-5] systems stops running without any
messages.</p>

<p>Create an big image.</p>

<p>dd if=/dev/zero of=/someware/dosfs.img bs=64k count=10000</p>

<p>Create an msdos filesystem on the image.  (Im using dosfstools-2.4) I have
also done this with ext2 and get the same results.</p>

<p>msdosfs /somewhere/dosfs.img</p>

<p>Mount it.</p>

<p>mount -o loop /somewhere/dosfs.img /mnt/mymountpoint</p>

<p>Do the bad thing...</p>

<p>dd if=/dev/zero of=/mnt/mymountpoint/bigfile.foo bs=64k</p>

<p>Wait....</p>

<p>After a while the system can not create process and dies. A difference with
2.4.0test4 is that the filesystem is less corrupted with test5. And sync
command not complete during the dd on the loopback device.</p>

</quote>

<p>Steve Dodd replied, <quote who="Steve Dodd">There are several deadlock
issues, and only one (the tq_disk problem) has been fixed so far (by
disabling plugging). I spent sometime looking at this, and I can't see any
obvious 'quick fix' solutions.</quote></p>

<p>Elsewhere, Andi Kleen replied to item 3.1 (Security: "Fix module remove race
bug (mostly done - Al Viro)"), saying, <quote who="Andi Kleen">It is not at
all done, there were some quick hacks for some file system objects, but the
general problem for zillion of other modules is still unsolved.</quote></p>

<p>Alexander Viro didn't reply to this directly, but he replied to the same
item (and a number of others) in Theodore's list. To item 3.1, he said,
<quote who="Alexander Viro">Already done: everything that exports
file_operations, fb stuff, procfs stuff. Not yet: TTY, ldisc, I2C,
video_device. Hell knows: network devices.</quote></p>

<p>Alexander also reported that item 5.1 (In Progress: Dcache threading (Al
Viro)) was done. He also reported for item 8.4 (To Do: Devfs races, Sockfs
(removing NULL -&gt;i_sb stuf) (Al Viro)), <quote who="Alexander
Viro">Sockfs - done. Removing bogus checks still isn't. Devfs races...
somewhat went down, but there's still a lot of them.</quote></p>

<p>To item 8.8 (To Do: 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.), he remarked, <quote who="Alexander Viro">What about the open() path?
They have (or grab) BKL there, so it should not be something special. Now,
read() and write()...</quote> Alan replied, <quote who="Alan Cox">They dont
all get open right either ;) And yes a lot get read/write wrong or assume
incorrectly that single opener == single threaded read/write.</quote>
Alexander was surprised by that, and wondered aloud where he had "fscked
up", but Alan replied, <quote who="Alan Cox">You didnt. These have been
broken since 2.0 or earlier. Especially the read/write assumptions. These
arent things Al broke but things that never worked right ever.</quote></p>

<p>Elsewhere, under the Subject: <a
href="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg01176.html">Updated
2.4 status/todo list</a>, Theodore posted the latest list, and gave a URL to
<a href="http://linux24.sourceforge.net/">its location on Sourceforge</a>.
He also said:</p>

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

<p>everyone and his brother has approached me suggesting that I use their
favorite bug tracking system. The answer which I'm giving folks is that for
now, trying to get the information into a sane state is far more important
than the mechanism of which bug tracking system to use. At the moment, the
hardest parts of the problem are:</p>

<p><ul>

<li>Figuring out when Linus has applied a patch that fixes a particular item on the bug list.</li>
     
<li>Determining when someone complains whether it's a real bug or not, and if so, how important is it.</li>
     
<li>Ditto for when someone posts a patch.</li>
     
<li>Figuring out what Alan meant by descriptive items such as "Check all
devices use resources properly" (If anyone has a copy of Vulcan Mind Melds
for Dummies, let me know. :-)</li>

</ul></p>

</quote>

<p>There was a bit more discussion.</p>

</section>

<section
  title="Draft Press Release For 2.4"
  subject="Linux 2.4 - press release?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg00256.html"
  posts="5"
  startdate="23 Jul 2000 00:00:00 -0800"
  enddate="26 Jul 2000 00:00:00 -0800"
>
<topic>FS: NFS</topic>
<topic>Networking</topic>
<topic>Power Management: ACPI</topic>
<topic>SMP</topic>
<topic>Small Systems</topic>
<topic>USB</topic>

<mention>Albert Cahalan</mention>
<mention>Linus Torvalds</mention>

<p>Joe Pranevich announced:</p>

<quote who="Joe Pranevich">

<p>I'm not sure if this has been discussed yet, I'm not completely caught up
with the current kernel list. However with the pending release of Linux 2.4,
it may be time to bring this up again.
 </p>

<p>I've created a rough draft (intended for discussion only!) of a press
release for Linux 2.4, if we decide to go with one. Greg Smart and Albert
Cahalan attempted this for Linux 2.2 but I don't think anything came of that
work -- now I've decided to step up and make a fool of myself for Linux 2.4.
:)
 </p>

<p>Please take a look at this and let me know what you think. There's probably
someone on this list who actually knows what to do with a press release,
it's quite a bit beyond my experience. Feel free to edit this as appropiate.</p>

<p>Oh, and I stuck a small plug for my "Wonderful World" document at the end.
For a final version, we would want to point that at a good resource for more
information about the release-- I'm a bit biased in this respect.</p>

</quote>

<p>The 2.2 press release was covered in <kcref subject="draft for review
- press release" startdate="14 Jan 1999 00:00:00 -0800"></kcref>, where it had a fairly bad
initial reception, and by <kcref subject="Draft 6 of Press Release seen on
Slashdot" startdate="20 Jan 1999 00:00:00 -0800"></kcref> the working draft had been
unexpectedly posted to Slashdot, without having gone through Linus first.</p>

<p>Not discouraged, this week Joe posted his draft:</p>

<quote who="Joe Pranevich">

<p>LINUX KERNEL 2.4 (DRAFT!)<br />
The Internet, August XX, 2000</p>

<p>Linus Torvalds and the kernel development team would like to announce the
immediate availability of Linux 2.4, the latest revision of the popular open
source operating system kernel. This update brings increased scalability and
performance to all Linux users, in addition to new hardware support.</p>

<p>Notewothy Features:</p>

<p><ol>

<li>Enterprise Ready! Linux 2.4 includes changes that make it even more
ready for Enterprise environments. This new revision supports up to 64
gigabytes of RAM, allows files to be larger than 2 gigabytes, supports many
more simultaneous processes, and has been largely rewritten to take better
advantage of systems with multiple processors.</li>

<li>Cutting-edge hardware support. Linux now supports Itanium, the 64-bit
Intel hardware soon to be released as well as the S/390, an IBM mainframe,
and SuperH, often used in WindowsCE handhelds. Linux 2.4 improves support
for Intel and Apple desktop and server hardware, in addition to Compaq
servers based on the Alpha processor, Sun Sparc systems, MIPs systems, and
other platforms.</li>

<li>Linux is now even better suited for desktop environments with a  new
resource manager and support for USB and Firewire hardware. Additionally,
Linux 2.4 also improves support for PC Cards (PCMCIA) and legacy
"Plug-and-Play" cards.</li>

<li>Rewritten network layer to be faster than ever before, especially on
multiprocessor hardware. This new layer brings to Linux the flexibility and
power formerly available only with expensive routing hardware.</li>

<li>Support for version 3 of the popular NFS filesystem for sharing files in
UNIX-like environments.</li>

<li>Linux 2.4 includes special enhancments for webservers including a
kernel-level web server and "wake one" support for speedier page serving
with all popular web servers, including Apache.</li>

<li>Logical Volume Manager for easy administration of disk space, including
adding, deleting, and resizing disk slices on the fly.</li>

</ol></p>

<p>This update is already available to advanced users through multiple kernel
mirrors (<a href="ftp://ftp.kernel.org">ftp.kernel.org</a>) Although no
timeframes have been announced at this time, all current Linux distributors
will be updating to this version of the kernel within the next several
months.</p>

<p>Linux is developed by a online team of programmers headed by Linus Torvalds,
a resident of Santa Clara, CA. Linux has been developed using the open
source methodology which provides for source code and peer review at all
stages of development. It is because of this system of openness that Linux
has grown to be the most successful non-corporate operating system to date.</p>

<p>For more informatoon, please consult <a
href="http://www.linux.org">www.linux.org</a> for a list of other
Linux-related websites. More information on the new features in Linux 2.4
can be found in the "Wonderful World of Linux 2.4" document, available ...</p>

<p>Linux is a trademark of Linus Torvalds.</p>

</quote>

<p>Daniel Stone also replied to Joe:</p>

<quote who="Daniel Stone">

<p>I think you should mention:</p>

<p>USB and FireWire - possibly appealing to the multimedia market, etc? Note
the high proliferation of USB Zip drives, etc, so you could tout this as how
it's great that we've got all the k-whrad standards.</p>

<p>Netfilter - I think I mention this to everyone I talk to about Linux 2.4.
Stateful inspection, totally extensible, separate conntrack/NAT.</p>

</quote>

<p>Jim Dennis also replied to Joe with lengthy commentary on the press release.
To item 1, Jim objected to the phrase "largely rewritten" as being a bit of
an overstatement. He explained, <quote who="Jim Dennis">The SMP from 2.0 to
2.2 was "largely re-written." Most of the SMP locking code through 2.3.x has
been refined. I gather that the network devices and code path have been
"unserialized."</quote></p>

<p>Jim also moved item 4 to be just below item 1, since <quote who="Jim
Dennis">unserialized net is more interesting in the server/enterprise
context.</quote> He then added several items under that one:</p>

<quote who="Jim Dennis">

<p><ul>

<li>The new netfilter code replaces "ipchains" with the most flexible and
modular packet filtering available.</li>

<li>Policy based routing and quality of server (QoS) queueing and packet
scheduling allows Linux systems to precisely control the flow of data
through the system and into and out of your networks.</li>

<li>FreeS/WAN and CIPE (available via international patches) provide kernel
level support for transparent network cryptography.</li>

<li>These (previous three) features make Linux the ideal kernel for building
custom routers.</li>

<li>Support for very high speed (gigabit) ethernet and other (FDDI, HIPPI)
network interfaces.</li>

</ul></p>

</quote>

<p>To Joe's item 2, Jim added, <quote who="Jim Dennis">Let's not forget
StrongARM/ARM, MIPS, 68k (including the Coldfire and Dragonball processors
in that family). These are used in many embedded systems (including many
PDAs). (Palm Pilot is Dragonball, moving to StrongARM?)</quote></p>

<p>After Joe's item 3, Jim added several more bullet points:</p>

<quote who="Jim Dennis">

<p><ul>

<li>Linux is also well suited to many laptop, mobile and embedded
applications. There is additional support for Transmeta's new line of
"Crusoe (TM)" low-power consumption x86 processors which are powering web
pads and long running "work all day" laptops.</li>

<li>ACPI support builds on the advanced power management (APM) features from
earlier kernel versions.</li>

<li>The new Linux kernel now has integrated PCMCIA and Cardbus support (long
available as an "add-on" patch). Also included is support for a number of
wireless networking products and protocols, for "untethered" convenience.</li>

</ul></p>

</quote>

<p>To Joe's item 6, Jim remarked:</p>

<quote who="Jim Dennis">

<p>The Linux developers sarcastically acknowlege
Mindcraft and thank them for their efforts in helping us identify the need
for these improvements.</p>

<p>Also the "kernel-level web server" is better described as a kernel level web
"accelerator." That is more accurate, and it is less likely to scare off
business users who have already chosen a web server/daemon.</p>

</quote>

<p>Finally, after Joe's item 7, Jim added a final bullet point (though he
acknowledged it to be an oversimplification):</p>

<quote who="Jim Dennis">

<p><ul>

<li>"Capabilities" support extends the UNIX security model and allows Linux
to provide more fine-grained access to system privileged. The "capabilities
bounding set" further allows the administrator to "lock down" their system
and prevent persistent changes, even in the face of "rogue"
applications.</li>

</ul></p>

</quote>

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

</section>

<section
  title="Simulating SMP Under UP Systems"
  subject="synthetic parallel processing"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg00637.html"
  posts="7"
  startdate="25 Jul 2000 00:00:00 -0800"
  enddate="26 Jul 2000 00:00:00 -0800"
>
<topic>SMP</topic>

<mention>Rik van Riel</mention>
<mention>Bartlomiej Zolnierkiewicz</mention>

<p>Aaron Macks asked if it were possible to fool a UP kernel into behaving like
an SMP system; in other words, he asked, was it possible to have the
scheduler keep two queues and alternate them? Jeff Dike replied, <quote
who="Jeff Dike">There isn't now, but there will be in the not-too-distant
future. The user-mode port (see <a
href="http://user-mode-linux.sourceforge.net">http://user-mode-linux.sourceforge.net</a>)
can do this. I had SMP turned on and more or less working around 2.3.26. It
shouldn't be a big deal to turn it bad on, fix the bugs, and get it working.
Once that's done, you can start it up with "ncpus=2" or "ncpus=32", and you
get that many virtual processors.</quote> Richard B. Johnson also replied to
Aaron, saying, <quote who="Richard B. Johnson">You could have two (or more)
schedulers. However, this would not replicate nor even emulate two CPUs. A
single CPU can only do one thing at any instant. Two or more CPUs can do as
many things as there are CPUs. Some shared resources have to be
single-threaded with SMP, but otherwise a lot of activity can be done in
parallel.</quote></p>

<p>Borislav Deianov also replied to Aaron, and suggested the <a
href="http://fairsched.sourceforge.net/">fair scheduler</a>. He gave what he
called his standard pitch, <quote who="Borislav Deianov">Fairsched is a
hierarchical fair CPU scheduler. Processes are divided into groups and each
group receives guaranteed CPU time allocation proportional to its weight.
The standard scheduler is used to schedule processes within a group. It can
be used to divide CPU time fairly among users or for more flexible CPU time
allocation on busy compute servers.</quote> He added that Rik van Riel had
also <a href="http://www.surriel.com/patches/">written a variant</a> that
was less flexible but significantly simpler. Bartlomiej Zolnierkiewicz asked
if 'fairsched' would one day allow users to choose a scheduling algorithm
for each group of processes, and Borislav replied, <quote who="Borislav
Deianov">Actually this feature was present in fairsched's predecessor QLinux
(<a
href="http://www.cs.umass.edu/~lass/software/qlinux/">http://www.cs.umass.edu/~lass/software/qlinux/</a>).
Dropping it simplified the code quite a bit and I didn't think it's that
useful.</quote></p>

</section>

<section
  title="Some Explanation Of Hard IRQ Atomicity"
  subject="[PATCH] removal of unnecessary irq save/restore in tasklet_hi_schedule"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg00706.html"
  posts="7"
  startdate="26 Jul 2000 00:00:00 -0800"
  enddate="27 Jun 2000 00:00:00 -0800"
>
<topic>Disks: SCSI</topic>

<mention>Tigran Aivazian</mention>
<mention>Stuart MacDonald</mention>

<p>Daniel Marmier posted a small patch to take out some code from
'include/linux/interrupt.h' that saved and restored flags. He felt the code
wasn't necessary because "hard interrupt requests" (hard IRQs) could not be
re-entered by other IRQs. Since the code was not in danger of being
re-entered, the flags were not in danger of changing and thus did not need
to be saved and restored. But Linus Torvalds explained, <quote who="Linus
Torvalds">No, hard-irq's _can_ be re-entered. One hard-irq cannot re-enter
itself, but you can have _different_ irq's enter each other. As such, to
avoid deadlock in on the local CPU the current code is needed..</quote>
Stuart MacDonald asked, if hard IRQ A entered hard IRQ B, which in turn
entered hard IRQ A again, then hard IRQ A would have re-entered itself. But
Linus replied that while it was possible for A and B to enter each other, it
was not possible for them to subsequently re-enter themselves, because
<quote who="Linus Torvalds">We use the interrupt blocking hardware to make
sure that as long as irq A is running, further instances of irq A are
blocked. OTHER interrupts can still happen.</quote> Tigran Aivazian replied
that he thought this was only true if SA_INTERRUPT was passed with the
interrupt (in which case the IRQ would be atomic not only with regard to
itself, but also to other interrupt handlers as well), as was the case with
2.2; but Linus explained:</p>

<quote who="Linus Torvalds">

<p>SA_INTERRUPT is deprecated, as it fundamentally
cannot work with shared interrupts (or at least they all have to _agree_ on
SA_INTERRUPT, which basically means that you have to know exactly the type
of sharing. Ugh).</p>

<p>And non-shared interrupts are _definitely_ deprecated, unless the hardware
really forces you to use them. That kind of hardware is getting quite rare.
Thank God.</p>

<p>That said, SA_INTERRUPT still works, but it's really only meant to be used
for the timer handler (you don't want the timer to be interruptible: it's
fast, and at least the SCSI layer historically wanted the timer to tick
_while_ a SCSI interrupt is active, so you must not have a SCSI interrupt
interrupt the timer, because if that happens..)</p>

</quote>

</section>

<section
  title="Reading Files From Device Drivers"
  subject="Reading a file inside the device driver."
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg00728.html"
  posts="10"
  startdate="26 Jul 2000 00:00:00 -0800"
  enddate="28 Jul 2000 00:00:00 -0800"
>
<topic>Ioctls</topic>
<topic>Modems</topic>
<topic>Web Servers</topic>

<mention>Ashok Raj</mention>

<p>Vinay Vernekar asked how to open and read a file from within a driver. As
far as he knew, normal file operations like fopen() couldn't be used within
drivers. Theodore Y. Ts'o gave a link to <a
href="http://rocketport.sourceforge.net">the rocketport driver</a> and
replied:</p>

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

<p>The best way to do this is to do it in a user-mode program which is run out
of an /etc/rc.d script, which uses ioctl()'s to download the firmware into
kernel. This allows you to have much better error recovery and timeout
handling than if you try to do this in the kernel.</p>

<p>For an exmaple program of how to do this, see the rocketport driver,
especially how the loadrm2 program loads the Rocketmodem II firmware.
There's some clever code there which allows multiple modems to be downloaded
in parallel to speed things up. Feel free to steal it for your project; it's
under the GPL.</p>

</quote>

<p>Ashok Raj also suggested looking in the 'khttpd' code, which he said had
plenty of examples. But Richard B. Johnson expounded at length:</p>

<quote who="Richard B. Johnson">

<p>The easiest way, and the way which will always work in the future, is to
provide open() close() and ioctl() in your driver.</p>

<p>After the driver is installed (insmod) upon bootup, you execute a user-mode
program that opens the device and sends file-data to the device via ioctl().
Your ioctl() routine in your driver puts this stuff in the right place
inside your hardware and finishes initializing the device. The sysV-init
scripts can be modified to do this automatically. You could, of course do
the same thing using write(), but ioctl() allows you to pass function
parameters so your startup code might do something like:</p>

<p>        fd = open("MyDevice", O_RDWR);<br />
        file = open("MyBinaryJunk", O_RDONLY);<br />
        ioctl(fd, MYDEV_WAKEUP);<br />
        read(file, buf, len);<br />
        ioctl(fd, MYDEV_UPLOAD_WINDOW0, buf);<br />
        ioctl(fd, MYDEV_OPEN_WINDOW1);<br />
        read(file, buf, len);<br />
        ioctl(fd, MYDEV_UPLOAD_WINDOW1, buf);<br />
        ioctl(fd, MYDEV_.... etc.<br />
        ioctl(fd, MYDEV_START);<br /></p>

<p>Another way, is to make a 'C' array of the data that you need to put into
your hardware. You can make a simple 'C' development tool that reads data
from your file, converts it to text the compiler understands, and you
include this during compilation. This has at least two major problems. The
first is that you have to recompile to update your hardware-code. The second
is that some code may be very large. This stays within the kernel when the
module is installed and wastes kernel space.</p>

<p>You can't deallocate an array that the compiler initializes.</p>

<p>The last way, and the way I don't recommend, is to actually open and read
the file from kernel space. This is complex because your driver needs to
borrow a "process context" in order for file I/O to work. The file-system
was designed to run from a user's data area (segment) and, for a
file-descriptor to actually mean something, it has to be associated with a
process. This can be done and I am sure that others will point you in that
direction. However, what works today might not work for the next kernel
version.</p>

<p>I wrote such a driver about a year ago. It seemed to work after I got a lot
of help. However, even though the file was closed after the read, I was
never able to unmount '/'. This means the next boot was a long fscking wait.</p>

<p>Ripping that up, and using user-mode access via ioctl() created a stable
driver with the minimum of resident code.</p>

</quote>

<p>Elsewhere, Jeff Garzik also recommended finding a user-space solution,
though he added, <quote who="Jeff Garzik">If you must do it in the kernel,
just use normal Unix syscalls... Inside the kernel, they are called
sys_open, sys_read, etc. Make sure the code calling those functions doesn't
mind if the called functions sleep.</quote> Theodore objected, <quote
who="Theodore Y. Ts'o">I wouldn't recommend that approach at all. First of
all, sys_open means you're messing with a process's file descriptor table,
and if another process can get at the fd table (i.e., because of a clone
system call), they may be able to cause mischief for the kernel (the fd can
get changed to be something else, etc.). Secondly, sys_read()/sys_write()
assumes that it will be reading and writing into user memory, not kernel
memory. There are games you can play to get around this, but such approaches
are fragile and complicated, and not what I'd recommend.</quote></p>

</section>

<section
  title="Status Of CML2"
  subject="CML2 0.7.4 is available"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg00780.html"
  posts="2"
  startdate="26 Jul 2000 00:00:00 -0800"
  enddate="29 Jul 2000 00:00:00 -0800"
>
<topic>Kernel Build System</topic>
<topic>USB</topic>

<mention>Randy Dunlap</mention>

<p>For CML2's initial announcement and discussion, see <kcref
subject="Announcing CML2, a replacement for the kbuild system"
startdate="24 May 2000 00:00:00 -0800"></kcref>. Shortly thereafter in <kcref subject="I'm
trying to identify the configuration-file maintainers"
startdate="05 Jun 2000 00:00:00 -0800"></kcref>, Eric was trying to round up config-file
maintainers to coordinate agreement on the switchover.</p>

<p>This week, Eric S. Raymond announced:</p>

<quote who="Eric S. Raymond">

<p>The latest version is always available at <a
href="http://www.tuxedo.org/~esr/kbuild/">http://www.tuxedo.org/~esr/kbuild/</a>.</p>

<p>Release 0.7.4: Wed Jul 26 12:07:47 EDT 2000</p>

<p><ol>

<li>Randy Dunlap has certified the USB configuration.</li>

<li>'x' and 'q' reversed in curses and tty modes.  'q' now matches the
semantics of the Tk Quit menu entry.</li>

<li>We no longer write FOO=n in defconfig; this turned out to break a large
number of ifdefs in old-style makefiles in the Linux kernel tree.</li>

</ol></p>

<p>That third bullet item means that CML2 will not be able to do the right
thing and support passing around partial configs until about 300 lines in
various Makefiles are changed. Sigh...this may mean I put off issuing 1.0.0
until after CML2 has been accepted into the tree and those changes get made,</p>

<p>There are currently a couple of minor look and feel issues in the Tk
interface, but no known bugs.</p>

</quote>

<p>There was no reply, but elsewhere under the Subject: <a
href="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_05/msg00006.html">CML2
0-7-5 is available</a>, he announced:</p>

<quote who="Eric S. Raymond">

<p>Release 0.7.5: Sat Jul 29 05:34:59 EDT 2000

<ol>

<li>Sychronized with 2.4.0-test5</li>

</ol></p>

</quote>

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

</section>

<section
  title="Linus Announces 2.4.0-test5"
  subject="Linux-2.4.0-test5"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_04/msg01055.html"
  posts="1"
  startdate="27 Jul 2000 00:00:00 -0800"
  enddate="27 Jul 2000 00:00:00 -0800"
>
<topic>Disk Arrays: MD</topic>
<topic>Forward Port</topic>
<topic>Kernel Release Announcement</topic>
<topic>SMP</topic>
<topic>USB</topic>

<mention>Manfred Spraul</mention>

<p>Linus Torvalds announced Linux 2.4.0-test5, saying:</p>

<quote who="Linus Torvalds">

<p>There's a 2.4.0-test5 kernel out there. The diff is pretty huge, to a large
degree due to a bttv driver syntactic split-up and due to the NLS
forward-port from 2.2.x.</p>

<p>Other notable bugfixes:</p>

<p><ul>

<li>the buggy Toshiba (and possibly others) BIOS memory reporting thing is
fixed. Just ignore RAM that the BIOS reports in the 640k-1M range. The BIOS
is confused.</li>

<li>Manfred Spraul found and fixed a SMP TLB invalidation problem with
threads.</li>

<li>various architecture updates (arm, ia64, sparc, sh..)</li>

<li>MD driver cleanups</li>

<li>Toshiba floppy controller problem workaround</li>

<li>updated DRI code (works with XF86-4.0.1)</li>

<li>various driver updates (ToPIC CardBus should work, ide updates, etc)</li>

<li>"kfree_s()" is gone. It hasn't existed for several years, but people
still used it. No more.</li>

<li>USB driver updates and fbcon cleanups</li>

<li>various othe rupdates I've repressed.</li>

</ul></p>

<p>Be happy.</p>

</quote>

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

</section>

<section
  title="Status Of zImage"
  subject="zImage support in test3"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_0007_05/msg00077.html"
  posts="15"
  startdate="30 Jul 2000 00:00:00 -0800"
  enddate="31 Jul 2000 00:00:00 -0800"
>
<topic>Compression</topic>
<topic>Small Systems</topic>

<p>This was first covered in <kcref subject="Re: System is too big.  Try using
bzImage or modules." startdate="08 Jan 1999 00:00:00 -0800"></kcref>, where folks were
already discussing dropping 'zImage' support, although bzImage was not yet
supported on all systems. Recently it came up again in <kcref subject="It's
time to get rid of zImage" startdate="13 Jun 2000 00:00:00 -0800"></kcref>, where the
concensus was that no one needed 'zImage' anymore, and that it should be
deprecated in 2.4 and obliterated in 2.5.</p>

<p>Now, Kai Schulte asked for a variable to be returned to the code, because
'zImage' required it. He added, <quote who="Kai Schulte">my good old 2MB
386SX terminal won't be amused if I ask it to load a bzImage ;)</quote>
Stephen Frost asked if Kai would give 'bzImage' a try, and Kai replied,
<quote who="Kai Schulte">Why would you try? The compressed image will load
fine but there won't be any memory to decompress into, so it'll grind to a
halt.</quote> H. Peter Anvin (who had led the earlier charge to get rid of
'zImage') replied, <quote who="H. Peter Anvin">No, it will grind to a halt
because of a hard-coded limit (in setup.S, I believe.) It is currently set
to 2MB for zImage and 4MB for bzImage. I suspect those values are completely
arbitrary; trying without it would be interesting.</quote> Kai agreed, there
was no reason bzImage couldn't work in 2MB, and said he'd give it a try. A
couple hours later he replied to himself, <quote who="Kai Schulte">It does
:) There must be some other memory location that isn't being initialized,
though. Rebooting without hardware reset causes it to reboot continuously
right after the decompression - not quite what you'd expect from an embedded
system ;)</quote></p>

<p>Elsewhere and a bit earlier in the discussion, Stephen remarked, <quote
who="Stephen Frost">It was my understanding that anything that zImage worked
on bzImage would work on.</quote> Mike Castle explained:</p>

<quote who="Mike Castle">

<p>They're HOPING for that.</p>

<p>There is currently a call out to find all machines that work with zImage but
not bzImage so they can make bzImage work on them and then get rid of
zImage.</p>

<p>Apparently one was found here.</p>

<p>They really really want zImage to go away.  Rather than trying to get zImage
to work on this particular computer again, I'd suggest concentrate on trying
to get bzImage to work.</p>

</quote>

<p>Here, Alan Cox brought the hammer down, mentioning, <quote who="Alan
Cox">zImage wont go away. You cant boot a bzImage kernel on a 2Mb system
such as a low end embedded AMD board.</quote> A couple posts down the line,
H. Peter concluded the thread with, <quote who="H. Peter Anvin">Saying
"zImage won't go away" may be true (although I definitely wish it wasn't
so), but boot loaders probably will start to drop zImage support, because of
the hideous pain it takes to support them cleanly in a way that makes sense
at all. SYSLINUX simply load them high and copy them down before starting
the kernel -- anything else is too painful.</quote></p>

</section>

</kc>
