<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="156" date="04 Mar 2001 00:00:00 -0800" />

<intro>

<!--<p>I'd like to thank all the folks who sent me money via paypal. Thanks,
folks!</p>-->

</intro>

<stats posts="1726" size="7494" contrib="505" multiples="275" lastweek="200">

<person posts="98" size="307" who="Alan Cox " />
<person posts="57" size="196" who="Jeff Garzik " />
<person posts="41" size="240" who="Martin Dalecki " />
<person posts="40" size="268" who="Daniel Phillips " />
<person posts="28" size="83" who="Mike Fedyk " />
<person posts="27" size="94" who="Vojtech Pavlik " />
<person posts="27" size="86" who="Andrew Morton " />
<person posts="27" size="81" who="&quot;David S. Miller&quot; " />
<person posts="26" size="143" who="Rik van Riel " />
<person posts="24" size="82" who="Andre Hedrick " />
<person posts="22" size="57" who="Greg KH " />
<person posts="21" size="92" who="Zwane Mwaikambo " />
<person posts="21" size="82" who="Robert Love " />
<person posts="21" size="74" who="&quot;Richard B. Johnson&quot; " />
<person posts="20" size="91" who="Linus Torvalds " />
<person posts="19" size="272" who="&quot;Jeff V. Merkey&quot; " />
<person posts="16" size="48" who="&quot;J.A. Magallon&quot; " />
<person posts="15" size="50" who="Davide Libenzi " />
<person posts="14" size="49" who="Larry McVoy " />
<person posts="12" size="56" who="christophe =?iso-8859-15?Q?barb=E9?= " />
<person posts="12" size="42" who="Andreas Dilger " />
<person posts="12" size="32" who="Roy Sigurd Karlsbakk " />
<person posts="11" size="37" who="Keith Owens " />
<person posts="11" size="36" who="bert hubert " />
<person posts="11" size="32" who="Alexander Viro " />
<person posts="10" size="31" who="Erik Andersen " />
<person posts="10" size="31" who="Bill Davidsen " />
<person posts="9" size="69" who="Tim Schmielau " />
<person posts="9" size="68" who="Troy Benjegerdes " />
<person posts="9" size="62" who="Christer Weinigel " />
<person posts="9" size="55" who="Michael Cohen " />
<person posts="9" size="41" who="Pete Zaitcev " />
<person posts="9" size="34" who="Hugh Dickins " />
<person posts="9" size="29" who="Steven Cole " />
<person posts="9" size="26" who="Dave Jones " />
<person posts="8" size="62" who="Stephan von Krawczynski " />
<person posts="8" size="59" who="george anzinger " />
<person posts="8" size="54" who="Shawn Starr " />
<person posts="8" size="49" who="Marcelo Tosatti " />
<person posts="8" size="34" who="=?iso-8859-1?Q?Thomas_Lang=E5s?= " />
<person posts="8" size="25" who="Roman Zippel " />
<person posts="7" size="32" who="Ken Brownfield " />
<person posts="7" size="28" who="Francois Romieu " />
<person posts="7" size="27" who="Paul Jackson " />
<person posts="7" size="26" who="Adam Lackorzynski " />
<person posts="7" size="23" who="Andrea Arcangeli " />
<person posts="7" size="22" who="Benjamin LaHaise " />
<person posts="7" size="20" who="Stelian Pop " />
<person posts="7" size="19" who="Jes Sorensen " />
<person posts="7" size="18" who="Jens Axboe " />
<person posts="6" size="61" who="Ed Sweetman " />
<person posts="6" size="53" who="Erich Focht " />
<person posts="6" size="36" who="Pozsar Balazs " />
<person posts="6" size="28" who="Jean Tourrilhes " />
<person posts="6" size="28" who="" />
<person posts="6" size="25" who="&quot;Martin J. Bligh&quot; " />
<person posts="6" size="23" who="" />
<person posts="6" size="20" who="" />
<person posts="6" size="19" who="=?ISO-8859-1?Q?G=E9rard_Roudier?= " />
<person posts="6" size="18" who="Eugene Chupkin " />
<person posts="6" size="17" who="Richard Gooch " />
<person posts="6" size="17" who="Paul Mackerras " />
<person posts="6" size="11" who="Nicholas Kirsch " />
<person posts="5" size="62" who="Rusty Russell " />
<person posts="5" size="40" who="Fridtjof Busse " />
<person posts="5" size="36" who="" />
<person posts="5" size="21" who="Neil Brown " />
<person posts="5" size="20" who="Stephen Lord " />
<person posts="5" size="16" who="&quot;H. Peter Anvin&quot; " />
<person posts="5" size="16" who="Jesper Juhl " />
<person posts="5" size="16" who="David Burrows " />
<person posts="5" size="15" who="William Lee Irwin III " />
<person posts="5" size="14" who="Cesar Suga " />
<person posts="4" size="55" who="Peter Christy " />
<person posts="4" size="54" who="svetljo " />
<person posts="4" size="38" who="Mike Kravetz " />
<person posts="4" size="37" who="Michal Jaegermann " />
<person posts="4" size="33" who="Ingo Molnar " />
<person posts="4" size="29" who="Bjorn Wesen " />
<person posts="4" size="26" who="Ed Vance " />
<person posts="4" size="19" who="Alan Cox " />
<person posts="4" size="19" who="&quot;Fernando Korndorfer&quot; " />
<person posts="4" size="18" who="&quot;Tom Epperly&quot; " />
<person posts="4" size="17" who="=?iso-8859-1?Q?Jakob_=D8stergaard?= " />
<person posts="4" size="16" who="Andrey Panin " />
<person posts="4" size="15" who=" (Rogier Wolff)" />
<person posts="4" size="14" who="Dan Hopper " />
<person posts="4" size="14" who="Samium Gromoff " />
<person posts="4" size="13" who="Benedikt Heinen " />
<person posts="4" size="13" who="&quot;Nivedita Singhvi&quot; " />
<person posts="4" size="13" who="Geert Uytterhoeven " />
<person posts="4" size="13" who="Giacomo Catenazzi " />
<person posts="4" size="13" who="Keith Owens " />
<person posts="4" size="12" who="Adam Huffman " />
<person posts="4" size="12" who="Ben Greear " />
<person posts="4" size="11" who="Vincent Bernat " />
<person posts="4" size="11" who="&quot;Barubary&quot; " />
<person posts="4" size="11" who="Patrik Weiskircher " />
<person posts="4" size="11" who="&quot;Simon Turvey&quot; " />
<person posts="4" size="11" who="Chris Wedgwood " />
<person posts="4" size="11" who="Matthias Andree " />
<person posts="4" size="11" who="Jonathan Hudson " />
<person posts="4" size="10" who="Andi Kleen " />
<person posts="4" size="10" who=" (Barry K. Nathan)" />
<person posts="4" size="10" who="Eric Krout " />
<person posts="4" size="9" who="Brett " />
<person posts="4" size="8" who="" />
<person posts="3" size="40" who="Daniel Quinlan " />
<person posts="3" size="25" who="Dimitris Zilaskos " />
<person posts="3" size="24" who="Anton Altaparmakov " />
<person posts="3" size="18" who="Dan Aloni " />
<person posts="3" size="14" who="Pavel Machek " />
<person posts="3" size="14" who="Carlos Manuel Duclos Vergara " />
<person posts="3" size="14" who="&quot;Dave Rattay [ITeX]&quot; " />
<person posts="3" size="14" who="Manohar Pradhan " />
<person posts="3" size="13" who="Florian Lohoff " />
<person posts="3" size="13" who="&quot;J.S.S.&quot; " />
<person posts="3" size="13" who="" />
<person posts="3" size="12" who="Andreas Franck " />
<person posts="3" size="12" who="Gunther Mayer " />
<person posts="3" size="12" who="&quot;Michel Eyckmans (MCE)&quot; " />
<person posts="3" size="12" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="3" size="12" who="Johannes Erdfelt " />
<person posts="3" size="11" who="&quot;Drew P. Vogel&quot; " />
<person posts="3" size="11" who="Jaroslav Kysela " />
<person posts="3" size="11" who="Steffen Persvold " />
<person posts="3" size="11" who="Todor Todorov " />
<person posts="3" size="11" who="Chris Friesen " />
<person posts="3" size="11" who="Krzysztof Halasa " />
<person posts="3" size="11" who="Paul Larson " />
<person posts="3" size="10" who="David Mosberger " />
<person posts="3" size="10" who="David Lang " />
<person posts="3" size="10" who="Ragnar Hojland Espinosa " />
<person posts="3" size="10" who="William Stearns " />
<person posts="3" size="10" who="Michael Sinz " />
<person posts="3" size="10" who="Mark Cooke " />
<person posts="3" size="9" who="Martin Knoblauch " />
<person posts="3" size="9" who="Harald Welte " />
<person posts="3" size="9" who="Daniel Shane " />
<person posts="3" size="9" who="Andy Jeffries " />
<person posts="3" size="9" who="dhinds " />
<person posts="3" size="9" who="Charlie Wilkinson " />
<person posts="3" size="9" who="&quot;Gerold J. Wucherpfennig&quot; " />
<person posts="3" size="9" who="&quot;Balbir Singh&quot; " />
<person posts="3" size="9" who="Craig " />
<person posts="3" size="9" who=" (Raphael Manfredi)" />
<person posts="3" size="9" who="&quot;Maciej W. Rozycki&quot; " />
<person posts="3" size="9" who="&quot;Justin T. Gibbs&quot; " />
<person posts="3" size="9" who="James Simmons " />
<person posts="3" size="9" who="Pierre Rousselet " />
<person posts="3" size="9" who="J Sloan " />
<person posts="3" size="8" who="&quot;Andrew Hatfield&quot; " />
<person posts="3" size="8" who="Christoph Hellwig " />
<person posts="3" size="8" who="Dieter =?iso-8859-15?q?N=FCtzel?= " />
<person posts="3" size="8" who="Jes Sorensen " />
<person posts="3" size="8" who="David Rees " />
<person posts="3" size="8" who="Jari Ruusu " />
<person posts="3" size="8" who="Mikael Pettersson " />
<person posts="3" size="8" who="Thomas Hood " />
<person posts="3" size="7" who="Florian Hars " />
<person posts="3" size="7" who="Paulo Andre' " />
<person posts="3" size="7" who="Petro " />
<person posts="3" size="7" who="Christoph Rohland " />
<person posts="3" size="7" who="Thomas Capricelli " />
<person posts="3" size="7" who="&quot;Randy.Dunlap&quot; " />
<person posts="3" size="7" who="Rainer Ellinger " />
<person posts="3" size="6" who="wwp " />
<person posts="2" size="43" who="ertzog " />
<person posts="2" size="33" who="Jan Kara " />
<person posts="2" size="21" who="&quot;Carsten Otte&quot; " />
<person posts="2" size="19" who="&quot;Rajan Ravindran&quot; " />
<person posts="2" size="19" who="Russ Weight " />
<person posts="2" size="16" who="=?iso-8859-1?q?Mark=20ZZZ=20Smith?= " />
<person posts="2" size="14" who="Richard Henderson " />
<person posts="2" size="13" who=" (Joe Korty)" />
<person posts="2" size="11" who="Douglas Gilbert " />
<person posts="2" size="11" who="&quot;Brian J. Watson&quot; " />
<person posts="2" size="9" who="Jakob Kemi " />
<person posts="2" size="9" who="Hubertus Franke " />
<person posts="2" size="9" who="Magnus Stenman " />
<person posts="2" size="9" who="Zach Brown " />
<person posts="2" size="8" who="Erlend Aasland " />
<person posts="2" size="8" who="Nathan " />
<person posts="2" size="8" who="Adrian Bunk " />
<person posts="2" size="8" who="&quot;Holzrichter, Bruce&quot; " />
<person posts="2" size="8" who="Christer Weinigel " />
<person posts="2" size="8" who="Bill Huey " />
<person posts="2" size="7" who="Steve Lord " />
<person posts="2" size="7" who="Sven Koch " />
<person posts="2" size="7" who="Jan Kasprzak " />
<person posts="2" size="7" who="" />
<person posts="2" size="7" who="Eamonn Hamilton " />
<person posts="2" size="7" who="Joel Becker " />
<person posts="2" size="7" who="Kimio Suganuma " />
<person posts="2" size="7" who="Russell King " />
<person posts="2" size="7" who="Raghu Angadi " />
<person posts="2" size="7" who="Teodor Iacob " />
<person posts="2" size="7" who="&quot;Udo A. Steinberg&quot; " />
<person posts="2" size="7" who="Juan Quintela " />
<person posts="2" size="7" who="Martin Rode " />
<person posts="2" size="7" who="James Cassidy " />
<person posts="2" size="7" who="John Alvord " />
<person posts="2" size="7" who="" />
<person posts="2" size="7" who="&quot;Jason Algol&quot; " />
<person posts="2" size="7" who="Kallol Biswas " />
<person posts="2" size="7" who="S W " />
<person posts="2" size="6" who="Patrick Mochel " />
<person posts="2" size="6" who="Skip Ford " />
<person posts="2" size="6" who="Herbert Rosmanith " />
<person posts="2" size="6" who="Andreas Roedl " />
<person posts="2" size="6" who="Adam " />
<person posts="2" size="6" who="Sebastian Heidl " />
<person posts="2" size="6" who="&quot;Kendrick M. Smith&quot; " />
<person posts="2" size="6" who="Rob Myers " />
<person posts="2" size="6" who="Gerd Knorr " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Gianni Tedesco " />
<person posts="2" size="6" who="Oliver Hillmann " />
<person posts="2" size="6" who=" (Eric W. Biederman)" />
<person posts="2" size="6" who="Luigi Genoni " />
<person posts="2" size="6" who="Erik Mouw " />
<person posts="2" size="6" who="Giacomo Catenazzi " />
<person posts="2" size="6" who="&quot;Tom Eastep&quot; " />
<person posts="2" size="6" who="Wolly " />
<person posts="2" size="6" who="Brian Ristuccia " />
<person posts="2" size="6" who="Justin Piszcz " />
<person posts="2" size="6" who="J.P. Morris " />
<person posts="2" size="6" who="Dan Chen " />
<person posts="2" size="6" who="Heinz Diehl " />
<person posts="2" size="6" who="Joe " />
<person posts="2" size="6" who="Reid Hekman " />
<person posts="2" size="6" who="Jakub Jelinek " />
<person posts="2" size="6" who="marco " />
<person posts="2" size="6" who="Lukasz Trabinski " />
<person posts="2" size="6" who="&quot;Torrey Hoffman&quot; " />
<person posts="2" size="6" who="Eric Swalens " />
<person posts="2" size="6" who="" />
<person posts="2" size="5" who="James Curbo " />
<person posts="2" size="5" who="Thomas Glanzmann " />
<person posts="2" size="5" who="Mike Galbraith " />
<person posts="2" size="5" who="Antoni Bella " />
<person posts="2" size="5" who="&quot;Pedro M. Rodrigues&quot; " />
<person posts="2" size="5" who="Tom Rini " />
<person posts="2" size="5" who="Bongani Hlope " />
<person posts="2" size="5" who="Guido Volpi " />
<person posts="2" size="5" who="Simon Kirby " />
<person posts="2" size="5" who="Horst von Brand " />
<person posts="2" size="5" who="DevilKin " />
<person posts="2" size="5" who="Kristian " />
<person posts="2" size="5" who="Holger Lubitz " />
<person posts="2" size="5" who="Dan Kegel " />
<person posts="2" size="5" who="Badari Pulavarty " />
<person posts="2" size="5" who="Arjan van de Ven " />
<person posts="2" size="5" who="=?iso-8859-1?Q?Andr=E9?= Dahlqvist " />
<person posts="2" size="5" who="Jamie Lokier " />
<person posts="2" size="5" who="&quot;Petr Vandrovec&quot; " />
<person posts="2" size="5" who="Jason Yan " />
<person posts="2" size="5" who="Ion Badulescu " />
<person posts="2" size="5" who="Martin Wirth " />
<person posts="2" size="5" who="John Levon " />
<person posts="2" size="5" who="Chris Mason " />
<person posts="2" size="5" who="Helge Hafting " />
<person posts="2" size="5" who="Jan Niehusmann " />
<person posts="2" size="5" who="&quot;Peter J. Braam&quot; " />
<person posts="2" size="5" who="Joe Wong " />
<person posts="2" size="5" who="Marek Zawadzki " />
<person posts="2" size="5" who="Roberto Nibali " />
<person posts="2" size="4" who="Diego Calleja " />
<person posts="2" size="4" who="Hans-Christian Armingeon " />
<person posts="2" size="4" who="=?iso-8859-1?q?willy=20tarreau?= " />
<person posts="2" size="4" who="" />
<person posts="2" size="4" who="Denis Zaitsev " />
<person posts="2" size="4" who="David Stroupe " />
<person posts="2" size="3" who="Chris Funderburg " />
<person posts="2" size="3" who="" />
<person posts="1" size="60" who=" &lt;adam@nmt.edu&gt;" />
<person posts="1" size="35" who="&quot;D. M. Monarres&quot; " />
<person posts="1" size="33" who="Vasil Kolev " />
<person posts="1" size="26" who="Hans-Joachim Baader " />
<person posts="1" size="22" who="Craig Christophel " />
<person posts="1" size="21" who="Andreas Barth " />
<person posts="1" size="20" who="" />
<person posts="1" size="19" who="" />
<person posts="1" size="19" who="Andy Carlson " />
<person posts="1" size="18" who="Steven Walter " />
<person posts="1" size="16" who="Tom Eastep " />
<person posts="1" size="14" who="Jorge Nerin " />
<person posts="1" size="14" who="reddog83 " />
<person posts="1" size="12" who="&quot;James A. Lupo&quot; " />
<person posts="1" size="11" who="&quot;Michael Sinz&quot; " />
<person posts="1" size="11" who="&quot;Peter Wong&quot; " />
<person posts="1" size="10" who="Brian Gerst " />
<person posts="1" size="10" who="Erich Focht " />
<person posts="1" size="9" who="Maksim Krasnyanskiy " />
<person posts="1" size="9" who="&quot;Guillaume Boissiere&quot; " />
<person posts="1" size="9" who="Dave Hansen " />
<person posts="1" size="8" who="&quot;David C. Hansen&quot; " />
<person posts="1" size="8" who="Anders Larsen " />
<person posts="1" size="7" who="&quot;Suporte RedeBonja&quot; " />
<person posts="1" size="7" who="Jurriaan on Alpha " />
<person posts="1" size="7" who="Peter Denison " />
<person posts="1" size="7" who="Vladimir G Ivanovic " />
<person posts="1" size="6" who="Matti Aarnio " />
<person posts="1" size="6" who="Jens Schmidt " />
<person posts="1" size="6" who="Juan Erbes " />
<person posts="1" size="6" who="Alessandro Suardi " />
<person posts="1" size="6" who="Urs Ganse " />
<person posts="1" size="5" who="Jan-Frode Myklebust " />
<person posts="1" size="5" who="guy keren " />
<person posts="1" size="5" who="James Bottomley " />
<person posts="1" size="5" who="Gadi Oxman " />
<person posts="1" size="5" who="bogomips " />
<person posts="1" size="5" who="Joerg Schilling " />
<person posts="1" size="5" who="John Kim " />
<person posts="1" size="5" who="Andy Pfiffer " />
<person posts="1" size="5" who="Leif Sawyer " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Rajasekhar Inguva " />
<person posts="1" size="4" who="&quot;Roy Sigurd Karlsbakk&quot; " />
<person posts="1" size="4" who="&quot;-= M.J. Prinsen =-&quot; " />
<person posts="1" size="4" who="Roman Kurakin " />
<person posts="1" size="4" who="&quot;Todd M. Roy&quot; " />
<person posts="1" size="4" who="&quot;Krishnakant Mehta&quot; " />
<person posts="1" size="4" who="Dylan Egan " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Stefano Biella " />
<person posts="1" size="4" who="David Chow " />
<person posts="1" size="4" who="Jon Grimm " />
<person posts="1" size="4" who="Jan Hubicka " />
<person posts="1" size="4" who="&quot;Timothy D. Witham&quot; " />
<person posts="1" size="4" who="Jose Luis Domingo Lopez " />
<person posts="1" size="4" who="Torrey Hoffman " />
<person posts="1" size="4" who="&quot;Mark H. Wood&quot; " />
<person posts="1" size="4" who="=?ISO-8859-1?Q? &quot;=CF=B5=CD=B3=BC=AF=B3=C9&quot; ?= " />
<person posts="1" size="4" who="J Sloan " />
<person posts="1" size="4" who="=?ISO-8859-1?Q? &quot;=CD=F8=C2=E7=BC=AF=B3=C9&quot; ?= " />
<person posts="1" size="3" who="Stephen Frost " />
<person posts="1" size="3" who="Steve VanDevender " />
<person posts="1" size="3" who="David Woodhouse " />
<person posts="1" size="3" who="Andreas Schwab " />
<person posts="1" size="3" who="Chris Sykes " />
<person posts="1" size="3" who="Michael B Allen " />
<person posts="1" size="3" who="&quot;Per Jessen&quot; " />
<person posts="1" size="3" who="&quot;Rajagopal S. Iyer&quot; " />
<person posts="1" size="3" who="System Operator " />
<person posts="1" size="3" who="Peter Rival " />
<person posts="1" size="3" who="Louis Laborde " />
<person posts="1" size="3" who="&quot;Meinhard E. Mayer&quot; " />
<person posts="1" size="3" who="Peter =?iso-8859-1?Q?W=E4chtler?= " />
<person posts="1" size="3" who="Willy Tarreau " />
<person posts="1" size="3" who=" (Walter Harms)" />
<person posts="1" size="3" who="Dan Hopper " />
<person posts="1" size="3" who=" (Linus Torvalds)" />
<person posts="1" size="3" who="Thomas Zimmerman " />
<person posts="1" size="3" who="Joao Soares Veiga " />
<person posts="1" size="3" who="Andreas Dilger " />
<person posts="1" size="3" who="Paul Gortmaker " />
<person posts="1" size="3" who="&quot;H. Peter Anvin&quot; " />
<person posts="1" size="3" who="David Lang " />
<person posts="1" size="3" who="Sean DETTRICK " />
<person posts="1" size="3" who="&quot;Samuel M. Stringham&quot; " />
<person posts="1" size="3" who="David Gibson " />
<person posts="1" size="3" who="Raphael Manfredi " />
<person posts="1" size="3" who="Jesse Barnes " />
<person posts="1" size="3" who="Benjamin Pharr " />
<person posts="1" size="3" who="Dipankar Sarma " />
<person posts="1" size="3" who="Nick DeClario " />
<person posts="1" size="3" who="Pavel Roskin " />
<person posts="1" size="3" who="&quot;Costa, Juliano&quot; " />
<person posts="1" size="3" who="Tom Gall " />
<person posts="1" size="3" who="Edgar Toernig " />
<person posts="1" size="3" who="&quot;Brenneke, Matthew Jeffrey (UMR-Student)&quot; " />
<person posts="1" size="3" who="&quot;Andreas Herrmann&quot; " />
<person posts="1" size="3" who="SA " />
<person posts="1" size="3" who="Andreas Tscharner " />
<person posts="1" size="3" who="Bernd Petrovitsch " />
<person posts="1" size="3" who="Jan Kara " />
<person posts="1" size="3" who="OGAWA Hirofumi " />
<person posts="1" size="3" who="Florin Iucha " />
<person posts="1" size="3" who="Justin Carlson " />
<person posts="1" size="3" who="Jani Monoses " />
<person posts="1" size="3" who="Bakonyi Ferenc " />
<person posts="1" size="3" who=" (Ton Hospel)" />
<person posts="1" size="3" who="Jesse Pollard " />
<person posts="1" size="3" who="Paul Jakma " />
<person posts="1" size="3" who="Jason Lunz " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who=" (Florin Iucha)" />
<person posts="1" size="3" who="Otto Wyss " />
<person posts="1" size="3" who="Richard Russon " />
<person posts="1" size="3" who="hugang " />
<person posts="1" size="3" who="&quot;Nadav Har'El&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Gregor Jasny " />
<person posts="1" size="3" who="John Eskes " />
<person posts="1" size="3" who="&quot;Mohammad A. Haque&quot; " />
<person posts="1" size="3" who="Jos Hulzink " />
<person posts="1" size="3" who="Romain Dolbeau " />
<person posts="1" size="3" who="Ville Herva " />
<person posts="1" size="3" who="Wim Van Sebroeck " />
<person posts="1" size="3" who="&quot;Ishan O. Jayawardena&quot; " />
<person posts="1" size="3" who="Derek Gladding " />
<person posts="1" size="3" who="Pavel Machek " />
<person posts="1" size="3" who="Ian Molton " />
<person posts="1" size="3" who="Robert Schwebel " />
<person posts="1" size="3" who="Andreas Jaeger " />
<person posts="1" size="2" who="=?gb2312?q?hanhbkernel?= " />
<person posts="1" size="2" who="&quot;Lever, Charles&quot; " />
<person posts="1" size="2" who="Nigel Gamble " />
<person posts="1" size="2" who="Beezly " />
<person posts="1" size="2" who="Anton Lavrentiev " />
<person posts="1" size="2" who="&quot;Miquel van Smoorenburg&quot; " />
<person posts="1" size="2" who="&quot;Dave Raddatz&quot; " />
<person posts="1" size="2" who="Zhu Ying Jie " />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Pasi_K=E4rkk=E4inen?= " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Wessel Dankers " />
<person posts="1" size="2" who="David Chase " />
<person posts="1" size="2" who="&quot;Niccolo Rigacci&quot; " />
<person posts="1" size="2" who="James Bottomley " />
<person posts="1" size="2" who="Pau " />
<person posts="1" size="2" who="&quot;Paul G. Allen&quot; " />
<person posts="1" size="2" who="Yann Dirson " />
<person posts="1" size="2" who="&quot;T. A.&quot; " />
<person posts="1" size="2" who="Aviv Shavit " />
<person posts="1" size="2" who="Clemens Kirchgatterer " />
<person posts="1" size="2" who="&quot;Jon&quot; " />
<person posts="1" size="2" who="&quot;David B. Stevens&quot; " />
<person posts="1" size="2" who="Jim Crilly " />
<person posts="1" size="2" who="Remco Post " />
<person posts="1" size="2" who="Alex Pennace " />
<person posts="1" size="2" who="Stephen Rothwell " />
<person posts="1" size="2" who="Corporal Pisang " />
<person posts="1" size="2" who="Dominik Mierzejewski " />
<person posts="1" size="2" who="Benny Sjostrand " />
<person posts="1" size="2" who="=?ISO-8859-15?Q?Fran=E7ois?= Cami " />
<person posts="1" size="2" who="Felix von Leitner " />
<person posts="1" size="2" who="Jan Hudec " />
<person posts="1" size="2" who="&quot;Andreas Happe&quot; " />
<person posts="1" size="2" who="&quot;Eduardo A. Suarez&quot; " />
<person posts="1" size="2" who="Stephane Casset " />
<person posts="1" size="2" who="Trond Myklebust " />
<person posts="1" size="2" who="Chris Adams " />
<person posts="1" size="2" who="Ben Clifford " />
<person posts="1" size="2" who="Arnaldo Carvalho de Melo " />
<person posts="1" size="2" who="Randy Hron " />
<person posts="1" size="2" who="skidley " />
<person posts="1" size="2" who="jan " />
<person posts="1" size="2" who="Nicolas Pitre " />
<person posts="1" size="2" who="Christine Ames " />
<person posts="1" size="2" who="Matt Reppert " />
<person posts="1" size="2" who="Markus Schaber " />
<person posts="1" size="2" who="Julio Blanco Perez " />
<person posts="1" size="2" who="&quot;Scott Murray&quot; " />
<person posts="1" size="2" who="Kurt Ferreira " />
<person posts="1" size="2" who="Shane Nay " />
<person posts="1" size="2" who="Paul Watterson " />
<person posts="1" size="2" who="Ian Castle " />
<person posts="1" size="2" who="Alexander Newald " />
<person posts="1" size="2" who="Thomas Wentzel " />
<person posts="1" size="2" who="Jon Masters " />
<person posts="1" size="2" who=" (Hans Adams)" />
<person posts="1" size="2" who="&quot;Trever L. Adams&quot; " />
<person posts="1" size="2" who="Thomas Sailer " />
<person posts="1" size="2" who="Marcus Alanen " />
<person posts="1" size="2" who="=?ISO-8859-1?Q?=DFuzzLinux?= " />
<person posts="1" size="2" who=" (Paulo J. Matos)" />
<person posts="1" size="2" who="Miles Lane " />
<person posts="1" size="2" who="Nuno Miguel Fernandes Sucena Almeida " />
<person posts="1" size="2" who="Tim Moore " />
<person posts="1" size="2" who="Jan Harkes " />
<person posts="1" size="2" who="Elieser =?ISO-8859-1?Q?Le=E3o?= " />
<person posts="1" size="2" who="Rakesh Kumar Banka " />
<person posts="1" size="2" who="Guest section DW " />
<person posts="1" size="2" who="Alex Davis " />
<person posts="1" size="2" who="Mauricio Pretto " />
<person posts="1" size="2" who="Olaf Titz " />
<person posts="1" size="2" who="chiranjeevi vaka " />
<person posts="1" size="2" who="&quot;Tulika Pradhan&quot; " />
<person posts="1" size="2" who="lee johnson " />
<person posts="1" size="2" who="Bernd Eckenfels " />
<person posts="1" size="2" who="Thomas Winischhofer " />
<person posts="1" size="2" who="Marcin Gogolewski " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;M. Edward Borasky&quot; " />
<person posts="1" size="2" who="Rob Radez " />
<person posts="1" size="2" who="Vinayak P Risbud " />
<person posts="1" size="2" who="&quot;Alex Song&quot; " />
<person posts="1" size="2" who="Andrey Ulanov " />
<person posts="1" size="2" who="Hanno =?ISO-8859-1?Q?B=F6ck?= " />
<person posts="1" size="2" who="Carlo Scarfoglio " />
<person posts="1" size="2" who="&quot;Mark Staudinger&quot; " />
<person posts="1" size="2" who="John Covici " />
<person posts="1" size="2" who="glytchbinary " />
<person posts="1" size="2" who="&quot;BODA Karoly jr.&quot; " />
<person posts="1" size="2" who="&quot;Gigi Sebastian Alapatt&quot; " />
<person posts="1" size="2" who="Isidor Zeuner " />
<person posts="1" size="2" who="Britt Park " />
<person posts="1" size="1" who="Cindy Sweet " />
<person posts="1" size="1" who="Andrew Rodland " />
<person posts="1" size="1" who="Qing Huang " />
<person posts="1" size="1" who="&quot;Rick A. Hohensee&quot; " />
<person posts="1" size="1" who="" />

</stats>

<section
  title="Developers Impressed By Changelog; Developer Conflict"
  subject="linux-2.5.5-pre1"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.1/1429.html"
  posts="162"
  startdate="13 Feb 2002 14:38:12 -0800"
  enddate="27 Feb 2002 07:59:23 -0800"
>
<topic>Disks: IDE</topic>
<topic>FS: ReiserFS</topic>
<topic>Kernel Release Announcement</topic>
<topic>Version Control</topic>

<mention>Jens Axboe</mention>
<mention>Martin Dalecki</mention>

<p>Linus Torvalds announced 2.5.5-pre1, and several folks were stunned by
the huge changelog. Bert Hubert asked, <quote who="Bert Hubert">Did you
always merge this many patches, or does it just look like more using this
very nice changelog format? Anyhow, I'm impressed about the amount of work
accepted in such a short time.</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>It looks like more because of the changelog format.</p>

<p>The old changelogs were one-liners, and didn't mention small patches at
all (ie the entries like "Remove warning in /proc inode conversions" would
not even have made it into the changelog before).</p>

<p>Also, I used to combine entries from the same person, so the eight
patches for reiserfs would have been one entry ("reiserfs update"), and
the 20 entries from Jeff would likewise have been just one entry ("update
network drivers").</p>

<p>That said, this week I've basically spent _only_ on making sure I work
well with BitKeeper (so far so good), so I have spent more time than I
normally do on merging. So yes, it's actually more merging too. That will
calm down eventually.</p>

<p>(The happy news is that I expected to be slowed down by BK for a while,
and that hasn't really happened. Some things take more effort now, but to
offset that some other stuff is _much_ easier, so..)</p>

</quote>

<p>An odd exchange between Linus and Andre Hedrick occurred when Martin Dalecki
wanted to make some changes to Andre's code. Andre argued that Martin's
changes completely broke the driver. Rik van Riel asked Martin directly,
<quote who="Rik van Riel">if you are able to make Linux work with 48-bit IDE
stuff so Linux is able to talk to drives larger than 137 GB.  If you're not,
please stop pissing off Andre and work together with him.</quote> Jens Axboe
and Linus pointed out that 2.5 already supported 48-bit LBA addressing. Linus
added:</p>

<quote who="Linus Torvalds">

<p>quite frankly, it's not Martin who cannot work with Andre, it's Andre
who so far has shown himself _totally_ unable to work with anybody at all.</p>

<p>Whenever somebody comes and even tries to do trivial and obviously correct
cleanups that do not actually change any semantics at all, Andre stands out
and shouts bloody murder from the rooftops, completely ignoring the fact
that he hasn't even looked at the patches.   </p>

<p>All the crap Andre has shouted about "IDE mess" and "timing changes" is
total and utter CRAP. None of the patches I've seen has changed _anything_
but cleanups, or removed _any_ features.</p>

<p>Guys, you need to realize that Martin is NOT the bad guy here. The problem
is not Martin, the problem is that Andre cannot take any level or criticism,
and in the five years or so that he has been maintainer I have yet to see a
_single_ person who has been able to work together with him (as opposed to some
people who have been able to maintain their own subdrivers _despite_ him).</p>

<p>Andre, your threats about not wanting to maintain 2.5.x are just a
symptom of this inability to accept the fact that other people actually do
know what they are doing, even if what they are doing is only cleanups with
no semantic changes.</p>

<p>Rik, _look_ at the patches, instead of just taking Andre's word for it.</p>

</quote>

<p>Andre replied:</p>

<quote who="Andre Hedrick">

<p>Obvious you have a bug up the backside, so I am totally hands off until
you and Martin are done.  See you back at 2.5.10.  I will not comment on
the changes because you want something and I do not have the timetable to
deliver and you are upset.</p>

<p>I am more concerned with the stablity of the core of ATA/ATAPI and next
in queue was to address the entire ATAPI data-phases issues that appear to
have some problems.</p>

<p>It is clear you want a cosmetic change and I am not ready to make one.</p>

<p>Therefore I will be patient and wait for you get the facelift you want
and then see what needs to be salvaged afterwards.</p>

</quote>

<p>Linus replied that he did indeed have a bug up the backside. He said:</p>

<quote who="Linus Torvalds">

<p>What really bugs me about this is that while normally you're hard to
communicate with, this time you have actively _lied_ about the patches on
IRC and in email about how they will cause IDE corruption etc due to timing
changes.</p>

<p>No such timing changes existed, and whenever you were asked about what
was actually actively _wrong_ with the patches, you didn't reply.</p>

<p>There's a difference between being difficult to work with and being
actively dishonest, and you crossed that line.</p>

</quote>

<p>Andre replied:</p>

<quote who="Andre Hedrick">

<p>"LIAR LIAR PANTS ON FIRE"</p>

<p>Linus,</p>

<p>Lets both grow up!</p>

</quote>

<p>Linus said:</p>

<quote who="Linus Torvalds">

<p>I repeat, as I did in a private to-you-only email before: every _single_
complain you have had about the patches I've seen has been 100% bogus.</p>

<p>The patch was called "IDE cleanup", and cleanup it was. Nothing but. The
timings didn't change, although the stupid (twice duplicated) functions that
"calculated" them were removed and replaces with one boot-time calculation.</p>

<p>Martin not only had "cleanup" in the subject line, but actually explained
all the changes, including the timing change. The comments at the top of
the patch mail said (on that particular change, which seems to have been
your favourite target), typos and all:</p>

<blockquote>

<p>        3. Replace the functionally totally equal system_bus_block() and
            ide_system_bus_speed() functions with one simple global variable:
            system_bus_speed. This saves quite a significatn amount of
            code. Unfortunately this is the part, which is makeing this
            patch to appear bigger then it really is...</p>

</blockquote>

<p>and the patch itself certainly agrees with what Martin claimed.</p>

<p>Your ranting, both on linux-kernel and on the IRC channels, has been
totally bogus, as if you didn't read either the explanation _or_ the actual
patch itself. And pointing this out multiple times doesn't seem to have made
any difference.</p>

</quote>

<p>Andre replied, <quote who="Andre Hedrick">I'm sure you have good reasons
for feeling the way you do and beating up on me.  I'm often misunderstood
because of the way I phrase things.  I have no hard feelings, just wish you
and I could find a middle ground that worked again.</quote></p>

</section>

<section
  title="Lucent WinModem Driver Still Proprietary"
  subject="Lucent WinModem"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.2/0770.html"
  posts="6"
  startdate="20 Feb 2002 09:27:53 -0800"
  enddate="21 Feb 2002 12:02:53 -0800"
>
<topic>Modems</topic>

<mention>William Stearns</mention>

<p>Elieser Le&#227;o asked a question about using his WinModem under Linux. The
driver didn't seem to work for him. William Stearns pointed him to <a
href="http://www.linmodems.org/">http://www.linmodems.org/</a>, and Alan
Cox remarked, <quote who="Alan Cox">Ask the binary only driver provider.
This list is about free software, and nobody else but the driver vendor can
really help you.</quote> Nadav Har'El replied that Lucent's driver had been
open source for awhile, Christoph Rohland and Todd M. Roy pointed out that
the driver "source" contained the binary-only ltmdmobj.o file. As Christoph
put it, <quote who="Christoph Rohland">The rest is a wrapper for this binary
only driver.</quote> End of thread.</p>

</section>

<section
  title="Status Of AIC7XXX In 2.5 And 2.4"
  subject="AIC7XXX 6.2.5 driver"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.2/0879.html"
  posts="7"
  startdate="20 Feb 2002 14:36:32 -0800"
  enddate="21 Feb 2002 12:11:59 -0800"
>

<p>Carlo Scarfoglio asked if AIC7XXX 6.2.5 would be included in 2.5 or 2.4 any
time soon, and Jens Axboe suggested, <quote who="Jens Axboe">You should ask
Justin whether he has submitted it for inclusion or not.  I offered to port
to 2.5 at least, but heard nothing.</quote> Alan Cox added, <quote who="Alan
Cox">I was sent a patch for it which included some scsi changes, broke support
for the CMD ide controllers and didn't apply in the aic7xxx area. So I threw
it in /dev/null.</quote> However, Justin T. Gibbs, the author of the patch,
pointed out that when he'd sent the patch to Alan, the only reply he got
back was "Thanks!" He added, <quote who="Justin T. Gibbs">I'll take that
to indicate a toss to /dev/null in the future. 8-)</quote> He asked which
version he should generate patches for, and Alan said 2.4.18-rc; they also
went into some technical details of what the patch should do.</p>

</section>

<section
  title="BitKeeper Kernel Hacking HOWTO"
  subject="BK Kernel Hacking HOWTO"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.2/1060.html"
  posts="12"
  startdate="21 Feb 2002 08:13:38 -0800"
  enddate="26 Feb 2002 12:57:16 -0800"
>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>

<mention>Dave Jones</mention>

<p>Jeff Garzik posted some documentation on using BitKeeper for kernel
hacking:</p>

<quote who="Jeff Garzik">

<h1 align="center">Doing the BK Thing, Penguin-Style</h1>

<p>This set of notes is intended mainly for kernel developers, occasional or
full-time, but sysadmins and power users may find parts of it useful as well.
It assumes at least a basic familiarity with CVS, both at a user level (use
on the cmd line) and at a higher level (client-server model).  Due to the
author's background, an operation may be described in terms of CVS, or in
terms of how that operation differs from CVS.</p>

<p>This is -not- intended to be BitKeeper documentation.  Always run "bk
help &lt;command&gt;" or in X "bk helptool &lt;command&gt;" for reference
documentation.</p>

<h2>BitKeeper Concepts</h2>

<p>In the true nature of the Internet itself, BitKeeper is a distributed
system.  When applied to revision control, this means doing away with
client-server, and changing to a parent-child model... essentially
peer-to-peer.  On the developer's end, this also represents a
fundamental disruption in the standard workflow of changes, commits,
and merges.  You will need to take a few minutes to think about
how to best work under BitKeeper, and re-optimize things a bit.
In some sense it is a bit radical, because it might described as
tossing changes out into a maelstrom and having them them magically
land at the right destination... but I'm getting ahead of myself.</p>

<p>Let's start with this progression:<br />
Each BitKeeper source tree on disk is a repository unto itself.<br />
Each repository has a parent.<br />
Each repository contains a set of a changsets ("csets").<br />
Each cset is one or more changed files, bundled together.</p>

<p>Each tree is a repository, so all changes are checked into the local tree.
When a change is checked in, all modified files are grouped into a logical
unit, the changeset.  Internally, BK links these changesets in a tree,
representing various converging and diverging lines of development.
These changesets are the bread and butter of the BK system.</p>

<p>After the concept of changesets, the next thing you need to get used to
having multiple copies of source trees lying around.  This -really- takes
some getting used to, for some people.  Separate source trees are the means
in BitKeeper by which you delineate parallel lines of development, both minor
and major.  What would be branches in CVS become separate source trees, or
"clones" in BitKeeper [heh, or Star Wars] terminology.</p>

<p>Clones and changesets are the tools from which most of the power of
BitKeeper is derived.  As mentioned earlier, each clone has a parent, the
tree used as the source when the new clone was created.  In a CVS-like setup,
the parent would be a remote server on the Internet, and the child is your
local clone of that tree.</p>

<p>Once you have established a common baseline between two source trees --
a common parent -- then you can merge changesets between those two trees
with ease.  Merging changes into a tree is called a "pull", and is analagous
to 'cvs update'.  A pull downloads all the changesets in the remote tree you
do not have, and merges them.  Sending changes in one tree to another tree
is called a "push".  Push sends all changes in the local tree the remote
does not yet have, and merges them.</p>

<p>From these concepts come some initial command examples:</p>

<p>

<ol>

<li>bk clone -q http://linux.bkbits.net/linux-2.5 linus-2.5<br />

Download a 2.5 stock kernel tree, naming it "linus-2.5" in the local dir.
The "-q" disables listing every single file as it is downloaded.</li>

<li><p>bk clone -ql linus-2.5 alpha-2.5<br />

Create a separate source tree for the Alpha AXP architecture.
The "-l" uses hard links instead of copying data, since both trees are
on the local disk.  You can also replace the above with "bk lclone -q ..."</p>

<p>You only clone a tree -once-.  After cloning the tree lives a long time
on disk, being updating by pushes and pulls.</p>

</li>

<li>cd alpha-2.5 ; bk pull http://gkernel.bkbits.net/alpha-2.5<br />

Download changes in "alpha-2.5" repository which are not present in the
local repository, and merge them into the source tree.</li>

<li>bk -r co -q<br />

Because every tree is a repository, files must be checked out before they
will be in their standard places in the source tree.</li>

<li>

<p><pre>bk vi fs/inode.c                                # example change...
bk citool                                       # checkin, using X tool
bk push bk://gkernel@bkbits.net/alpha-2.5       # upload change</pre></p>

<p>Typical example of a BK sequence that would replace the analagous CVS
situation,</p>

<p><pre>vi fs/inode.c
cvs commit</pre></p>

</li>

<p>As this is just supposed to be a quick BK intro, for more
in-depth tutorials, live working demos, and docs, see <a
href="http://www.bitkeeper.com/">http://www.bitkeeper.com/</a></p>

</ol>

<h2>BK and Kernel Development Workflow</h2>

<p>Currently the latest 2.5 tree is available
via "bk clone $URL" and "bk pull $URL" at <a
href="http://linux.bkbits.net/linux-2.5">http://linux.bkbits.net/linux-2.5</a>
This should change in a few weeks to a kernel.org URL.</p>

<p>A big part of using BitKeeper is organizing the various trees you have
on your local disk, and organizing the flow of changes among those trees,
and remote trees.  If one were to graph the relationships between a desired
BK setup, you are likely to see a few-many-few graph, like this:</p>

<pre>            linux-2.5
                |
       merge-to-linus-2.5
         /    |      |
        /     |      |
vm-hacks  bugfixes  filesys   personal-hacks
      \       |      |          /
       \      |      |         /
        \     |      |        /
         testing-and-validation</pre>

<p>Since a "bk push" sends all changes not in the target tree, and since a
"bk pull" receives all changes not in the source tree, you want to make
sure you are only pushing specific changes to the desired tree, not all
changes from "peer parent" trees.  For example, pushing a change from the
testing-and-validation tree would probably be a bad idea, because it will
push all changes from vm-hacks, bugfixes, filesys, and personal-hacks trees
into the target tree.</p>

<p>One would typically work on only one "theme" at a time, either vm-hacks
or bugfixes or filesys, keeping those changes isolated in their own tree
during development, and only merge the isolated with other changes when
going upstream (to Linus or other maintainers) or downstream (to your "union"
trees, like testing-and-validation above).</p>

<p>It should be noted that some of this separation is not just recommended
practice, it's actually [for now] -enforced- by BitKeeper.  BitKeeper requires
that changesets maintain a certain order, which is the reason that "bk push"
sends all local changesets the remote doesn't have.  This separation may look
like a lot of wasted disk space at first, but it helps when two unrelated
changes may "pollute" the same area of code, or don't follow the same pace
of development, or any other of the standard reasons why one creates a
development branch.</p>

<p>Small development branches (clones) will appear and disappear:</p>

<pre>-------- A --------- B --------- C --------- D -------
          \                                 /
           -----short-term devel branch-----</pre>

<p>While long-term branches will parallel a tree (or trees), with period
merge points.  In this first example, we pull from a tree (pulls, "\")
periodically, such a what occurs when tracking changes in a vendor tree,
never pushing changes back up the line:</p>

<pre>-------- A --------- B --------- C --------- D -------
          \                       \           \
           ----long-term devel branch-----------------</pre>

<p>And then a more common case in Linux kernel development, a long term
branch with periodic merges back into the tree (pushes, "/"):</p>

<pre>-------- A --------- B --------- C --------- D -------
          \                       \         / \
           ----long-term devel branch-----------------</pre>

<h2>Submitting Changes to Linus</h2>

<p>There's a bit of an art, or style, of submitting changes to Linus.  Since
Linus's tree is now (you might say) fully integrated into the distributed
BitKeeper system, there are several prerequisites to properly submitting
a BitKeeper change.  All these prereq's are just general cleanliness of BK
usage, so as people become experts at BK, feel free to optimize this process
further (assuming Linus agrees, of course).</p>

<p>

<ol>

<li>Make sure your tree was originally cloned from the linux-2.5 tree
created by Linus.  If your tree does not have this as its ancestor, it
is impossible to reliably exchanges changesets.</li>

<li>

<p>Pay attention to your commit text.  The commit message that accompanies
each changeset you submit will live on forever in history, and is used by
Linus to accurately summarize the changes in each pre-patch.  Remember that
there is no context, so</p>

<p>        "fix for new scheduler changes"</p>

<p>would be too vague, but</p>

<p>        "fix mips64 arch for new scheduler switch_to(), TIF_xxx
semantics"</p>

<p>would be much better.</p>

<p>You can and should use the command "bk comment -C&lt;rev&gt;" to update
the commit text, and improve it after the fact.  This is very useful for
development: poor, quick descriptions during development, which get cleaned
up using "bk comment" before issuing the "bk push" to submit the changes.</p>

</li>

<li>

<p>Include an Internet-available URL for Linus to pull from, such as</p>

<p>        Pull from:  http://gkernel.bkbits.net/net-drivers-2.5</p>

</li>

<li>

<p>Include a summary and "diffstat -p1" of each changeset that will be
downloaded, when Linus issues a "bk pull".  The author auto-generates these
summaries using "bk push -nl &lt;parent&gt; 2&gt;&amp;1", to obtain a listing
of all the pending-to-send changesets, and their commit messages.</p>

<p>It is important to show Linus what he will be downloading when he issues
a "bk pull", to reduce the time required to sift the changes once they are
downloaded to Linus's local machine.</p>

<p>IMPORTANT NOTE:  One of the features of BK is that your repository does
not have to be up to date, in order for Linus to receive your changes.
It is considered a courtesy to keep your repository fairly recent, to lessen
any potential merge work Linus may need to do.</p>

</li>

<li>

<p>Split up your changes.  Each maintainer&lt;-&gt;Linus situation is
likely to be slightly different here, so take this just as general advice.
The author splits up changes according to "themes" when merging with Linus.
Simultaneous pushes from local development to goes special trees which exist
solely to house changes "queued" for Linus.  Example of the trees:</p>

<p>        net-drivers-2.5 -- on-going net driver maintenance<br />
        vm-2.5 -- VM-related changes<br />
        fs-2.5 -- filesystem-related changes</p>

<p>Linus then has much more freedom for pulling changes.  He could (for
example) issue a "bk pull" on vm-2.5 and fs-2.5 trees, to merge their
changes, but hold off net-drivers-2.5 because of a change that needs more
discussion.</p>

<p>Other maintainers may find that a single linus-pull-from tree is adequate
for passing BK changesets to him.</p>

</li>

</ol>

</p>

<h2>Frequently Answered Questions</h2>

<ol>

<li>How do I change the e-mail address shown in the changelog?<br />
A. When you run "bk citool" or "bk commit", set environment
   variables BK_USER and BK_HOST to the desired username
   and host/domain name.</li>

<li>

<p>How do I use tags / get a diff between two kernel versions?</p>

<p>A. Pass the tags Linus uses to 'bk export'.</p>

<p>ChangeSets are in a forward-progressing order, so it's pretty easy to
get a snapshot starting and ending at any two points in time.  Linus puts
tags on each release and pre-release, so you could use these two examples:</p>

<p>    bk export -tpatch -hdu -rv2.5.4,v2.5.5 | less<br />
        # creates patch-2.5.5 essentially<br />
    bk export -tpatch -du -rv2.5.5-pre1,v2.5.5 | less<br />
        # changes from pre1 to final</p>

<p>A tag is just an alias for a specific changeset... and since changesets
are ordered, a tag is thus a marker for a specific point in time (or specific
state of the tree).</p>

</li>

</ol>

</p>

</quote>

<p>Geert Uytterhoeven asked, <quote who="Geert Uytterhoeven">what if Linus
isn't happy with the changes you made in the for-Him-to-pull tree? How do
I back off (part of the changes)?</quote> Andreas Dilger replied:</p>

<quote who="Andreas Dilger">

<p>Well, assuming he tells you that there is a problem, run "bk undo -r
&lt;rev&gt;.."  to remove the patchset that he doesn't like (in theory).
If there have been a large number of changes after &lt;rev&gt; then they are
all removed (there is no way to remove only a single CSET from within the
middle of the tree.  Then you re-do the changes in a way that Linus likes,
and submit a new CSET.</p>

<p>You could also add the fix to the same tree and hope he accepts
both CSETs, but I think Linus doesn't want to clutter up his tree with
&lt;patch&gt;+&lt;fix&gt; instead of a single &lt;patch&gt; that was correct
in the first place.</p>

<p>In some cases, you are probably better off to export the changes in
&lt;rev&gt; into a diff, get a new Linus BK tree, and re-apply the patches +
fixes and generate a new CSET from that.</p>

<p>Not perfect, but that's life.</p>

</quote>

<p>Geert asked, <quote who="Geert Uytterhoeven">So in case he wants a few
csets only, I have to redo my for-Him-to-pull-tree.  In which case I don't see
any advantages compared to emailing a patch with changeset- and file-specific
comments. Especially since setting up a for-Him-to-pull-tree requires setting
up a publically accessible BK server.</quote> Andreas said:</p>

<quote who="Andreas Dilger">

<p>If you want to just send occasional CSETs to Linus or Dave Jones (which
is the category that a large majority of people are in) then you can always
send a CSET in the mail instead of having a "pull" tree available.  Search the
l-k archives for my "bksend" script which formats this nicely.</p>

<p>One of the benefits of using BK over patches, even in this situation, is
that if your tree is not exactly the same as Linus' the BK CSET will know
what version of the tree it was generated against and will make applying
and resolving conflicts a lot easier for Linus.</p>

</quote>

<p>Larry McVoy also replied to Geert, saying:</p>

<quote who="Larry McVoy">

<p>You can set up a publically accessible tree here, if you need one, see the
Hosting link on our website.  You can make your tree publically accessible
in multiple ways, with varying levels of security, see "bk help bkd".</p>

<p>The advantage of allowing him to pull is that you won't have the same data
in your BK tree twice, which you would have if you sent him diffs and then
pulled the diffs from him.  This is ESPECIALLY IMPORTANT if you have renames
(and creates/deletes are a sort of rename) in your patch.</p>

<p>If the situation is that you've created a scratch tree, specifically for
sending stuff to Linus and you aren't going to use it for anything else or
build on it, then you can send him regular diffs, and toss the tree once
you know he accepted them.</p>

</quote>

<p>Geert was satisfied.</p>

</section>

<section
  title="BitKeeper: The Saga Continues"
  subject="Linux 2.4 bitkeeper repository"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.2/1267.html"
  posts="18"
  startdate="22 Feb 2002 07:06:57 -0800"
  enddate="23 Feb 2002 11:40:31 -0800"
>
<topic>Hyperthreading</topic>
<topic>Version Control</topic>

<p>Christoph Hellwig asked:</p>

<quote who="Christoph Hellwig">

<p>the Linux 2.4 repository at linux.bkbbits.net is orphaned short after it got
created.  Ist there any chance we could see continguous checkins for it?</p>

<p>I think it might be a good idea to get it automatically checked in once
Marcelo uploads a new (pre-) patch as part of the kernel.org notification
procedure (is this possible, Peter?).</p>

<p>If there is no way to automate it I would volunteer to do the checkins,
but for that I'd need write permissions to the repository.</p>

</quote>

<p>Jeff Garzik replied, <quote who="Jeff
Garzik">As a temporary measure people can pull from <a
href="http://gkernel.bkbits.net/marcelo-2.4">http://gkernel.bkbits.net/marcelo-2.4</a>,
which is always up-to-date with the latest Marcelo pre-patch, and contains
nothing else.</quote> Marcelo Tosatti added, <quote who="Marcelo Tosatti">As
soon as I have time, I'll learn BK and maintain the repository myself.</quote>
Larry McVoy added:</p>

<quote who="Larry McVoy">

<p>A couple of useful resources are:</p>

<p><a
href="http://www.bitkeeper.com/cvs2bk.html">http://www.bitkeeper.com/cvs2bk.html</a></p>

<p><a
href="http://www.bitkeeper.com/Test.html">http://www.bitkeeper.com/Test.html</a></p>

<p><a
href="http://news.linuxprogramming.com/news_story.php3?ltsn=2002-02-21-001-06-DT-HT">http://news.linuxprogramming.com/news_story.php3?ltsn=2002-02-21-001-06-DT-HT</a></p>

<p>The last one is Jeff's writeup, very nice.</p>

<p>Also, if you want, one of us can get on IRC while you are walking the
demo and answer your questions.</p>

</quote>

<p>Rik van Riel also said:</p>

<quote who="Rik van Riel">

<p>I've already promised marcelo to setup some repositories, one with Jeff's
marcelo-2.4 tree and a few with patches to merge into 2.4.</p>

<p>Then I'll walk marcelo through the process of merging patches with bitkeeper
(or rather, letting bitkeeper take care of that stuff) and generally making
marcelo familiar with the important bitkeeper commands and some external
scripts.</p>

</quote>

<p>Larry continued:</p>

<quote who="Larry McVoy">

<p>The main thing is that you need to watch out for renames in patches.
bk import -tpatch handles that, straight patch does not.  If you don't catch
the renames life will suck because one file will be deleted in your tree but
may not be deleted yet in another tree.  If someone else is working on the
old tree and you pull from them, their updates will go to the deleted file.
They are there, but pretty useless if you wanted them in the file with the
new name.</p>

<p>We need to tweak stuff so that you can use bk import -temail or something
like that and it's a combination of Linus' scripts and the current code.
Linus?  Scripts?</p>

</quote>

<p>Linus Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>My scripts are on master.kernel.org:/home/torvalds/BK/tools, although I
haven't bothered to clean some of them up that really should be cleaned up
(things like email parsing that breaks on some emails due to MIME and/or
"^From " in the body etc).</p>

<p>Those tools include all the scripts to make changelogs, apply patches
from emails etc.</p>

<p>And they require the recent bitkeeper that can take comments and user
information for "bk import -tpatch".</p>

<p>(Yeah, "master" isn't an open machine, but Marcelo, Rik, Jeff etc can
all get in on it, if somebody wants to push the tools out somewhere else
they can certainly do so).</p>

</quote>

<p>Elsewhere, in reply to something else, Larry mentioned, <quote who="Larry
McVoy">I need to extract Linus' toolkit from him and integrate it into
a BK release so you can do those nice patch imports he does.  Linus?
Can you push your stuff to bitmover, I still don't have a working account
on master.kernel.org.</quote></p>

</section>

<section
  title="Status Of NUMA Scheduling In 2.4"
  subject="NUMA scheduling"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.2/1326.html"
  posts="19"
  startdate="22 Feb 2002 10:56:06 -0800"
  enddate="27 Feb 2002 08:56:50 -0800"
>
<topic>Big O Notation</topic>
<topic>Scheduler</topic>

<mention>Ingo Molnar</mention>

<p>Mike Kravetz announced:</p>

<quote who="Mike Kravetz">

<p>Below is preliminary patch to implement some form of NUMA scheduling
on top of Ingo's K3 scheduler patch for 2.4.17.  This is VERY early   
code and brings up some issues that need to be discussed/explored in 
more detail.  This patch was created to form a basis for discussion,  
rather than as a solution.  The patch was created for the i386 based  
NUMA system I have access to.  It will not work on other architectures.
However, the only architecture specific code is a call to initialize
some of the NUMA specific scheduling data structures.  Therefore, it  
should be trivial to port.</p>

<p>Here is what the patch does:</p>

<p>

<ul>

<li>Creates 'cpu sets', which are sets of cpus that tasks can be scheduled
  on.  The cpus in these sets should all have something in common
  such as local memory, a shared cache, etc.</li>

<li>In general, once a task begins execution on a cpu set, it remains  
  on that cpu set.  The load balancing code that exists in the K3
  scheduler is used to balance the load among cpus within a set.</li>

<li>

<p>Load balancing also takes place across cpu set boundaries.  Load
  balancing across set boundaries can happen:</p>

<p>

<ul>

<li>at exec time.  This is an obvious choice since we have just thrown
    away a tasks address space and are about to create a new one.  The
    exec'ing task is migrated to the least loaded cpu set</li>

<li>when a cpu goes idle.  At this time we first look for another
    task to run within the cpu set.  If there is no task available
    within the set, then we attempt to get a task from the most
    loaded cpu set.</li>

<li>at specified intervals when a cpu is idle.  In the K3 scheduler,
    the timer code notices a cpu is idle and looks for more work
    to do.  First it checks other runqueues within the cpu set.  If
    nothing is found, it attempts to get a task from the most loaded
    cpu set.</li>

<li>at specified intervals when a cpu is busy.  This is also kicked
    off via the timer interrupt code.  It simply attempts to move
    tasks from the most loaded cpu sets to the least loaded cpu sets.</li>

</ul>

</p>

<p>  For the most part, cpu set load balancing is invoked in the same places
  as cpu to cpu load balancing in the K3 scheduler.  The only exception
  is exec time task placement.  In the patch, the various forms of
  cpu set load balancing are behind #defines which can be turned on or
  off for experimentation.</p>

</li>

</ul>

</p>

<p>Things not addressed in the patch:</p>

<p>

<ul>

<li>Topology discovery.  To create cpu sets, a routine numa_sched_init()
  is called after we know how many cpus there are in the system.
  Inside numa_sched_init(), there are hard coded values used to indicate
  the number of cpus per set, and the 'distance' between sets.
  Obviously, creation of cpu sets would be based on topology information
  that is not available at this time.  In addition, there should be
  support for (or at least an understanding of) non-symmetric and
  multi-level topologies.</li>

<li>Tasks should have a notion of a 'home' cpu set.  Short term execution
  of a task on a remote cpu set should only be done to take advantage
  of idle cpus.  Tasks should only execute for short periods of time on
  remote cpu sets.  Most task execution should occur on the home cpu set.
  Long term execution on a remote cpu set would involve a full task
  migration which includes moving/copying the memory associated with
  the task.</li>

<li>Partitioning of scheduling data.  On a NUMA architecture, data
  structures should be backed by memory local to the cpus which will be
  accessing them most frequently.  Therefore, things like runqueues
  and cpu_sets should not be arrays.</li>

<li>Better determination for what tasks to execute remotely/migrate.
  The path uses the existing code in load_balance().  Most likely this
  will be sufficient.</li>

</ul>

</p>

</quote>

<p>A slew of people replied that they'd also been working on a NUMA extension
to Ingo Molnar's O(1) scheduler patch, and a bunch of them had a technical
discussion of Mike's work.</p>

</section>

<section
  title="Status Of Promise 20269 Support In 2.4"
  subject="Promise 20269 support?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.2/1515.html"
  posts="5"
  startdate="23 Feb 2002 10:22:32 -0800"
  enddate="23 Feb 2002 13:45:10 -0800"
>

<mention>Roy Sigurd Karlsbakk</mention>

<p>Roy Sigurd Karlsbakk asked when (or if) Promise 20269 support would be added
to 2.4; Alan Cox predicted 2.4.19, and Roy asked what was causing the holdup.
Alan replied, <quote who="Alan Cox">Its just a matter of timing. Its been
tested a fair bit in -ac now, and is looking very good, but Marcelo is going
to delete any submission like that for 2.4.18-rc, and rightfully so.</quote>
As Mike Fedyk put it, <quote who="Mike Fedyk">IIRC there was much controvercy
about the ide patches when 2.4.18-pre-early was open, and when the things
washed over that time window was closed.  Marcello only accepts large changes
in 2.4-pre-early, so it was too late...</quote></p>

</section>

<section
  title="Microkernel"
  subject="Monolithic Vs. Microkernel"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0202.3/0464.html"
  posts="7"
  startdate="25 Feb 2002 22:11:59 -0800"
  enddate="26 Feb 2002 03:45:29 -0800"
>
<topic>Microkernels: Hurd</topic>

<mention>Linus Torvalds</mention>

<p>Rakesh Kumar Banka asked if anyone was working on a micro-kernel
implementation of Linux, and there were several replies. Larry McVoy said,
<quote who="Larry McVoy">Not if they learned from history, they aren't.
But the Hurd could use your help, they're a microkernel.</quote> Alan Cox
corrected him, saying, <quote who="Alan Cox">There are several Linux on
microkernel implementations around, thankfully using something that can
really be called a microkernel. With the "we want to run 10,000 copies of
Linux on a box" market boom it may well prove to have a practical use one day
- as well as the security partitioning one which some people overlook (and
paranoid security people often do not mind a small performance hit).</quote>
Hans Adams added:</p>

<quote who="Hans Adams">

<p>at least two teams work upon it here in Germany</p>

<p>references:</p>

<p><a
href="http://os.inf.tu-dresden.de/index.xml.de">http://os.inf.tu-dresden.de/index.xml.de</a></p>

<p><a href="http://i30www.ira.uka.de">http://i30www.ira.uka.de</a></p>

<p>A branch of stable kernels upon L4/Fiasco is maintained at TU Dresden
and available at:</p>

<p><a
href="http://os.inf.tu-dresden.de/L4/LinuxOnL4/">http://os.inf.tu-dresden.de/L4/LinuxOnL4/</a>.
</p>

<p>Though Mr. Torvalds seems not to be amused about micro kernel aproach,
this work is not done in vein due to the inherent technical superiority in
certain applications mostly regarding distributed systems including NUMA
architectures.</p>

</quote>

<p>David Lang added, regarding Linus Torvalds' choice of monolithic kernel
structure, <quote who="David Lang">it boils down to the fact that Linus
believes that a microkernel ends up spending to much of it's time formatting
messages for other pieces of itself instead of doing the work you purchased
the computer to do.</quote> And Rik van Riel put in <quote who="Rik van
Riel">You have to remember that the source code for Linux is available.
This means we can have all the advantages of modularity at the source level
without needing any of the potential disadvantages of modularity at the
binary level.</quote></p>

</section>

</kc>

