<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="270" date="07 Aug 2004 00:00:00 -0800" />

<intro>

<p>If anyone knows of a company looking for a talented writer with
scripting and other abilities, <a href="resume.html">check out my
r&#233;sum&#233;</a>. I've done API documentation with accompanying
developer guides, and I'm published monthly as a Contributing Editor in <a
href="http://www.linuxjournal.com/">Linux Journal</a> and a Columnist in <a
href="http://www.linux-mag.com/">Linux Magazine</a>. I do my own creative
writing on the side, and have many strange writing- and communication-related
interests such as Labanotation. I also play a mean game of chess. I'm located
in San Francisco, and would prefer to work in that area; but for the right
offer I'd consider moving to a new location. I am both a US citizen and
a French citizen, making me eligible to live and work anywhere within the
European Union, as well as in the United States.</p>

</intro>

<stats posts="1537" size="8647" contrib="446" multiples="231" lastweek="145">

<person posts="77" size="297" who="Andrew Morton" />
<person posts="59" size="290" who="William Lee Irwin III" />
<person posts="48" size="289" who="Adrian Bunk" />
<person posts="35" size="198" who="Con Kolivas" />
<person posts="29" size="116" who="Greg KH" />
<person posts="28" size="152" who="Dmitry Torokhov" />
<person posts="28" size="106" who="Nick Piggin" />
<person posts="22" size="82" who="Chris Wedgwood" />
<person posts="21" size="85" who="&quot;David S. Miller&quot;" />
<person posts="20" size="325" who="Peter Osterlund" />
<person posts="20" size="73" who="Christoph Hellwig" />
<person posts="20" size="70" who="Jeff Garzik" />
<person posts="17" size="158" who="Hirokazu Takahashi" />
<person posts="16" size="55" who="Pavel Machek" />
<person posts="15" size="67" who="Andrea Arcangeli" />
<person posts="15" size="64" who="John Richard Moser" />
<person posts="13" size="142" who="&quot;Shai Fultheim&quot;" />
<person posts="13" size="52" who="bert hubert" />
<person posts="13" size="47" who="Andi Kleen" />
<person posts="12" size="157" who="Vernon Mauery" />
<person posts="12" size="47" who="&quot;Richard B. Johnson&quot;" />
<person posts="11" size="48" who="Russell King" />
<person posts="10" size="69" who="Adam Kropelin" />
<person posts="10" size="68" who="Jesper Juhl" />
<person posts="10" size="55" who="Andrey Panin" />
<person posts="9" size="82" who="Hugh Dickins" />
<person posts="9" size="47" who="(linas)" />
<person posts="9" size="39" who="Peter Zaitsev" />
<person posts="9" size="33" who="Geert Uytterhoeven" />
<person posts="9" size="31" who="Anton Blanchard" />
<person posts="8" size="35" who="Alexandre Oliva" />
<person posts="8" size="28" who="Francois Romieu" />
<person posts="8" size="26" who="Nigel Cunningham" />
<person posts="8" size="26" who="Bernd Eckenfels" />
<person posts="8" size="24" who="(viro)" />
<person posts="7" size="50" who="Redeeman" />
<person posts="7" size="37" who="Tim Bird" />
<person posts="7" size="36" who="Marcelo Tosatti" />
<person posts="7" size="36" who="Matt Domsch" />
<person posts="7" size="35" who="Arnd Bergmann" />
<person posts="7" size="34" who="FabF" />
<person posts="7" size="31" who="Lee Revell" />
<person posts="7" size="24" who="Timothy Miller" />
<person posts="7" size="21" who="Ray Lee" />
<person posts="6" size="53" who="Gabriel Devenyi" />
<person posts="6" size="38" who="&quot;Martin J. Bligh&quot;" />
<person posts="6" size="32" who="Mike Kravetz" />
<person posts="6" size="32" who="Matthias Andree" />
<person posts="6" size="28" who="=?ISO-8859-1?Q?Lenar_L=F5hmus?=" />
<person posts="6" size="28" who="&quot;Jose R. Santos&quot;" />
<person posts="6" size="24" who="Bartlomiej Zolnierkiewicz" />
<person posts="6" size="23" who="Mark Watts" />
<person posts="6" size="23" who="Jens Axboe" />
<person posts="6" size="22" who="Tom Rini" />
<person posts="6" size="22" who="tom st denis" />
<person posts="6" size="21" who="Michael Buesch" />
<person posts="6" size="20" who=" (H. Peter Anvin)" />
<person posts="6" size="20" who="Vojtech Pavlik" />
<person posts="5" size="92" who="Takao Indoh" />
<person posts="5" size="74" who="&quot;R. J. Wysocki&quot;" />
<person posts="5" size="66" who="Roger Luethi" />
<person posts="5" size="53" who="Hermann Gottschalk" />
<person posts="5" size="47" who="Paul Mackerras" />
<person posts="5" size="44" who="Mikael Pettersson" />
<person posts="5" size="34" who="OGAWA Hirofumi" />
<person posts="5" size="32" who="Kevin Corry" />
<person posts="5" size="31" who="Dhruv Matani" />
<person posts="5" size="25" who="Michael Clark" />
<person posts="5" size="24" who="Gene Heskett" />
<person posts="5" size="22" who="Stephen Hemminger" />
<person posts="5" size="21" who="Arjan van de Ven" />
<person posts="5" size="21" who="Paul Davis" />
<person posts="5" size="21" who="Keith Owens" />
<person posts="5" size="19" who="Lutz Vieweg" />
<person posts="5" size="19" who="Sylvain Munaut" />
<person posts="5" size="19" who="Bastian Blank" />
<person posts="5" size="18" who="Ingo Molnar" />
<person posts="5" size="18" who="Takashi Iwai" />
<person posts="5" size="18" who="Fawad Lateef" />
<person posts="5" size="17" who="&quot;Randy.Dunlap&quot;" />
<person posts="5" size="17" who="&quot;Paul Rolland&quot;" />
<person posts="5" size="16" who="Norberto Bensa" />
<person posts="4" size="75" who="=?iso-8859-2?q?Pawe=B3_Sikora?=" />
<person posts="4" size="54" who="Sid Boyce" />
<person posts="4" size="52" who="&quot;Dwayne Rightler&quot;" />
<person posts="4" size="28" who="Ralf Hildebrandt" />
<person posts="4" size="22" who="Roland Dreier" />
<person posts="4" size="22" who="Antonin Kral" />
<person posts="4" size="22" who="Dax Kelson" />
<person posts="4" size="21" who="Thomas Moestl" />
<person posts="4" size="21" who="Joe Korty" />
<person posts="4" size="20" who="&quot;Anton Ertl&quot;" />
<person posts="4" size="20" who="David Eger" />
<person posts="4" size="20" who="Jan Rychter" />
<person posts="4" size="20" who="&quot;Martijn Sipkema&quot;" />
<person posts="4" size="20" who="Peter Williams" />
<person posts="4" size="20" who="Erik Rigtorp" />
<person posts="4" size="19" who="(lya755)" />
<person posts="4" size="18" who="Christopher Swingley" />
<person posts="4" size="17" who="Qiuyu Zhang" />
<person posts="4" size="17" who="Jan-Benedict Glaw" />
<person posts="4" size="17" who="Len Brown" />
<person posts="4" size="16" who="David Howells" />
<person posts="4" size="16" who="Paolo Ciarrocchi" />
<person posts="4" size="14" who="Miklos Szeredi" />
<person posts="4" size="14" who="Oleg Nesterov" />
<person posts="4" size="13" who="Dave Jones" />
<person posts="4" size="13" who="Rik van Riel" />
<person posts="4" size="13" who="Paul Jackson" />
<person posts="4" size="13" who="Martin Ziegler" />
<person posts="4" size="13" who="John Heffner" />
<person posts="4" size="12" who="Mark Adler" />
<person posts="4" size="12" who="(mariojunior)" />
<person posts="3" size="80" who="Linus Torvalds" />
<person posts="3" size="75" who="(axel.azerty)" />
<person posts="3" size="37" who="Aneesh Kumar" />
<person posts="3" size="18" who="&quot;Blackwood, John&quot;" />
<person posts="3" size="17" who="Ed Tomlinson" />
<person posts="3" size="17" who="Brian Gerst" />
<person posts="3" size="16" who="Jim Houston" />
<person posts="3" size="16" who="(raven)" />
<person posts="3" size="16" who="Gabriel Paubert" />
<person posts="3" size="15" who="Martin Schlemmer" />
<person posts="3" size="15" who="Felipe Alfaro Solana" />
<person posts="3" size="13" who="David Ford" />
<person posts="3" size="13" who="Bryce Harrington" />
<person posts="3" size="13" who="L A Walsh" />
<person posts="3" size="13" who="Jake Moilanen" />
<person posts="3" size="12" who="Pavel Machek" />
<person posts="3" size="12" who="&quot;Charles R. Anderson&quot;" />
<person posts="3" size="12" who="Florin Andrei" />
<person posts="3" size="12" who="Dave Hansen" />
<person posts="3" size="12" who="Georgi Georgiev" />
<person posts="3" size="11" who="=?ISO-8859-1?Q?ismail_d=F6nmez?=" />
<person posts="3" size="11" who="Jakub Jelinek" />
<person posts="3" size="11" who="=?ISO-8859-1?Q?Espen_Fjellv=E6r_Olsen?=" />
<person posts="3" size="11" who="Kronos" />
<person posts="3" size="11" who="Horst von Brand" />
<person posts="3" size="11" who="Andy Isaacson" />
<person posts="3" size="10" who="Andries Brouwer" />
<person posts="3" size="10" who="Grzegorz Kulewski" />
<person posts="3" size="10" who="Jamie Lokier" />
<person posts="3" size="10" who="Olaf Hering" />
<person posts="3" size="9" who="Jesse Stockall" />
<person posts="3" size="9" who="&quot;Prakash K. Cheemplavam&quot;" />
<person posts="3" size="9" who="&quot;David N. Welton&quot;" />
<person posts="3" size="8" who="Zwane Mwaikambo" />
<person posts="3" size="8" who="Benjamin Herrenschmidt" />
<person posts="3" size="8" who="carbonated beverage" />
<person posts="2" size="81" who="Ryan Arnold" />
<person posts="2" size="73" who="Daniel McNeil" />
<person posts="2" size="48" who="&quot;Massimo Cetra&quot;" />
<person posts="2" size="41" who="The Doctor What" />
<person posts="2" size="39" who="Ulrich Brand" />
<person posts="2" size="35" who="Sami Farin" />
<person posts="2" size="33" who="Martin Schwidefsky" />
<person posts="2" size="26" who="Frediano Ziglio" />
<person posts="2" size="22" who="Ville Herva" />
<person posts="2" size="21" who="Peter Martuccelli" />
<person posts="2" size="17" who="Hlaing Oo" />
<person posts="2" size="16" who="&quot;Petri T. Koistinen&quot;" />
<person posts="2" size="15" who="Jean Francois Martinez" />
<person posts="2" size="14" who="&quot;Piszcz, Justin Michael&quot;" />
<person posts="2" size="14" who="Thomas Charbonnel" />
<person posts="2" size="12" who="Pavel Roskin" />
<person posts="2" size="12" who="Bill Huey (hui)" />
<person posts="2" size="12" who="&quot;Nikita V. Youshchenko&quot;" />
<person posts="2" size="12" who="Jonathan Sambrook" />
<person posts="2" size="11" who="Roland McGrath" />
<person posts="2" size="11" who="Luke Kenneth Casson Leighton" />
<person posts="2" size="11" who="Denis Vlasenko" />
<person posts="2" size="10" who="Wim Van Sebroeck" />
<person posts="2" size="10" who="Joel Jaeggli" />
<person posts="2" size="9" who="&quot;Ulrich Windl&quot;" />
<person posts="2" size="9" who="Dale K Dicks" />
<person posts="2" size="9" who="Alberto Bertogli" />
<person posts="2" size="9" who="Martins Krikis" />
<person posts="2" size="8" who="Alasdair G Kergon" />
<person posts="2" size="8" who="Tim Wright" />
<person posts="2" size="8" who="Michael Hunold" />
<person posts="2" size="8" who="Kumar Gala" />
<person posts="2" size="8" who="Norbert Preining" />
<person posts="2" size="8" who="Martin Josefsson" />
<person posts="2" size="8" who="Song Wang" />
<person posts="2" size="8" who=" (Joseph Fannin)" />
<person posts="2" size="8" who="David Mosberger" />
<person posts="2" size="8" who="Manfred Spraul" />
<person posts="2" size="8" who="Neil Brown" />
<person posts="2" size="8" who="Jeff Woods" />
<person posts="2" size="8" who="Andrew Rodland" />
<person posts="2" size="8" who="Helge Hafting" />
<person posts="2" size="7" who="Robert Lowery" />
<person posts="2" size="7" who="Lorenzo Hernandez Garcia-Hierro" />
<person posts="2" size="7" who="Mikhail Ramendik" />
<person posts="2" size="7" who="Darren Williams" />
<person posts="2" size="7" who="Rajesh Shah" />
<person posts="2" size="7" who="Benjamin LaHaise" />
<person posts="2" size="7" who="Oswald Buddenhagen" />
<person posts="2" size="7" who="James Pearson" />
<person posts="2" size="7" who="Martin Zwickel" />
<person posts="2" size="7" who="Andi Kleen" />
<person posts="2" size="7" who=" (Eric W. Biederman)" />
<person posts="2" size="7" who="Christian Borntraeger" />
<person posts="2" size="7" who="David Weinehall" />
<person posts="2" size="7" who="Karim Yaghmour" />
<person posts="2" size="7" who="Hollis Blanchard" />
<person posts="2" size="7" who="=?iso-8859-2?q?Pawe=B3_Sikora?=" />
<person posts="2" size="7" who="(jmerkey)" />
<person posts="2" size="6" who="Manuel Arostegui Ramirez" />
<person posts="2" size="6" who="Willy Weisz" />
<person posts="2" size="6" who="Jonathan Filiatrault" />
<person posts="2" size="6" who="Herbert Poetzl" />
<person posts="2" size="6" who="&quot;Harish K Harshan&quot;" />
<person posts="2" size="6" who="Marcel Holtmann" />
<person posts="2" size="6" who="Guennadi Liakhovetski" />
<person posts="2" size="6" who="John Cherry" />
<person posts="2" size="6" who="Gabor Gombas" />
<person posts="2" size="6" who="rahul b jain cs student" />
<person posts="2" size="6" who="Helge Hafting" />
<person posts="2" size="6" who="Bjorn Helgaas" />
<person posts="2" size="6" who="Roy Butler" />
<person posts="2" size="6" who="Ian Leonard" />
<person posts="2" size="6" who="Chris Wright" />
<person posts="2" size="6" who="Tomas Szepe" />
<person posts="2" size="6" who="Chris White" />
<person posts="2" size="6" who="(sirpj)" />
<person posts="2" size="6" who="&quot;Srinivas G.&quot;" />
<person posts="2" size="5" who="&quot;H. Peter Anvin&quot;" />
<person posts="2" size="5" who="Shobhit Mathur" />
<person posts="2" size="5" who="Der Herr Hofrat" />
<person posts="2" size="5" who="Naveen Kumar" />
<person posts="1" size="52" who="&quot;Victor J. Orlikowski&quot;" />
<person posts="1" size="50" who="Alex Weiss" />
<person posts="1" size="45" who="=?ISO-8859-1?Q?J=FCrg?= Billeter" />
<person posts="1" size="39" who="Peter Hicks" />
<person posts="1" size="38" who="Niels Elgaard Larsen" />
<person posts="1" size="37" who="Andrew Feldhacker" />
<person posts="1" size="34" who="Byron Stanoszek" />
<person posts="1" size="31" who="walt nelson" />
<person posts="1" size="24" who="Marian Stepka" />
<person posts="1" size="22" who="&quot;La Monte H.P. Yarroll&quot;" />
<person posts="1" size="21" who="Thibauld Favre" />
<person posts="1" size="19" who="Simon Matthews" />
<person posts="1" size="18" who="Martin D Kealey" />
<person posts="1" size="16" who="Asheesh Laroia" />
<person posts="1" size="15" who="Guido Guenther" />
<person posts="1" size="14" who="Miro Bogner" />
<person posts="1" size="14" who="dkey" />
<person posts="1" size="13" who="Tejas Vora" />
<person posts="1" size="11" who="&quot;IpsLinux&quot;" />
<person posts="1" size="10" who="Greg Ingram" />
<person posts="1" size="10" who="&quot;Goldwyn Rodrigues&quot;" />
<person posts="1" size="10" who="Shantanu Goel" />
<person posts="1" size="10" who="Mario ''Jorge'' Di Nitto" />
<person posts="1" size="9" who="maximilian attems" />
<person posts="1" size="9" who="Jens Bergmann" />
<person posts="1" size="8" who="Maikon Bueno" />
<person posts="1" size="8" who="&quot;Rajput&quot;" />
<person posts="1" size="8" who="&quot;Povolotsky, Alexander&quot;" />
<person posts="1" size="7" who="&quot;2 TALKIES WALKIES =?ISO-8859-1?Q?=20Port=E9e?= 5 KM 159 euro TTC&quot;" />
<person posts="1" size="7" who="Ian Molton" />
<person posts="1" size="7" who="Greg KH" />
<person posts="1" size="6" who="Pat LaVarre" />
<person posts="1" size="6" who="Helge Deller" />
<person posts="1" size="6" who="Trippie" />
<person posts="1" size="6" who="&quot;Chris Babcock&quot;" />
<person posts="1" size="6" who="Jack Steiner" />
<person posts="1" size="6" who="Florin Andrei" />
<person posts="1" size="5" who="Kasper Sandberg" />
<person posts="1" size="5" who="Suparna Bhattacharya" />
<person posts="1" size="5" who="&quot;Alexander \&quot;ghostrile\&quot; Bierbrauer&quot;" />
<person posts="1" size="5" who="Bill Davidsen" />
<person posts="1" size="5" who="Auzanneau Gregory" />
<person posts="1" size="5" who="Ivan Gyurdiev" />
<person posts="1" size="5" who="Tom Felker" />
<person posts="1" size="5" who="Hisaaki Shibata" />
<person posts="1" size="5" who="Petr Titera" />
<person posts="1" size="5" who="Robin Holt" />
<person posts="1" size="5" who="Brianlouise" />
<person posts="1" size="5" who="Robert Hancock" />
<person posts="1" size="5" who="Kalin KOZHUHAROV" />
<person posts="1" size="4" who="Vincent Hanquez" />
<person posts="1" size="4" who="Albert Cahalan" />
<person posts="1" size="4" who="Frank van Maarseveen" />
<person posts="1" size="4" who="Chris Mason" />
<person posts="1" size="4" who="&quot;John W. Ross&quot;" />
<person posts="1" size="4" who=" (Anton Ertl)" />
<person posts="1" size="4" who="Bill Nottingham" />
<person posts="1" size="4" who="Fons Adriaensen" />
<person posts="1" size="4" who="Sam Ravnborg" />
<person posts="1" size="4" who="Nivedita Singhvi" />
<person posts="1" size="4" who="Michael Thalmann" />
<person posts="1" size="4" who="&quot;Kerin Millar&quot;" />
<person posts="1" size="4" who="Hannes Reinecke" />
<person posts="1" size="4" who="(Administrator)" />
<person posts="1" size="4" who="David Gibson" />
<person posts="1" size="4" who="David Balazic" />
<person posts="1" size="4" who="&quot;J.A. Magallon&quot;" />
<person posts="1" size="4" who="(nelson_rufus)" />
<person posts="1" size="4" who="&quot;IVAN DE JESUS DERAS TABORA&quot;" />
<person posts="1" size="4" who="&quot;Luck, Tony&quot;" />
<person posts="1" size="4" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="1" size="4" who="Andrew Zabolotny" />
<person posts="1" size="4" who="&quot;Deepak Kumar Gupta, Noida&quot;" />
<person posts="1" size="4" who="(peterc)" />
<person posts="1" size="4" who="Matti Aarnio" />
<person posts="1" size="4" who="(sc2)" />
<person posts="1" size="4" who="Thomas DuBuisson" />
<person posts="1" size="4" who="Trond Myklebust" />
<person posts="1" size="4" who="cliff white" />
<person posts="1" size="4" who="Wes Janzen" />
<person posts="1" size="4" who="Greg Banks" />
<person posts="1" size="4" who="Zan Lynx" />
<person posts="1" size="4" who="&quot;Robert Lowery&quot;" />
<person posts="1" size="4" who="Tim Connors" />
<person posts="1" size="4" who="Andreas Dilger" />
<person posts="1" size="4" who="Tim Connors" />
<person posts="1" size="4" who="Waldo Bastian" />
<person posts="1" size="4" who="Elladan" />
<person posts="1" size="3" who="Eric Buddington" />
<person posts="1" size="3" who="&quot;Antonino A. Daplas&quot;" />
<person posts="1" size="3" who="&quot;Miquel van Smoorenburg&quot;" />
<person posts="1" size="3" who="Jean Tourrilhes" />
<person posts="1" size="3" who="Andy Whitcroft" />
<person posts="1" size="3" who="Wouter Verhelst" />
<person posts="1" size="3" who="Travis Morgan" />
<person posts="1" size="3" who="&quot;Emiliano 'AlberT' Gabrielli&quot;" />
<person posts="1" size="3" who="Ryan Underwood" />
<person posts="1" size="3" who="John Lenz" />
<person posts="1" size="3" who="Theodore Ts'o" />
<person posts="1" size="3" who="&quot;Adam Kropelin&quot;" />
<person posts="1" size="3" who="Alistair John Strachan" />
<person posts="1" size="3" who="Edward Macfarlane Smith" />
<person posts="1" size="3" who="Torsten Scheck" />
<person posts="1" size="3" who="Maciej Soltysiak" />
<person posts="1" size="3" who="Corey Minyard" />
<person posts="1" size="3" who="Nathan Fontenot" />
<person posts="1" size="3" who="Stefan Reinauer" />
<person posts="1" size="3" who="Toon van der Pas" />
<person posts="1" size="3" who="Willy Tarreau" />
<person posts="1" size="3" who="Himanshu Raj" />
<person posts="1" size="3" who="David Gibson" />
<person posts="1" size="3" who="(colin)" />
<person posts="1" size="3" who="Jean-Christophe Dubois" />
<person posts="1" size="3" who="&quot;Eric D. Mudama&quot;" />
<person posts="1" size="3" who="Nagendra Singh Tomar" />
<person posts="1" size="3" who="Giuseppe Bilotta" />
<person posts="1" size="3" who="Ari Pollak" />
<person posts="1" size="3" who="Miles Bader" />
<person posts="1" size="3" who="Harald Arnesen" />
<person posts="1" size="3" who="GSehp" />
<person posts="1" size="3" who="Mark Hahn" />
<person posts="1" size="3" who="Jeff Chua" />
<person posts="1" size="3" who="David Woodhouse" />
<person posts="1" size="3" who="Wakko Warner" />
<person posts="1" size="3" who="(jpff)" />
<person posts="1" size="3" who="Jens Schmalzing" />
<person posts="1" size="3" who="Tim Berti" />
<person posts="1" size="3" who="Eric Altendorf" />
<person posts="1" size="3" who="Alexander Gran" />
<person posts="1" size="3" who="Michael Driscoll" />
<person posts="1" size="3" who="Sebastian Slota" />
<person posts="1" size="3" who="(freaky)" />
<person posts="1" size="3" who="Andreas Schwab" />
<person posts="1" size="3" who="keysersoze" />
<person posts="1" size="3" who="Roger Larsson" />
<person posts="1" size="3" who="Manjunath" />
<person posts="1" size="3" who="Alexey Dobriyan" />
<person posts="1" size="3" who=" ( =?ISO-8859-1?Q?=C9ric?= Brunet)" />
<person posts="1" size="3" who="Alan Stern" />
<person posts="1" size="3" who="Milton Miller" />
<person posts="1" size="3" who="Diego Calleja =?ISO-8859-15?Q?Garc=EDa?=" />
<person posts="1" size="3" who="Eric Bambach" />
<person posts="1" size="3" who="&quot;Reinder&quot;" />
<person posts="1" size="3" who="Dominik Karall" />
<person posts="1" size="3" who="Daniele Venzano" />
<person posts="1" size="3" who="=?iso-8859-1?q?Steve=20Kieu?=" />
<person posts="1" size="3" who="Rob Couto" />
<person posts="1" size="3" who="Todd Poynor" />
<person posts="1" size="3" who="Jurgen Kramer" />
<person posts="1" size="3" who="Florian Echtler" />
<person posts="1" size="3" who="Daniel Phillips" />
<person posts="1" size="3" who="Go Taniguchi" />
<person posts="1" size="3" who="&quot;Bikram Assal&quot;" />
<person posts="1" size="3" who="Daniel Schmitt" />
<person posts="1" size="3" who="Justin Piszcz" />
<person posts="1" size="3" who="Christian Kujau" />
<person posts="1" size="3" who="Nuno Ferreira" />
<person posts="1" size="3" who=" (Arthur Othieno)" />
<person posts="1" size="3" who="Chris Friesen" />
<person posts="1" size="3" who="Steve Kinneberg" />
<person posts="1" size="3" who="ViCToRy" />
<person posts="1" size="3" who="Robert Horton" />
<person posts="1" size="3" who="&quot;Colin LEROY&quot;" />
<person posts="1" size="3" who="&quot;IIDA, MASANARI&quot;" />
<person posts="1" size="3" who="Jesse Barnes" />
<person posts="1" size="3" who="David Johnson" />
<person posts="1" size="3" who="(haiquy)" />
<person posts="1" size="3" who="=?iso-8859-1?q?Naveed=20Latif?=" />
<person posts="1" size="3" who="Dan Williams" />
<person posts="1" size="3" who="Thomas Sailer" />
<person posts="1" size="3" who="Florian Schmidt" />
<person posts="1" size="3" who="Dave Airlie" />
<person posts="1" size="3" who="James Morris" />
<person posts="1" size="3" who="Jan Knutar" />
<person posts="1" size="3" who="Joerg Paysen" />
<person posts="1" size="3" who="Martin Knoblauch" />
<person posts="1" size="3" who="Paul Heldens" />
<person posts="1" size="3" who="Cristian Gimenez" />
<person posts="1" size="3" who=" (nobody)" />
<person posts="1" size="3" who="Rafael =?iso-8859-1?q?=C1vila_de_Esp=EDndola?=" />
<person posts="1" size="3" who="Marc-Christian Petersen" />
<person posts="1" size="3" who="(P)" />
<person posts="1" size="2" who="Rasmus Lerdorf" />
<person posts="1" size="2" who="Rusty Russell" />
<person posts="1" size="2" who="&quot;Jim Gifford&quot;" />
<person posts="1" size="2" who="Nick Warne" />
<person posts="1" size="2" who="&quot;SimCopier&quot;" />
<person posts="1" size="2" who="Gopikrishnan Sidhardhan" />
<person posts="1" size="2" who="Leszek Koltunski" />
<person posts="1" size="2" who="Andre Eisenbach" />
<person posts="1" size="2" who="Christian Jaeger" />
<person posts="1" size="2" who="vlobanov" />
<person posts="1" size="2" who="Davide Rossetti" />
<person posts="1" size="2" who="Eric Lammerts" />
<person posts="1" size="2" who="&quot;Paul Zimmerman&quot;" />
<person posts="1" size="2" who="Ralf Baechle" />
<person posts="1" size="2" who="&quot;Boletim Brasileiro de Esporte Escolar&quot;" />
<person posts="1" size="2" who="Markus Kovero" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Jos=E9_de_Paula?=" />
<person posts="1" size="2" who="Borland" />
<person posts="1" size="2" who="Junio C Hamano" />
<person posts="1" size="2" who="=?iso-8859-1?q?so=20usp?=" />
<person posts="1" size="2" who="&quot;O.Sezer&quot;" />
<person posts="1" size="2" who="Frieder Buerzele" />
<person posts="1" size="2" who="Genady Okrain" />
<person posts="1" size="2" who="&quot;J. Rett, Senior Managing Partner&quot;" />
<person posts="1" size="2" who="Andreas Jellinghaus" />
<person posts="1" size="2" who="Barry Pollock" />
<person posts="1" size="2" who="Linda Xie" />
<person posts="1" size="2" who="Linux Kernel Mail Listing" />
<person posts="1" size="2" who="&quot;interscan MSS&quot;" />
<person posts="1" size="2" who="(Goronczkowski)" />
<person posts="1" size="2" who="(Afinowicz)" />
<person posts="1" size="2" who="(Balcerzak)" />

</stats>

<section
  title="Logging Firmware Errors During Boot"
  subject="[PATCH] [2.6] PPC64: log firmware errors during boot."
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2cAZw-53C-9%40gated-at.bofh.it"
  posts="16"
  startdate="29 Jun 2004 16:10:46 -0800"
  enddate="08 Jul 2004 09:55:45 -0800"
>
<topic>Spam</topic>

<mention>Dave Hansen</mention>

<p>Linas Vepstas said:</p>

<quote who="Linas Vepstas">

<p>Firmware can report errors at any time, and not atypically during boot.
However, these reports were being discarded until th rtasd comes up,
which occurs fairly late in the boot cycle.  As a result, firmware
errors during boot were being silently ignored.</p>

<p>This patch at least gets them printk'ed so that at least they show 
up in boot.msg/syslog.  There are two other logging mechanisms,
nvram and rtas, that I didn't touch because I don't understand 
the reprecussions.  In particular, nvram logging isn't enabled
until late in the boot ... but what's the point of nvram logging
if not to catch messages that occured very early in boot ??</p>

</quote>

<p>Paul Mackerras replied, <quote who="Paul Mackerras">As for printk'ing the
errors, it is annoying and it seems of somewhat dubious benefit to me, given
that it is just incomprehensible hex numbers that can go on and on.  There has
to be a better way.  Putting it in nvram seems like a better option to me.
I don't know of any reason why we can't use nvram quite early on.</quote>
Jake Moilanen remarked, <quote who="Jake Moilanen">We can initialize nvram
very early, but we shouldn't discard an event stored in nvram until rtasd
is up and can pull the event out as it might have been the error that took
the system down on the previous boot.  We could probably start rtasd up a
little earlier, but I'm not sure it buys us that much.</quote> close by,
Linas agreed in part with Paul:</p>

<quote who="Linas Vepstas">

<p>Yes, well, you'll be hard-pressed to find a lover of the hex format
anywhere.  Lets review the history of the design decisions that got us to
this point.  I think a better solution might then become evident.</p>

<p>-- Originally, these binary messages from firmware were decoded in the
kernel, and printed out in 'plain english'.  However, there were problems: 1)
the format of the binary kept evolving; I think we are now up to version 6.
2) the need for supporting version 6 and *all* of the earlier versions lead
to dreaded kernel bloat.  For the current user-space decoder:</p>

<pre># wc *.c *.h
   2207    7056   67959 total</pre>

<p>-- So the decision was wisely made to move this all to user-space.
But what shall the communications link between user-space and kernel be?
Somebody, somewhere,  I know not who or why, decided that they should go
into syslog.  And so here we are.</p>

<p>How else could we do this?  I have never had to architect a kernel-to-user
data communications interface, so I don't know what the alternatives are.
We could queue them up to some file in /proc, which user-space reads.
Or maybe /sys instead ?? Maybe a stunt with sockets? Some new device in /dev/
that can be opened, read, closed?  How should the user space daemon indicate
that its picked up the message and doesn't need it any more?  Write a msg
number to a /proc file?  Maybe each individual message should go in its
own file, and user space just rm's that file after its fetched/saved the
message.  I dunno, I think any one of these could be whipped up in a jiffy.
Convincing the user-space to use the interface might be harder.</p>

<p>Pick one. If it can be coded in under a day, I can volunteer to do that.</p>

</quote>

<p>Greg KH thought the whole issue was moot, and that Linas should just <quote
who="Greg KH">use syslog or netlink like the whole rest of the kernel does.
Don't reinvent the wheel again, please.</quote> Paul also said to Linas,
<quote who="Paul Mackerras">Netlink is the usual solution to this sort of
problem.  I think it would be reasonable to printk RTAS error events with
a severity of fatal and maybe even of error.  Warnings and events should
just get sent to rtasd.</quote> Hollis Blanchard said, <quote who="Hollis
Blanchard">I asked about this before, and was told that there is no way to
determine the severity of an event without doing full parsing of the binary
data. I'd be thrilled to be wrong...</quote> Nathan Fontenot replied:</p>

<quote who="Nathan Fontenot">

<p>Gettting the severity of an RTAS event is possible, and not too difficult.
Check out asm-ppc64/rtas.h for a definition of the RTAS event header (struct
rtas_error_log).  All RTAS events have the same initial header containing
the severity of the event.</p>

<p>Decoding RTAS events beyond the intial header, that gets ugly quick and
will hopefully never need to be done in the kernel.</p>

</quote>

<p>Close by, Jake remarked:</p>

<quote who="Jake Moilanen">

<p>The original "plan" for error logging was to eventually take out
the printk's all together once we could get ela (the userspace daemon
responsible for parsing error messages and routing them appropriately)
into all distros. We didn't want the possibility of a customer losing a
vital message by not having ela installed.</p>

<p>I would propose the making the printk's of the messages a kernel config
option.  Then the distros could turn it on or off depending on if they are
packaging ela.  All messages should still go to userspace though.  This will
alleviate the spamming of the printk buffer.</p>

<p>I have no problems in moving communication between kernel and userspace
to netlink.  Whomever makes the change needs to keep Mike Strosaker and Nathan
Fontenot informed since they are maintaining the user space counterpart.</p>

</quote>

<p>Close by, Linas said he'd like to wait to see if current patches got into
the kernel, before trying to deal with RTAS event severity; Greg and Dave
Hansen suggested that this would be a 2.7 issue; and the thread ended.</p>

</section>

<section
  title="orinoco Update; Trouble Splitting The Patch For Kernel Inclusion"
  subject="[PATCH] Update in-kernel orinoco drivers to upstream current CVS"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2dBJS-883-25%40gated-at.bofh.it"
  posts="20"
  startdate="02 Jul 2004 11:11:38 -0800"
  enddate="08 Jul 2004 15:30:55 -0800"
>
<topic>Version Control</topic>

<p>Dan Williams said:</p>

<quote who="Dan Williams">

<p>This patch is simply the fixed-up diff between the kernel's current 0.13e
version and the upstream 0.15rc1+ version from savannah CVS.  0.15rc1 has
been out for a couple months now and seems stable.</p>

<p>The major benefits that this newer version brings are, of course, many
bugfixes, but best of all wireless scanning support for the Orinoco line
of cards.</p>

<p><a
href="http://people.redhat.com/dcbw/linux-2.6.7-orinoco.patch.bz2">http://people.redhat.com/dcbw/linux-2.6.7-orinoco.patch.bz2</a></p>

</quote>

<p>Jeff Garzik took a look at it and remarked, <quote who="Jeff Garzik">I'm
desperately hoping that someone will split this up into multiple
patches...</quote> Jean Tourrilhes replied:</p>

<quote who="Jean Tourrilhes">

<p>David Gibson is the official maintainer of the Orinoco driver. Pavel Roskin
is the person that did most of the work on 0.15rc1+. I think it would be a nice
idea to involve those two person in such a discussion (therefore, cc'ed).</p>

<p>The difference between 0.13e and 0.15rc1+ is not small. I believe Pavel
did a good job in splitting the various patches in small pieces when adding
them to the CVS, and David has tracked the kernel, but reconciliating the
two branches is no trivial matter.</p>

<p>Jeff, does BitKeeper allow to merge patches at an earlier point than the
last version and reconciliate both branches ? That might come handy.</p>

<p>Good luck...</p>

</quote>

<p>Jeff replied, <quote who="Jeff Garzik">Yes, this is one of BitKeeper's
strengths.  I can create a BitKeeper repository circa 2.6.0, merge a patch,
and then merge that repository into the 2.6.7-BK-latest repository.</quote></p>

<p>Elsewhere, David Gibson apologized for the size of the patch, and said,
<quote who="David Gibson">I've done very, very little work on the driver
for well over a year now and the changes have built up to a megapatch.
I really does need to be broken up, but the chances of me finding the time
and motivation to do so are not looking good.</quote></p>

<p>Close by, Francois Romieu did some work on his own, splitting off several
patch fragments. David replied:</p>

<quote who="David Gibson">

<p>Aha, that's a good start.  During the week I'll try to look at these,
put my rubber stamp on them, and send them on to Jeff.</p>

<p>One thing I notice though (from your later ones, actually) is that you
seem to be moving from current 2.6 to the CVS HEAD branch.  That includes
the orinoco_usb stuff, which I still don't think is done right and would
rather not push.</p>

</quote>

<p>Francois said, <quote who="Francois Romieu">The savannah thing refused
the cvs+ssh connection. It would help if someone could post the url of the
relevant tarball.</quote> Some private communication took place; and a couple
of days later Francois reported:</p>

<quote who="Francois Romieu">

<p>The news:</p>

<p>

<ul>

<li>I got the adequate patch from the cvs repository</li>

<li>35 patches are available at the usual location. The series-mm file
  describes the ordering of the patches. I'll redo the numbering as
  it starts to be scary</li>

<li>the remaining diff weights ~210k so far</li>

</ul>

</p>

<p>At least it makes reviewing easier.</p>

</quote>

<p>Jeff suggested, <quote who="Jeff Garzik">If you are willing to do some
re-diffing, feel free to send out the boring, and easy-to-review parts such
as netdev_priv() or obvious cleanups.  That would help, at least, to cut
things to more meat, and less noise.</quote> They started haggling over the
patches, and the thread petered out.</p>

</section>

<section
  title="Possible XFS Data Corruption After Improper Shutdown"
  subject="XFS: how to NOT null files on fsck?"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2euGi-3HG-1%40gated-at.bofh.it&amp;prev=/groups%3Fas_ugroup%3Dlinux.kernel%26as_uauthors%3DNorberto%2520Bensa%26as_usubject%3DXFS:%2520how%2520to%2520NOT%2520null%2520files%2520on%2520fsck%3F%26as_drbb%3Db%26as_mind%3D04%26as_minm%3DJul%26as_miny%3D2004%26as_maxd%3D04%26as_maxm%3DJul%26as_maxy%3D2004"
  posts="45"
  startdate="04 Jul 2004 21:47:53 -0800"
  enddate="14 Jul 2004 11:00:46 -0800"
>
<topic>FS: XFS</topic>

<p>Norberto Bensa noticed that XFS would null out files after an improper
shutdown. He asked if there were a way to avoid this. L. A. Walsh replied
that this was an old problem, reported before on the XFS mailing list;
but she added:</p>

<quote who="L. A. Walsh">

<p>Apparently not easily reproduced, no one has a clue why it does it.
Just does.  Even after multiple syncs, files edited within the past few
days will sometimes go mysteriously null.  Good reason to do daily backups
as the backups will usually contain the correct file...</p>

<p>Now if we could just come up with a reproducable test case...but when I try
to reproduce it, it doesn't.  Grrr....it knows when I'm scrutinizing!! :-)</p>

</quote>

<p>In the course of discussion, Chris Wedgwood said:</p>

<quote who="Chris Wedgwood">

<p>XFS does <em>not</em> zero files, it simply returns zeros for unwritten
extents.  If you open an existing file and scribble all over it, you
might see the old data during a crash, or the new data if it was flushed.
You shouldn't see zero's though.</p>

<p>What does happen though, is that dotfiles are truncated and rewritten, if
the data blocks aren't flushed you will get zeros back because the extents
were unwritten.  This is really the only sensible thing to do given the
circumstances.</p>

<p>My guess is that with other fs' (when journaling metadata only) the
blocks allocated for the newly written data are <em>usually</em> the same as
the recently freed blocks from the truncate so things appear to work but in
reality it's probably mostly luck.  XFS could behave the same way, but sooner
or later you will still loose when you get crap back instead of old data.</p>

<p>Some applications just need to be fixed.</p>

</quote>

<p>L. A. replied:</p>

<quote who="L. A. Walsh">

<p>If it is of any help (I doubt it, it perplexes me)...the files I've
written out with vim and have returned "nulls" have been files that were
written out 2-3 <u>DAYS</u> earlier -- often with more recent write having
been saved fine.</p>

<p>I've also seen sections in log files where blocks would return zero in
the middle of a log.  Obviously blocks before and after successfully made it
to disk, but in <u>RARE</u> circumstances (crashes and unplanned shutdowns
are already rare enough, so it's a rare bug that only shows up on a 'rare'
occasion...:-).</p>

<p>Almost (shot in the dark), like some code that was supposed to zero unused
but allocated datablocks got pointed at the wrong blocks, since these files
are readable as having been written (yes may all be out of membuffs) and
are often recoverable from the day's backup.</p>

<p>If it was a file I just edited and then it crashed, that I could understand
more than having files I haven't touched for a few days be zapped.</p>

</quote>

<p>Chris said he had really never seen behavior like that, certainly not in
files that had been modified days earlier. He could guarantee that on his
own system, the checksumming scripts that kept track of all his files would
have noticed such behavior, and they never had. His best guess, in reply
to L. A.'s report, was that the files really were being changed somehow,
and not by XFS.</p>

<p>There was more discussion, but nothing conclusive.</p>

</section>

<section
  title="Linux 2.6.7-mm6 Released"
  subject="2.6.7-mm6"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2ey7c-66p-7%40gated-at.bofh.it&amp;prev=/groups%3Fas_ugroup%3Dlinux.kernel%26as_uauthors%3DAndrew%2520Morton%26as_usubject%3D2.6.7-mm6%26as_drbb%3Db%26as_mind%3D05%26as_minm%3DJul%26as_miny%3D2004%26as_maxd%3D05%26as_maxm%3DJul%26as_maxy%3D2004"
  posts="51"
  startdate="05 Jul 2004 01:31:20 -0800"
  enddate="08 Jul 2004 23:16:05 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Andrew Morton announced Linux 2.6.7-mm6, saying:</p>

<quote who="Andrew Morton">

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2.6.7-mm6/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/pat
ches/2.6/2.6.7/2.6.7-mm6/</a></p>

<ul>

<li>Added the DVD-RW/CD-RW packet writing patches.  These need more work.</li>

<li>The USB update seems deadlocky.  I fixed one bug but
it still causes my ia64 test box to lock up on boot.  If it
goes bad, please revert usb-locking-fix.patch and then revert
bk-usb.patch.  Retest and send a report to linux-kernel and <a
href="mailto:linux-usb-devel@lists.sourceforge.net">linux-usb-devel@lists.sourceforge.net</a>.</li>

</ul>

</quote>

</section>

<section
  title="Support For Boot-Time Splash-Screen In Software Suspend"
  subject="[PATCH] swsusp bootsplash support"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2fEWX-3CE-11%40gated-at.bofh.it"
  posts="22"
  startdate="08 Jul 2004 03:05:49 -0800"
  enddate="14 Jul 2004 03:27:16 -0800"
>
<topic>Bootsplash</topic>
<topic>FS: initramfs</topic>
<topic>FS: ramfs</topic>
<topic>Framebuffer</topic>
<topic>Software Suspend</topic>

<p>Erik Rigtorp said, <quote who="Erik Rigtorp">This patch adds support for
bootsplash to swsusp. The code interfacing to bootsplash needs some more work,
currently it's more or less ripped from swsusp2. Some more code could probably
be moved into console.c instead.</quote> Christoph Hellwig pointed out that
CONFIG_BOOTSPALSH was not currently part of the official kernel tree; and
so supporting it in the Software Suspend patches was premature. Christoph
also implied that CONFIG_BOOTSPALSH was unwelcome in the main tree. Pavel
Machek replied:</p>

<quote who="Pavel Machek">

<p>The patch was not intended for mainline... But it will be usefull anyway
as big distros want this kind of stuff....</p>

<p>Perhaps CONFIG_BOOTSPLASH should be in mainline after all?  I really
don't want to see 2 different incompatible sets of hooks into swsusp....</p>

</quote>

<p>But Christoph said, <quote who="Christoph Hellwig">No.  This stuff has no
business in the kernel, paint your fancy graphics ontop of fbdev.  And the
SuSE bootsplash patch is utter crap, I mean what do you have to smoke to
put a jpeg decoder into the kernel?</quote> Stefan Reinauer took umbrage at
these assertions, saying:</p>

<quote who="Stefan Reinauer">

<p>I agee with kernel 2.6 one could do a lot better due to proper initramfs
handling, but in kernel 2.4 there was no decent way of placing userspace
code early enough to be executed before framebuffer initialization.</p>

<p>On the other hand, the jpeg decoder is 8k object size - less than the
dozens of gzip/gunzip algorithms in the kernel, so complaining sounds a
little foolish to me. If you just want to bitch, go and critizise that with
1024x768 the bootsplash patch eats 1.5MB of memory permanently.  THAT would
make sense, if anything.</p>

<p>Whether one wants retro text messages or a graphical bootup mechanism is
sure a philosophical thing. IMHO starting X that early is not an option.</p>

</quote>

<p>Pavel also said to Christoph:</p>

<quote who="Pavel Machek">

<p>I have not seen SuSE version of bootsplash... I do not want to see. But
this way, SuSE has its own crappy bootsplash, RedHat probably too, Mandrake
probably too, etc.</p>

<p>And now, SUSE will want splash over swsusp, RedHat probably too, Madrake
probably too, etc. I do not want to deal with 3 different sets of hooks
into swsusp.</p>

<p>Now.. Perhaps cleaned-up bootsplash could find its way into kernel. That
would at least turn down ammount of crap in distributions. At least there
would be unified way to turn that thing off...</p>

<p>Or at least standartized hooks for various splashes, so that I do not
have to deal with 3 different sets?</p>

</quote>

<p>Christoph replied, <quote who="Christoph Hellwig">Red Hat gets it right
and uses a program that's using fbdev.  They also have no swsusp support,
which makes quite a lot of sense given how much in flux the code still
is.</quote></p>

<p>The discussion meandered on for a bit, then petered out inconclusively.</p>

</section>

<section
  title="Serial ATA (SATA) Status Report"
  subject="Linux Serial ATA (SATA) status report"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2fQvc-3uq-29%40gated-at.bofh.it"
  posts="3"
  startdate="08 Jul 2004 15:23:56 -0800"
  enddate="09 Jul 2004 03:12:04 -0800"
>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>Hot-Plugging</topic>
<topic>PCI</topic>
<topic>Serial ATA</topic>

<p>Jeff Garzik said:</p>

<quote who="Jeff Garzik">

<p>Serial ATA (SATA) for Linux<br/>
status report<br/>
July 8, 2004</p>

<p>This status report applies to the latest SATA driver release, found in
(not yet release) kernels 2.4.28 and 2.6.7.</p>

<h1><a name="section_1"/>Recent updates</h1>

<p>Recent libata changes have focused on updating the libata core to be
more flexible, and support newer SATA-II host controllers.  These
changes aren't very visible, but they lay the groundwork for a more
ATA hardware interface that supports queueing.</p>

<p>Various bits of the core have been tweaked in association with the
following buzzwords:  ATAPI, DMADIR, legacy TCQ, NCQ, hotplug, port
multiplier, jelly beans.  Ok, that last one isn't part of any official
specification.  But the others should be fun.</p>

<h1><a name="section_2"/>Hardware support</h1>

<h2><a name="section_2_1"/>Intel ICH5, ICH5-R, ICH6</h2>

<p>Summary: No TCQ. Looks like a PATA controller, but with a few added,
non-standard SATA port controls. Hardware does not support hotplug.
"Coldplug" support is potentially feasible.</p>

<p>libata driver status: Production, but see issue #2, #3.
Recently work on issue #2 has improved the state of that issue.</p>

<p>drivers/ide driver status: Production, but see issue #1, #2.</p>

<p>Issue #1: Depending on BIOS settings, IDE driver may lock up computer
when probing drives.</p>

<p>Issue #2: Excessive interrupts are seen in some configurations.</p>

<p>Issue #3: "Enhanced mode" or "SATA-only mode" may need to be set in BIOS.</p>

<h2><a name="section_2_2"/>AHCI (Intel ICH6-R/ICH6-M currently)</h2>

<p>Summary: Per-device queues, full SATA control including hotplug
and PM.</p>

<p>libata driver status: "looks like ICH5" support available in ata_piix.
Preliminary driver with full AHCI support now exists, and is being
integrated into libata mainline.</p>

<p>Note1:  AHCI specification is completely open.</p>

<p>Note2:  To ease integration, AHCI on ICH6 will be deployed inside the
ata_piix driver.</p>

<p>Note3:  SiS has AHCI on its roadmap.  Hopefully others will follow.</p>

<h2><a name="section_2_3"/>Promise TX2/TX4/SX4</h2>

<p>Summary: Per-host queues on all controllers. Full SATA control
including hotplug and PM on all but one controller (SX4).</p>

<p>libata TX2/TX4 driver status: Production, but see issue #5.</p>

<p>libata SX4 driver status: Production, but see issue #6.</p>

<p>Issue #5: Some boards appear to have PATA as well as SATA ports. PATA
is not currently supported, and no plans have yet been made to rectify
this. Ideally drivers/ide would drive PATA, but if they are the same
PCI device, that would not be feasible.</p>

<p>Issue #6: The SX4 hardware is not fully utilized by the Linux kernel
driver.  The SX4 hardware includes an on-board DIMM and hardware XOR
offload.  Using the on-board DIMM as cache, and issuing each RAID
transaction once (instead of once for each disk), will result in
increased performance, but the driver doesn't do that yet.  SX4 hardware
is very "RAID friendly", particularly RAID1/5.  Users may wish to use
the Promise driver to fully utilize the hardware.</p>

<h2><a name="section_2_4"/>Silicon Image 3112/3114</h2>

<p>Summary: No TCQ. Looks like a PATA controller, but with full SATA
control including hotplug and PM.</p>

<p>libata driver status: Beta.</p>

<p>drivers/ide driver status: Beta?</p>

<h2><a name="section_2_5"/>Silicon Image 3124</h2>

<p>Soon, hopefully.  Silicon Image has made documentation and sample
hardware available to me (jgarzik) for development.  Some code exists
internally.</p>

<h2><a name="section_2_6"/>Broadcom/ServerWorks/Apple</h2>

<p>Summary: Huge per-device queues, full SATA control including hotplug
and PM for the "Frodo4" and "Frodo8" boards.  Apple K2 SATA, which also
uses this chipset, has all the feature of Frodo4/8 save the host DMA
queueing feature ("QDMA").  QDMA supports legacy TCQ, but not NCQ.</p>

<p>libata driver status: Beta, but no QDMA support yet.</p>

<h3><a name="section_2_6_1"/>VIA</h3>

<p>Summary: No TCQ. Looks like a PATA controller, but with full SATA
control including hotplug and PM.</p>

<p>libata driver status: Beta.</p>

<h3><a name="section_2_6_2"/>NVIDIA</h3>

<p>Summary: No TCQ. Looks like a PATA controller, but with full SATA
control including hotplug and PM.</p>

<p>libata driver status: Beta.</p>

<h2><a name="section_2_7"/>SiS 180</h2>

<p>Summary: No TCQ. Looks like a PATA controller, but with full SATA
control including hotplug and PM.</p>

<p>libata driver status: Beta</p>

<h2><a name="section_2_8"/>Vitesse 7174 / Intel 31244</h2>

<p>Summary: NCQ and 64-bit DAC support possible, but not implemented.
Looks like a PATA controller, but with full SATA control including
hotplug and PM.</p>

<p>libata driver status: Beta</p>

<h2><a name="section_2_9"/>Marvell 88SX50[48]x</h2>

<p>Summary:  Similar to ServerWorks "frodo":  per-device queues, supports
legacy TCQ but not NCQ (I think??), full SATA control including hotplug
and PM.</p>

<p>libata driver status: in progress</p>

<h2><a name="section_2_10"/>HighPoint (HPT)</h2>

<p>I've had no contact with the company.  Someone poke them, and get
them to get me a card and docs :)</p>

<p>libata driver status:  no driver planned at this point.</p>

<h2><a name="section_2_11"/>ADMA (including Pacific Digital Talon SATA)</h2>

<p>Summary:  No control over SATA phy at all (no hotplug/PM).  Has
per-device hardware queues, and supports legacy TCQ.</p>

<p>Docs are public (yay!)</p>

<p>libata driver status:  none, but hopefully soon</p>

<h2><a name="section_2_12"/>3ware SATA RAID</h2>

<p>Not suited for libata architecture.  Separate SCSI driver exists.</p>

<h1><a name="section_3"/>Software support</h1>

<h2><a name="section_3_1"/>Basic Serial ATA support</h2>

<p>The "ATA host state machine", the core of the entire driver, is
considered production-stable.</p>

<p>The error handling is <u>very</u> simple, but at this stage that is an
advantage. Error handling code anywhere is inevitably both complex and
sorely under-tested. libata error handling is intentionally simple.
Positives: Easy to review and verify correctness. Never data
corruption. Negatives: if an error occurs, libata will simply send
the error back the block layer. There are limited retries by the block
layer, depending on the type of error, but there is never a bus reset.</p>

<p>Or in other words: "it's better to stop talking to the disk than
compound existing problems with further problems."</p>

<p>As Serial ATA matures, and host- and device-side errata become apparent,
the error handling will be slowly refined. I am planning to work with a
few (kind!) disk vendors, to obtain special drives/firmwares that allow
me to inject faults, and otherwise exercise error handling code.</p>

<h2><a name="section_3_2"/>Queueing support</h2>

<p>Even though some SATA host controllers on the market already support
command queueing (a.k.a. "TCQ"), libata does not yet support it.</p>

<p>However, libata was designed from the ground-up to support queueing, so
I need only change a few lines of code, and write two functions, to
enable this behavior.</p>

<p>Queueing will be enabled in libata soon, but to do so requires a long
stretch of testing on a large variety of controllers and drives. This
is very time-intensive, and is the largest part of this task.</p>

<p>Tangent: Host-based queueing and Native Command Queueing</p>

<p>Queueing is the process of sending multiple commands to a single device,
without waiting for prior commands to finish. This increases
performance and reduces latency. There are three types of queueing in
the ATA world:</p>

<ol>
  <li>"legacy TCQ" -- some PATA devices support this. Just ignore it,
it's going away.

  </li><li>"host-based TCQ" -- the host controller supports a queue of drive
commands, whether or not the drive supports it.

  </li><li>"Native Command Queueing" -- both host and drive cooperate in the
queueing and execution of drive commands. This should provide the
highest performance and lowest latency of all three options.

</li></ol>

<p>#1 will be supported only where hardware handles all the details.
#2 will soon be supported by libata.<br/>
#3 will be supported by libata when hardware is available from drive
manufacturers.</p>

<h2><a name="section_3_3"/>Hotplug support</h2>

<p>All SATA is hotplug.</p>

<p>libata does not support hotplug... yet.</p>

<p>The following SATA controllers will never support hotplug:
Intel ICH5, Intel ICH5-R, Intel ICH6 (non-AHCI), Pacific Digital Talon,
Promise SATA SX4.</p>

<p>These controllers do not export enough information about the SATA phy to
make it possible to support hotplug.  In some cases, such as Intel
ICH5/ICH6, it is possible to support "coldplug" operation:  the user
informs the OS driver he wishes to disconnect his SATA device, rather
than simply disconnecting it.</p>

<h2><a name="section_3_4"/>Power Management support</h2>

<p>Over and above the power management specified in the ATA/ATAPI
specification, one can aggressively control the power consumption of
SATA hosts, the SATA bus, and the SATA device.</p>

<p>Note:  as discussed on some mailing lists, the aggressive power
management can be too aggressive, and park the heads too often
(resulting in shortened disk drive life).  Careful attention must be
paid to balance.</p>

<h2><a name="section_3_5"/>SMART support</h2>

<p>Soon. Requires the capability to directly submit ATA commands from
userspace to the low-level device, which must be added with care. The
smartmontools developers have committed to adding a new device type '-d
sata' to utilize this passthrough, once it is ready.</p>

</quote>

</section>

<section
  title="iswraid Updated For 2.4.26"
  subject="[Announce] &quot;iswraid&quot; (ICH5R/ICH6R ataraid sub-driver) for 2.4.26"
  archive="http://groups.google.com/groups?hl=en&amp;lr=lang_en&amp;ie=UTF-8&amp;safe=off&amp;edition=us&amp;selm=2fVuI-6QX-1%40gated-at.bofh.it"
  posts="1"
  startdate="08 Jul 2004 20:38:04 -0800"
>
<topic>Big Memory Support</topic>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>Serial ATA</topic>

<mention>Jeff Garzik</mention>

<p>Martins Krikis said:</p>

<quote who="Martins Krikis">

<p>Version 0.1.4 of the Intel Sofware RAID driver
(iswraid) is now available for the 2.4 series kernels at <a
href="http://prdownloads.sourceforge.net/iswraid/2.4.26-libata-iswraid.patch.gz?download">http://prdownloads.sourceforge.net/iswraid/2.4.26-libata-iswraid.patch.gz?download</a></p>

<p>It is an ataraid "subdriver" but uses the SCSI subsystem to find
the RAID member disks. It depends on the libata library, particularly
the ata_piix driver that enables the Serial ATA capabilities in
ICH5/ICH6 chipsets. The libata patch by Jeff Garzik should be
applied before applying this patch. There is more information
and some ICH6R related patches at the project's home page at <a
href="http://iswraid.sourceforge.net/">http://iswraid.sourceforge.net/</a>.</p>

<p>The changes WRT version 0.1.3 are as follows:</p>

<p>

<ul>

<li>a fix for CONFIG_HIGHMEM systems;</li>

<li>reasonable handling of missing disks;</li>

<li>when RAID1 goes degraded, the I/O succeeds;</li>

<li>new mode that does not fail degraded RAID1 ever;</li>

<li>metadata updates started from the scheduler's queue;</li>

<li>slab caches instead of kmalloc-s;</li>

<li>small /proc filesystem tweaks;</li>

<li>serial number extraction fixed;</li>

<li>unused disks properly freed;</li>

<li>added documentation file;</li>

<li>major style changes and more comments about implementation choices.</li>

</ul>

</p>

<p>If you have any questions or comments, please CC me directly because I
no longer read this list.</p>

</quote>

</section>

<section
  title="Linux 2.6.7-rc1 Released; Some Discussion Of Release Policy"
  subject="Linux 2.6.8-rc1"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2gRp5-4tq-13%40gated-at.bofh.it"
  posts="29"
  startdate="11 Jul 2004 10:29:44 -0800"
  enddate="13 Jul 2004 12:54:02 -0800"
>
<topic>Disks: SCSI</topic>
<topic>FS: JFS</topic>
<topic>Kernel Release Announcement</topic>
<topic>Version Control</topic>

<mention>Paolo Ciarrocchi</mention>

<p>Linus Torvalds announced Linux 2.6.8-rc1, saying:</p>

<quote who="Linus Torvalds">

<p>Ok, there's been a long time between "public" releases, although the
automated BK snapshots have obviously been keeping people up-to-date.
Sorry about that, I blame mainly moving boxes and stuff around...</p>

<p>The diff is big, and skewed by some QLogic SCSI controller firmware
updates along with a few new (and some moved) drivers. Most of the rest is
a large collection of fairly small patches.</p>

</quote>

<p>Paolo Ciarrocchi suggested that there should be a battery of tests a kernel
had to go through before it could legitimately be labeled a release candidate
(-rc) or a full version. Adrian Bunk replied, <quote who="Adrian Bunk">Unless
he really knows what he's doing, no user should use anything other than the
actual releases (i.e. 2.6.7, 2.6.8, 2.6.9,...).</quote> He went on, <quote
who="Adrian Bunk">It would be more important if Linus would release one last
-rc that will be released unchanged (except for EXTRAVERSION a few days later
to catch bugs in last minute changes. This might catch more problems like
the JFS compile problem in 2.6.7.</quote> A few posts later, Adrian said
that the current release practices worked fairly well for the Linux kernel;
he felt no need for a test suite to justify new releases. He added, <quote
who="Adrian Bunk">Compared to some other open source projects like e.g.
Debian the Linux kernel has a pretty well-working release process (and the
2.6 development avoided several mistakes of the 2.4 development).</quote></p>

<p>At this point, Linus remarked:</p>

<quote who="Linus Torvalds">

<p>The whole _point_ of -rc kernels is to find silly problems.</p>

<p>Trying to have a release mechanism for -rc kernels in order to avoid some
problems in them would kind of defeat the point. The -rc kernels are there
to encourage people who wouldn't want to just take a daily shapshot to tell
us when we break things - and clearly it's working ;)</p>

<p>(There's also a totally nontechnical point to -rc kernels: it's a way to
tell people to calm down a bit. Usually we have a backlog that gets filled
up after a kernel release, and then with the -rc kernels people usually slow
down feeding non-critical stuff to me. At least a bit)</p>

</quote>

</section>

<section
  title="Status Of ipw2100 Wireless Driver"
  subject="ipw2100 wireless driver"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2hQr1-62p-23%40gated-at.bofh.it"
  posts="12"
  startdate="14 Jul 2004 03:41:35 -0800"
  enddate="14 Jul 2004 09:00:17 -0800"
>

<mention>Pavel Machek</mention>

<p>Pavel Machek asked what the status was of the ipw2100 wireless driver,
and in particular whether it would be incorporated into the main 2.6 kernel
tree. Eric Brunet replied, <quote who="Eric Brunet">I am very happy with
that module; I installed the rpm from atrpms.net on my Fedora Core 2,
ran the GUI to set up the interface, ifup eth1 and it worked on the first
try. No recompile, no fiddle with configuration files, I couldn't believe
it and was very impressed. I am not using the wifi card very often, but it
works with no glitch each time I try it.</quote></p>

<p>No definitive statement on the status or future of the driver was made.</p>

</section>

<section
  title="Memory Hotremoval For 2.6.7"
  subject="[PATCH] memory hotremoval for linux-2.6.7 [0/16]"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2hSja-7sR-11%40gated-at.bofh.it"
  posts="17"
  startdate="14 Jul 2004 05:41:38 -0800"
  enddate="14 Jul 2004 06:06:54 -0800"
>

<p>In a series of 16 patches, Hirokazu Takahashi presented:</p>

<quote who="Hirokazu Takahashi">

<p>I'm pleased to say I've cleaned up the memory hotremoval patch Mr. Iwamoto
implemented. Part of ugly code has gone.</p>

<p>Main changes are:</p>

<ul>

<li>Replaced the name remap with mmigrate as it was used for another
fuctionality.</li>

<li>Made some of the memory hotremoval code share with the swapout-code.</li>

<li>Added many comments to describe the design of the memory hotremoval.</li>

<li>Added a basic funtion to support for memsection.  try_to_migrate_page()
is it. It continues to get a proper page in a specified section and migrate
it while there remain pages in the section.</li>

</ul>

<p>The patches are against linux-2.6.7.</p>

<p>Note that some patches are to fix bugs. Without the patches hugetlbpage
migration won't work.</p>

</quote>

</section>

<section
  title="kexec Update For 2.6 x86 And PowerPC"
  subject="[ANNOUNCE] [PATCH] 2.6.8-rc1-kexec1  (ppc &amp; x86)"
  archive="http://groups.google.com/groups?hl=en&amp;lr=lang_en&amp;ie=UTF-8&amp;safe=off&amp;edition=us&amp;selm=2i7Lb-1T9-21%40gated-at.bofh.it"
  posts="1"
  startdate="14 Jul 2004 22:12:52 -0800"
>
<topic>Kexec</topic>

<p>Eric W. Biederman said:</p>

<quote who="Eric W. Biederman">

<p>I finally found some time to work on kexec again.  I have taken the time
to break the patches apart again, because with everything all in one patch
things get unmaintainable.</p>

<p>But I have also lumped everything together in one big patch to make
testing easier.</p>

<p>While doing this I found a bug where I was not putting IOAPIC into virtual
wire mode where appropriate.  This allows kexec to work on Opterons and
other affected systems.</p>

<p>The files are available at: <a
href="http://www.xmission.com/~ebiederm/files/kexec/2.6.8-rc1-kexec1">http://www.xmission.com/~ebiederm/files/kexec/2.6.8-rc1-kexec1</a></p>

<p>The first hunk of patches are essentially generic fixes to the boot process.
That should be safe to apply in general.</p>

<p>i8259-shutdown.patch<br />
apic-shutdown.patch<br />
reboot-on-bsp.patch<br />
ioapic-virtwire.patch</p>

<p>x86 does not like tlb flush or other generic code against the init_mm
this allows those to proceed.  I think long term I want to get away from
using init_mm, to many architectures make weird assumptions.</p>

<p>flush-init-mm.patch</p>

<p>The next are the kexec patches themselves.  The generic code and then
the architecture specific code.</p>

<p>kexec-generic.patch<br />
i386-kexec.patch<br />
ppc-gc-kexec.patch</p>

</quote>

</section>

</kc>

