<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="33" date="07 Sep 1999 00:00:00 -0800" />

<intro>

<p>After various back and forth trying to find the right day, I <em>think</em>
the schedule of KT has settled on Mondays Mornings, around 10AM Pacific
time. I know, today's Tuesday, but that's a holiday thing.</p>

<p>As announced on <a href="http://linuxtoday.com/story.php3?sn=9470">Linux
Today</a>, the new URL for KT is <a
href="http://kt.zork.net">http://kt.zork.net</a>, so you should
update your bookmarks, even though the old site should continue to work for
a little while. The KT/KC layout will also be changing soon to be an
integral part of the <a href="http://www.linuxcare.com">Linuxcare</a> pages.
If you have special browser needs, check out the Linuxcare site and make
sure you can view it comfortably. If not, <a
href="mailto:zbrown@tumblerings.org">let me know</a>.</p>

</intro>

<stats posts="1158" size="4802" contrib="462" multiples="205" lastweek="184">

<person posts="73" size="197" who="Alan Cox " />
<person posts="36" size="208" who="Andrea Arcangeli " />
<person posts="18" size="49" who="&quot;David S. Miller&quot; " />
<person posts="17" size="94" who="Thomas Molina " />
<person posts="17" size="59" who="Linus Torvalds " />
<person posts="16" size="76" who="Kurt Garloff " />
<person posts="16" size="68" who="Benno Senoner " />
<person posts="14" size="49" who=" (Rogier Wolff)" />
<person posts="12" size="50" who="&quot;Mike A. Harris&quot; " />
<person posts="12" size="38" who="Jeff Garzik " />
<person posts="10" size="53" who="Internet Business " />
<person posts="10" size="35" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="10" size="32" who="Osman " />
<person posts="10" size="32" who="Steve Dodd " />
<person posts="9" size="75" who=" (david parsons)" />
<person posts="9" size="45" who="&quot;Jeff Merkey&quot; " />
<person posts="9" size="31" who="Ingo Molnar " />
<person posts="9" size="29" who="" />
<person posts="9" size="24" who="Dan Hollis " />
<person posts="8" size="36" who="" />
<person posts="8" size="33" who="Gerard Roudier " />
<person posts="8" size="30" who=" (H. Peter Anvin)" />
<person posts="8" size="27" who="Mike " />
<person posts="7" size="43" who="Chuck Lever " />
<person posts="7" size="40" who="Thierry Vignaud " />
<person posts="7" size="33" who="Trond Myklebust " />
<person posts="7" size="30" who="David Woodhouse " />
<person posts="7" size="27" who="&quot;Theodore Y. Ts'o&quot; " />
<person posts="7" size="27" who="" />
<person posts="7" size="26" who="&quot;Richard B. Johnson&quot; " />
<person posts="7" size="21" who="Michael Mess " />
<person posts="7" size="21" who="kiko " />
<person posts="7" size="19" who="Oliver Xymoron " />
<person posts="6" size="24" who="" />
<person posts="6" size="21" who=" (Miquel van Smoorenburg)" />
<person posts="6" size="20" who="Jens Axboe " />
<person posts="6" size="20" who="Brian Perkins " />
<person posts="6" size="19" who="Keith Owens " />
<person posts="6" size="19" who="Robert Dinse " />
<person posts="6" size="18" who="Tigran Aivazian " />
<person posts="6" size="15" who="Richard Henderson " />
<person posts="5" size="40" who="Matthew " />
<person posts="5" size="28" who="&quot;Bradley D. LaRonde&quot; " />
<person posts="5" size="26" who="Raphael Bossek " />
<person posts="5" size="22" who="Richard Guy Briggs " />
<person posts="5" size="22" who="Wakko Warner " />
<person posts="5" size="18" who="M Carling " />
<person posts="5" size="18" who="&quot;Gregory T. Norris&quot; " />
<person posts="5" size="17" who="David Weinehall " />
<person posts="5" size="15" who="Rui Sousa " />
<person posts="5" size="14" who="Tim Waugh " />
<person posts="4" size="23" who="William Stearns " />
<person posts="4" size="17" who="FAVRE =?iso-8859-1?Q?Gr=E9goire?= " />
<person posts="4" size="16" who="Andre Hedrick " />
<person posts="4" size="15" who="jumeaux lists " />
<person posts="4" size="14" who="&quot;Terry Katz&quot; " />
<person posts="4" size="14" who="Thomas Davis " />
<person posts="4" size="14" who="Jon Masters " />
<person posts="4" size="14" who="Tim Ricketts " />
<person posts="4" size="13" who="Jeff Dike " />
<person posts="4" size="12" who="Horst von Brand " />
<person posts="4" size="12" who="Simon Kirby " />
<person posts="4" size="12" who="Ralf Baechle " />
<person posts="4" size="12" who="Thomas Sailer " />
<person posts="4" size="12" who="Steve Underwood " />
<person posts="4" size="11" who="&quot;Jones D (ISaCS)&quot; " />
<person posts="4" size="10" who="Chris Wedgwood " />
<person posts="3" size="45" who="Dieter =?iso-8859-1?Q?N=FCtzel?= " />
<person posts="3" size="36" who="Nimrod Zimerman " />
<person posts="3" size="28" who="paulr " />
<person posts="3" size="26" who="Tim Hockin " />
<person posts="3" size="26" who="Matthew Wilcox " />
<person posts="3" size="20" who="Gerard Saraber " />
<person posts="3" size="19" who="Heinz Diehl " />
<person posts="3" size="15" who="&quot;Matthew G. Marsh&quot; " />
<person posts="3" size="15" who="Paul Barton-Davis " />
<person posts="3" size="14" who="" />
<person posts="3" size="13" who="Dr J Pelan " />
<person posts="3" size="13" who="David Olofson " />
<person posts="3" size="13" who="" />
<person posts="3" size="12" who="Erik Andersen " />
<person posts="3" size="12" who="David Odin " />
<person posts="3" size="11" who="" />
<person posts="3" size="11" who="Brian Swetland " />
<person posts="3" size="11" who="David Rees " />
<person posts="3" size="11" who="Russell King " />
<person posts="3" size="11" who="Alessandro Suardi " />
<person posts="3" size="11" who="Bernhard Rosenkraenzer " />
<person posts="3" size="11" who=" (Lennart Buytenhek)" />
<person posts="3" size="10" who="Michael Elizabeth Chastain " />
<person posts="3" size="10" who="&quot;Chris D. Faulhaber&quot; " />
<person posts="3" size="10" who="&quot;gokhan sozmen&quot; " />
<person posts="3" size="10" who="Zack Weinberg " />
<person posts="3" size="10" who="Steve Mcclure " />
<person posts="3" size="9" who="Hubert Tonneau " />
<person posts="3" size="9" who="Wolfram-Peter Stilz " />
<person posts="3" size="9" who="Ingo Molnar " />
<person posts="3" size="9" who="&quot;Ulrich Windl&quot; " />
<person posts="3" size="9" who="Massoud Asgharifard " />
<person posts="3" size="9" who="Donald Becker " />
<person posts="3" size="9" who="Mike Galbraith " />
<person posts="3" size="8" who="Ken Pizzini " />
<person posts="3" size="8" who="Jamie Lokier " />
<person posts="3" size="8" who="Trever Adams " />
<person posts="3" size="8" who="Philip Blundell " />
<person posts="3" size="8" who="Mark Hahn " />
<person posts="3" size="8" who="Jeremy Fitzhardinge " />
<person posts="3" size="8" who="Drew Bernat " />
<person posts="3" size="7" who="" />
<person posts="3" size="7" who="Otto Moerbeek " />
<person posts="3" size="7" who="Kamran Karimi " />
<person posts="3" size="6" who="Tymm Twillman " />
<person posts="2" size="16" who="&quot;John Strange&quot; " />
<person posts="2" size="15" who="Brian Hall " />
<person posts="2" size="13" who="Jean-Marc Pigeon " />
<person posts="2" size="13" who="Pavel Machek " />
<person posts="2" size="12" who="Eric Hicks " />
<person posts="2" size="12" who="Artur Frysiak " />
<person posts="2" size="12" who="&quot;B.W. McAdams&quot; " />
<person posts="2" size="11" who="Kurt Garloff " />
<person posts="2" size="10" who="Simon Huggins " />
<person posts="2" size="10" who="Colin May " />
<person posts="2" size="10" who="Peter Enderborg " />
<person posts="2" size="10" who="&quot;Brendan Cully&quot; " />
<person posts="2" size="9" who="&quot;Ramachandran, MahendraX A&quot; " />
<person posts="2" size="9" who="Fyodor " />
<person posts="2" size="9" who="Hirokazu Takahashi " />
<person posts="2" size="9" who="" />
<person posts="2" size="9" who="Eduardo Soriano " />
<person posts="2" size="8" who="Kai Germaschewski " />
<person posts="2" size="8" who="Derek Wildstar " />
<person posts="2" size="8" who="&quot;Chris Jones&quot; " />
<person posts="2" size="8" who="=?iso-8859-1?Q?Jean=2DFran=E7ois?= GOBBERS " />
<person posts="2" size="8" who="" />
<person posts="2" size="8" who="Matthew Kirkwood " />
<person posts="2" size="8" who="&quot;Paul Fulghum&quot; " />
<person posts="2" size="8" who="Bret Indrelee " />
<person posts="2" size="7" who="Andreas Bombe " />
<person posts="2" size="7" who="Richard Brunner " />
<person posts="2" size="7" who="Jaroslav Kysela " />
<person posts="2" size="7" who="Craig Milo Rogers " />
<person posts="2" size="7" who="Alexandre Hautequest " />
<person posts="2" size="7" who="Chuck Mead " />
<person posts="2" size="7" who="&quot;Bill Rugolsky Jr.&quot; " />
<person posts="2" size="7" who="" />
<person posts="2" size="7" who="Glynn Clements " />
<person posts="2" size="7" who="&quot;Peter 'Luna' Runestig&quot; " />
<person posts="2" size="7" who="&quot;R. Kelley Cook&quot; " />
<person posts="2" size="7" who="&quot;Michael B. Trausch&quot; " />
<person posts="2" size="7" who="Jeffrey Hundstad " />
<person posts="2" size="7" who="Florian Lohoff " />
<person posts="2" size="7" who="Miquel van Smoorenburg " />
<person posts="2" size="7" who="Oleg Drokin " />
<person posts="2" size="7" who="Clifford Wolf " />
<person posts="2" size="7" who="Werner Almesberger " />
<person posts="2" size="7" who="Matthias Riese " />
<person posts="2" size="7" who="Mike Liang " />
<person posts="2" size="7" who="mullein " />
<person posts="2" size="6" who="Helge Hafting " />
<person posts="2" size="6" who="Benjamin Herrenschmidt " />
<person posts="2" size="6" who="Binaire " />
<person posts="2" size="6" who="David Ford " />
<person posts="2" size="6" who="Henry Spencer " />
<person posts="2" size="6" who="Konrad Rosenbaum " />
<person posts="2" size="6" who="Jeremy Katz " />
<person posts="2" size="6" who="&quot;Ph. Marek&quot; " />
<person posts="2" size="6" who="Karl Kleinpaste " />
<person posts="2" size="6" who="Peter Monta " />
<person posts="2" size="6" who="Shaw Terwilliger " />
<person posts="2" size="6" who="Richard A Nelson " />
<person posts="2" size="6" who="Henner Eisen " />
<person posts="2" size="6" who="&quot;Michael H. Warfield&quot; " />
<person posts="2" size="6" who="Anil Kumar S R " />
<person posts="2" size="6" who="Chris Horry " />
<person posts="2" size="6" who="Paul Jakma " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="&quot;Petr Sebor&quot; " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="&quot;dony&quot; " />
<person posts="2" size="5" who="Pauline Middelink " />
<person posts="2" size="5" who="CaT " />
<person posts="2" size="5" who="Julian Anastasov " />
<person posts="2" size="5" who="&quot;Jim Nance&quot; " />
<person posts="2" size="5" who="Benjamin Redelings I " />
<person posts="2" size="5" who="Linux Lists " />
<person posts="2" size="5" who="Dancer " />
<person posts="2" size="5" who="Hirling Endre " />
<person posts="2" size="5" who="Bill Wilson " />
<person posts="2" size="5" who="Marcus Meissner " />
<person posts="2" size="5" who="Mikael Pettersson " />
<person posts="2" size="5" who="Barrie Spence " />
<person posts="2" size="5" who="Philip Blundell " />
<person posts="2" size="5" who="Peter Liniker " />
<person posts="2" size="5" who="Richard Gooch " />
<person posts="2" size="5" who="Adam Rheaume " />
<person posts="2" size="5" who="Graham Murray " />
<person posts="2" size="5" who="Alex Buell " />
<person posts="2" size="5" who="Paul Ashton " />
<person posts="2" size="5" who="Catalin BOIE " />
<person posts="2" size="4" who="Benjamin LaHaise " />
<person posts="2" size="4" who="" />
<person posts="2" size="4" who="" />
<person posts="2" size="4" who="Fernando Barreto " />
<person posts="2" size="4" who=" (Guest section DW)" />
<person posts="1" size="57" who="" />
<person posts="1" size="38" who="Yves Lange " />
<person posts="1" size="23" who="Meng-Chyi Lin " />
<person posts="1" size="21" who="" />
<person posts="1" size="21" who="Sid Boyce " />
<person posts="1" size="20" who="Dimitris Michailidis " />
<person posts="1" size="19" who="Harald Hoyer " />
<person posts="1" size="17" who="Cody Pisto " />
<person posts="1" size="15" who="Aaron Tomb " />
<person posts="1" size="15" who="Mario Jorge Nunes Filipe " />
<person posts="1" size="15" who="&quot;Joseph W. Breu&quot; " />
<person posts="1" size="14" who="" />
<person posts="1" size="13" who="Stanislav Brabec " />
<person posts="1" size="13" who="Adam Sulmicki " />
<person posts="1" size="12" who="&quot;William R. Dieter&quot; " />
<person posts="1" size="11" who="Andrzej Krzysztofowicz " />
<person posts="1" size="10" who="Christopher Lott " />
<person posts="1" size="10" who="Reed Meyer " />
<person posts="1" size="10" who="NIIBE Yutaka " />
<person posts="1" size="9" who="Richard Sharman " />
<person posts="1" size="9" who="Vincenzo Capuano " />
<person posts="1" size="8" who="&quot;WANG,YIDING (HP-SanJose,ex1)&quot; " />
<person posts="1" size="8" who="Pete Clements " />
<person posts="1" size="7" who="Saleh Jamil " />
<person posts="1" size="7" who="DAVID SIMS 1 281 285 7792 " />
<person posts="1" size="7" who="" />
<person posts="1" size="7" who="" />
<person posts="1" size="7" who="&quot;PROSA team&quot; " />
<person posts="1" size="6" who="James Morris " />
<person posts="1" size="6" who="&quot;none&quot; " />
<person posts="1" size="6" who="Dean Salvadore " />
<person posts="1" size="6" who="Russell King " />
<person posts="1" size="6" who="&quot;Roberto A. Oppedisano&quot; " />
<person posts="1" size="6" who="&quot;Bryan Burns&quot; " />
<person posts="1" size="6" who="&quot;Chris Keys&quot; " />
<person posts="1" size="6" who="Harald Koenig " />
<person posts="1" size="5" who=" (H.J. Lu)" />
<person posts="1" size="5" who="Geert Uytterhoeven " />
<person posts="1" size="5" who="MIYOSHI Kazuto " />
<person posts="1" size="5" who="Martin Mares " />
<person posts="1" size="5" who="Robert Bowles " />
<person posts="1" size="5" who="Steve Willer " />
<person posts="1" size="5" who="&quot;Kevin Thomas&quot; " />
<person posts="1" size="5" who="&quot;Robert M. Hyatt&quot; " />
<person posts="1" size="5" who="David Ronis " />
<person posts="1" size="5" who="Scott Laird " />
<person posts="1" size="5" who="Richard Guenther " />
<person posts="1" size="4" who="Greg Hookey " />
<person posts="1" size="4" who="Matthias Wenzel " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Richard Black " />
<person posts="1" size="4" who="Jens Benecke " />
<person posts="1" size="4" who="Bernhard Kaindl " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Matthew Vanecek " />
<person posts="1" size="4" who="Rudolf Leitgeb " />
<person posts="1" size="4" who="&quot;Nietzel, Earle R&quot; " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="BIG " />
<person posts="1" size="4" who="Ari Inki " />
<person posts="1" size="4" who="heffnerd " />
<person posts="1" size="4" who="Hirokazu Takahashi " />
<person posts="1" size="4" who="tom " />
<person posts="1" size="4" who="&quot;Cormac McGaughey&quot; " />
<person posts="1" size="4" who="Daniel Kobras " />
<person posts="1" size="4" who="Timothy Wood " />
<person posts="1" size="4" who="Jason Rappleye " />
<person posts="1" size="4" who="Krzysztof Halasa " />
<person posts="1" size="4" who="Oliver Neukum " />
<person posts="1" size="4" who="Narendra Sankar " />
<person posts="1" size="4" who="&quot;Rus V. Brushkoff&quot; " />
<person posts="1" size="4" who="Joe " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Florian Kusche " />
<person posts="1" size="4" who=" (Steve Jankowski)" />
<person posts="1" size="4" who="&quot;P.A.M. van Dam&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Lee Hetherington " />
<person posts="1" size="3" who="Kazuto MIYOSHI " />
<person posts="1" size="3" who="Riley Williams " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Johannes Erdfelt " />
<person posts="1" size="3" who=" (G.W. Wettstein)" />
<person posts="1" size="3" who="Tim Walberg " />
<person posts="1" size="3" who="Ragnar Hojland Espinosa " />
<person posts="1" size="3" who="Miles Lane " />
<person posts="1" size="3" who="Andreas Jaeger " />
<person posts="1" size="3" who="&quot;Alex K.&quot; " />
<person posts="1" size="3" who="&quot;Petr Vandrovec Ing. VTEI&quot; " />
<person posts="1" size="3" who="&quot;Stephen Creswell&quot; " />
<person posts="1" size="3" who="Vince Weaver " />
<person posts="1" size="3" who="Mumford " />
<person posts="1" size="3" who="&quot;Anthony Barbachan&quot; " />
<person posts="1" size="3" who="&quot;Yves R. Crevecoeur&quot; " />
<person posts="1" size="3" who="Christer Weinigel " />
<person posts="1" size="3" who="Rick Hohensee " />
<person posts="1" size="3" who="Sam Roberts " />
<person posts="1" size="3" who=" (Zygo Blaxell)" />
<person posts="1" size="3" who="Ben Fennema " />
<person posts="1" size="3" who="Michal Jaegermann " />
<person posts="1" size="3" who="Boris Badenov " />
<person posts="1" size="3" who="&quot;Manuel J. Galan&quot; " />
<person posts="1" size="3" who="Gerard Saraber " />
<person posts="1" size="3" who="Aaron Tiensivu " />
<person posts="1" size="3" who="John Campbell " />
<person posts="1" size="3" who="&quot;Christian Groessler&quot; " />
<person posts="1" size="3" who="&quot;STEVE KENNEDY&quot; " />
<person posts="1" size="3" who="&quot;Andrew Morton&quot; " />
<person posts="1" size="3" who="Karl Peterson " />
<person posts="1" size="3" who="&quot;Michael Wm. Gilbert&quot; " />
<person posts="1" size="3" who="&quot;B. James Phillippe&quot; " />
<person posts="1" size="3" who="&quot;Jorge R. =?iso-8859-1?Q?Csap=F3?=&quot; " />
<person posts="1" size="3" who="Ward Vandewege " />
<person posts="1" size="3" who="Graydon " />
<person posts="1" size="3" who="Dick Streefland " />
<person posts="1" size="3" who=" (Bob_Tracy)" />
<person posts="1" size="3" who="&quot;Leslie F. Donaldson&quot; " />
<person posts="1" size="3" who="Giacomo Mulas " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="&quot;Schoder, Markus&quot; " />
<person posts="1" size="3" who="Gaddoni Marco " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="&quot;Enrique Bernal&quot; " />
<person posts="1" size="3" who="Gergely Madarasz " />
<person posts="1" size="3" who="Peter Clark " />
<person posts="1" size="3" who="Dave Mielke " />
<person posts="1" size="3" who="Russ Savela " />
<person posts="1" size="3" who="Rejo " />
<person posts="1" size="3" who="Jeff DeFouw " />
<person posts="1" size="3" who="Ross Mikosh " />
<person posts="1" size="3" who="Andreas Dilger " />
<person posts="1" size="3" who="&quot;skalir scalar&quot; " />
<person posts="1" size="3" who="&quot;Alberto Mardegan&quot; " />
<person posts="1" size="3" who="Bill Anderson " />
<person posts="1" size="3" who="&quot;Forever shall I be.&quot; " />
<person posts="1" size="3" who="(NIS) HirokazuTakahashi " />
<person posts="1" size="3" who="Jeff Epler " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Florian Weimer " />
<person posts="1" size="3" who="Kevin Kunzelman " />
<person posts="1" size="3" who="&quot;Homme R. Bitter&quot; " />
<person posts="1" size="3" who="David Dyck " />
<person posts="1" size="3" who=" (Marino Miculan)" />
<person posts="1" size="3" who="Steve Kemp " />
<person posts="1" size="3" who="Robert Redelmeier " />
<person posts="1" size="3" who="Lawrence Manning " />
<person posts="1" size="3" who="Paul Black " />
<person posts="1" size="3" who="Drizzt " />
<person posts="1" size="3" who="Andreas Schwab " />
<person posts="1" size="3" who="Fumitoshi UKAI " />
<person posts="1" size="3" who="Aaron Burt " />
<person posts="1" size="3" who=" (Dick Streefland)" />
<person posts="1" size="3" who="Hans Reiser " />
<person posts="1" size="3" who="&quot;Mike A. Harris&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Paul Rusty Russell " />
<person posts="1" size="3" who="Ulrich Drepper " />
<person posts="1" size="3" who="Nathan Hand " />
<person posts="1" size="3" who="root " />
<person posts="1" size="3" who="The Lost Wizard " />
<person posts="1" size="3" who="&quot;Gavin M. Roy&quot; " />
<person posts="1" size="3" who="&quot;Ken Clark&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="A V Naga Muni Reddy " />
<person posts="1" size="3" who="The Doctor What " />
<person posts="1" size="3" who="Konrad Podloucky " />
<person posts="1" size="3" who="Catalin Muresan " />
<person posts="1" size="3" who="&quot;Tommy Wareing&quot; " />
<person posts="1" size="3" who="Dave DeMaagd " />
<person posts="1" size="3" who="Jeff Mcadams " />
<person posts="1" size="2" who="Allen Brown " />
<person posts="1" size="2" who="Armin Schindler " />
<person posts="1" size="2" who="Peter Rival " />
<person posts="1" size="2" who="Bill Huey " />
<person posts="1" size="2" who="Robert Walsh " />
<person posts="1" size="2" who=" (Chris Adams)" />
<person posts="1" size="2" who="Mark Hagger " />
<person posts="1" size="2" who="Robert Cardell " />
<person posts="1" size="2" who="&quot;Daniel J Blueman&quot; " />
<person posts="1" size="2" who="&quot;Manfred Spraul&quot; " />
<person posts="1" size="2" who="Ilya Tsindlekht " />
<person posts="1" size="2" who="&quot;Andrew R. Baker&quot; " />
<person posts="1" size="2" who="Brian " />
<person posts="1" size="2" who="Christian Ehrhardt " />
<person posts="1" size="2" who="Ben McCann " />
<person posts="1" size="2" who="=?iso-8859-1?Q?Gr=E9goire?= FAVRE " />
<person posts="1" size="2" who="Michael Harnois " />
<person posts="1" size="2" who="Marc Mutz " />
<person posts="1" size="2" who="Alan Cox " />
<person posts="1" size="2" who="David Rees " />
<person posts="1" size="2" who="Daniel Kabs " />
<person posts="1" size="2" who="Thomas Lawenius " />
<person posts="1" size="2" who="&quot;=?iso-8859-9?B?1lpDQU4gVEnQTEk=?=&quot; " />
<person posts="1" size="2" who="&quot;G. Hugh SONG&quot; " />
<person posts="1" size="2" who=" (Arjan van de Ven)" />
<person posts="1" size="2" who="Mark Wells " />
<person posts="1" size="2" who="Matti Aarnio " />
<person posts="1" size="2" who="Adam Fritzler " />
<person posts="1" size="2" who="Nomad the Wanderer " />
<person posts="1" size="2" who="Sam Vilain " />
<person posts="1" size="2" who="&quot;Mehta, Hiren&quot; " />
<person posts="1" size="2" who="Shane Shrybman " />
<person posts="1" size="2" who="Juan Jose Casero " />
<person posts="1" size="2" who="Joerg Pommnitz " />
<person posts="1" size="2" who="Arni Raghu " />
<person posts="1" size="2" who="BOSZORMENYI Zoltan " />
<person posts="1" size="2" who="&quot;James M. Mills&quot; " />
<person posts="1" size="2" who="&quot;George D. Kirschbaum&quot; " />
<person posts="1" size="2" who="James Fidell " />
<person posts="1" size="2" who="&quot;Christopher E. Brown&quot; " />
<person posts="1" size="2" who=" (Hans-Joachim Baader)" />
<person posts="1" size="2" who="&quot;Adam J. Richter&quot; " />
<person posts="1" size="2" who="Martin Krzywinski " />
<person posts="1" size="2" who="Mike Frisch " />
<person posts="1" size="2" who="Helge Deller " />
<person posts="1" size="2" who="&quot;Tim (Pass the Prozac) Sailer&quot; " />
<person posts="1" size="2" who="Chris Evans " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Meelis Roos " />
<person posts="1" size="2" who="SEJKORA Martin " />
<person posts="1" size="2" who="&quot;Nico Schmoigl&quot; " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Stephen Rothwell " />
<person posts="1" size="2" who="tai " />
<person posts="1" size="2" who="Felipe Eduardo Gonzalez " />
<person posts="1" size="2" who="Saleh Jamil " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="David Arendt " />
<person posts="1" size="2" who="Chris Wedgwood " />
<person posts="1" size="2" who="Dong Liu " />
<person posts="1" size="2" who="Jarno Paananen " />
<person posts="1" size="2" who="Steven Suson " />
<person posts="1" size="2" who="David Ronis " />
<person posts="1" size="2" who="&quot;Joseph W. Breu&quot; " />
<person posts="1" size="2" who="I Lee Hetherington " />
<person posts="1" size="2" who="Andrew Gormanly " />
<person posts="1" size="2" who="Patrick Bauer " />
<person posts="1" size="2" who="Hoang Manh Hung " />
<person posts="1" size="2" who="Ildar Khabibrakhmanov " />
<person posts="1" size="2" who="Petru Paler " />
<person posts="1" size="2" who="Joerg =?iso-8859-1?Q?Str=F6ttchen?= " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;Barry K. Nathan&quot; " />
<person posts="1" size="2" who="&quot;Davide Libenzi&quot; " />
<person posts="1" size="2" who="Alexander Sokolov " />
<person posts="1" size="2" who="Mofeed Shahin " />
<person posts="1" size="2" who="Nina / Cliff Lesher " />
<person posts="1" size="2" who="Rene Chaddock " />
<person posts="1" size="2" who="Seth Van Oort " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Jason Nordwick " />
<person posts="1" size="2" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="1" size="2" who="Neal Becker " />
<person posts="1" size="1" who="&quot;E. Hegstrom&quot; " />

</stats>

<section
  title="Linux On Pentium III"
  subject="need PIII advices"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_05/msg00145.html"
  posts="2"
  startdate="30 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>

<mention>Kurt Garloff</mention>
<mention>Doug Ledford</mention>

<p>FAVRE Gregoire got a Pentium III and was curious how he could optimize a
kernel for it. Lee Hetherington replied that Doug Ledford had some new PIII
patches, but that Lee hadn't tried them yet. He added, <quote who="Lee
Hetherington">I am currently running patch
fx-2.2.5-A4 that Kurt Garloff sent me, and that is running fine. You will
need to specify PIII at configure time. To actually assemble the new
MMX2/KNI/SSE/XMM (insert your favorite name here) instructions you will need
binutils-2.9.1.0.23+. I am using 2.9.1.0.25.</quote></p>

</section>

<section
  title="ext2fs Patches For Speed And Recovery"
  subject="[PATCH] roubust ext2fs against failure"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00248.html"
  posts="12"
  startdate="14 Aug 1999 00:00:00 -0800"
  enddate="27 Aug 1999 00:00:00 -0800"
>
<topic>FS: ext2</topic>

<p>Hirokazu Takahashi gave a pointer to his <a
href="http://www03.u-page.so-net.ne.jp/da2/h-takaha/">Linux: Robust Ext2fs
Against Faults</a> page, which had a patch (against 2.2.x and 2.3.x) to make
ext2fs recover more easily from crashes. It also significantly improved
performance times for file operations. The web page has a lot of information
about the patch, but in his post, he explained:</p>

<quote who="Hirokazu Takahashi">

<p>My first aproach to
implement them is 'fail-safe and fail-soft':</p>

<ul>

<li>write meta-data back to disk in safe order.</li>

<li>initialize meta-data on disk at first use.</li>

<li>keep link-count of inodes zero when creating files.</li>

</ul>

<p>Second, minimize loss of performance:</p>

<ul>

<li>it isn't neccesary to synhronous-update inode-bitmaps and block-bitmaps.
E2fsck will repair them perfectly.</li>

<li>it isn't neccesary to synhronous-update inode and indirect-block, this
does'nt cause any problems.</li>

</ul>

</quote>

<p>Sang-yong Suh thought the ideas were good, and asked if the performance
improvements applied to "async" mounted partitions, but Hirokazu replied
that no, only partitions mounted "sync" would see those benefits. "async"
mounted partitions would have the same performance as normal Linux.</p>

<p>Hubert Tonneau tried the patch on 2.2.12-pre4 and reported good success, but
added, <quote who="Hubert Tonneau">this is the kind
of patch that I'd really like to see comments on from Linux big names.
Either it's conceptualy broken and I'd (and probably many others) like to
know why, or it's the kind of thing that we definetly want in all standard
trees, even if it's not 100% granting agains meta data corruption.</quote></p>

<p>Theodore Y. Ts'o came into the conversation at one point, regarding the
peripheral issue of dealing with file corruption after crashes. He didn't
weigh in strongly either for or against the patches, but one of his comments
was, <quote who="Theodore Y. Ts'o">the funny thing is
that if you have to run e2fsck after each system crash anyway, it's not
worth it to do some of the things detailed in the tech note. For example, it
talks about wanting to clear the indirect block to disk before linking it in
to the inode, lest garbage in the indirect block look like valid blocks, and
so you have blocks claimed by multiple inodes. True --- but e2fsck detects
this case and fixes it. So it's not at all clear it's worth the performance
hit to clear the indirect block first.</quote></p>

</section>

<section
  title="Many SMP Races In 2.3.13"
  subject="[patch] possible SMP races all over the place in wait_event interface"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_03/msg00482.html"
  posts="12"
  startdate="16 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>
<topic>SMP</topic>

<mention>Andrea Arcangeli</mention>
<mention>Linus Torvalds</mention>

<p>Andrea Arcangeli couldn't believe his eyes, but it seemed like there were
SMP race conditions in the wait_event code, requiring read and write
ordering enforcement to be added to many spots in the source. He posted a
sample of such a change against 2.3.13; Linus Torvalds replied that part of
the patch was not necessary, but that the rest was indeed a problem. Andrea
posted a large patch against 2.3.13 and various folks made some corrections.</p>

</section>

<section
  title="Magic Sysrq For Serial Consoles"
  subject="PATCH: magic sysrq for serial console"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_03/msg00712.html"
  posts="7"
  startdate="18 Aug 1999 00:00:00 -0800"
  enddate="25 Aug 1999 00:00:00 -0800"
>

<mention>Scott Laird</mention>
<mention>Linus Torvalds</mention>

<p>Miquel van Smoorenburg posted a patch that would make sysrq work on a serial
console. He explained, <quote who="Miquel van Smoorenburg">You just send a BREAK and then within 5 seconds a command
key. You need to enable both serial console support and magic sysrq support
in the kernel to use this. You do need a getty or anything else running on
the serial device, since the serial driver only sees interrupts and BREAKs
if the port is actually opened!</quote></p>

<p>A number of folks burst into applause, and Scott Laird posted an additional
patch for redisplaying the last 1k of the message ring buffer and for faking
a Ctrl-Atl-Delete. Miquel liked the addition and said he'd add it to his
submission to Linus Torvalds later in the week.</p>

</section>

<section
  title="Ramdisks Blocksize And 2.3.x Problems"
  subject="[patch] ramdisk blocksize"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_03/msg01111.html"
  posts="19"
  startdate="20 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>
<topic>Big Memory Support</topic>
<topic>FS: ext2</topic>
<topic>Security</topic>
<topic>Virtual Memory</topic>

<p>Andrea Arcangeli posted a patch to fix a bug that was causing the ramdisk
driver to crash when given blocksizes larger than 512 bytes. He also offered
some interesting advice:</p>

<quote who="Andrea Arcangeli">

<p>People who wants to use
extensively ramdisks should use a blocksize of PAGE_SIZE to avoid the
fragmentation of not-freeable memory. NOTE: you can't generate a 4k
filesystem using a blocksize of 1k simply because the buffer-size used from
mke2fs must be the same used by the filesystem code otherwise you won't read
on the memory you written before (on a ramdisk you can't emulate larger
softblocksize). So to use a blocksize of 4k you must:</p>

<pre>        insmod rd rd_blocksize=4096
        mke2fs -b 4096 /dev/ramdisk
        mount /dev/ramdisk /mnt</pre>

<p>then you'll avoid the fragmentation of protected buffers (really I don't
ever know if the ramdisk driver will work correctly on 2.3.14-pre2 but
that's a different issue and it has only to deal with the VM not with the
ramdisk internals that have only to set the protected bit upon lowlevel
writes).</p>

<p>Insmodding rd without parameters you'll use a hardblocksize of 1k and
everything will work as usual. btw currently rd.c works as usual even with
512 byte of hardblocksize because both the blockdevice layer, and ext2fs
prefer to start reading/writeing with a softblocksize of 1k (and mke2fs
generate filesystem with 1k blocksize as default). With the fixes now the
hardblocksize and the softblocksize will be both set to 1k and this looks
cleaner to me.</p>

<p>The last issue is with the ramdisk images: the helper function
(identify_ramdisk_image) that reads the superblock only check how many
blocks it contains but it doesn't check the blocksize of the filesystem. So
basically you must use a blocksize of 1k if you want rd_load_image to work
properly. At least now it's a know feature and the check at the end of the
patch will be done right.</p>

</quote>

<p>Regarding ramdisks under 2.3.x, Bradley D. LaRonde said that according to
the tests he had seen, the ramdisk driver was broken past 2.3.6; he posted a
hack from Mike Klar that worked but was not a full fix; and posted a
fascinating explanation (by Mike) about what was going wrong:</p>

<quote who="Mike Klar">

<p>OK, here's a summary of what I
see to be the problem with ramdisk as of 2.3.7. Note that it's partly
predicated on a not-so-good understanding of the page cache, so some of the
analysis is very subject to error:</p>

<p>First the problem:  With kernel version 2.3.7 , and continuing through the
current 2.3.13 version, the ramdisk driver does not function properly when
mounted as root, whether loaded from initrd or from a floppy disk. Non-root
ramdisk can also function improperly if direct device IO and file IO are
both used on a ramdisk (for example, by loading a filesystem image by dd,
then mounting it and attempting to read files). I believe this is indicative
of a broader, but more subtle, problem that could affect any device.</p>

<p>The specific symptoms of the ramdisk problem: The filesystem is recognized,
mounts properly, directory reads are OK, but file reads return bogus data.
When using ramdisk as root, the kernel fails with "Kernel panic: No init
found. Try passing init= option to kernel." regardless of whether there is a
valid init= option present. Debugging has revealed that the kernel does find
the directory entry for the init executable, but when it reads the
executable file, it gets back all 00s, and so it rejects the file as
non-executable. If a (non-root) ramdisk is prepared with mke2fs, mounted,
files are written, then read, that appears to work OK.</p>

<p>The short version of why it's happening:  Ramdisk keeps its data in the
buffer cache, file IO checks the page cache. The file reads are missing in
the page cache, and creating new buffer entries (filled from the ramdisk
device, which will return 00s), even though the data already exists in the
buffer cache.</p>

<p>The longer version of why it's happening:  The rd device driver itself
doesn't know anything about the actual data, it lets the buffer cache worry
about storing the data and servicing reads. Whenever a read request actually
gets to the rd device, it assumes that since it must have missed in the
buffer cache, it's a new block that was never accessed before, so it just
returns 00s.</p>

<p>When a ramdisk is mounted as root, the image is loaded into the ramdisk at
boot-time via direct device IO, which creates buffer cache entries, but not
page cache entries.</p>

<p>File IO reads then check the page cache, which keeps its data in the buffer
cache, but is searched in a separate hash. If the data wasn't written via
file IO, it will miss in the page cache search and issue a read request
directly to the device. The ramdisk thinks it missed in the buffer cache, so
it returns 00s. This results in 2 separate buffers for the same block on the
ramdisk, only one of which has a page cache entry. Because of the way the
ramdisk works, the second copy is wrong (filled with 00s).</p>

<p>This problem could affect any other device that mixes direct device IO and
file IO as well, but the consequences are more subtle. If a buffer cache
(but not a page cache) entry exists for a particular block of a device, then
a file IO read (or even worse, a write) takes place to that same block, the
read will miss in the page cache and create new buffers. For any device
other than ramdisk, the new buffers will be filled from the physical device
itself, so the data at least has a good chance of being valid. You still
wind up with 2 separate buffers claiming to represent the same block on the
device, not a good thing. Aside from the inefficiency (both space and
speed), if those 2 buffers ever get to hold different versions of the data
(which I assume would happen if a write takes place to that block), you've
got big big trouble.</p>

<p>Some possible solutions:  The obvious answer to the ramdisk problem would
seem to be having it store its data in the page cache, but that would
probably result in throwing out many of the advantages of the current
ramdisk implementation (which is simple, efficient, and clean), and also
wouldn't do anything about the broader problem. I don't like this approach
because I think the problem is with the page cache implementation, not with
the ramdisk implementation.</p>

<p>On the broader problem, I don't see any alternative to either checking the
buffer cache on page cache misses, or fundamentally changing either the
buffer cache or page cache implementations. If the buffer cache is checked
on page cache misses, what to do if a block hits in the buffer cache, but
not the page cache, is a fuzzier issue. Should the old buffer be flushed and
invalidated, then a new buffer created and filled from the device? That
seems unnecessarily inefficient, and would still leave the current ramdisk
broken. Should the new buffer be filled from the old buffer, then the old
buffer invalidated? Or should the page cache entry be created to use the old
buffer without moving the data (which is not nearly as simple as it sounds)?
Or something I haven't thought of?</p>

</quote>

<p>After some further discussion, Andrea posted a patch, and said, <quote who="Andrea Arcangeli">This patch will fix the ramdisk
but I found some major bug (that can lead to data corruption) in the
page/buffer cache (not ramdisk related) and I think that once I'll have
fixed them the ramdisk won't need any change. So take the below patch as a
temp (wrong) fix.</quote></p>

<p>He replied to himself with a patch an hour and a half later, explaining:</p>

<quote who="Andrea Arcangeli">

<p>Ok, I just have a
preliminary patch that try to fix the potential data corruption that can
happens in 2.3.15-pre1 and previous 2.3.x kernels (and that will
automagically fix the ramdisk driver without changing its internals).</p>

<p>The corruption bug (that has nothing to do with the ramdisk driver) is the
use of truncate_inode_page() to shrink the icache. If an inode is not in-use
and it's hashed in the icache, it can have dirty or protected pages
allocated in its page cache.</p>

<p>So when we shrink the icache so we need to release also all the page-cache
pages that belongs to such inode, we can't simply mark all the
page-cache-overlapped-buffers as clean in flushpage. Otherwise we'll lose
data-writes and this will lead to data corruption on disk.</p>

<p>Previously (in 2.2.x) it was possible to use truncate_inode_pages without
differences (both for shrink the icache and for truncate(2)/unlink), since
the page cache was only there for reads, and both writes and protected
buffers was placed in the buffer cache. This is not possible anymore since
now the pagecache has dirty or protected data in it.</p>

<p>NOTE: with my patch applyed the blockdevice writes are still not
synchronized with filesystem writes (this avoids us having to hash in the
buffer-hashtable the page-cache-overlapped-buffers). So if you read from the
blockdevice layer you shouldn't expect to read the last uptodate data and if
you write to the blockdevice layer your writes can be lost. So just choose
if to use a blockdevice in raw mode or with a filesystem on the top of it,
before start using it ;).</p>

<p>But with the patch applyed it should be guaranteeed that if you unmount a
ramdisk, and _then_ you read the ramdisk from the blockdevice layer, you'll
read the right data (the page-cache will be correctly converted to regular
buffers and not to orphaned-lost buffers).</p>

<p>Please test the ramdisk driver heavily with only this patch applyed against
2.3.15-pre1. Try to generate ramdisk images using the ramdisk itself. Make
sure to always unmount before accessing the ramdisk via /dev/ram*. If you
get in troubles give me a way to reproduce please ;).</p>

</quote>

<p>After a bit of a bug-hunt, he posted an incremental patch to be applied on
top of the previous one, and then another. At this point there was some
confusion that was not resolved in the thread. Linus Torvalds pointed out
that Andrea's third patch would cause major filesystem corruption that fsck
would not catch. Andrea replied with the explanation that there had been a
hack applied to the kernel between 2.2.x and 2.3.x that would solve the
problem he was addressing, but would allow an exploitable DoS attack. He
felt his solution was the "proper" one and posted the full patch (no
incremental pieces) to avoid confusion. Linus replied that there was no DoS
exploit, adding <quote who="Linus Torvalds">You seem to have complicated the
code just because you didn't notice that we already handled it with a very
simple test</quote>. Andrea posted some code to leak inodes in 2.3.15pre2,
explaining, <quote who="Andrea Arcangeli">run the above proggy on a bigmem
machine and you'll leak lots of memory in unfreeable inodes. With the
default setting if inode-max == 16376 I am been able to enlarge the icache
to 30000 inodes (but only because I have only 128mbyte of ram, if
shrink_mmap triggers leather then you'll have far more fun). 30000 inodes
are at least 8mbyte of unfreeable memory. You'll have to reboot to shrink
the icache.</quote></p>

<p>Linus said he'd accept patches to make inodes freeable, adding, <quote
who="Linus Torvalds">It has actually been on my list of things to do for a
while, but I never got around to it. If you make inodes freeable, ALL of the
inode complexity just goes away (forget about the inode-max stuff and the
nasty logic to make sure that we try to free dentries etc even if we have
tons of memory left),</quote> and said that Andrea was working around the
problem.</p>

<p>Andrea pointed out that he had been trying to fix the ramdisk driver; and
the thread pretty much died.</p>

</section>

<section
  title="ISDN Still Unsettled"
  subject="Huge patches such as ISDN"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00009.html"
  posts="12"
  startdate="22 Aug 1999 00:00:00 -0800"
  enddate="25 Aug 1999 00:00:00 -0800"
>
<topic>Networking</topic>

<mention>Linus Torvalds</mention>

<p>There was a bit of discussion about ISDN this week, regarding its inclusion
in the Linus Torvalds tree. Linus had nothing to say about it this time,
which would seem to indicate that the question remains, will the ISDN people
start presenting him with timely patches. And apparently the answer is, not
yet.</p>

</section>

<section
  title="General-Purpose PCI Driver"
  subject="General purpose serial PCI driver available for testing"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00034.html"
  posts="4"
  startdate="22 Aug 1999 00:00:00 -0800"
  enddate="25 Aug 1999 00:00:00 -0800"
>
<topic>PCI</topic>

<p>Otto Moerbeek gave a link to <a
href="http://people.a2000.nl/omoerbe/">Otto's LinuxPPC Goodies page</a> and
announced a patch for the serial driver to provide easy support for any
"dumb" serial PCI card. Apparently there were some behind-the-scenes
replies, because he posted a few updates shortly thereafter.</p>

</section>

<section
  title="Sony MiniDisc Filesystems"
  subject="Streaming disk I/O kills file buffering and makes Linux unusable"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00154.html"
  posts="21"
  startdate="23 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>

<p>In the course of discussion, Chuck Lever gave an interesting critique:</p>

<quote who="Chuck Lever">

<p>i've been very impressed
with the Sony MiniDisc file system -- it's a simplified file system that
transparently manages data on MO MiniDiscs.</p>

<p>the name space is flat -- you can have 1 to 255 separate "tracks", and i've
seen this system used for monaural or up to 8 concurrent channels of
recording, on 128M MO disks. i'm no expert, but i'd bet a faster, larger
disk could be used to boost the number of concurrent channels. it's probably
just a matter of how many channels can be multiplexed into a track's block
stream.</p>

<p>a simple TOC-based block-allocation system is used.  the TOC is stored in
the disk writer's volatile memory, and written out when the disk is ejected;
this eliminates the extra seeks involved with metadata updates. new blocks
are allocated sequentially from free space at the end of the disk, or
eventually from blocks freed by erasing tracks of previously recorded
material. a text area of about 2K per disk is reserved for tagging each
track with "title" data.</p>

<p>for managing a large disk, one might extend such a file system to handle
more tracks, more blocks, and generate a periodic TOC update that writes the
TOC into special areas allocated across the entire disk to minimize seek
latency.</p>

<p>this kind of system would eliminate the need for indirect blocks or even
extent-based allocation, and keep metadata updates very cheap. it would also
make it easy to combine, divide, and otherwise edit the data in the
tracks.</p>

</quote>

</section>

<section
  title="VAIO Compatibility Questions With 2.3.11 And Higher"
  subject="Problems with Linux 2.3.1[1-4] on a Sony VAIO laptop"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00184.html"
  posts="7"
  startdate="23 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>

<p>Theodore Y. Ts'o reported that his VAIO 505TX was refusing to boot any
kernel after 2.3.10; He added, <quote who="Theodore Y. Ts'o">I've isolated it to approximately 150k worth of diffs, but
unfortunately I can't narrow it down any further since the changes involve
moving away from a single TSS per process to a single TSS per CPU, and so
the changes touch a huge number of files and are interrelated, so I can't
pull one out without pulling them all out.</quote></p>

<p>Thomas Davis also had a 505TX but had no trouble getting 2.3.12 running on
it. Ted replied that he was using LILO v. 21, with 128M RAM and 6G HD space.
Thomas replied that he had 64M RAM, 6.4G HD, APM turned on, linux 2.3.13
(moving right along), pcmcia-cs.09-Aug-99, and BIOS Version R0113R5. End Of
Thread.</p>

</section>

<section
  title="APM And SMP"
  subject="Odd APM oops"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00207.html"
  posts="8"
  startdate="23 Aug 1999 00:00:00 -0800"
  enddate="25 Aug 1999 00:00:00 -0800"
>
<topic>SMP</topic>

<p>Mike Ricketts found that "power off on shutdown" was causing an oops on his
SMP system running 2.3.13 or 2.3.14. The oops didn't happen prior to 2.3.13.
In the course of discussion, Alan Cox said, <quote who="Alan Cox">power off
on shutdown is not SMP safe. It kind of happens to work on a lot of boards.
If making that APM call reformats your disk and plays tetris on an SMP box
the bios vendor is within spec (if a little peculiar). No APM call of any
kind is SMP safe.</quote></p>

<p>Elsewhere it came out that the kernel was supposed to disable APM if it
detects an SMP system, and Stephen Rothwell (the APM maintainer) said,
<quote who="Stephen Rothwell">BUT ... The APM code
got "hacked" in 2.3.13 (not by me) and probably doesn't work at all at the
moment. I am trying to find time to send Linus a patch that gets it back to
where it was. In particular, the check that protected SMP systems from
running APM (except for power off) was moved and I haven't had time to
figure out how it should be fixed.</quote></p>

</section>

<section
  title="Minimal DOS-type Partition Table Specification"
  subject="Minimal partition table specification"
  archive="../unavailable.html"
  posts="1"
  startdate="24 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>

<p>Andries Brouwer gave a pointer to his <a
href="http://www.win.tue.nl/~aeb/partitions/partition_tables.html">Minimal
partition table specification</a>, i.e., <quote who="Andries Brouwer">the minimal information required to construct firmware that
can interpret current DOS-type partition tables.</quote></p>

</section>

<section
  title="Explanation Of Some Complex Assembly"
  subject="complicated inline assembly"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00203.html"
  posts="6"
  startdate="23 Aug 1999 00:00:00 -0800"
  enddate="25 Aug 1999 00:00:00 -0800"
>
<topic>Assembly</topic>

<p>in include/asm-i386/unistd.h, Hiren Mehta found the following assembly code
and asked for an explanation:</p>

<pre>#define _syscall0(type,name) \
type name(void) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
        : "=a" (__res) \
        : "0" (__NR_##name)); \
if (__res &gt;= 0) \
        return (type) __res; \
errno = -__res; \
return -1; \
}</pre>

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

<quote who="Richard B. Johnson">

<p>This is the
user-to-kernel interface for the kernel system calls. It takes the
system-call number, puts it into register eax as a function code and
executes the software interrupt 80 hex. Upon return, it checks for a
negative value, also in eax. If it is negative, it puts the negative of the
return value (now positive) into global errno, and returns -1.</p>

<p>Note that this is a MACRO so substitution rules apply for 'type' and 'name'
Type would be typically 'int' and 'name' would be system-call
number.</p>

</quote>

<p>Jeff Epler compiled the code and disassembled the result, saying:</p>

<quote who="Jeff Epler">

<p>Look at the code generated by
this (by syscall0(int sync)):</p>

<pre>sync:
        movl $36,%eax
        int $0x80
        testl %eax,%eax
        jge .L3
        negl %eax
        movl %eax,errno
        movl $-1,%eax
        ret</pre>

<p>Perform a syscall with __NR_sync in eax.  If the result is &gt;=0 (success),
then return that value. Else, set errno to -eax and return -1.</p>

<p>Other syscalls are similar, except some other values are loaded into
registers (up to 5 or 6 values -- not eax or esp, probably not ebp).</p>

</quote>

<p>And Oliver Xymoron gave the equivalent C code (with some help from Mike
Ricketts):</p>

<quote who="Oliver Xymoron">

<p>_syscall0(foo_t, foo)
expands into approximately:</p>

<pre>foo_t foo(void)
{
        long result;

        /* make the call */
        result=call_interrupt_vector_0x80(__NR_foo);

        if(result&gt;=0) return (foo_t) result;

        ITYM errno=result;

        return -1;
}</pre>

</quote>

<font color="red">

<p>However, Peter Van Eynde wrote to me after KT's publication,
referring to Richard's comments above:</p>

<blockquote>

<p>"About the issue of this week, I might add to point 12 that the explanations
given are not all true. The kernel does NOT return a "negative number" in
case of error. I'm writing a direct-system-call system for CMUCL and had to
search long before I found this comment in the glibc2.1 sources:"</p>

<pre>
| /* Linux uses a negative return value to indicate syscall errors,
|    unlike most Unices, which use the condition codes' carry flag.
|
|    Since version 2.1 the return value of a system call might be
|    negative even if the call succeeded.  E.g., the seek' system call
|    might return a large offset.  Therefore we must not anymore test
|    for &lt; 0, but test for a real error by making sure the value in %eax
|    is a real error number.  Linus said he will make sure the no syscall
|    returns a value in -1 .. -4095 as a valid result so we can savely
|    test with -4095.  */
</pre>

</blockquote>

</font>

</section>

<section
  title="2.2.11 Broken; Development Process Criticized"
  subject="2.2.11 unstable?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00228.html"
  posts="14"
  startdate="23 Aug 1999 00:00:00 -0800"
  enddate="25 Aug 1999 00:00:00 -0800"
>

<mention>Jon Masters</mention>

<p>Jon Masters upgraded from 2.2.10 to 2.2.11 and his system started locking
up, programs started dying, and his network would often die or slow down.
Rui Sousa thought it was a hardware problem, but Barry K. Nathan gave a
pointer to the <a
href="http://www.linux.org.uk/VERSION/relnotes.2211.html">Linux 2.2.11
Release Notes</a> and said, <quote who="Barry K. Nathan">It's a known bug in 2.2.11, actually. It's been fixed in
2.2.12 (which will be out RSN).</quote></p>

<p>M Carling had a more general critique of why this problem occurred:</p>

<quote who="M Carling">

<p>If you take a look at the
changes, it's not too difficult to see why the "stable" kernels are not as
stable as one might like. Lots of changes get in that are not strictly bug
fixes. The most direct problem is the one you point out: that the "stable"
kernels are unstable. However, there are other problems with a policy of
back-porting new features to "stable" kernels. It reduces the incentive to
get the current development kernel closed, thereby slowing the development
cycle. I think this is a big part of the reason why 2.2 arrived more than
two years later than 2.0. In other words, if new features were not added to
"stable" kernels, then Linus would not be under so much pressure to continue
accepting patches to the developmental kernels.</p>

<p>Enforcing a policy of accepting only bug fixes into the "stable" kernels
would have three effects:</p>

<ol>

<li>the "stable" kernels would become more stable, probably much more
stable,</li>

<li>the pressure on Linus (and others) would shift from keeping the
development kernel going longer to getting it closed sooner, which would
shorten the development cycle (I think this faster development cycle would
result in many features getting into the stable kernels sooner rather than
later), and</li>

<li>would make Linux much more palatable to enterprise IT departments.</li>

</ol>

<p>People needing new features right away could either patch the stable kernel
themselves or, in the case of popular features, use Alan's ac
patches.</p>

</quote>

<p>Alan Cox replied that the bugs in 2.2.11 were unrelated to back-ported
features, adding, <quote who="Alan Cox">they were caused by other bug fixes
to nasty bugs that didnt die before 2.2.0</quote></p>

</section>

<section
  title="Rebuilding Partition Tables"
  subject="Question: finding boundaries of ext2fs-partitions."
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00231.html"
  posts="3"
  startdate="24 Aug 1999 00:00:00 -0800"
  enddate="26 Aug 1999 00:00:00 -0800"
>
<topic>BSD: FreeBSD</topic>
<topic>FS: FAT</topic>
<topic>FS: NTFS</topic>
<topic>FS: ext2</topic>

<mention>Andries Brouwer</mention>

<p>In the course of discussion, Theodore Y. Ts'o posted a list, compiled by
Andries Brouwer, of tools to help rebuild partition tables. Although Andries
wrote the list a few months ago, Ted felt it was still very much uptodate:</p>

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

<ol>

<li><strong>findsuper</strong> is a small utility that finds blocks with the
ext2 superblock signature, and prints out location and some info. It is in
the non-installed part of the e2progs distribution.</li>

<li><strong>rescuept</strong> is a utility that recognizes ext2 superblocks,
FAT partitions, swap partitions, and extended partition tables; it prints
out information that can be used with fdisk or sfdisk to reconstruct the
partition table. It is in the non-installed part of the util-linux
distribution.</li>

<li><strong>fixdisktable</strong> (<a
href="http://bmrc.berkeley.edu/people/chaffee/fat32.html">http://bmrc.berkeley.edu/people/chaffee/fat32.html</a>)
is a utility that handles ext2, FAT, NTFS, ufs, BSD disklabels (but not yet
v1 Linux swap partitions); it actually will rewrite the partition table, if
you give it permission.</li>

<li><strong>gpart</strong> (<a
href="http://home.pages.de/~michab/gpart/">http://home.pages.de/~michab/gpart/</a>)
is a utility that handles ext2, FAT, Linux swap, HPFS, NTFS, FreeBSD and
Solaris/x86 disklabels, minix, reiser fs; it prints a proposed contents for
the primary partition table, and is well-documented.</li>

</ol>

</quote>

</section>

<section
  title="Bug Introduced Into 2.3.x Message Queue"
  subject="2.3.14 continues to break perl with libc5 (or does 2.3.14 refuse to support libc5?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00290.html"
  posts="4"
  startdate="24 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>

<p>David Dyck reported that he hadn't been able to compile the newer 'perl'
sources under 2.3.x recently. Under 2.2.10ac12 there was no problem. Alan
Cox explained, <quote who="Alan Cox">The message queue code was changed by
someone without realising the damage done I suspect. It is actually far
worse than not compiling. Existing programs using message queues do not work
on 2.3.x either because a structure copied into the end users program has
totally changed size/layout.</quote> Alan replied to himself half-an-hour
later with a patch. EOT.</p>

</section>

<section
  title="devfs Version 118 Is Available"
  subject="[PATCH] devfs v118 available"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00373.html"
  posts="1"
  startdate="24 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>
<topic>FS: devfs</topic>

<mention>Richard Gooch</mention>

<p>Richard Gooch gave a pointer to his <a
href="http://www.atnf.csiro.au/~rgooch/linux/kernel-patches.html">kernel
patches page</a> and announced the latest devfs patch, against 2.3.15-pre3.</p>

</section>

<section
  title="PPP Over Ethernet"
  subject="PPPoE?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00381.html"
  posts="2"
  startdate="24 Aug 1999 00:00:00 -0800"
  enddate="25 Aug 1999 00:00:00 -0800"
>
<topic>Networking</topic>
<topic>Version Control</topic>

<p>Rene Chaddock asked if Linux would implement PPP over Ethernet, and Bernhard
Kaindl gave a pointer to his <a
href="http://www.suse.de/~bk/PPPoE-project.html">PPP Over Ethernet</a> page.</p>

</section>

<section
  title="CMI 3Com Internal Docsis Cable Modem"
  subject="CMI 3Com Internal Docsis Cable Modem"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00376.html"
  posts="2"
  startdate="24 Aug 1999 00:00:00 -0800"
  enddate="24 Aug 1999 00:00:00 -0800"
>
<topic>Modems</topic>

<p>Joseph W. Breu asked if anyone was working on a driver for the 3Com Internal
Docsis cable modem. He added, <quote who="Joseph W. Breu">I have some 3Com
people comming tomorrow and was wondering what questions I should ask them
to get moving in the right direction for Linux support.</quote>, and Alan
Cox replied, <quote who="Alan Cox">Ask them about documentation
availability. 3Com have been very good with documentation for the Linux
community for years.</quote></p>

</section>

<section
  title="New Modutils Maintainer"
  subject="Re: [RFC] New modutils maintainer"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00436.html"
  posts="5"
  startdate="25 Aug 1999 00:00:00 -0800"
  enddate="29 Aug 1999 00:00:00 -0800"
>

<mention>Bjorn Ekwall</mention>

<p>Keith Owens gave a pointer to the <a
href="ftp://ftp.ocs.com.au/pub/modutils">modutils FTP site</a> and
announced, <quote who="Keith Owens">Bjorn Ekwall
asked for my current patches on August 10 but there are still no updates
from him, even after 15 days and 2 reminders. So I reluctantly assume that
Bjorn is too busy and declare myself the new modutils maintainer.</quote>
Later on after some discussion, he added, <quote who="Keith Owens">I had already privately mailed *EVERBODY* who had
contributed to modutils in the past, including the current maintainer. I
have been trying to contact them since July 19.</quote></p>

</section>

<section
  title="Work Started On madvise() System Call"
  subject="madvise() first draft"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00539.html"
  posts="10"
  startdate="24 Aug 1999 00:00:00 -0800"
  enddate="26 Aug 1999 00:00:00 -0800"
>

<p>Chuck Lever posted a fairly large patch against 2.3.15pre3 and announced his
first attempt at an implementation of the madvise(2) system call. He wanted
some feedback on his algorithm and approach, and added, <quote who="Chuck
Lever">i'd like to see this eventually go into the
kernel along with the mmap read-ahead stuff i'm working on (and in fact
madvise will be more meaningful if the read-ahead stuff is there
too).</quote></p>

</section>

<section
  title="2.3.15 Announced; Semaphore Code Rewritten"
  subject="Linux-2.3.15.."
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00558.html"
  posts="10"
  startdate="25 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>Networking</topic>
<topic>SMP</topic>

<p>Linus Torvalds announced 2.3.15, saying:</p>

<quote who="Linus Torvalds">

<p>There's a rather huge patch-set
out there now, taking the 2.3.x series to 2.3.15.</p>

<p>This has a lot of the merge code I've been sent over the last two weeks, but
I will invariably have missed some, if for no other reason than simply that
I got absolutely _flooded_ by people sending me patches.</p>

<p>One of the more interesting things was the SMP pipe cleanup sent by Richard,
but try as I might it was never really stable under load on x86 - not with
the plain semaphores in 2.3.14, and not with the patches Andrea had either.
I assume Richard tested it on an alpha with the much more well-thought-out
atomic operation that the alpha provides.</p>

<p>I ended up rewriting the x86 semaphore code (and some of Richards pipe code
too, for that matter, to get rid of some races in waking things up), and it
doesn't show the problems I saw before, but hey, maybe I just exchanged one
set of problems for another set that I can't trigger any more. Give me
feedback, please.</p>

<p>Other features that don't impact everybody, but are rather major:</p>

<ul>

<li>ATM support merged in</li>

<li>firewalling is gone (again), replaced by an even more generic netfilter
facility.</li>

<li>general networking merges and updates</li>

<li>Various driver updates (ISDN, ISA PnP, sound, fbcon, usb, intelliport,
you name it)</li>

<li>make system call return type "long" even if the system call only returns
valid data in the lower order bits - we use the high bits for error
handling, and some 64-bit architectures care (read: the Merced calling
conventions want this because they don't automatically extend the return
type - I bet it will be a new portability issue for other programs than just
the kernel)</li>

</ul>

<p>Have fun</p>

</quote>

<p>Regarding Linus' rewriting of the semaphore code, Andrea Arcangeli posted an
exploit and replied, <quote who="Andrea Arcangeli">I
guess the problem is the pipe code since I understood the old semaphores
completly and there weren't SMP races there. Your new semaphores seems
completly buggy to me and I am surprised your kernel works without crash or
corruption with them.</quote></p>

<p>Linus explained a flaw in Andrea's exploit, and replied:</p>

<quote who="Linus Torvalds">

<p>Well, I certainly saw strange
behaviour. The trylock code seemed to be the prime culprit - it tried to
decrement the "waking" count, but it could end up doing it too late so that
people had already seen a increment from a concurrent "up()".</p>

<p>I'm not saying the new code is bug-free, but it works for me where the old
one did not - and your claim that it is obviously broken is also obviously
wrong, see later..</p>

</quote>

<p>They went back and forth for few posts, with Andrea sending in patches and
making suggestions, and at one point Linus explained his reasoning:</p>

<quote who="Linus Torvalds">

<p>You have one choice: fix things
up. It already failed, there's no point in doing anything else.</p>

<p>We tried to be clever before. There was absolutely no data that it was ever
a win, and there were lots of indications that it was buggy. Let's not make
that mistake again. Don't optimize code that doesn't need optimization.</p>

<p>Btw, the case you optimize for is the case that is supposed to be
_extremely_ rare even in the presense of contention. You optimize not just
for the contention-case, you optimize for the specific case where the values
are racing and changing on different CPU's at the same time. Do you
_really_ think that it is worth it, considering that you make the
semaphore behaviour more complex?</p>

<p>I really don't.</p>

</quote>

</section>

<section
  title="Debugging Threaded Applications"
  subject="Async user space notification from kernel?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00586.html"
  posts="16"
  startdate="25 Aug 1999 00:00:00 -0800"
  enddate="27 Aug 1999 00:00:00 -0800"
>
<topic>Ioctls</topic>

<mention>Alan Cox</mention>
<mention>Erik Andersen</mention>

<p>Erik Andersen asked how the kernel could notify a user-space daemon of an
event, without polling an ioctl(). Alan Cox suggested adding select support
to a /proc file, and David S. Miller shifted gears with:</p>

<quote who="David S. Miller">

<p>it could be quite useful for /proc/${pid}</p>

<p>It might even lead to a nice solution to the problem of debugging threaded
applications. Here a lot of the problems with gdb getting things right have
to do with reparenting and how thread libraries implement things internally,
signals, what have you.</p>

<p>When you can do selects on /proc/${pid}/debug or whatever, a lot of the
"what should we do if xxx" questions then have answers.</p>

</quote>

</section>

<section
  title="Module Init Code Handling"
  subject="[q] int __init init_module()?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00619.html"
  posts="3"
  startdate="26 Aug 1999 00:00:00 -0800"
  enddate="26 Aug 1999 00:00:00 -0800"
>

<p>Tigran Aivazian noticed that some drivers had code similar to the following
snippet:</p>

<pre>#ifdef MODULE
int __init init_module(void)
#else
int __init init_cmpci(void)
#endif
{
 ....</pre>

<p>He added:</p>

<quote who="Tigran Aivazian">

<p>it makes sense to have
__init in front of init_cmpci() but it seems rather suspicious to have it
for a module since the code for throwing away .init* stuff is only called
from free_initmem() on boot and does not seem to be used on loading modules?</p>

<p>On the other hand, if it *is* needed for init_module() then plenty of other
places must be modified to have __init. So, in all cases, some changes are
required.</p>

</quote>

<p>Alan Cox replied, <quote who="Alan Cox">It isnt needed, but hopefully one
day modules will load, init and throw their init code away too after insmod
returns</quote> and David S. Miller added, <quote who="David S. Miller">We
had full support for this at one point. Jakub wrote the code, but Linus
didn't take the patch set I'd sent him at the time since it was real close
to 2.2.x</quote></p>

</section>

<section
  title="Improved PLIP Driver"
  subject="[PATCH] Improved PLIP driver, take 2"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00785.html"
  posts="1"
  startdate="27 Aug 1999 00:00:00 -0800"
  enddate="27 Aug 1999 00:00:00 -0800"
>
<topic>Networking</topic>

<p>Nimrod Zimerman posted a patch, and announced:</p>

<quote who="Nimrod Zimerman">

<p>This is a second attempt
at an improved PLIP driver. It does the following:</p>

<ul>

<li>Allow using PLIP with parallel ports without IRQ.</li>

<li>Move the PLIP driver to use the generic parallel port API, rather then
using direct I/O access.</li>

<li>Use MAC addresses on PLIP ethernet packets all the time (this also fixes
a problem that was reported here a few weeks ago, of tcpdump not handling
plip correctly). I'm afraid that I don't fully understand what
dev-&gt;rebuild_header() is all about, and I couldn't get the old version of
the code to do anything useful, so I changed the way of doing things. Any
hints here would be appreciated, though I find the current solution quite
satisfactory, as it works and has no outstanding overhead.</li>

</ul>

<p>The patch as follows below compiles and works with 2.2.10. It should work
with any other 2.2.x. It also compiles (and work) with 2.3.12, and probably
with other development kernels, with a slight change.</p>

<p>Please let me know if this needs any more changes. I can see no reason not
to include this in the kernel.</p>

<p>The patch can (also) be found at <a
href="http://thor.prohosting.com/~zimerman">http://thor.prohosting.com/~zimerman</a>.</p>

</quote>

</section>

<section
  title="User-Mode Kernel 2.3.15-1um"
  subject="User-mode kernel 2.3.15-1um"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00787.html"
  posts="1"
  startdate="26 Aug 1999 00:00:00 -0800"
  enddate="26 Aug 1999 00:00:00 -0800"
>

<mention>Jeff Dike</mention>

<p>Jeff Dike announced a new version of his user-mode kernel at <a
href="http://www.mv.com/ipusers/karaya/uml/uml.html">http://www.mv.com/ipusers/karaya/uml/uml.html</a>.</p>

</section>

<section
  title="NetBEUI Spec Summarization"
  subject="I have NetBEUI docs"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00788.html"
  posts="1"
  startdate="26 Aug 1999 00:00:00 -0800"
  enddate="26 Aug 1999 00:00:00 -0800"
>

<p>Aaron Burt gave a pointer to the <a
href="http://weblib.mainz.ibm.com:8080/go/weblib/Welcome.html">IBM Web
Library</a> and added:</p>

<quote who="Aaron Burt">

<p>Well, a very nice fellow at
IBM Web Library sent me an electronic copy of the IBM Local Area Network
Technical Reference. It's kind of old (Dec. 1990) but it describes
wire-level NetBEUI, info I haven't found anywhere else. Features have been
added since then, but I think this'll do to get a basic implementation
going.</p>

<p>They are copyrighted, so I seriously doubt I could simply make the docs
available, but the first thing I intend to do is summarize it into a simple
spec. I don't have a clue how to implement a LAN protocol in Linux, but I'll
see what I can do.</p>

<p>I remember NetBEUI coming up occasionally here.  If you have any interest,
skills or info, feel free to contact me. I'll announce when I have useful
info up.</p>

<p>NetBEUI is waning in popularity, but it is a fast protocol and, like IPX,
useful in legacy environments. Like DLC, it's commonly used for network
printers.</p>

</quote>

</section>

<section
  title="Root Filesystem Unrecognized"
  subject="2.3.15 hang on boot [PIIX4 IDE problem?]"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00973.html"
  posts="3"
  startdate="28 Aug 1999 00:00:00 -0800"
  enddate="28 Aug 1999 00:00:00 -0800"
>
<topic>Disks: IDE</topic>
<topic>PCI</topic>
<topic>Power Management: ACPI</topic>

<mention>David Woodhouse</mention>
<mention>Gerard Saraber</mention>

<p>Gerard Saraber found that 2.3.15 would hang during boot, while trying to
remount the root device read/write. He suspected the IDE controller, and
added that he had a Soyo SY-6BA+III with a PIIx4 IDE controller. He also
included his /proc/pci file and his kernel .config file. David Woodhouse
suggested turning off CONFIG_ACPI, which had solved a similar problem for
him with the root filesystem not being recognized. Gerard tried this and it
worked. EOT.</p>

</section>

<section
  title="Remnants Of The Recent Attack"
  subject="From The Investment FAQ: Types of Mutual Funds"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg01022.html"
  posts="1"
  startdate="28 Aug 1999 00:00:00 -0800"
  enddate="28 Aug 1999 00:00:00 -0800"
>

<mention>David S. Miller</mention>
<mention>Matti Aarnio</mention>

<p>Continuing the saga of the recent attack on linux-kernel covered in <kcref
subject="Welcome to Asian Eighteen!! - Add-asia18:lin9349131494."
startdate="17 Aug 1999 00:00:00 -0800"></kcref>, it seems there are still some very
low-traffic mailing lists posting from time to time on linux-kernel. It may
be months or longer before David S. Miller and Matti Aarnio unsubscribe from
them all.</p>

</section>

<section
  title="IPVS Problems"
  subject="[PROBLEM] No ARP answer when two ifaces with same IP exist (2.2.x)"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg01007.html"
  posts="7"
  startdate="28 Aug 1999 00:00:00 -0800"
  enddate="29 Aug 1999 00:00:00 -0800"
>
<topic>Networking</topic>

<mention>Alexey Kuznetsov</mention>

<p>Julian Anastasov reported, <quote who="Julian Anastasov">When there are 2 interfaces dummy0 and eth0:1 (in this
order) with same IP and dummy is DOWN, there is no ARP response from
eth0:1</quote></p>

<p>He traced the problem to net/ipv4/arp.c:arp_rcv(), specifically the line</p>

<pre>if ((tdev = ip_dev_find(tip)) &amp;&amp; (tdev-&gt;flags &amp; IFF_NOARP))</pre>

<p>Alexey Kuznetsov couldn't find that line in his sources and suggested
deleting it, but David S. Miller said, <quote who="David S. Miller">It's a small change from the IP virtual server changes that
went into 2.2.12 :-( Alan we have to deal with this somehow, it's causing
havoc for many people.</quote></p>

<p>Alan Cox replied, <quote who="Alan Cox">The IPVS changes
didnt go into 2.2.12. The ARP problem was one reason why not;</quote> and
Alexey said he didn't understand, and asked for an explanation. Alan posted
at more length:</p>

<quote who="Alan Cox">

<p>The ipvs folks are doing IP
level load balancing with inverse masquerade--ie</p>

<pre>                        internet
                          |
                        [MASQ]
        +------+--------+-------+-------+------+
       www1   www2    www3    www4     www5   www6</pre>

<p>incoming SYN frames create masquerade sessions mapping user-&gt;www to
user-&gt;www1 www2, etc according to load and rules.</p>

<p>In one mode they set things up differently as follows</p>

<pre>                internet
                   |
    +-----+-----+-----+-----------+----------+---------+
    |     |     |     |           |          |         |
 MASQ    www   www   www         www        www       www
         www1  www2  www3        www4       www5      www6</pre>

<p>Each host is www and a unique name. The masq host arps for www, then tunnels
the packet to a www[1-n] but without rewrite. The reply doesnt touch the
masq so is a lot faster.</p>

<p>However they need to stop www1-&gt;wwwn arping for their www tunnel
address</p>

</quote>

</section>

<section
  title="Tulip 91g Success On 2.3.15"
  subject="tulip 91g success on 2.3.15"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg01027.html"
  posts="1"
  startdate="28 Aug 1999 00:00:00 -0800"
  enddate="28 Aug 1999 00:00:00 -0800"
>
<topic>Networking</topic>

<p>Gerard Saraber announced:</p>

<quote who="Gerard Saraber">

<p>I would like to report
success in modifying the tulip.c version 91g to
work with linux kernel 2.3.14 and above, I have tested it on my home
network by transferring linux-2.3.12.tar.bz2 from one system on my
network to my development system which is using the tulip driver.
The first time I tried to transfer the kernel it stalled (the tulip
dropped off the network) at 7.5Mb transferred (at over 700kbps) I did
ifconfig eth0 down and ifconfig eth0 up right after .. telnetted some,
sent some email ftpd some more and tried to ftp the linux-2.3.12.tar.bz2
again .. this time success, again the speed is over 700kbps.</p>

<p>So it works for me :-)</p>

<p>Since the driver is over 100kb (39kb gzipped) I'm not attaching it here,
If you want to try it, it can be optained through ftp:</p>

<a
href="ftp://saraber.dhs.org/pub/tulip/">ftp://saraber.dhs.org/pub/tulip/</a>

<p>I have the tulip.c, a gzipped version and a patch against the tulip v91g
from</p>

<a
href="http://cesdis.gsfc.nasa.gov/linux/drivers/tulip.html">http://cesdis.gsfc.nasa.gov/linux/drivers/tulip.html</a>

<p>up there. I have made it clear in the header of the file and the startup
banner that I'm the one who modified the file, so please don't send any
nasty bugreports to Donald or the linux-tulip list without verifying that
the bug exsists in the original tulip driver as well.</p>

</quote>

</section>

<section
  title="Low-latency Patches Benchmarked; Linus On BeOS"
  subject="Low-latency patches working GREAT (&lt;2.9ms audio latency), see testresults ,but ISDN troubles"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg01041.html"
  posts="27"
  startdate="28 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>

<mention>Ingo Molnar</mention>

<p>Benno Senoner gave a pointer to <a
href="http://www.gardena.net/benno/linux/audio/2.2.10-n6b/index.html">his
benchmarks</a> of Ingo Molnar's latest <a
href="http://www.gardena.net/benno/linux/audio/patches/lowlatency-2.2.10-N6B.patch">low-latency
patches</a>. He reported excellent results, with some peaks at 2.9 ms. He
pointed out, <quote who="Benno Senoner">With Mingo's
patches the Linux low-latency performance comes very close to BEOS, and is
much much better (3-4 times) Windows on the same hardware. It's now time to
stress audio-software vendors to port their cool apps to Linux,</quote> and
added, <quote who="Benno Senoner">I think most of us
want to have these "low-latency" features in the upcoming 2.4 kernel since
it will make Linux a very good _MULTIMEDIA_OS_.</quote></p>

<p>On the negative side, he added, <quote who="Benno Senoner">The disk
performance decreases by 10-25% when I increase the CPU load in the
"latencytest" bench.</quote></p>

<p>Someone replied that a 25% disk I/O decrease was very serious, and they
wanted to get feedback from folks running internet and database servers
before alienating server users in order to compete with BeOS.</p>

<p>To this, Linus Torvalds said, <quote who="Linus Torvalds">Guys, if anybody
thinks we're competing with BeOS, then wake up. BeOS is a niche OS that
isn't worth competing against, and at most we can try to find out what it's
good at and see if we can emulate some of it. But 25% disk IO decrease is
definitely not something we want to even consider.</quote></p>

<p>There was some discussion about the benchmarks, the patches, and Linus'
comment about BeOS.</p>

</section>

<section
  title="Booting From CD"
  subject="Little-known features of El Torito Spec"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg00998.html"
  posts="5"
  startdate="28 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>
<topic>FS: ext2</topic>

<mention>Peter Horton</mention>

<p>Dan Shearer said:</p>

<quote who="Dan Shearer">

<p>Anyone who has sweated to
build a 2.88 CD boot image from syslinux and the skinniest fat kernel
possible will understand why I'm posting this. There is only a minor impact
on the kernel, but overall it could make quite a difference to the way Linux
installations are done.</p>

<p>I was reading through the El Torito specification a few months ago in order
to debug something and noticed that the excellent mkisofs doesn't support
some very interesting features of it. Neither does any other CD image
mastering program I know of. As a result every x86 OS installation facility
is somewhat crippled. Linux isn't as crippled as NT from this perspective,
but still, booting from CD is nothing like home.</p>

<p>I am referring to the PDF of the hacked-up spec that we all have to use for
CD booting, <a
href="http://www.nikko.simplenet.com/goldentime/cdrom7.zip">http://www.nikko.simplenet.com/goldentime/cdrom7.zip</a>.
This could turn into a major marketing feature for Linux as well as
relieving those poor people who have to write 2-stage installation programs.</p>

<p>First some observations on the annoying habits of everyone's install
procedure:</p>

<ul>

<li>It's really _really_ unintelligent. You boot off the CD, get several
questions into the install and then it asks you what install media you want
to use, then to insert the correct CD(!) and then chains to the second-stage
install. This has always annoyed me. There are some good reasons for this
behaviour related to the way El Torito gives you an emulated floppy. Please
note that I haven't written an installation program, in fact the source of
nearly every installation program I've ever seen makes me feel rather ill.
Mandrake and some others are changing that bit by bit, thankyou :-)</li>

<li>It's very limited because you are cramming everything into 2.88Mb. This
is also a bit silly, you have a great big CD ROM and the best
hardware-detecting OS in existence so why not just allow the data and code
for the installation program to reside on CD and take up whatever room it
wants to?</li>

</ul>

<p>So what does El Torito let us do?</p>

<p>

<ol>

<li>

<p>You can have multiple boot images</p>

<p>A quick and simple alternative solution to what most people currently use
that would help a bit is to have an initial CD image on a 2.88 floppy with
little more than the kernel and some kind of mixed human and/or automatic
logic to choose which of an arbitary number of other floppy boot images to
boot as a secondary bootstrap. This might be the quick and dirty option
for getting around current space problems. As far as I can tell you can
chain around between images all day within the spec. I think the SuSE
installer does this to some extent when they offer either an installation or
an emergency boot floppy. But I haven't dived into it to see for sure.</p>

</li>

<li>

<p>You can have no-emulation booting.</p>

<p>This is the really interesting bit. Quote from the PDF in section "5.3 No
Emulation Booting":</p>

<ul>
--- start quote -------------<br />
When the Media Type is set to zero the BIOS does not use the CD to emulate a
disk. The boot operation loads the requested number of sectors directly to
the specified segment. When loading is complete the BIOS will jump to
segment:0. The associated piece of software can be a "loader" (which
provides its own CD interface), or it can be a stand alone program. The El
Torito specification allows for the loading of FFFF sectors (This would
allow the BIOS to fill the entire low 640k memory area with data). Once the
system jumps to segment:0, the program can retrieve its boot information by
issuing INT 13, Function 4B, AL=01. After the boot process has been
initiated the INT 13 Extensions (functions 41-48) will access the CD using
800 byte sectors and the LBA address provided to INT 13 is an absolute
sector number. This gives any program running in no emulation mode the
ability to locate the boot catalog, and any other information on the CD,
without providing a device driver.<br />
---- end quote ----------
</ul>

<p>In other words you can get a CD image to boot from a kernel jump-point. This
isn't like a hard drive bootstrap, this actually loads up to 640k of data
into memory and then sets the IP to an entry point. The kernel can then work
out how to mount /. There would be no commandline parameters so I would
think there would have to be a compile-time option to say "root fs on CD
ROM".</p>

<p>Provided we can get clever with the CD ROM drivers this is exactly what we
need; the net effect would be that the installer developers could treat the
CD exactly like a hard drive, with access to as much data as they liked.
Booting Unix from read-only filesystems was solved years ago.</p>

<strong>OK, What Next?</strong>

<p>Someone has to sit down with an ISO image and do some sector editing and
build one of these. Once we know what works and what doesn't then we can
hack mkisofs. I'd probably be tempted to hack mkisofs first, it's fairly
obvious what needs to change.</p>

<p>I don't have any reason to do this apart from hack value. If someone else
does I'm sure they'll get to it long before I've even looked at it. It might
make sense for one of the distributions to fund some experiements.</p>

<p>To head off some obvious suggestions:</p>

<ul>

<li>I sent this to eric@andante.jic.com, the author of mkisofs. Bounced.</li>

<li>There was a thread called "Merging EXT2 and El Torito" on linux-kernel
over a year ago, and it was nothing to do with this.</li>

</ul>
</li>
</ol>

</p>

</quote>

<p>Theodore Y. Ts'o pointed out that the mkisofs author's email had changed to
eric@andante.org when he changed ISPs. Ted also said:</p>

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

<p>This sounds really
interesting! The big question is how many systems actually faithfully
implement this part of the El Torito spec. Sorry for being paranoid, but the
reality is that if it's not used commonly, there is an all-too-unfortunately
high probability that some cheasy Taiwan-special (or even made in America)
hardware won't support it correctly. &lt;Insert standard grumbling about the
cheap-sh*t Wintel hardware industry.&gt;</p>

<p>Unfortunately, the only way I know for sure to check would be to make some
ISO images available and ask people to test it and see whether it
works.</p>

</quote>

<p>Dan reported that a lot of other folks had emailed him privately with
their interest, and that Peter Horton had given him a pointer to <a
href="http://www.colonel-panic.com">Colonel Panic</a>, which had a patch for
'mkisofs' to allow non-emulation/hard disk booting. Dan added, <quote
who="Dan Shearer">So if you or someone else gets to publishing test images
before I do then good! The upshot appears to be no kernel mods required, all
work done except for mass testing of BIOSes.</quote></p>

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

<quote who="H. Peter Anvin">

<p>Definitely.  Note that
you can't just bootstrap a bzImage this way; you still need a boot loader to
go before the kernel. As I've already mentioned I intend for lbcon to
support this booting mode (with full access to the ISO 9660 filesystem), but
lbcon isn't ready for prime time just yet.</p>

<p>*Furthermore*, no-emulation does have a limit on the size of the image
(640K), which means it may not be suitable to simply attach a stub loader to
the image anyhow (after all, you might as well just make a disk image if
you're going to do that.)</p>

<p>Hard disk emulation is known to be broken on many BIOSes, and as such isn't
really an option.</p>

</quote>

</section>

<section
  title="Linux 2.2.13pre1"
  subject="Linux 2.2.13pre1"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg01077.html"
  posts="10"
  startdate="28 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>
<topic>Executable File Format</topic>
<topic>FS: NFS</topic>
<topic>FS: ext2</topic>
<topic>I2C</topic>
<topic>PCI</topic>

<mention>Trond Myklebust</mention>
<mention>David Weinehall</mention>
<mention>Alan Cox</mention>
<mention>Andrea Arcangeli</mention>
<mention>Martin Mares</mention>
<mention>Matthias Riese</mention>
<mention>David Woodhouse</mention>
<mention>Pauline Middelink</mention>
<mention>Stephen Tweedie</mention>
<mention>Mikael Pettersson</mention>
<mention>Riley Williams</mention>

<p>Alan Cox reported the changes in the latest prepatch for the stable series:</p>

<pre>o       execve() fix - based on one by          (Tymm Twillman)
o       ext2fs flag fixes                       (Matthias Riese)
o       i2c tuner update                        (from Pauline Middelink)
o       bttv schedule on irq fix
o       Console race fixes/klogd                (Andrea Arcangeli)
o       Ensure version is up to date            (David Woodhouse)
o       QlogicFC fixes                          (Chris Loveland)
o       Fix memory leaks in the serial layer    (Armin Groesslinger)
o       ARM sound fixes                         (Phil Blundell)
o       Assorted warning cleanups               (Riley Williams)
o       Fix arcnet bug in 2.2.12                (Riley Williams)
o       Small NFS fixes                         (Trond Myklebust)
o       Updated sb1000 docs                     (Clemmitt Sigler)
o       Fix IPX packet handling                 (Kelly French)
o       PCI multifunction fixes                 (Martin Mares)
o       Back out mmap resource change           (Dick Streefland)
o       Minor cleanups                          (Mikael Pettersson)
o       Fix vt console print                    (Andrea Arcangeli)
o       Rate limit a.out binfmt errors          (Me)
o       Generate different ksyms for 1G/2G      (Me)
o       Small cleanups                          (David Weinehall)
o       Munmap, vm cache fix                    (Stephen Tweedie)</pre>

</section>

<section
  title="PCI Serial Driver Ready For Testing"
  subject="PCI serial driver ready for testing"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_04/msg01085.html"
  posts="1"
  startdate="29 Aug 1999 00:00:00 -0800"
  enddate="29 Aug 1999 00:00:00 -0800"
>
<topic>PCI</topic>

<p>Theodore Y. Ts'o announced:</p>

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

<p>After a very long
delay, caused by my being terminally busy at MIT, and then changing jobs,
I've finally gotten an update to the serial driver which supports PCI
patches. It can be found at:</p>

<a
href="http://web.mit.edu/tytso/www/linux/serial-4.30.tar.gz">http://web.mit.edu/tytso/www/linux/serial-4.30.tar.gz</a>

<p>This driver supports for the Oxford Semiconductor 16C950 UART, and good
collection of PCI boards (basically everything for which people have sent me
patches, or for which I've been able to get my hands on the PCI serial
cards).</p>

<p>I've tested this driver with ConnectTech, Sealevel, and GTek serial boards,
and it has support for the SPCom 200 and Keyspan boards as well. I haven't
tested the latter since I don't have the boards, though.</p>

<p>The sources are designed to work on either 2.2 or 2.3 kernels, and as
shipped it comes with a Makefile which allows you to compile the serial
driver as a stand-alone module outside the kernel tree. Alternatively, it
should be pretty obvious how to copy the relevant source files (serial.c,
serialP.h, serial_reg.h, serial.h, etc.) into the right places into the
kernel, which will build the new serial driver as part of 2.2 or 2.3 kernel.</p>

<p>I'd like to send an update of this driver to Linus fairly soon for inclusion
into the 2.3 mainline, so please send me any comments you might have. In
particular, if you have some other PCI serial boards other than the ones
supported by this driver, please send me the vendor, device, subvendor, and
subdevice id numbers, how the PCI board interfaces to the system (mapped I/O
memory, I/O ports) and what clock is used to drive the UART (i.e., what
base_baud setting is needed; some drivers use a faster clock crystal which
allows the port to run at speeds greater than 115200 bps).</p>

</quote>

</section>

<section
  title="Hitachi SuperH (SH3/SH4) Port"
  subject="Hitachi SuperH (SH3/SH4) port"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_05/msg00083.html"
  posts="1"
  startdate="30 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>

<p>Niibe Yutaka announced his successful (it boots, mounts a filesystem, and
runs "hello world") port of Linux to Hitachi's SuperH (SH-3). He gave
pointers to <a href="ftp://ftp.m17n.org/pub/linux-sh-1999-08-18.tar.gz">the
full code</a> or <a
href="ftp://ftp.m17n.org/pub/linux-sh-1999-08-18.diff.gz">a patch</a>
against 2.2.10</p>

</section>

<section
  title="ROCK Linux Distribution V. 1.3.0"
  subject="ROCK Linux 1.3.0"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_05/msg00127.html"
  posts="1"
  startdate="30 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>

<p>Clifford Wolf gave a pointer to the <a
href="http://linux.rock-projects.com/">ROCK Linux Distribution</a> and
announced version 1.3.0; he also gave a pointer to the <a
href="http://linux.rock-projects.com/misc/changes-1.3.0.txt">changelog</a>.
The distribution is based on Linux 2.3.15 and XFree86 3.9.15; he added,
<quote who="Clifford Wolf">*WARNING*: There is a good
reason for calling it a "development tree". If you are not interested in
development you should take the stable ROCK Linux 1.2.0. You should install
the development releases only on a seperate disk or a seperate computer
where no importand data can be lost!</quote></p>

</section>

<section
  title="Assembly Warnings Remain Unfixed"
  subject="Assembler warnings 2.2.12"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9908_05/msg00177.html"
  posts="3"
  startdate="30 Aug 1999 00:00:00 -0800"
  enddate="30 Aug 1999 00:00:00 -0800"
>
<topic>Assembly</topic>

<mention>Alan Cox</mention>

<p>Someone noticed the following warnings during compilation:</p>

<pre>make[1]: Entering directory /usr/src/linux-2.2.12/fs'
gcc -D__KERNEL__ -I/usr/src/linux-2.2.12/include -Wall -Wstrict-prototypes
-O2 -fomit-frame-pointer
+-fno-strict-aliasing -pipe  -m486 -malign-loops=2 -malign-jumps=2
-malign-functions=2 -DCPU=686 -DMODULE   -c -o
+binfmt_aout.o binfmt_aout.c
{standard input}: Assembler messages:
{standard input}:1019: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:1019: Warning: using `%eax' instead of `%ax' due to `l' suffix</pre>

<p>Horst von Brand replied, <quote who="Horst von Brand">I've sent a fix for
this (and assorted other warnings) to Alan Cox, which for the case under
discussion (and similar ones) was rejected by Linus in the end. The trouble
is that the "right" way to handle this is to change the %ax et al to %eax
and family, or use the "w" forms of the affected instructions. New binutils
(current betas) handle these changes right, older ones generate idiotic code
for them (unneeded prefixes, AFAIR). With what is in the kernel right now,
new binutils generate the right code and complain, older ones generate the
right code and keep quiet.</quote></p>

</section>

</kc>
