<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="280" date="25 Oct 2004 00:00:00 -0800" />

<stats posts="1941" size="12166" contrib="467" multiples="266" lastweek="177">

<person posts="76" size="516" who="Andrew Morton" />
<person posts="51" size="273" who="Robert Love" />
<person posts="39" size="141" who="Alan Cox" />
<person posts="34" size="154" who="Jeff Garzik" />
<person posts="31" size="253" who="Ingo Molnar" />
<person posts="28" size="109" who="Greg KH" />
<person posts="27" size="103" who="Nick Piggin" />
<person posts="27" size="98" who="Pavel Machek" />
<person posts="24" size="219" who="Christoph Lameter" />
<person posts="24" size="134" who="Jens Axboe" />
<person posts="24" size="119" who="Paul Fulghum" />
<person posts="24" size="113" who="Jon Smirl" />
<person posts="20" size="123" who="Gene Heskett" />
<person posts="20" size="87" who="Andrea Arcangeli" />
<person posts="20" size="77" who="Hanna Linder" />
<person posts="19" size="76" who="Paul Jackson" />
<person posts="18" size="147" who="Stas Sergeev" />
<person posts="17" size="147" who="Linus Torvalds" />
<person posts="17" size="137" who="Kenji Kaneshige" />
<person posts="17" size="101" who="Denis Vlasenko" />
<person posts="17" size="65" who="Chris Wright" />
<person posts="16" size="146" who="Borislav Petkov" />
<person posts="16" size="66" who="Geert Uytterhoeven" />
<person posts="15" size="390" who="Jean-Luc Cooke" />
<person posts="15" size="90" who="Dmitry Torokhov" />
<person posts="15" size="49" who="Benjamin Herrenschmidt" />
<person posts="14" size="274" who="Hirokazu Takata" />
<person posts="14" size="79" who="Alan Cox" />
<person posts="14" size="69" who="&quot;Rafael J. Wysocki&quot;" />
<person posts="14" size="48" who="&quot;David S. Miller&quot;" />
<person posts="14" size="46" who="Andi Kleen" />
<person posts="13" size="74" who="Marcelo Tosatti" />
<person posts="13" size="69" who="Hugh Dickins" />
<person posts="13" size="51" who="Bill Davidsen" />
<person posts="13" size="51" who="Nigel Cunningham" />
<person posts="13" size="46" who="Lee Revell" />
<person posts="12" size="305" who="John McCutchan" />
<person posts="12" size="117" who="Steven Pratt" />
<person posts="12" size="61" who="Jesper Juhl" />
<person posts="12" size="38" who="James Bottomley" />
<person posts="11" size="61" who="Stephen Tweedie" />
<person posts="11" size="54" who="Ray Lee" />
<person posts="11" size="46" who="Olaf Hering" />
<person posts="11" size="41" who="Vojtech Pavlik" />
<person posts="11" size="37" who="Chris Friesen" />
<person posts="10" size="76" who="Jean Delvare" />
<person posts="10" size="52" who="&quot;J.A. Magallon&quot;" />
<person posts="9" size="74" who="Suresh Siddha" />
<person posts="9" size="51" who="David Gibson" />
<person posts="9" size="49" who="&quot;Bagalkote, Sreenivas&quot;" />
<person posts="9" size="49" who="Anton Altaparmakov" />
<person posts="9" size="45" who="Matthew Wilcox" />
<person posts="9" size="38" who="David Brownell" />
<person posts="9" size="38" who="Roland Dreier" />
<person posts="9" size="35" who="Luke Kenneth Casson Leighton" />
<person posts="9" size="34" who="&quot;Randy.Dunlap&quot;" />
<person posts="9" size="32" who="Christoph Hellwig" />
<person posts="8" size="46" who="Oleg Nesterov" />
<person posts="8" size="41" who="Peter Williams" />
<person posts="8" size="39" who="Jon Masters" />
<person posts="8" size="33" who="Adrian Cox" />
<person posts="8" size="33" who="&quot;Chen, Kenneth W&quot;" />
<person posts="8" size="30" who="Zwane Mwaikambo" />
<person posts="8" size="27" who="William Knop" />
<person posts="7" size="90" who="Jesse Barnes" />
<person posts="7" size="80" who="Badari Pulavarty" />
<person posts="7" size="75" who="Ram Pai" />
<person posts="7" size="66" who="Matthew Dobson" />
<person posts="7" size="47" who="&quot;Richard B. Johnson&quot;" />
<person posts="7" size="44" who="Matt Domsch" />
<person posts="7" size="34" who="Hirokazu Takahashi" />
<person posts="7" size="31" who="Theodore Ts'o" />
<person posts="7" size="30" who="&quot;Jeff V. Merkey&quot;" />
<person posts="7" size="29" who="Ulrich Drepper" />
<person posts="7" size="29" who="Robert Love" />
<person posts="7" size="26" who="Oliver Neukum" />
<person posts="7" size="25" who="Trond Myklebust" />
<person posts="7" size="25" who="Tonnerre" />
<person posts="6" size="86" who="Michael Hunold" />
<person posts="6" size="66" who="Micha Feigin" />
<person posts="6" size="39" who="&quot;Maciej W. Rozycki&quot;" />
<person posts="6" size="37" who="George Anzinger" />
<person posts="6" size="36" who="CaT" />
<person posts="6" size="34" who="John Cherry" />
<person posts="6" size="31" who="(linux)" />
<person posts="6" size="31" who="Keshavamurthy Anil S" />
<person posts="6" size="29" who="Michael Hunold" />
<person posts="6" size="29" who="&quot;Andrew A.&quot;" />
<person posts="6" size="29" who="Bartlomiej Zolnierkiewicz" />
<person posts="6" size="26" who="Neil Horman" />
<person posts="6" size="26" who="(Valdis.Kletnieks)" />
<person posts="6" size="24" who="Keith Whitwell" />
<person posts="6" size="24" who="Albert Cahalan" />
<person posts="6" size="23" who="Andi Kleen" />
<person posts="6" size="22" who="Russell King" />
<person posts="6" size="21" who="Mitch" />
<person posts="6" size="20" who="(viro)" />
<person posts="5" size="189" who="David Howells" />
<person posts="5" size="121" who="Christoph Hellwig" />
<person posts="5" size="35" who="Petr Vandrovec" />
<person posts="5" size="33" who="Chiaki" />
<person posts="5" size="23" who="Roland =?utf-8?q?Ca=C3=9Febohm?=" />
<person posts="5" size="23" who="Gerd Knorr" />
<person posts="5" size="22" who="Hans Reiser" />
<person posts="5" size="21" who="Dave Airlie" />
<person posts="5" size="21" who="Marcin =?iso-8859-2?q?Gibu=B3a?=" />
<person posts="5" size="20" who="Clemens Schwaighofer" />
<person posts="5" size="19" who="Arjan van de Ven" />
<person posts="5" size="19" who="Kevin Fenzi" />
<person posts="5" size="18" who="Adrian Bunk" />
<person posts="5" size="18" who="Jan De Luyck" />
<person posts="5" size="17" who="Pavel Machek" />
<person posts="5" size="16" who="(blaisorblade_spam)" />
<person posts="5" size="16" who="Ankit Jain" />
<person posts="5" size="15" who="William Lee Irwin III" />
<person posts="4" size="105" who="Jeffrey Mahoney" />
<person posts="4" size="61" who="Ed Tomlinson" />
<person posts="4" size="60" who="Roland Dreier" />
<person posts="4" size="50" who="Jason Stubbs" />
<person posts="4" size="49" who="Jeremy Fitzhardinge" />
<person posts="4" size="28" who="Jay Lan" />
<person posts="4" size="23" who="&quot;Jean Delvare&quot;" />
<person posts="4" size="22" who="Ray Bryant" />
<person posts="4" size="22" who="&quot;Ed Schouten&quot;" />
<person posts="4" size="18" who="&quot;Stephen C. Tweedie&quot;" />
<person posts="4" size="18" who="Gabriel Paubert" />
<person posts="4" size="18" who="Vladimir Dergachev" />
<person posts="4" size="17" who="Nick Piggin" />
<person posts="4" size="16" who="Andries Brouwer" />
<person posts="4" size="16" who="Judith Lebzelter" />
<person posts="4" size="15" who="Stefan Seyfried" />
<person posts="4" size="15" who="Marcel Holtmann" />
<person posts="4" size="14" who="Al Borchers" />
<person posts="4" size="13" who="Con Kolivas" />
<person posts="4" size="13" who="&quot;Stuart MacDonald&quot;" />
<person posts="4" size="12" who="Bernd Eckenfels" />
<person posts="3" size="92" who="Stephane Jourdois" />
<person posts="3" size="61" who="white phoenix" />
<person posts="3" size="59" who="Tim Cambrant" />
<person posts="3" size="56" who="Dominik Karall" />
<person posts="3" size="55" who="Karsten Wiese" />
<person posts="3" size="49" who="Felipe Alfaro Solana" />
<person posts="3" size="43" who="Norbert Preining" />
<person posts="3" size="42" who="Grant Wilson" />
<person posts="3" size="37" who="&quot;Robert White&quot;" />
<person posts="3" size="26" who="Takashi Iwai" />
<person posts="3" size="20" who="Zachary Amsden" />
<person posts="3" size="19" who="Bjorn Helgaas" />
<person posts="3" size="18" who="Shailabh Nagar" />
<person posts="3" size="16" who="Patryk Jakubowski" />
<person posts="3" size="15" who="Eyal Lebedinsky" />
<person posts="3" size="15" who="Jan Kara" />
<person posts="3" size="14" who="&quot;Martin Schlemmer [c]&quot;" />
<person posts="3" size="14" who="Peter Zijlstra" />
<person posts="3" size="14" who="Jeff Mahoney" />
<person posts="3" size="13" who="James Courtier-Dutton" />
<person posts="3" size="13" who="Guennadi Liakhovetski" />
<person posts="3" size="13" who="&quot;Miller, Mike (OS Dev)&quot;" />
<person posts="3" size="12" who="&quot;Sy, Dely L&quot;" />
<person posts="3" size="12" who="Dave Hansen" />
<person posts="3" size="12" who="Anthony DiSante" />
<person posts="3" size="12" who="Ingo Molnar" />
<person posts="3" size="12" who="Kenny Bentley" />
<person posts="3" size="11" who="Ralf Baechle" />
<person posts="3" size="11" who="Guido Guenther" />
<person posts="3" size="11" who="Colin Leroy" />
<person posts="3" size="11" who="Matt Heler" />
<person posts="3" size="11" who="Kirill Korotaev" />
<person posts="3" size="10" who="Meelis Roos" />
<person posts="3" size="10" who="Adam Sherman" />
<person posts="3" size="10" who="Paolo Ciarrocchi" />
<person posts="3" size="9" who="Jari Ruusu" />
<person posts="3" size="9" who="Hanno Meyer-Thurow" />
<person posts="3" size="9" who="Tom Duffy" />
<person posts="3" size="9" who="alan" />
<person posts="2" size="86" who="Alexander Nyberg" />
<person posts="2" size="64" who="Daniel Gryniewicz" />
<person posts="2" size="49" who="Sid Boyce" />
<person posts="2" size="49" who="Wim Van Sebroeck" />
<person posts="2" size="43" who="Ralph Corderoy" />
<person posts="2" size="41" who="Andrew Rodland" />
<person posts="2" size="35" who="Ed Sweetman" />
<person posts="2" size="31" who="Thomas Gleixner" />
<person posts="2" size="16" who="Jim Nelson" />
<person posts="2" size="13" who="Alex Williamson" />
<person posts="2" size="12" who="Andre Eisenbach" />
<person posts="2" size="12" who="=?ISO-8859-1?Q?Timo_Ter=E4s?=" />
<person posts="2" size="11" who="&quot;Dino Klein&quot;" />
<person posts="2" size="11" who="Ivan Kokshaysky" />
<person posts="2" size="10" who="Robin Holt" />
<person posts="2" size="10" who="=?iso-8859-1?q?Jo=E3o_Luis_Meloni_Assirati?=" />
<person posts="2" size="10" who="Jakob Oestergaard" />
<person posts="2" size="10" who="Harald Welte" />
<person posts="2" size="10" who="&quot;Mukker, Atul&quot;" />
<person posts="2" size="9" who="Andy Lutomirski" />
<person posts="2" size="9" who="todd nguyen" />
<person posts="2" size="9" who="Anton Blanchard" />
<person posts="2" size="9" who="Steve Dickson" />
<person posts="2" size="9" who="Andreas Dilger" />
<person posts="2" size="8" who="Tom Rini" />
<person posts="2" size="8" who="&quot;Petr Vandrovec&quot;" />
<person posts="2" size="8" who="Hiroyuki KAMEZAWA" />
<person posts="2" size="8" who="IWAMOTO Toshihiro" />
<person posts="2" size="8" who="Reuben Farrelly" />
<person posts="2" size="8" who="shobhit dayal" />
<person posts="2" size="8" who="Jan-Benedict Glaw" />
<person posts="2" size="8" who="Ian Romanick" />
<person posts="2" size="8" who="Herbert Xu" />
<person posts="2" size="8" who="Pete Zaitcev" />
<person posts="2" size="8" who="Kenneth Johansson" />
<person posts="2" size="8" who="Martin Waitz" />
<person posts="2" size="8" who="Dave Airlie" />
<person posts="2" size="8" who="Ashok Raj" />
<person posts="2" size="8" who="&quot;Geetha S.L&quot;" />
<person posts="2" size="8" who="Krzysztof Taraszka" />
<person posts="2" size="7" who="Thomas Stewart" />
<person posts="2" size="7" who="Martin Zwickel" />
<person posts="2" size="7" who="&quot;Shesha B. &quot; Sreenivasamurthy" />
<person posts="2" size="7" who="Reuben Farrelly" />
<person posts="2" size="7" who="Lennert Buytenhek" />
<person posts="2" size="7" who="Bernhard Rosenkraenzer" />
<person posts="2" size="7" who="maximilian attems" />
<person posts="2" size="7" who=" (Franz Pletz)" />
<person posts="2" size="7" who="Sean Neakums" />
<person posts="2" size="7" who="&quot;David Busby&quot;" />
<person posts="2" size="7" who="Michal Rokos" />
<person posts="2" size="7" who="Pasi Savolainen" />
<person posts="2" size="7" who="Stefano Rivoir" />
<person posts="2" size="7" who="Maarten de Boer" />
<person posts="2" size="7" who="Neil Brown" />
<person posts="2" size="7" who=" (Alan Kilian)" />
<person posts="2" size="7" who="Jon Lewis" />
<person posts="2" size="7" who="&quot;Martin J. Bligh&quot;" />
<person posts="2" size="7" who="&quot;Vitezslav Samel&quot;" />
<person posts="2" size="7" who="Adrian Bunk" />
<person posts="2" size="7" who="Josh Boyer" />
<person posts="2" size="7" who="Ryan Cumming" />
<person posts="2" size="6" who="David Mosberger" />
<person posts="2" size="6" who="Josef 'Jeff' Sipek" />
<person posts="2" size="6" who="Geoff Oakham" />
<person posts="2" size="6" who="Francois Romieu" />
<person posts="2" size="6" who="Frederic Dumoulin" />
<person posts="2" size="6" who="&quot;Tony Howat&quot;" />
<person posts="2" size="6" who="&quot;Joel Soete&quot;" />
<person posts="2" size="6" who="Jesse Barnes" />
<person posts="2" size="6" who="Mark Lord" />
<person posts="2" size="6" who="David Woodhouse" />
<person posts="2" size="6" who="Bartlomiej Zolnierkiewicz" />
<person posts="2" size="6" who="Thomas Davis" />
<person posts="2" size="6" who="Manfred Spraul" />
<person posts="2" size="6" who="Jesse" />
<person posts="2" size="6" who="Willy Tarreau" />
<person posts="2" size="6" who="Matt Mackall" />
<person posts="2" size="6" who="Jesse Stockall" />
<person posts="2" size="6" who="Richard Henderson" />
<person posts="2" size="6" who="Mark Lord" />
<person posts="2" size="6" who="Norberto Bensa" />
<person posts="2" size="6" who="Duncan Sands" />
<person posts="2" size="6" who="Hadmut Danisch" />
<person posts="2" size="6" who="dean gaudet" />
<person posts="2" size="5" who="Adam Heath" />
<person posts="2" size="5" who="Patrick Caulfield" />
<person posts="2" size="5" who="Soeren Sonnenburg" />
<person posts="2" size="5" who="(support)" />
<person posts="2" size="5" who="cranium2003" />
<person posts="2" size="4" who="Denis Zaitsev" />
<person posts="1" size="66" who="Jochen Friedrich" />
<person posts="1" size="59" who="Laurent Riffard" />
<person posts="1" size="46" who="root" />
<person posts="1" size="42" who="&quot;Brian McGrew&quot;" />
<person posts="1" size="38" who="Tim Krieglstein" />
<person posts="1" size="36" who=" (Florian Bohrer)" />
<person posts="1" size="27" who="Raj" />
<person posts="1" size="27" who="Michel Angelo da Silva Pereira" />
<person posts="1" size="25" who="Ralf Hildebrandt" />
<person posts="1" size="24" who="Renaud Guerin" />
<person posts="1" size="23" who="&quot;D. Stimits&quot;" />
<person posts="1" size="19" who="=?iso-8859-1?Q?Rog=E9rio?= Brito" />
<person posts="1" size="17" who="Martin Emrich" />
<person posts="1" size="16" who="&quot;Gianluca Cecchi&quot;" />
<person posts="1" size="14" who="&quot;Gerard H. Pille&quot;" />
<person posts="1" size="12" who="Jurriaan" />
<person posts="1" size="11" who="Matthias Andree" />
<person posts="1" size="10" who="&quot;Povolotsky, Alexander&quot;" />
<person posts="1" size="8" who="Theodore Kilgore" />
<person posts="1" size="8" who="Hirokazu Takata" />
<person posts="1" size="8" who="Paul Gortmaker" />
<person posts="1" size="8" who="(Andries.Brouwer)" />
<person posts="1" size="8" who="Scott A Crosby" />
<person posts="1" size="7" who="Grzegorz Kulewski" />
<person posts="1" size="7" who="max attems" />
<person posts="1" size="7" who="&quot;Pallipadi, Venkatesh&quot;" />
<person posts="1" size="6" who="=?UTF-8?B?VGltbyBUZXLDpHM=?=" />
<person posts="1" size="6" who="David Wysochanski" />
<person posts="1" size="6" who="Jesse Allen" />
<person posts="1" size="6" who="&quot;Ju, Seokmann&quot;" />
<person posts="1" size="5" who="(wknop)" />
<person posts="1" size="5" who="Jeremy Higdon" />
<person posts="1" size="5" who="Chris Mason" />
<person posts="1" size="5" who="=?utf-8?q?Jo=C3=A3o_Luis_Meloni_Assirati?=" />
<person posts="1" size="5" who="Nicolas Mailhot" />
<person posts="1" size="5" who="&quot;Stephen J. Gowdy&quot;" />
<person posts="1" size="5" who="Aleksandar Milivojevic" />
<person posts="1" size="5" who="Timothy Miller" />
<person posts="1" size="5" who="Ryan Arnold" />
<person posts="1" size="5" who="Thomas Petazzoni" />
<person posts="1" size="5" who="Ronald Moesbergen" />
<person posts="1" size="5" who="&quot;Venkatesan, Ganesh&quot;" />
<person posts="1" size="5" who="Ross Dickson" />
<person posts="1" size="5" who="&quot;Andy Currid&quot;" />
<person posts="1" size="5" who="cheung001" />
<person posts="1" size="5" who="Greg Banks" />
<person posts="1" size="5" who="Gustavo Guillermo Perez" />
<person posts="1" size="5" who="&quot;NucleoDyne Systems, &quot; &quot;Inc.&quot;" />
<person posts="1" size="5" who="Emiliano Garcia" />
<person posts="1" size="5" who="Peter Chubb" />
<person posts="1" size="5" who="&quot;Lever, Charles&quot;" />
<person posts="1" size="5" who="Daniel Stekloff" />
<person posts="1" size="5" who="John Carlson" />
<person posts="1" size="5" who="Erik Oomen" />
<person posts="1" size="5" who="Ed L Cashin" />
<person posts="1" size="4" who="Mike Waychison" />
<person posts="1" size="4" who="Jay Lan" />
<person posts="1" size="4" who="&quot;Mark M. Hoffman&quot;" />
<person posts="1" size="4" who="&quot;Hua Zhong&quot;" />
<person posts="1" size="4" who="Tim Bird" />
<person posts="1" size="4" who="Wolfgang Walter" />
<person posts="1" size="4" who="Michal Schmidt" />
<person posts="1" size="4" who="Roland =?iso-8859-1?q?Ca=DFebohm?=" />
<person posts="1" size="4" who="Olaf Dietsche" />
<person posts="1" size="4" who="Matt Porter" />
<person posts="1" size="4" who="Herbert Poetzl" />
<person posts="1" size="4" who=" &lt;pconnors@anwod-usa.com&gt;" />
<person posts="1" size="4" who="Alex Zarochentsev" />
<person posts="1" size="4" who="Eric Anholt" />
<person posts="1" size="4" who="Alessandro Sappia" />
<person posts="1" size="4" who="Sampsa Ranta" />
<person posts="1" size="4" who="Andreas Haumer" />
<person posts="1" size="4" who="OHKUBO Katsuhiko" />
<person posts="1" size="4" who="Rajendra P Mishra" />
<person posts="1" size="4" who="&quot;Ulrich Windl&quot;" />
<person posts="1" size="4" who="Peter Zijlstra" />
<person posts="1" size="4" who="Dan Kegel" />
<person posts="1" size="4" who="&quot;Ivan Kalatchev&quot;" />
<person posts="1" size="4" who="Roland McGrath" />
<person posts="1" size="4" who="Gavrila" />
<person posts="1" size="4" who="Andre Bonin" />
<person posts="1" size="4" who="Felix =?ISO-8859-1?Q?K=FChling?=" />
<person posts="1" size="4" who="Alan Stern" />
<person posts="1" size="4" who="Dominik Vogt" />
<person posts="1" size="4" who="Joel Schopp" />
<person posts="1" size="4" who="Henry Margies" />
<person posts="1" size="4" who="&quot;Martin Schlemmer [c]&quot;" />
<person posts="1" size="4" who="Bastian Blank" />
<person posts="1" size="4" who="Thomas Glanzmann" />
<person posts="1" size="4" who="jurek Ela Tryjarscy" />
<person posts="1" size="4" who="&quot;Antonino A. Daplas&quot;" />
<person posts="1" size="4" who="Vladimir Saveliev" />
<person posts="1" size="4" who="Martin Wilck" />
<person posts="1" size="4" who="Matthias Bernges" />
<person posts="1" size="4" who="Martin Hermanowski" />
<person posts="1" size="4" who="Joshua Kwan" />
<person posts="1" size="4" who="Venkatesh Pallipadi" />
<person posts="1" size="4" who="Michelle Konzack" />
<person posts="1" size="3" who="&quot;Feldman, Scott&quot;" />
<person posts="1" size="3" who="&quot;Teras Timo (EXT-YomiGroup/Helsinki)&quot;" />
<person posts="1" size="3" who="(Daniel_Weigert)" />
<person posts="1" size="3" who="&quot;Andrey S. Klochko&quot;" />
<person posts="1" size="3" who="&quot;Prakash K. Cheemplavam&quot;" />
<person posts="1" size="3" who="James Cleverdon" />
<person posts="1" size="3" who="James Bruce" />
<person posts="1" size="3" who=" (Marcel Sebek)" />
<person posts="1" size="3" who="Mathieu Segaud" />
<person posts="1" size="3" who=" (Jay Denebeim)" />
<person posts="1" size="3" who="David Lang" />
<person posts="1" size="3" who="Yoichi Yuasa" />
<person posts="1" size="3" who="Christian Hesse" />
<person posts="1" size="3" who="Greg Banks" />
<person posts="1" size="3" who="&quot;Martijn Sipkema&quot;" />
<person posts="1" size="3" who="mikem" />
<person posts="1" size="3" who="Jack Lloyd" />
<person posts="1" size="3" who="&quot;Srinivas Naga Vutukuri&quot;" />
<person posts="1" size="3" who="Werner Almesberger" />
<person posts="1" size="3" who="Ingo Saitz" />
<person posts="1" size="3" who="&quot;K.R. Foley&quot;" />
<person posts="1" size="3" who="&quot;David S. Miller&quot;" />
<person posts="1" size="3" who="Beber" />
<person posts="1" size="3" who="Michael Baumann" />
<person posts="1" size="3" who="Arik Funke" />
<person posts="1" size="3" who="Thomas Zehetbauer" />
<person posts="1" size="3" who="&quot;Peter W. Morreale&quot;" />
<person posts="1" size="3" who="&quot;Rev. Water&quot;" />
<person posts="1" size="3" who="&quot;Marty Leisner&quot;" />
<person posts="1" size="3" who="Keith Packard" />
<person posts="1" size="3" who="Helge Hafting" />
<person posts="1" size="3" who="Andreas Schwab" />
<person posts="1" size="3" who="Axel Gordon Grossklaus" />
<person posts="1" size="3" who="Frank Smith" />
<person posts="1" size="3" who="Tigran Aivazian" />
<person posts="1" size="3" who="Mitch" />
<person posts="1" size="3" who="maks attems" />
<person posts="1" size="3" who="&quot;Nathaniel W. Filardo&quot;" />
<person posts="1" size="3" who="Nuno Silva" />
<person posts="1" size="3" who="Tony Luck" />
<person posts="1" size="3" who="Saber Zrelli" />
<person posts="1" size="3" who="Charles Johnston" />
<person posts="1" size="3" who="Arnd Bergmann" />
<person posts="1" size="3" who="(jmerkey)" />
<person posts="1" size="3" who="(mike.miller)" />
<person posts="1" size="3" who="Juri Haberland" />
<person posts="1" size="3" who="&quot;Sam Ravnborg&quot;" />
<person posts="1" size="3" who="&quot;David Busby&quot;" />
<person posts="1" size="3" who="Jeff Sipek" />
<person posts="1" size="3" who="Raul Miller" />
<person posts="1" size="3" who="root" />
<person posts="1" size="3" who="Sami Farin" />
<person posts="1" size="3" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="1" size="3" who="Markus Lidel" />
<person posts="1" size="3" who="Brad Campbell" />
<person posts="1" size="3" who="Axel Waggershauser" />
<person posts="1" size="3" who="Jan Dittmer" />
<person posts="1" size="3" who="&quot;David Busby&quot;" />
<person posts="1" size="3" who="&quot;J. Bruce Fields&quot;" />
<person posts="1" size="3" who="Frederik Deweerdt" />
<person posts="1" size="3" who=" (Anton Ertl)" />
<person posts="1" size="3" who="Matthew Garrett" />
<person posts="1" size="3" who="Pascal Schmidt" />
<person posts="1" size="3" who="Mitch DSouza" />
<person posts="1" size="3" who="Sam Ravnborg" />
<person posts="1" size="3" who="Con Kolivas" />
<person posts="1" size="3" who="James Morris" />
<person posts="1" size="3" who="Andre Eisenbach" />
<person posts="1" size="3" who="Nathan Bryant" />
<person posts="1" size="3" who="Lars Marowsky-Bree" />
<person posts="1" size="3" who="Robert Harris" />
<person posts="1" size="3" who="Tom Dickson" />
<person posts="1" size="3" who="Tim Hockin" />
<person posts="1" size="3" who="Dave Jones" />
<person posts="1" size="3" who="Jim Paris" />
<person posts="1" size="3" who="Ian Leonard" />
<person posts="1" size="3" who="Zwane Mwaikambo" />
<person posts="1" size="3" who="Marcus Sundberg" />
<person posts="1" size="3" who="Christian Borntraeger" />
<person posts="1" size="3" who="Rahul Jain" />
<person posts="1" size="3" who="Toon van der Pas" />
<person posts="1" size="3" who="&quot;Shlomi Yaakobovich&quot;" />
<person posts="1" size="3" who="bert hubert" />
<person posts="1" size="3" who="Marcus Metzler" />
<person posts="1" size="2" who="&quot;Markus T.&quot;" />
<person posts="1" size="2" who="&quot;Arvind Kalyan&quot;" />
<person posts="1" size="2" who="Simon Derr" />
<person posts="1" size="2" who="Frank van Maarseveen" />
<person posts="1" size="2" who="Luc Saillard" />
<person posts="1" size="2" who="Christian Gmeiner" />
<person posts="1" size="2" who="Patrick McHardy" />
<person posts="1" size="2" who="David Crick" />
<person posts="1" size="2" who="Paul Mackerras" />
<person posts="1" size="2" who="(pkumar)" />
<person posts="1" size="2" who="Mike Mestnik" />
<person posts="1" size="2" who="(pinotj)" />
<person posts="1" size="2" who="age huisman" />
<person posts="1" size="2" who="Hubert Tonneau" />
<person posts="1" size="2" who="(postmaster)" />
<person posts="1" size="2" who="(postmaster)" />
<person posts="1" size="2" who="(imdave)" />
<person posts="1" size="2" who="(kby)" />

</stats>

<section
  title="Redesigning Readahead"
  subject="[PATCH/RFC] Simplified Readahead"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2J5LW-2pH-15%40gated-at.bofh.it&amp;prev=/groups%3Fas_ugroup%3Dlinux.kernel%26as_uauthors%3DSteven%2520Pratt%26as_usubject%3D%255BPATCH/RFC%255D%2520Simplified%2520Readahead%26as_drbb%3Db%26as_mind%3D23%26as_minm%3DSep%26as_miny%3D2004%26as_maxd%3D23%26as_maxm%3DSep%26as_maxy%3D2004"
  posts="33"
  startdate="23 Sep 2004 08:06:05 -0800"
  enddate="05 Oct 2004 09:52:20 -0800"
>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS: JFS</topic>

<mention>Andrew Morton</mention>

<p>Steven Pratt said:</p>

<quote who="Steven Pratt">

<p>The readahead code has undergone many changes in the 2.6 kernel and the
current implementation is in my opinion obtuse and hard to maintain.  We
would like to offer up an alternative simplified design which will not
only make the code easier to maintain, but as performance tests have
shown, results in better performance in many cases.</p>

<p>We are very interested in having others review and try out the code and
run whatever performance tests they see fit.</p>

<p>Quick overview of the new design:</p>

<p>The key design point of the new design is to make the readahead code
aware of the size of the I/O request.  This change eliminates the need
for treating large random I/O as sequential and all of the averaging
code that exists just to support this.  In addition to this change, the
new design ramps up quicker, and shuts off faster.  This, combined with
the request size awareness eliminates the so called "slow read path"
that we try so hard to avoid in the current code.  For complete details
on the design of the new readahead logic, please refer to
<a href="http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/read-ahead-design.pdf">http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/read-ahead-design.pdf</a></p>

<p>There are a few exception cases which still concern me.</p>

<p>

<ol>

<li>pages already in cache</li>

<li>I/O queue congestion.</li>

<li>page stealing</li>

</ol>

</p>

<p>The first of these is a file already residing in page cache.  If we do
not code for this case we will end up doing multiple page lookups for
each page.  The current code tries to handle this using the
check_ra_success function, but this code does not work.
check_ra_success will subtract 1 page each time an I/O is completely
contained in page cache, however on the main path we will increment the
window size by 2 for each page in the request (up to max_readahead) thus
negating the reduction.  My question is what is the right behavior.
Reducing the size of the ahead window doesn't help.  You must turn off
readahead to have any effect.  Once you believe all pages to be in page
cache we should just immediately turn off readahead.  What is this
trigger point?  4 I/Os in a row? 400?  My concern is that the savings
for skipping the double lookup appears to be on the order of .5% CPU in
my tests, but the penalty for small I/O in sequential read case can be
substantial.  Currently the new code does not handle this case, but it
could be enhanced to do so.</p>

<p>The second case is on queue congestion.  Current code does not submit
the I/O if the queue is congested. This will result in each page being
read serially on the cache miss path.  Does submitting 32 4k I/Os
instead of 1 128k I/O help queue congestion?  Here is one place where
the current cod gets real confusing.  We reduce the window by 1 page for
queue congestion(treated the same as page cache hit), but we leave the
information about the current and ahead windows alone even though we did
not issue the I/O to populate it and so we will never issue the I/O from
the readahead code.  Eventually we will start taking cache misses since
no one read the pages.  That code decrements the window size by 3, but
as in the cache hit case since we are still reading sequentially we keep
incrementing by 2 for each page; net effect -1 for each page not in
cache.    Again, the new code ignores the congestion case and still
tries to do readahead, thus minimizing/optimizing the I/O requests sent
to the device.  Is this right?  If not what should we do?</p>

<p>The third exception case is page stealing where the page into which
readahead was done is reclaimed before the data is copied to user
space.  This would seem to be a somewhat rare case only happening under
sever memory pressure, but my tests have shown that it can occur quite
frequently with as little as 4 threads doing 1M readahead or 16 threads
doing 128k readahead on a machine with 1GB memory of which 950MB is page
cache.  Here it would seem the right thing to do is shrink the window
size and reduce the  chance for page stealing, this however kill I/O
performance if done to aggressively.  Again the current code may not
perform as expected. As in the 2 previous cases, the -3 is offset by a
+2 and so unless > 2/3 of pages in a given window are stolen the net
effect is to ignore the page stealing.  New code will slowly shrink the
window as long as stealing occurs, but will quickly regrow once it stops.</p>

<p>Performance:</p>

<p>A large number of tests have been run to test the performance of the new
code, but it is in no way comprehensive.  Primarily I ran tiobench to
ensure that the major code paths were hit.  I also ran sysbench in the
mode which has been reported to cause problems on the current/recent
readahead code.  I used multiple machines and disk types to test on.
The small system is a 1 way pentium III 866MHz with 256MB memory and a
dedicated IDE test disk.  The second machine is an 8way pentium IV
2.0GHz with 1GB memory and test were on on both a dedicated 10k-rpm SCSI
disk on on-board adaptec adapter and on 2GBit QLA2300 Fiber attached
FAStT700 7 disk RAID0 array.</p>

<p>In summary, the new code was always equal to or better than the current
code on all variation and all test configurations.  Tests were run
multiple time on freshly formatted JFS file systems on both 2.6.8.1 and
2.6.9-rc2-mm1.  Results for the 2 kernel versions were similar so I am
including only the 2.6.9-rc2-mm1 results.
Tiobench results:</p>

<p>Summary:</p>

<p>   For single threaded tests sequential reads the code is equal on IDE
and single SCSI disks, but the new code is 10-20% fasted on RAID.  For
Multi threaded sequential reads the new code is always faster(20-50%).
For random reads the new code is equal to the old for all cases where
the request size is less than or equal to the max_readahead size.   For
request sizes larger than max_readahead the new code is as much as 50%
faster.</p>

<p>tiobench --block n --size 4000 --numruns 2 --threads m<br />
        (where m is one of 4096,16384,524288 and n is one of 1,4,16,64)</p>


<p>Graph lines with "new7" are the new readahead code, all others are the
stock kernel.</p>

<p>Single CPU IDE<br />
<a href="http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/128k-ide.html">http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/128k-ide.html</a></p>

<p>8way Single SCSI<br />
<a href="http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/mm1-128k-new7.html">http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/mm1-128k-new7.html</a></p>

<p>8way RAID0<br />
<a href="http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/mm1-128kRAID-new7.html">http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/mm1-128kRAID-new7.html</a></p>

<p>Sysbench results:</p>

<p>sysbench --num-threads=254 --test=fileio --file-total-size=4G
--file-test-mode=rndrw'</p>

<p>IDE Disk<br />
  Current:  1.303 MB/sec average<br />
   New:      1.314 MB/sec average</p>

<p>SCSI Disk<br />
   Currnent: 2.713 MB/sec average<br />
   New:         2.746 MB/sec average</p>

<p>For full results see:<br />
<a href="http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/sysbench.results">http://www-124.ibm.com/developerworks/opensource/linuxperf/readahead/sysbench.results</a></p>

</quote>

<p>Joel Schopp thought this design was superior to the existing code in all
ways. And Andrew Morton agreed that the current design did get a bit ugly in
places. Andrew offered some technical criticism of the patch, adding that
it needed some cleaning up before it could be accepted. Steven and Andrew
hashed out some of the technical details, along with various other folks,
and the thread ended.</p>

</section>

<section
  title="Linux 2.6.9-rc2-mm4 Released"
  subject="2.6.9-rc2-mm4"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2ISlo-1pt-5%40gated-at.bofh.it&amp;prev=/groups%3Fas_ugroup%3Dlinux.kernel%26as_uauthors%3DAndrew%2520Morton%26as_usubject%3D2.6.9-rc2-mm4%26as_drbb%3Db%26as_mind%3D26%26as_minm%3DSep%26as_miny%3D2004%26as_maxd%3D26%26as_maxm%3DSep%26as_maxy%3D2004"
  posts="45"
  startdate="26 Sep 2004 17:10:21 -0800"
  enddate="01 Oct 2004 21:31:18 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>PCI</topic>
<topic>Version Control</topic>

<p>Andrew Morton announced Linux 2.6.9-rc2-mm4, saying:</p>

<quote who="Andrew Morton">

<p><a href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc2/2.6.9-rc2-mm4/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc2/2.6.9-rc2-mm4/</a></p>

<p>

<ul>

<li>ppc64 builds are busted due to breakage in bk-pci.patch</li>

<li>sparc64 builds are busted too.  Also due to pci problems.</li>

<li>Various updates to various things.  In particular, a kswapd artifact
which could cause too much swapout was fixed.</li>

<li>I shall be offline for most of this week.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Making Keyboard LEDs Blink On Kernel Panic"
  subject="[PATCH] Readd panic blinking in 2.6"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2JMxi-8vh-7%40gated-at.bofh.it"
  posts="6"
  startdate="29 Sep 2004 05:05:09 -0800"
  enddate="30 Sep 2004 01:06:37 -0800"
>
<topic>FS: sysfs</topic>

<p>Andi Kleen said:</p>

<quote who="Andi Kleen">

<p>Later 2.4 had a feature that would make the keyboard LEDs blink when a
panic occurred.  This patch adds it to 2.6 too.</p>

<p>This is useful when your machine is in X and locks up.  With the blinking
keyboard lights you at least know that a panic happened, not that it randomly
locked up.</p>

<p>I cleaned it up a bit and ported it to the new keyboard driver. Unlike
2.4 it also works now with panic=...  and doesn't rely on the timer interrupt
ticking anymore.  It's also clear, now it uses a generic callback, no ifdefs.
Should also work now with modular keyboard driver and the panic blink
frequency can be configured in sysfs (this is useful for a few KVMs who
don't like this). Setting it to 0 turns it off.</p>

<p>Work left to do: find some way to use HLT in the busy loops.  Currently
machines eat a lot of power in panic and sometimes they hang in this state
for days until somebody can reset them.  Unfortunately this will require
relying on the timer interrupts again.</p>

<p>P.S. Before anyone asks: no, i'm not interested in morse code output.</p>

</quote>

</section>

<section
  title="Linux 2.6.9-rc3"
  subject="Linux 2.6.9-rc3"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2K07b-1Ez-3%40gated-at.bofh.it"
  posts="31"
  startdate="29 Sep 2004 19:37:46 -0800"
  enddate="01 Oct 2004 04:36:35 -0800"
>
<topic>Kernel Release Announcement</topic>

<p>Linus Torvalds announced Linux 2.6.9-rc3, saying:</p>

<quote who="Linus Torvalds">

<p>Ok, this 2.6.9 cycle is getting too long, but here's a -rc3 and hopefully
we're getting there now.</p>

<p>Architecture updates, networking, drivers, sparse annotations. You
name it.</p>

</quote>

<p>Bill Davidsen commented, <quote who="Bill Davidsen">A recent note related
to read vs. write speed actually shows about a 40% degrade in write speed
from 2.6.8. I hope 2.6.9 will be held back at least a few days in hopes of
verifying or debunking that. I have some results showing "slower" by about
30%, but it was just production runs, not benchmarks.</quote></p>

</section>

<section
  title="Context-Switching Multiple Linux Instances"
  subject="OS Virtualization"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2KtMa-5u7-3%40gated-at.bofh.it"
  posts="6"
  startdate="01 Oct 2004 03:17:06 -0800"
  enddate="01 Oct 2004 10:00:18 -0800"
>
<topic>Microkernels: Adeos</topic>
<topic>User-Mode Linux</topic>

<mention>Chris Wright</mention>

<p>Arvind Kalyan asked:</p>

<quote who="Arvind Kalyan">

<p>I'm trying to load and run two linux kernels simultaneously; trying to
demonstrate virtualization as a first step.</p>

<p>Anyone have pointers to where I can start? I looked into plex, bochs,
vmware, usermode linux.. they only simulate an architecture upon which
another kernel runs.</p>

<p>My intentions are to give control to both the kernels to directly control
the hardware and do "context switch" between those two based on time-slice.</p>

</quote>

<p>Frederik Deweerdt recommended, <quote who="Frederik
Deweerdt">Maybe you could have a look at Adeos: <a
href="http://home.gna.org/adeos/">http://home.gna.org/adeos/</a></quote>.
Martin Waitz suggested, <quote who="Martin Waitz">Have a look at Xen: <a
href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/">http://www.cl.cam.ac.uk/Research/SRG/netos/xen/</a>.
They don't really allow direct hardware manipulation but use drivers of their
own.</quote> To this, Adam Heath corrected, <quote who="Adam Heath">For
2.0, they allow direct hardware manipulation.</quote> Chris Wright also
recommended Xen.</p>

</section>

<section
  title="Memory Defragmentation"
  subject="[RFC] memory defragmentation to satisfy high order allocations"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2KBT9-3hg-5%40gated-at.bofh.it&amp;prev=/groups%3Fas_ugroup%3Dlinux.kernel%26as_uauthors%3DMarcelo%2520Tosatti%26as_usubject%3D%255BRFC%255D%2520memory%2520defragmentation%2520to%2520satisfy%2520high%2520order%2520allocations%26as_drbb%3Db%26as_mind%3D01%26as_minm%3DOct%26as_miny%3D2004%26as_maxd%3D01%26as_maxm%3DOct%26as_maxy%3D2004"
  posts="31"
  startdate="01 Oct 2004 10:22:21 -0800"
  enddate="04 Oct 2004 18:53:47 -0800"
>
<topic>SMP</topic>

<p>Marcelo Tosatti said:</p>

<quote who="Marcelo Tosatti">

<p>I've been playing with memory defragmentation for the last couple of
weeks.</p>

<p>The following patch implements a "coalesce_memory()" function which takes
"zone" and "order" as a parameter.</p>

<p>It tries to move enough physically nearby pages to form a free area of
"order" size.</p>

<p>It does that by checking whether the page can be moved, allocating a new
page, unmapping the pte's to it, copying data to new page, remapping the ptes,
and reinserting the page on the radix/LRU.</p>

<p>Its very uncomplete yet - for one SMP concurrent radix lookups will
screw file page unmapping (swapcache lookup should be safe), and lots of
other buggies inside.  For example it doesnt re establishes pte's once it
has unmapped them.</p>

<p>I'm working on those.</p>

<p>But it works fine on UP (for a few minutes :)), and easily creates large
physically contiguous areas of memory.</p>

<p>With such a thing in place we can build a mechanism for kswapd (or a
separate kernel thread, if needed) to notice when we are low on high order
pages, and use the coalescing algorithm instead blindly freeing unique pages
from LRU in the hope to build large physically contiguous memory areas.</p>

</quote>

<p>Nick Piggin liked the idea, although he felt Marcelo might run into some
kswapd problems. Marcelo replied:</p>

<quote who="Marcelo Tosatti">

<p>I understand that kswapd is broken, and it needs to go into the page
reclaim path to free pages when we are out of high order pages (what your
"beat kswapd" patches do and fix high-order failures by doing so), but Linus's
argument against it seems to be that "it potentially frees too much pages"
causing harm to the system. He also says this has been tried in the past,
with not nice results.</p>

<p>And that is why its has not been merged into mainline.</p>

<p>Is my interpretation correct?</p>

</quote>

<p>Nick replied of the situation with his own patch, <quote who="Nick
Piggin">Basically, it gets kswapd doing the work when it would otherwise
have to be done in direct reclaim, *OR* otherwise indefinitely fail if
the allocations aren't blockable.</quote> He added, <quote who="Nick
Piggin">Linus was silent on the issue after I answered his concerns.
I mailed him privately and he basically said that it seems sane, and he is
waiting for patches. Of course, by that stage it was fairly late into 2.6.9,
and the current behaviour isn't a regression, so I'm shooting for 2.6.10.
Your defragmentor should sit very nicely on top of it, of course.</quote></p>

</section>

<section
  title="Some Clarification Of Patch Authentication Policy"
  subject="Loops in the Signed-off-by process"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2KBgI-2LN-59%40gated-at.bofh.it"
  posts="10"
  startdate="01 Oct 2004 11:25:17 -0800"
  enddate="02 Oct 2004 17:04:50 -0800"
>

<p>Dave Hansen had some questions about the recent patch submission policy
changes, first covered in <kcref subject="[RFD] Explicitly documenting patch
submission" startdate="22 May 2004 22:46:29 -0800"/>. Dave said:</p>

<quote who="Dave Hansen">

<p>With the recent ppc64 updates, a few patches in my tree didn't merge
very easily.  Being lazy, I asked one of the ppc64 developers to resync
them for me.  But, it happened to be someone other than the original
author that did this.</p>

<p>When they got sent to me again, the original author's (and my)
Signed-off-by: lines were gone, replaced by the nice fellow who merged
them.  This was certainly an artifact of how he generates patches and
obviously not malicious, but I still wonder what the "right" thing to do
is.</p>

<p>Do we show the logical flow?</p>

<p>Signed-off-by: original author<br />
Signed-off-by: patch merger<br />
Signed-off-by: tree maintainer</p>

<p>Or the actual flow of the patches, showing that they came back to the
tree maintainer twice?</p>

<p>Signed-off-by: original author<br />
Signed-off-by: tree maintainer<br />
Signed-off-by: patch merger<br />
Signed-off-by: tree maintainer</p>

<p>Or, does it even really matter?</p>

</quote>

<p>Linus Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>I don't think it matters that much, although I personally prefer to see
the person who sent it to me ("touched it last") be last in the list.
That's partly because of the fact that especially with bigger merges (ie
with Andrew), I just do a search-and-replace, and replace any "signed off
by sender" with "signed off by sender and me".</p>

<p>At the same time, I think it's pretty unnecessary (and possibly confusing)
to have somebody mentioned twice, so I'd actually prefer to see people
just move their (previous) sign-off to be last when they send it on.</p>

<p>Side note: I also like seeing "Acked-by:" or "Cc:" things just above the
sign-off lines, because it ends up being useful if there are any technical
issues with the patch - if a bug is found, it's very convenient to just
take all the sign-off people _and_ the other "involved" people and send
off a query to them all. Even if that "Acked-by:" has no other meaning
than as a mention of the fact that somebody else was involved in
discussions, even if they may not have been involved in actually writing
or passing off the ptch.</p>

</quote>

<p>Paul Jackson said:</p>

<quote who="Paul Jackson">

<p>The protocol for adding an Acked-by line mystifies me a little.</p>

<p>If I submit a patch after having a good discussion of it with Joe Blow,
is it appropriate for me to add an Acked-by line for Joe on my own, or
should I get his consent (or know him well enough to know he consents)
or should I only so add if Joe asks me to?</p>

<p>In other words, does the presence of such a line commit Joe to any
position on the patch, beyond perhaps not being too annoyed if he gets
queries on it?</p>

</quote>

<p>Linus replied, <quote who="Linus Torvalds">The "acked-by" thing doesn't
mean anything, so you should just use your own judgement.</quote> He
reiterated that the 'acked-by' line committed nobody to anything, and that
<quote who="Linus Torvalds">The annoyance factor is the only factor to take
into account.</quote></p>

</section>

<section
  title="Linux 2.6.9-rc3-mm1 Released"
  subject="2.6.9-rc3-mm1"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2KNUn-2Wp-3%40gated-at.bofh.it"
  posts="10"
  startdate="02 Oct 2004 00:43:52 -0800"
  enddate="02 Oct 2004 12:28:53 -0800"
>
<topic>Kernel Release Announcement</topic>

<p>Andrew Morton announced Linux 2.6.9-rc3-mm1, saying:</p>

<quote who="Andrew Morton">

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc3/2.6.9-rc3-mm1/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc3/2.6.9-rc3-mm1/</a></p>

<p>

<ul>

<li>Various fixups, cleanups, etc.  Nothing particularly notable.</li>

<li>ppc64 build are still broken.</li>

<li>sparc64 builds are still broken.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Software Suspend 2.1-rc1 For 2.6.8.1 And 2.6.9-rc3"
  subject="[Announce]: Software Suspend 2.1-rc1 for 2.6.8.1 and 2.6.9-rc3."
  archive=""
  posts="1"
  startdate="02 Oct 2004 15:45:17 -0800"
>
<topic>Software Suspend</topic>

<p>Nigel Cunningham said:</p>

<quote who="Nigel Cunningham">

<p>Software suspend 2.1-rc1 for the above kernels has been uploaded to <a
href="http://softwaresuspend.berlios.de">http://softwaresuspend.berlios.de</a>.</p>

<p>Changes since 2.0.0.109 are pretty minimal, amounting almost exclusively
to compile fixes. There is no new functionality, but some refrigerator calls
have been fixed (hvc console and pdflush in particular).</p>

<p>Since the announcement on the suspend-devel list, one minor issue has
been found which applies to the 2.6.8.1 version only. And additional patch
(which can be applied after the others or popped into the patch directory
before applying) is attached.</p>

</quote>

</section>

<section
  title="Merging DRM And fbdev"
  subject="Merging DRM and fbdev"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2L5HB-6RV-13%40gated-at.bofh.it"
  posts="18"
  startdate="02 Oct 2004 19:55:55 -0800"
  enddate="04 Oct 2004 11:48:00 -0800"
>
<topic>BSD</topic>
<topic>Framebuffer</topic>
<topic>PCI</topic>
<topic>Small Systems</topic>

<p>Jon Smirl said:</p>

<quote who="Jon Smirl">

<p>I've started on a merged fbdev and DRM driver model.
It doesn't work yet but here's what the modules look like:</p>

<table>
<th>Module</th><th>Size</th><th>Used by</th>
<tr><td>fbcon</td><td style="text-align: right;">38080</td><td>0</td></tr>
<tr><td>radeon</td><td style="text-align: right;">123598</td><td>1</td></tr>
<tr><td>fb</td><td style="text-align: right;">34344</td><td>2 fbcon,radeon</td></tr>
<tr><td>drm</td><td style="text-align: right;">59044</td><td>1 radeon</td></tr>
</table>

<p>fbcon and fb modules are almost unmodified from the kernel source.
radeonfb and radeondrm have been merged into a single driver. The merged
driver uses both the drm and fb modules as libraries. It wasn't possible to
build this model until drm supported drm-core.</p>

<p>The radeon and fb modules will get smaller, I'm just beginning to use
the delete key on them. There is still a lot of duplicated code inside the
radeon driver.</p>

<p>In this model a non-drm, fb only driver like cyber2000 could load only
the fb and fbcon modules. I need to do some work rearranging generic library
support functions to allow this.</p>

<p>This is the next phase in the work described in this email: <a
href="http://lkml.org/lkml/2004/8/2/111">http://lkml.org/lkml/2004/8/2/111</a></p>

</quote>

<p>Dave Airlie remarked, <quote who="Dave Airlie">I think the stated issue
with this is, how big the fb driver now becomes because all the DRM stuff
is in it... I think a radeon common, with radeonfb/radeondrm is probably
going to be needed.</quote> Jon said:</p>

<quote who="Jon Smirl">

<p>Resource reservations are not the central problem with merging fbdev
and drm. The central problem is that both card specific drivers
initialize the hardware, program it in conflicting ways, allocate the
video memory differently, etc. Moving to a single card specific driver
lets me fix that.</p>

<p>In the final form both the VGA scheme and my code provide shared
resource reservation code. The main difference between the schemes is
that the VGA scheme allows multiple independent card drivers while
mine only allow a single merged one.</p>

<p>Multiple card drivers in the past has resulted in conflicting
programming of the hardware. I suppose we could write a bunch of rules
about how to share the hardware but that seems like a lot of
complicated work. The radeon has over 200 registers that would need
rules for what settings are allowed. It's a lot easier to simply merge
20K of radeonfb  driver into the radeondrm and eliminate this error
prone process.</p>

<p>If we could all just concentrate on fixing the radeondrm driver we
could build a complete driver for the radeon cards instead of the ten
half finished ones we have today. Once we get a complete driver the
incentive for people to write new ones will be gone.</p>

<p>The two models look like this:</p>

<pre>vga - attached to hardware
   radeon-drm
      drm - library
   radeon-fb
      fb - library
         fbcon - library</pre>

<p>My model....</p>

<pre>radeon - attached to hardware
   drm - library
   fb - library
      fbcon - library</pre>

<p>vga - independent driver, there is only one VGA device even if
multiple radeons. This driver is responsible for secondary card
resets.</p>

<p>In the first model radeon-drm and radeon-fb can run independently.
This requires duplication of the initialization code. Since the are
separate drivers they can and do have completely different models for
programming the hardware. At VT switch time the drivers have to
save/restore state.</p>

<p>In the second model it is not required that a driver support both fb
and drm. Something like cyber2000 does have to link in drm since it
has no use for it.</p>

<p>A complaint in the second model might be that the radeon driver is
120K. If some embedded system is really, really tight on RAM and they
are embedding a radeon but don't want to use its advanced abilities,
there is nothing stopping someone from splitting the radeon driver up
into pieces. I will happily take the patch. Doing this is probably a
week's worth of coding and testing to get maybe 50K memory savings.
Simplest way to do this is to add IFDEFs to remove drm support from
the merged radeon driver.</p>

</quote>

<p>Vladimir Dergachev said of Jon's model:</p>

<quote who="Vladimir Dergachev">

<p>Can we add to this "km" library ? (That's the GATOS v4l module)</p>

<p>In particular, I can contribute the code that does Framebuffer->System Ram
transfers over PCI/AGP. It is currently GPL licensed, but there is no
problem if BSD folks want it too.</p>

<p>This is also potentially useful for any Mesa functions that want to
transfer data back from video RAM - using plain reads for this is really
slow.</p>

</quote>

<p>Alan Cox said of the RAM transfers over PCI/AGP, <quote who="Alan Cox">This
will do *wonders* to X render performance if used properly on those cards
we can't do render in hardware.</quote> And regarding the Mesa comment,
Alan <quote who="Alan Cox">Agreed - and Mesa tends to skip even tricks like
SSE2 that can quadruple read performance.</quote> Vladimir replied:</p>

<quote who="Vladimir Dergachev">

<p>I am glad to see such enthusiasm :)</p>

<p>The code I have only does it on ATI cards (all radeons, all rage128, some
mach64). The radeon code is the one that is known to work well.</p>

<p>My personal interest is that Framebuffer -> System Ram transfer is needed
if one wants to use Radeon GPUs for numerical computation. Thus, if there
is an agreement on what needs to be done and what modifications are
acceptable I can make this a priority.</p>

<p>What kind of interface would different projects want ? Should I wait for
Jon's modifications to complete ? What people should we include on CC list ?</p>

<p>Also here is a short description of current km design:</p>

<p>

<ul>

<li>km.[c,h] - this provides module registration and DMA queue
      virtualization (note: this is GUI_DMA queue, different from what
      DRM uses)</li>

<li>radeon.c, rage128.c, mach64.c - these are hardware specific
      functions</li>

<li>km_memory.[c,h] - this is v4l code for reverse mapping, I guess
      it is obsolete in 2.6.x kernels</li>

<li>km_api.[c,h] km_api_data.[c,h] - this is a new interface for
      video (and similar devices), an experiment to implement features
      not present in v4l or v4l2.<br />
      ** I am not suggesting this be included. **</li>

<li>km_v4l.c - this is a client of km_api that provides v4l
      interface.</li>

</ul>

</p>

<p>The first two pieces can be ported with ease - there are few modifications
to be made, just cut the code that registers the driver.</p>

<p>The km_api piece will need to be replaced with interface everyone agrees
on.</p>

</quote>

<p>Completely elsewhere in the discussion, Bill Davidsen also remarked,
<quote who="Bill Davidsen">Perhaps there might be some feedback from the
embedded folks and/or those who decide if these changes are what they want
to go in the kernel. If you're going to do something like this, one of the
embedded vendors might want to contribute to development. Clearly smaller
software parts have advantages, if resources were available to do it split
as part of the modification.  That would probably reduce the maintenence
effort in the future as well.</quote></p>

</section>

<section
  title="Linux 2.6.9-rc3-mm2 Released"
  subject="2.6.9-rc3-mm2"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2Lx19-Tq-35%40gated-at.bofh.it&amp;prev=/groups%3Fas_ugroup%3Dlinux.kernel%26as_uauthors%3DAndrew%2520Morton%26as_usubject%3D2.6.9-rc3-mm2%26as_drbb%3Db%26as_mind%3D04%26as_minm%3DOct%26as_miny%3D2004%26as_maxd%3D04%26as_maxm%3DOct%26as_maxy%3D2004"
  posts="48"
  startdate="04 Oct 2004 01:02:07 -0800"
  enddate="06 Oct 2004 21:55:07 -0800"
>
<topic>Kernel Release Announcement</topic>

<p>Andrew Morton announced Linus 2.6.9-rc3-mm2, saying:</p>

<quote who="Andrew Morton">

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc3/2.6.9-rc3-mm2/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc3/2.6.9-rc3-mm2/</a></p>

<p>

<ul>

<li>Hopefully those x86 compile errors are fixed up.</li>

<li>Various fairly minor updates</li>

</ul>

</p>

</quote>

</section>

<section
  title="Software-Suspend Wakeup Behavior"
  subject="PATCH/RFC:  driver model/pmcore wakeup hooks (0/4)"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=2LJ2f-1nK-1%40gated-at.bofh.it"
  posts="3"
  startdate="04 Oct 2004 12:54:37 -0800"
  enddate="05 Oct 2004 12:01:24 -0800"
>
<topic>FS: sysfs</topic>
<topic>PCI</topic>
<topic>Power Management: ACPI</topic>
<topic>USB</topic>

<mention>Len Brown</mention>
<mention>Pavel Machek</mention>

<p>David Brownell said:</p>

<quote who="David Brownell">

<p>There's been some discussion about limitations of the current pmcore for
systems that want to be partially suspended most of the time.  That is,
where the power management needs to affect ACPI G0 states, not G1 states
like S1/S3/S4, and isn't cpufreq.</p>

<p>One significant example involves USB mice.  If they were to be suspended
(usb_suspend_device) after a few seconds of inactivity, that change could often
spread up the device tree and let the USB host controller stop DMA access.
Some x86 CPUs could then enter C3 and save a couple Watts of battery power
... until the mouse moved, and woke that branch of the device tree for a while
(until the mouse went idle again).</p>

<p>Most of the parts for that are now in place.  But trying to use them will
turn up places where the pieces don't fit together very well yet ... and
wakeup support is one of them!  So for example it's not possible to disable
such an autosuspend mechanism for mice that can't actually issue wakeups.</p>

<p>So here are a few patches that add some driver model support for wakeup
capabilities, and use it for PCI and USB.</p>

<p>

<ul>

<li>wake-core.patch, adds two bits and sysfs control over one of them</li>

<li>wake-pci.patch, makes pci use those bits</li>

<li>wake-usbcore.patch, makes usb do so (replacing code/hacks)</li>

<li>wake-ohci.patch, matching wake-usbcore</li>

</ul>

</p>

<p>The patches follow this, going to LKML.</p>

</quote>

<p>Pavel Machek asked how fast the wakeup was, and David replied, <quote
who="David Brownell">30+msec for the USB-specific signaling; plus a bit more
for each layer of USB hubs in its tree.  Lots more if power glitches force
re-enumeration of anything; but if those happen, they'd happen during normal
use too.</quote> Pavel also asked if the mouse would jump during wakeup,
and David replied:</p>

<quote who="David Brownell">

<p>I actually don't have a wakeup-capable mouse (the one I have lies about
it, fwiw) so I don't know how that acts.  My current wakeup testing uses a
USB keyboard instead.</p>

<p>It may even need to be a click that wakes up the mouse; you don't much
want the system to wake up if you nudge the table (and hence mouse), or a
truck goes by, etc.</p>

<p>Len Brown may have details, he was particularly keen on having this
scenario work, given the number of Intel laptops that would last longer
under Linux this way ... it was evidently a big win under Windows.</p>

</quote>

</section>

</kc>

