<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="210" date="23 Mar 2003 00:00:00 -0800" />

<intro>Tom Lord, maintainer of the <a
href="http://arch.fifthvision.net/bin/view">Arch</a> version control system,
needs some help. He's flat broke and can't find work. Arch is a really
important project, and it would be great to keep him healthy and housed
so he can keep working on it. If you like, you can give him some money
as "lord@emf.net" on <a href="https://www.paypal.com/">PayPal</a>,
or maybe someone could help him find work. Check out <a
href="http://regexps.srparish.net/www/resume.html">his resume</a> if that's
a possibility.</intro>

<stats posts="1890" size="9305" contrib="495" multiples="261" lastweek="200">

<person posts="58" size="233" who="Andrew Morton" />
<person posts="56" size="175" who="Alan Cox" />
<person posts="45" size="182" who="&quot;Martin J. Bligh&quot;" />
<person posts="41" size="299" who="William Lee Irwin III" />
<person posts="36" size="115" who="Jens Axboe" />
<person posts="35" size="168" who="Greg KH" />
<person posts="29" size="275" who="Alex Tomas" />
<person posts="29" size="121" who="Daniel Phillips" />
<person posts="27" size="226" who="Pavel Machek" />
<person posts="26" size="93" who="Horst von Brand" />
<person posts="25" size="155" who="Andrea Arcangeli" />
<person posts="25" size="153" who="Stephen Hemminger" />
<person posts="24" size="144" who="Jeff Garzik" />
<person posts="23" size="122" who="Zwane Mwaikambo" />
<person posts="21" size="141" who="Geert Uytterhoeven" />
<person posts="20" size="82" who="Larry McVoy" />
<person posts="19" size="86" who="Davide Libenzi" />
<person posts="18" size="54" who="&quot;Randy.Dunlap&quot;" />
<person posts="18" size="51" who="John Bradford" />
<person posts="17" size="140" who="&quot;Felipe Alfaro Solana&quot;" />
<person posts="17" size="55" who="Oleg Drokin" />
<person posts="16" size="187" who="Osamu Tomita" />
<person posts="16" size="94" who="Pavel Machek" />
<person posts="16" size="52" who="Roman Zippel" />
<person posts="14" size="70" who="Jeremy Fitzhardinge" />
<person posts="14" size="46" who="&quot;H. Peter Anvin&quot;" />
<person posts="14" size="42" who="Helge Hafting" />
<person posts="14" size="36" who="&quot;David S. Miller&quot;" />
<person posts="13" size="68" who="Petr Baudis" />
<person posts="12" size="77" who="Joern Engel" />
<person posts="12" size="71" who="Keith Owens" />
<person posts="12" size="65" who="george anzinger" />
<person posts="12" size="39" who="&quot;Richard B. Johnson&quot;" />
<person posts="12" size="33" who="Dave Jones" />
<person posts="12" size="27" who="Maciej Soltysiak" />
<person posts="11" size="38" who="Matthew Wilcox" />
<person posts="11" size="35" who="Shawn" />
<person posts="10" size="63" who="Linus Torvalds" />
<person posts="10" size="56" who="(Andries.Brouwer)" />
<person posts="10" size="53" who="Andreas Dilger" />
<person posts="10" size="45" who="&quot;Adam J. Richter&quot;" />
<person posts="10" size="37" who="&quot;Kendall Bennett&quot;" />
<person posts="10" size="30" who="Christoph Hellwig" />
<person posts="10" size="27" who="Robert Love" />
<person posts="9" size="147" who="Andrey Panin" />
<person posts="9" size="72" who="Alexander Hoogerhuis" />
<person posts="9" size="34" who="Nigel Cunningham" />
<person posts="9" size="28" who="James Bottomley" />
<person posts="8" size="100" who="Stephen Rothwell" />
<person posts="8" size="89" who="Matthew Dobson" />
<person posts="8" size="41" who="CaT" />
<person posts="8" size="34" who="Russell King" />
<person posts="8" size="32" who="Ed Vance" />
<person posts="8" size="30" who="Mike Galbraith" />
<person posts="8" size="28" who="Daniel Egger" />
<person posts="8" size="24" who="Marc-Christian Petersen" />
<person posts="8" size="23" who="David Woodhouse" />
<person posts="7" size="36" who="Zack Brown" />
<person posts="7" size="36" who="Ben Collins" />
<person posts="7" size="30" who="(uaca)" />
<person posts="7" size="26" who="Bryan Whitehead" />
<person posts="7" size="24" who="Tim Schmielau" />
<person posts="7" size="23" who="&quot;Gregory K. Ruiz-Ade&quot;" />
<person posts="7" size="22" who="Andre Hedrick" />
<person posts="7" size="20" who="Pete Zaitcev" />
<person posts="7" size="20" who="Sam Ravnborg" />
<person posts="7" size="12" who="(war)" />
<person posts="6" size="77" who="Bill Huey (Hui)" />
<person posts="6" size="41" who="Oleg Drokin" />
<person posts="6" size="31" who="Christoph Hellwig" />
<person posts="6" size="28" who="Con Kolivas" />
<person posts="6" size="28" who="Torrey Hoffman" />
<person posts="6" size="26" who="David Lang" />
<person posts="6" size="25" who="&quot;James Stevenson&quot;" />
<person posts="6" size="23" who="Mark Haverkamp" />
<person posts="6" size="21" who="&quot;Stephen C. Tweedie&quot;" />
<person posts="6" size="20" who="(Valdis.Kletnieks)" />
<person posts="6" size="18" who="Vojtech Pavlik" />
<person posts="6" size="16" who="Andi Kleen" />
<person posts="6" size="15" who="&quot;rain.wang&quot;" />
<person posts="6" size="14" who="Andi Kleen" />
<person posts="5" size="49" who="Arador" />
<person posts="5" size="37" who="Alan Cox" />
<person posts="5" size="36" who="=?Big5?B?QWxleCBMYXUgvEKrVL3l?=" />
<person posts="5" size="22" who="Manfred Spraul" />
<person posts="5" size="19" who="Theodore Ts'o" />
<person posts="5" size="19" who="Martin Schlemmer" />
<person posts="5" size="18" who="&quot;dan carpenter&quot;" />
<person posts="5" size="17" who="Neil Brown" />
<person posts="5" size="17" who="Jerry Cooperstein" />
<person posts="5" size="16" who="Stephan von Krawczynski" />
<person posts="5" size="16" who="Joshua Kwan" />
<person posts="5" size="12" who="Florian Weimer" />
<person posts="4" size="101" who="&quot;Randy.Dunlap&quot;" />
<person posts="4" size="42" who="Daniel McNeil" />
<person posts="4" size="24" who="John Kim" />
<person posts="4" size="20" who="Tomas Szepe" />
<person posts="4" size="19" who="Robert Anderson" />
<person posts="4" size="18" who="Mark Mielke" />
<person posts="4" size="17" who="Olivier Galibert" />
<person posts="4" size="17" who="Denis Vlasenko" />
<person posts="4" size="17" who="Kai Germaschewski" />
<person posts="4" size="16" who=" (Linus Torvalds)" />
<person posts="4" size="16" who="Jakob Oestergaard" />
<person posts="4" size="15" who="Chris Friesen" />
<person posts="4" size="15" who="Eli Carter" />
<person posts="4" size="15" who="Werner Almesberger" />
<person posts="4" size="15" who="Martin Waitz" />
<person posts="4" size="14" who="(wind)" />
<person posts="4" size="14" who="Shaya Potter" />
<person posts="4" size="13" who=" &lt;vlad@geekizoid.com&gt;" />
<person posts="4" size="13" who="bert hubert" />
<person posts="4" size="13" who="Andries Brouwer" />
<person posts="4" size="13" who="Tom Sightler" />
<person posts="4" size="13" who="chas williams" />
<person posts="4" size="12" who="&quot;J.A. Magallon&quot;" />
<person posts="4" size="12" who="John Levon" />
<person posts="4" size="12" who="Mitch Adair" />
<person posts="4" size="11" who="Samium Gromoff" />
<person posts="4" size="11" who="scott thomason" />
<person posts="4" size="10" who="dan carpenter" />
<person posts="3" size="70" who="&quot;O.Sezer&quot;" />
<person posts="3" size="60" who="Daniele Venzano" />
<person posts="3" size="30" who="James Simmons" />
<person posts="3" size="22" who="Suparna Bhattacharya" />
<person posts="3" size="20" who="Henning Schroeder" />
<person posts="3" size="19" who="Hans Reiser" />
<person posts="3" size="19" who="Brian Davids" />
<person posts="3" size="18" who="Willy Gardiol" />
<person posts="3" size="16" who="Jonathan Lemon" />
<person posts="3" size="16" who="Bongani Hlope" />
<person posts="3" size="15" who="Martin Josefsson" />
<person posts="3" size="14" who="Keith Owens" />
<person posts="3" size="13" who="Petr Vandrovec" />
<person posts="3" size="13" who="Jamie Lokier" />
<person posts="3" size="12" who="&quot;Mr. James W. Laferriere&quot;" />
<person posts="3" size="12" who="&quot;Sparks, Jamie&quot;" />
<person posts="3" size="11" who="DervishD" />
<person posts="3" size="11" who="Matti Aarnio" />
<person posts="3" size="11" who="Adrian Bunk" />
<person posts="3" size="11" who="Eduardo Pereira Habkost" />
<person posts="3" size="10" who="Greg Ungerer" />
<person posts="3" size="10" who="Doug Ledford" />
<person posts="3" size="10" who="Douglas Gilbert" />
<person posts="3" size="10" who="(kuznet)" />
<person posts="3" size="10" who="=?iso-8859-1?Q?J=F6rn?= Engel" />
<person posts="3" size="10" who="Ducrot Bruno" />
<person posts="3" size="9" who="Adam Belay" />
<person posts="3" size="9" who="Willem Riede" />
<person posts="3" size="9" who="(wind-lkml)" />
<person posts="3" size="9" who="Oliver Tennert" />
<person posts="3" size="9" who="Rusty Russell" />
<person posts="3" size="9" who="Thomas Molina" />
<person posts="3" size="9" who="Hans-Peter Jansen" />
<person posts="3" size="9" who="Steven Cole" />
<person posts="3" size="9" who="David Brownell" />
<person posts="3" size="8" who=" (Pavel =?iso-8859-2?q?Jan=EDk?=)" />
<person posts="3" size="8" who="Greg Stark" />
<person posts="3" size="8" who="Zwane Mwaikambo" />
<person posts="3" size="8" who="Shane Shrybman" />
<person posts="3" size="8" who="&quot;Stuart MacDonald&quot;" />
<person posts="3" size="8" who="&quot;Philippe De Muyter&quot;" />
<person posts="3" size="8" who="Bob Miller" />
<person posts="3" size="8" who="Mehmet Ersan TOPALOGLU" />
<person posts="3" size="8" who="Dave Olien" />
<person posts="3" size="8" who="&quot;Tim Pepper&quot;" />
<person posts="3" size="8" who="John Jasen" />
<person posts="3" size="7" who="Willy Tarreau" />
<person posts="3" size="7" who="&quot;Paul Rolland&quot;" />
<person posts="3" size="7" who="Rik van Riel" />
<person posts="3" size="7" who="(jlnance)" />
<person posts="3" size="7" who="Bernd Eckenfels" />
<person posts="3" size="6" who="Duncan Sands" />
<person posts="2" size="63" who="Gregory Stark" />
<person posts="2" size="36" who="Jurriaan" />
<person posts="2" size="35" who="Bryan Andersen" />
<person posts="2" size="35" who="Jim Houston" />
<person posts="2" size="33" who="Andre Tomt" />
<person posts="2" size="29" who="Michael Dreher" />
<person posts="2" size="27" who="Gerd Knorr" />
<person posts="2" size="25" who="&quot;Marijn Kruisselbrink&quot;" />
<person posts="2" size="24" who="Vagn Scott" />
<person posts="2" size="22" who="Charles Baylis" />
<person posts="2" size="22" who="(mikpe)" />
<person posts="2" size="21" who="&quot;Vladimir B. Savkin&quot;" />
<person posts="2" size="18" who="&quot;Villanustre, Flavio&quot;" />
<person posts="2" size="17" who="Bart Theunissen" />
<person posts="2" size="16" who="Tom Lord" />
<person posts="2" size="13" who="Nalin Gupta" />
<person posts="2" size="12" who="David Mansfield" />
<person posts="2" size="11" who="William Stearns" />
<person posts="2" size="11" who="Brian Gerst" />
<person posts="2" size="11" who="David Mansfield" />
<person posts="2" size="11" who="john stultz" />
<person posts="2" size="10" who="rm" />
<person posts="2" size="9" who="Patrick McHardy" />
<person posts="2" size="9" who="&quot;Zhenghui Zhou&quot;" />
<person posts="2" size="9" who="Mel Gorman" />
<person posts="2" size="9" who="Stephen Satchell" />
<person posts="2" size="9" who="Mike Anderson" />
<person posts="2" size="9" who="Kingsley Cheung" />
<person posts="2" size="8" who="Antonino Daplas" />
<person posts="2" size="8" who="&quot;Vitezslav Samel&quot;" />
<person posts="2" size="8" who="Miguel =?ISO-8859-1?Q?Quir=F3s?=" />
<person posts="2" size="8" who="Steven Rostedt" />
<person posts="2" size="8" who="&quot;Christopher Meredith&quot;" />
<person posts="2" size="8" who="Teodor Iacob" />
<person posts="2" size="8" who="Joel Becker" />
<person posts="2" size="7" who="Mitchell Blank Jr" />
<person posts="2" size="7" who="jw schultz" />
<person posts="2" size="7" who="Jim Peterson" />
<person posts="2" size="7" who="&quot;Keith R. John Warno&quot;" />
<person posts="2" size="7" who="Ulrich Drepper" />
<person posts="2" size="7" who="Paul McKenney" />
<person posts="2" size="7" who="Duncan Sands" />
<person posts="2" size="7" who="Miles Bader" />
<person posts="2" size="7" who="Tim Smith" />
<person posts="2" size="6" who="Morten Helgesen" />
<person posts="2" size="6" who="(micklweiss)" />
<person posts="2" size="6" who="Marc Giger" />
<person posts="2" size="6" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="2" size="6" who="Andreas Schwab" />
<person posts="2" size="6" who="Trammell Hudson" />
<person posts="2" size="6" who="Felix Domke" />
<person posts="2" size="6" who="Arjan van de Ven" />
<person posts="2" size="6" who="John Alvord" />
<person posts="2" size="6" who="Tommy Reynolds" />
<person posts="2" size="6" who="David Mosberger" />
<person posts="2" size="6" who="Roger Luethi" />
<person posts="2" size="5" who="Benjamin LaHaise" />
<person posts="2" size="5" who="Karl Vogel" />
<person posts="2" size="5" who="Marek Michalkiewicz" />
<person posts="2" size="5" who="&quot;BOEBLINGEN LINUX390&quot;" />
<person posts="2" size="5" who="Bill Davidsen" />
<person posts="2" size="5" who="Henti Smith" />
<person posts="2" size="5" who="Jakub Jelinek" />
<person posts="2" size="5" who="Toplica Tanaskovic" />
<person posts="2" size="5" who="Nick Piggin" />
<person posts="2" size="5" who="Oliver Xymoron" />
<person posts="2" size="5" who=" (Joe Korty)" />
<person posts="2" size="5" who="Mathias Kretschmer" />
<person posts="2" size="5" who="Niels Provos" />
<person posts="2" size="5" who="Trond Myklebust" />
<person posts="2" size="5" who="Brian McGroarty" />
<person posts="2" size="5" who="Andy Pfiffer" />
<person posts="2" size="5" who="&quot;Ruslan U. Zakirov&quot;" />
<person posts="2" size="5" who="Dale Harris" />
<person posts="2" size="5" who="Der Herr Hofrat" />
<person posts="2" size="5" who="Olaf Hering" />
<person posts="2" size="5" who="&quot;Paul Albrecht&quot;" />
<person posts="2" size="4" who="Pascal Schmidt" />
<person posts="2" size="4" who="James Stevenson" />
<person posts="2" size="4" who="&quot;dean .&quot;" />
<person posts="2" size="4" who="Torsten Foertsch" />
<person posts="2" size="4" who="&quot;Breno&quot;" />
<person posts="2" size="4" who="&quot;sean darcy&quot;" />
<person posts="2" size="4" who="Juha Poutiainen" />
<person posts="2" size="4" who="&quot;Marijn Kruisselbrink&quot;" />
<person posts="2" size="4" who="Grzegorz Jaskiewicz" />
<person posts="2" size="4" who="&quot;Mirco Ellis&quot;" />
<person posts="2" size="3" who="MaxF" />
<person posts="1" size="40" who="Markus Peuhkuri" />
<person posts="1" size="33" who="Roy Sigurd Karlsbakk" />
<person posts="1" size="25" who="=?ISO-8859-9?Q?Onur_Yalaz=FD?=" />
<person posts="1" size="23" who="Mitsuru KANDA / =?ISO-2022-JP?B?GyRCP0BFRBsoQiAbJEI9PBsoQg==?=" />
<person posts="1" size="22" who="Michael Fay" />
<person posts="1" size="22" who="Tom Zanussi" />
<person posts="1" size="20" who="Disconnect" />
<person posts="1" size="18" who="N Nair" />
<person posts="1" size="17" who="Gregory Leblanc" />
<person posts="1" size="16" who="Simon Kirby" />
<person posts="1" size="15" who="&quot;James R. Van Zandt&quot;" />
<person posts="1" size="13" who="Smiler" />
<person posts="1" size="13" who="lasse" />
<person posts="1" size="11" who="Toplica =?utf-8?q?Tanaskovi=C4=87?=" />
<person posts="1" size="11" who="David van Hoose" />
<person posts="1" size="10" who="Dan Kegel" />
<person posts="1" size="10" who="Luis Miguel Garcia" />
<person posts="1" size="10" who="&quot;Theodore Ts'o&quot;" />
<person posts="1" size="9" who="Attila Kinali" />
<person posts="1" size="9" who="&quot;Hemanshu Kanji Bhadra, Noida&quot;" />
<person posts="1" size="9" who="Rusty Lynch" />
<person posts="1" size="9" who="(berthiaume_wayne)" />
<person posts="1" size="9" who="Fabrizio Nesti" />
<person posts="1" size="9" who="(root)" />
<person posts="1" size="8" who="Wim Van Sebroeck" />
<person posts="1" size="8" who="&quot;Robert White&quot;" />
<person posts="1" size="7" who="Rajesh Rajamani" />
<person posts="1" size="6" who="Maxime" />
<person posts="1" size="6" who="Sander vd Burg" />
<person posts="1" size="6" who="pd dd" />
<person posts="1" size="6" who="&quot;R. Scott Bailey&quot;" />
<person posts="1" size="6" who="Aravind" />
<person posts="1" size="6" who="&quot;Dan Searle&quot;" />
<person posts="1" size="5" who="Hugo Mills" />
<person posts="1" size="5" who="Brian Gerst" />
<person posts="1" size="5" who="Eric Benson" />
<person posts="1" size="5" who="Stig Brautaset" />
<person posts="1" size="5" who="German Gomez Garcia" />
<person posts="1" size="5" who="Anton Blanchard" />
<person posts="1" size="5" who="&quot;Jeremy Booker&quot;" />
<person posts="1" size="5" who="Oliver Feiler" />
<person posts="1" size="5" who="Rob Funk" />
<person posts="1" size="5" who="Joel Jaeggli" />
<person posts="1" size="5" who="&quot;O.Sezer&quot;" />
<person posts="1" size="5" who="Matt C" />
<person posts="1" size="4" who="&quot;dave&quot;" />
<person posts="1" size="4" who="David Ford" />
<person posts="1" size="4" who="&quot;David Luyer&quot;" />
<person posts="1" size="4" who="fs" />
<person posts="1" size="4" who="Ricardo Manuel Oliveira" />
<person posts="1" size="4" who="&quot;Sudharsan  Vijayaraghavan&quot;" />
<person posts="1" size="4" who="&quot;Eng Se-Hsieng&quot;" />
<person posts="1" size="4" who="Mikael Pettersson" />
<person posts="1" size="4" who="Christian Daudt" />
<person posts="1" size="4" who="&quot;Murray J. Root&quot;" />
<person posts="1" size="4" who="Tupshin Harper" />
<person posts="1" size="4" who="&quot;Kevin Pedretti&quot;" />
<person posts="1" size="4" who="Roland Dreier" />
<person posts="1" size="4" who="Luuk van der Duim" />
<person posts="1" size="4" who=" (Adrian Golumbovici)" />
<person posts="1" size="4" who="Dmitry Kasatkin" />
<person posts="1" size="4" who="Till Immanuel Patzschke" />
<person posts="1" size="4" who="Christopher Meredith" />
<person posts="1" size="4" who="Shawn Starr" />
<person posts="1" size="4" who="&quot;David Shirley&quot;" />
<person posts="1" size="4" who="Brian Durant" />
<person posts="1" size="4" who="Herbert Xu" />
<person posts="1" size="4" who="&quot;James Watkins-Harvey&quot;" />
<person posts="1" size="4" who="&quot;Brugger, Andrea L&quot;" />
<person posts="1" size="4" who="Filip Van Raemdonck" />
<person posts="1" size="4" who="&quot;Edward S. Marshall&quot;" />
<person posts="1" size="4" who="Paul Gortmaker" />
<person posts="1" size="4" who="=?iso-8859-1?q?Bj=F6rn=20Fahller?=" />
<person posts="1" size="4" who="Jim Houston" />
<person posts="1" size="4" who="Eric Piel" />
<person posts="1" size="4" who="Thomas Schlichter" />
<person posts="1" size="3" who="Kaz Kylheku" />
<person posts="1" size="3" who="Corey Minyard" />
<person posts="1" size="3" who="Srihari Vijayaraghavan" />
<person posts="1" size="3" who="(flexy)" />
<person posts="1" size="3" who="Josef Roehrl" />
<person posts="1" size="3" who="David Schwartz" />
<person posts="1" size="3" who="Jean Tourrilhes" />
<person posts="1" size="3" who="(venom)" />
<person posts="1" size="3" who="Yumiko Sugita" />
<person posts="1" size="3" who="Steven Dake" />
<person posts="1" size="3" who="&quot;&quot;" />
<person posts="1" size="3" who="Hiro Yoshioka" />
<person posts="1" size="3" who="&quot;Scott Robert Ladd&quot;" />
<person posts="1" size="3" who="Matthias Andree" />
<person posts="1" size="3" who="&quot;Cress, Andrew R&quot;" />
<person posts="1" size="3" who="&quot;Eric Sandall&quot;" />
<person posts="1" size="3" who="Barker Michael-r43496" />
<person posts="1" size="3" who="Jesse Barnes" />
<person posts="1" size="3" who="Damian =?iso-8859-2?Q?Ko=B3kowski?=" />
<person posts="1" size="3" who="Lars Magne Ingebrigtsen" />
<person posts="1" size="3" who="(whitnl73)" />
<person posts="1" size="3" who="&quot;Justin T. Gibbs&quot;" />
<person posts="1" size="3" who="&quot;Petr Vandrovec&quot;" />
<person posts="1" size="3" who="Josh McKinney" />
<person posts="1" size="3" who="Jan-Benedict Glaw" />
<person posts="1" size="3" who="Pedro Soria Rodriguez" />
<person posts="1" size="3" who="&quot;Kevin P. Fleming&quot;" />
<person posts="1" size="3" who="Sheng Long Gradilla" />
<person posts="1" size="3" who="Ingo Molnar" />
<person posts="1" size="3" who=" (Eric W. Biederman)" />
<person posts="1" size="3" who="Alexander Atanasov" />
<person posts="1" size="3" who="Rob Ekl" />
<person posts="1" size="3" who="Rob Landley" />
<person posts="1" size="3" who="&quot;Dr. David Alan Gilbert&quot;" />
<person posts="1" size="3" who="James Bourne" />
<person posts="1" size="3" who="&quot;Marcel J.E. Mol&quot;" />
<person posts="1" size="3" who="jjs" />
<person posts="1" size="3" who="&quot;Simon Thornton&quot;" />
<person posts="1" size="3" who="Jan Marek" />
<person posts="1" size="3" who="Heinz Ulrich Stille" />
<person posts="1" size="3" who="&quot;M. Soltysiak&quot;" />
<person posts="1" size="3" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="1" size="3" who="Nils Smeds" />
<person posts="1" size="3" who="David Stevens" />
<person posts="1" size="3" who="Lars Marowsky-Bree" />
<person posts="1" size="3" who="Marc Zyngier" />
<person posts="1" size="3" who="Jay Patrick Howard" />
<person posts="1" size="3" who="William Cohen" />
<person posts="1" size="3" who="&quot;Henning P. Schmiedehausen&quot;" />
<person posts="1" size="3" who="&quot;Ph. Marek&quot;" />
<person posts="1" size="3" who="Jonas Holmberg" />
<person posts="1" size="3" who="Ed Tomlinson" />
<person posts="1" size="3" who="Heinz Ulrich Stille" />
<person posts="1" size="3" who="&quot;Sriram Narasimhan&quot;" />
<person posts="1" size="3" who="Jason McMullan" />
<person posts="1" size="3" who="&quot;Sean Estabrooks&quot;" />
<person posts="1" size="3" who="Maarten Ghijsen" />
<person posts="1" size="2" who="Peter Braam" />
<person posts="1" size="2" who="Jason Lunz" />
<person posts="1" size="2" who="Charles Cazabon" />
<person posts="1" size="2" who="Lars Damerow" />
<person posts="1" size="2" who="&quot; MR.JOHNSON OYE&quot;" />
<person posts="1" size="2" who="Hugh Dickins" />
<person posts="1" size="2" who="Jan Rekorajski" />
<person posts="1" size="2" who="Olaf Dietsche" />
<person posts="1" size="2" who="Wichert Akkerman" />
<person posts="1" size="2" who="Seth Lepzelter" />
<person posts="1" size="2" who="Valentin Nechayev" />
<person posts="1" size="2" who="&quot;dada1&quot;" />
<person posts="1" size="2" who="Phillip Lougher" />
<person posts="1" size="2" who="(bonganilinux)" />
<person posts="1" size="2" who="John Cherry" />
<person posts="1" size="2" who="Javier Achirica" />
<person posts="1" size="2" who="&quot;chandrasekhar.nagaraj&quot;" />
<person posts="1" size="2" who="Samuel Flory" />
<person posts="1" size="2" who="Chris Wright" />
<person posts="1" size="2" who="Elladan" />
<person posts="1" size="2" who="Shawn Starr" />
<person posts="1" size="2" who="=?UTF-8?B?QWxleCBMYXUg5YqJ5L+K6LOi?=" />
<person posts="1" size="2" who="Andreas Haumer" />
<person posts="1" size="2" who="Henrik Thostrup Jensen" />
<person posts="1" size="2" who="Ville Herva" />
<person posts="1" size="2" who="&quot;Ryan Underwood&quot;" />
<person posts="1" size="2" who=" (Kai Henningsen)" />
<person posts="1" size="2" who="Anton Altaparmakov" />
<person posts="1" size="2" who="Andreas Mohr" />
<person posts="1" size="2" who="Terrence Martin" />
<person posts="1" size="2" who="sridhar vaidyanathan" />
<person posts="1" size="2" who="Angus Sawyer" />
<person posts="1" size="2" who=" (Sebastian D.B. Krause)" />
<person posts="1" size="2" who="Bernd Schubert" />
<person posts="1" size="2" who="Rhino" />
<person posts="1" size="2" who="Adam Spiers" />
<person posts="1" size="2" who="Mark Hounschell" />
<person posts="1" size="2" who="(clemens)" />
<person posts="1" size="2" who="&quot;Romain Lievin&quot;" />
<person posts="1" size="2" who="Xavier Bestel" />
<person posts="1" size="2" who="Paul Mackerras" />
<person posts="1" size="2" who="&quot;Dimitrie O. Paun&quot;" />
<person posts="1" size="2" who="hugang" />
<person posts="1" size="2" who="&quot;Edward Killips&quot;" />
<person posts="1" size="2" who="(phillip)" />
<person posts="1" size="2" who="Philip Dodd" />
<person posts="1" size="2" who="Greg Ingram" />
<person posts="1" size="2" who="Ivan Kokshaysky" />
<person posts="1" size="2" who="&quot;Feldman, Scott&quot;" />
<person posts="1" size="2" who="Brad Laue" />
<person posts="1" size="2" who="Ion Badulescu" />
<person posts="1" size="2" who="Hanno =?ISO-8859-15?Q?B=F6ck?=" />
<person posts="1" size="2" who="nickn" />
<person posts="1" size="2" who="Christopher Fowler" />
<person posts="1" size="2" who="Andrey Klochko" />
<person posts="1" size="2" who=" (Miquel van Smoorenburg)" />
<person posts="1" size="2" who="James Wright" />
<person posts="1" size="2" who="&quot;leon j. breedt&quot;" />
<person posts="1" size="2" who="Bryan O'Sullivan" />
<person posts="1" size="2" who="Giuliano Pochini" />
<person posts="1" size="2" who="fs" />
<person posts="1" size="2" who="Jarl Friis" />
<person posts="1" size="2" who="Dmitrii Tisnek" />
<person posts="1" size="2" who="Tom Vier" />
<person posts="1" size="2" who="=?iso-8859-1?q?szonyi=20calin?=" />
<person posts="1" size="2" who="Michiel Klaver" />
<person posts="1" size="2" who="Electroniks New" />
<person posts="1" size="2" who="Henrique Gobbi" />
<person posts="1" size="2" who="&quot;Peyush Agarwal&quot;" />
<person posts="1" size="2" who="Adam Voigt" />
<person posts="1" size="2" who="walt" />
<person posts="1" size="2" who="Thomas Hood" />
<person posts="1" size="2" who="(ravikumar.chakaravarthy)" />
<person posts="1" size="2" who="William Sherwin" />
<person posts="1" size="2" who="Justin Hibbits" />
<person posts="1" size="2" who="Marcelo Tosatti" />
<person posts="1" size="2" who="Norka Lucena" />
<person posts="1" size="2" who="&quot;J. Hidding&quot;" />
<person posts="1" size="2" who="Dave Jones" />
<person posts="1" size="2" who="Vincent Hanquez" />
<person posts="1" size="2" who="Badari Pulavarty" />
<person posts="1" size="2" who="Paul Fulghum" />
<person posts="1" size="2" who="&quot;[INTRANET] Panda Antivirus for Exchange Server&quot;" />
<person posts="1" size="2" who="Gabe Arnold" />
<person posts="1" size="2" who="Olaf Titz" />
<person posts="1" size="2" who="Michael" />
<person posts="1" size="2" who="&quot;Andrus Nomm&quot;" />
<person posts="1" size="2" who="Stih Frenks" />
<person posts="1" size="2" who="Bruce Harada" />
<person posts="1" size="2" who="Mauricio =?iso-8859-1?q?Nu=F1ez?=" />
<person posts="1" size="2" who="Paolo Ornati" />
<person posts="1" size="2" who="Michael Frank" />
<person posts="1" size="2" who="&quot;Dave Gilbert (Home)&quot;" />
<person posts="1" size="2" who="Michael Vergoz" />
<person posts="1" size="2" who="Aaron Lehmann" />
<person posts="1" size="1" who="Amol Kumar Lad" />
<person posts="1" size="1" who="=?iso-8859-1?q?Claudio=20Novaes=20Figueira?=" />
<person posts="1" size="1" who="Marius PETRIA" />
<person posts="1" size="1" who="Denis Zaitsev" />
<person posts="1" size="1" who="(xmrcnet)" />

</stats>

<section
  title="BitBucket: A BitKeeper Competitor; Version Control Discussion"
  subject="BitBucket: GPL-ed BitKeeper clone"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0302.3/0931.html"
  posts="200"
  startdate="26 Feb 2003 12:02:12 -0800"
  enddate="17 Mar 2003 12:59:48 -0800"
>
<topic>Microkernels: Hurd</topic>
<topic>Version Control</topic>

<mention>Alan Cox</mention>
<mention>Daniel Phillips</mention>
<mention>Horst von Brand</mention>

<p>Pavel Machek announced BitBucket, a tool intended to one day operate on
BitKeeper repositories:</p>

<quote who="Pavel Machek">

<p>I've created little project for read-only
(for now ;-) bitkeeper clone. It is available at <a
href="http://www.sf.net/projects/bitbucket">www.sf.net/projects/bitbucket</a>
(no tar balls, just get it fresh from CVS).</p>

<p>Part of readme follows.</p>

<p>Install CSSC from &lt;<a href="http://cssc.sf.net/">http://cssc.sf.net/</a>&gt; (it is also available as
Debian package). You may need to apply cssc.diff.</p>

<p>Here you get following tools:</p>

<p>bcheckout_HEAD:<br />
        extracts files from BK repository. You can get repository
        by rsync -zav --delete nl.linux.org::kernel/linux-2.5 .</p>

<p>bpull:<br />
        pull new version of repository, compute differences from
        the last time and apply them to directory with *your*
        sources.</p>

<p>bdiff:<br />
        compare two versions (specify versions from top-level
        s.ChangeSet)</p>

<p>To get a list of all changesets, do prs linux-2.5/SCCS/s.ChangeSet.</p>

</quote>

<p>Larry McVoy replied, <quote who="Larry McVoy">BitKeeper is a trademark,
please don't use the BitKeeper name when describing BitBucket.  Thanks.</quote>
Later he clarified that Pavel was <quote who="Larry McVoy">not allowed to say
"BitBucket is a GPL-ed clone of BitKeeper" because that implies that BitBucket
does what BitKeeper does and nothing could be farther from the truth.</quote>
Pavel apologized, and said he'd fix the wording to be "Goal of this project
is to create version managment system compatible with BitKeeper."</p>

<p>As a result of this "don't use the BitKeeper name" exchange, some people
started ribbing Larry by referring to BitKeeper as "KitBeeper", "ButtCreeper"
and other names.</p>

<p>Pavel Janik felt that it was a waste of time to start yet another version
control project; and that in this case, Pavel's work actually supported a
proprietary tool. Christoph Hellwig said Pavel was free to spend his time on
BitBucket if he chose. John Bradford asked, <quote who="John Bradford">What
is the goal of the BitBucket project, though?  To develop a version control
system, or to annoy Larry?</quote> Christoph replied, <quote who="Christoph
Hellwig">Given the annoucement probably access the kernel BK tree in real
time.</quote> And Pavel clarified, <quote who="Pavel Machek">To be able to
access kernel version history without touching bk. Annoying Larry is just
a side effect, altrough I agree selection of project name was "interesting"
;-).</quote></p>

<p>Elsewhere, Adam J. Richter replied to Pavel's initial announcement:</p>

<quote who="Adam J. Richter">

<p>Thank you for taking some initiative and improving this
situation by constructive means.  You are an example to us
all, as is Andrea Arcangeli with his openbkweb project, which
you will probably want to examine and perhaps integrate (<a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/openbkweb">ftp://ftp.kernel.org/pub/linux/kernel/people/andrea/openbkweb</a>).</p>

<p>bitbucket is about 350 lines of shell scripts, documentation and diffs,
the most interesting file of which is FORMAT, which documents some reverse
engineering efforts on bitkeeper internal file formats.  bitkbucket currently
uses rsync to update data from the repository.  openbkweb is 500+ lines
of python that implements enough of the bitkeeper network protocol to
do downloads, although perhaps in inefficiently.  That sounds like some
functionality that you might be interested in integrating.</p>

<p>I think the suggestion made by Pavel Janik that it would be better to work
on adding BitKeeper-like functionality to existing free software packages is
a bit misdirected.  BitKeeper uses SCCS format, and we have a GPL'ed SCCS
clone ("cssc"), so you are adding functionality to existing free software
version control code anyhow.</p>

<p>However, I would like to turn Pavel Janik's point in what I think might
be a more constructive direction.</p>

<p>Aegis, BitKeeper and probably other configuration management tools that
use sccs or rcs basically share a common type of lower layer.  This lower
layer converts a file-based revision control system such as sccs to an
"uber-cvs", as someone called it in a slashdot discussion, that can:</p>

<p>

<ol>

<li>process a transaction against a group of files atomically,</li>

<li>associate a comment with such a transaction rather than with just one
file,</li>

<li>represent symbolic links, file protections 4. represent file renames
(and perhaps copies?)</li>

</ol>

</p>

<p>You might want to keep in the back of your mind the possibility of someday
splitting off this lower level into a separate software package that programs
like your bitkeeper clone, aegis could use in common.  If the interface to
this lower level took cvs commands, then it could probably replace cvs,
although the repository would probably be incompatible since the meaning
of things like checking in multiple files together with a single comment
would be different, and there would be other kinds of changes to represent
beyond what cvs currently does.  Using a repository format that is compatible
with another system (for example bitkeeper or aegis) would make such a tool
more useful, and if such a tool makes it easier for people to migrate from
a prorprietary system to a free one, that's even better, so your starting
with bitkeeper's format seems like an excellent choice to me.</p>

<p>Thanks again for starting this project.  I will at least try to be a user
of it.</p>

</quote>

<p>David Lang corrected, <quote who="David Lang">the openbkweb project
didn't reverse engineer the BK network protocol, it used the HTTP access
that is provided on bkbits.net to download the individual items and created
a repository from that.</quote> He added, <quote who="David Lang">bitbucket
uses rsync as that is the most efficiant way to get a copy of the repository
without trying to talk the bitkeeper protocol. it is FAR more efficiant and
accruate then the openbkkweb interface.</quote></p>

<p>Someone suggested supporting something like Subversion, instead of starting
yet another version control project, and Alan Cox said that the repositories
people needed to access were in BitKeeper format, and so a tool was needed
to access them. Jeff Garzik replied:</p>

<quote who="Jeff Garzik">

<p>"BK format"?  Not really.  Patches have been posted (to lkml, even)
to GNU CSSC which allow it to read SCCS files BK reads and writes.</p>

<p>Since that already exists, a full BitKeeper clone is IMO a bit silly,
because it draws users and programmers away from projects that could
potentially _replace_ BitKeeper.</p>

</quote>

<p>Pavel replied, <quote who="Pavel Machek">Read-only access to the bk
repositories is the first goal. Then, I'll either add write support (unlikely)
or feed it into some existing version control system to work with that. I'm
still not sure what's the best.</quote></p>

<p>Close by, Andrea Arcangeli replied to Jeff's point about SCCS compatibility,
saying, <quote who="Andrea Arcangeli">you never tried what you're talking
about.  there's no way to make any use of the SCCS tree from Rik's website
with only the patched CSSC. The whole point of bitbucket is to find a way to
use CSSC on that tree. And the longer Larry takes to export the whole data
in an open format (CVS, subversion or whatever), the more progress it will
be accomplished in getting the data out of the only service we have right
now (Rik's server). Sure, CSSC is a foundamental piece to extract the data
out of the single files, but CSSC alone is useless. CSSC only allows you to
work on a single file, you lose the whole view of the tree and in turn it
is completely unusable for doing anything useful like watching changesets,
or checking out a branch or whatever else useful thing. As Pavel found _all_
the info we are interested about is in the SCCS/s.ChangeSet file and that has
nothing to do with CSSC or SCCS.</quote> He suggested, <quote who="Andrea
Arcangeli">Jeff, please uninstall *notrademarkhere* from your harddisk,
install the patched CSSC instead (like I just did), rsync Rik's SCCS tree
on your harddisk (like I just did), and then send me via email the diff
of the last Changeset that Linus applied to his tree with author, date,
comments etc...  If you can do that, you're completely right and at least
personally I will agree 100% with you, again: iff you can.</quote> But Jeff
replied, <quote who="Jeff Garzik">You're missing the point: A BK exporter
is useful.  A BK clone is not.  If Pavel is _not_ attempting to clone BK,
then I retract my arguments. :)</quote> Pavel confirmed he was working on
an exporter, not a clone.</p>

<p>But H. Peter Anvin said, <quote who="H. Peter Anvin">I disagree.  A BK
clone would almost certainly be highly useful.  The fact that it would
happen to be compatible with one particular proprietary tool released by
one particular company doesn't change that fact one iota; in fact, some
people might find value in using the proprietary tool for whatever reason
(snazzy GUI, keeping the suits happy, who knows...)</quote> Jeff agreed such a
tool would be useful, but he said it would still most likely harm other version
control projects. He said:</p>

<quote who="Jeff Garzik">

<p>While people would certainly use it, I can't help but think that a BK
clone would damage other open source SCM efforts.  I call this the
"SourceForge Syndrome":</p>

<blockquote>

<p>        Q. I found a problem/bug/annoyance, how do I solve it?<br />
        A. Clearly, a brand new sourceforge project is called for.</p>

</blockquote>

<p>My counter-question is, why not improve an _existing_ open source SCM to
read and write BitKeeper files?  Why do we need yet another brand new
project?</p>

<p>AFAICS, a BK clone would just further divide resources and mindshare.  I
personally _want_ an open source SCM that is as good as, or better, than
BitKeeper.  The open source world needs that, and BitKeeper needs the
competition.  A BK clone may work with BitKeeper files, but I don't see
it ever being as good as BK, because it will always be playing catch-up.</p>

</quote>

<p>H. Peter said he didn't disagree with any of this, but had just been talking
about whether a BitKeeper clone would be <i>useful</i>. But he agreed with all
of Jeff's objections, and added, <quote who="Jeff Garzik">Personally, I've
spent quite a bit of time with <a href="http://www.opencm.org/">OpenCM</a>
after a suggestion from Ted T'so.  It's looking quite promising to me,
although I haven't yet used it to maintain a large project.</quote> Close by,
Joel Becker replied to Jeff's assertion that folks should devote themselves to
improving existing tools, rather than starting up a new one. Joel said:</p>

<quote who="Joel Becker">

<p>Normally, I'd agree with you Jeff.  However, none of the current open
source SCM systems are architected in a way that can operate like BK.</p>

<p>I've been using <a href="http://subversion.tigris.org/">subversion</a>
for a while now.  It pretty much fixes all the problems that CVS had, AS
LONG AS you accept the CVS style of version control.  That style doesn't
work for non-central work like the kernel.</p>

<p>The one thing BK does that makes it worthwhile is the three-way
merge.  This (and the resulting DAG) make handling code from Alan,
from Linus, from Andrew, and from everyone else possible.  With <a
href="http://www.cvshome.org/">CVS</a>, subversion, or any other SCM I've
worked with, you have to hand merge anything past the first patch.  Ugh.</p>

<p>This requires architecture, and (AFAIK) BitBucket is the first try at it.
Compatibility with the proprietary tool that does it already is a good
thing.</p>

</quote>

<p>Olaf Hering said, <quote who="Olaf Hering">Ah, finally we got to the root
of the "problem".</quote></p>

<p>Elsewhere, Olivier Galibert took up the question of what really would be
required for any version control system to replace BitKeeper. He responded to
Adam's post, specifically Adam's list of desired features:</p>

<p>1. process a transaction against a group of files atomically,<br />
2. associate a comment with such a transaction rather than
with just one file,<br />
3. represent symbolic links, file protections<br />
4. represent file renames (and perhaps copies?)</p>

<p>Olivier added his own fifth item, saying:</p>

<quote who="Olivier Galibert">

<p>5. Represent merges.  That's what is making cvs branches unusable.</p>

<p>Frankly, if you want all of that you'd better design a repository format
that is actually adapted to it.  The RCS format is not very good, the SCCS
weave is a little better but not by much (it reminds me of Hurd, looks cool
but slow by design).  Larry did quite a feat turning it into a distributed
DAG of versions but I'm not convinced it was that smart, technically.
In particular, everthing suddendly looks much nicer when you have one file
per DAG node plus a cache zone for full versions.</p>

<p>But anyway, what made Bitkeeper suck less is the real DAG structure.
Neither <a href="http://arch.fifthvision.net/bin/view">arch</a> nor
subversion seem to have understood that and, as a result, don't and won't
provide the same level of semantics.  Zero hope for Linus to use them, ever.
They're needed for any decently distributed development process.</p>

<p>Hell, arch is still at the update-before-commit level.  I'd have hoped
PRCS would have cured that particular sickness in SCM design ages ago.</p>

<p>Atomicity, symbolic links, file renames, splits (copy) and merges (the
different files suddendly ending up being the same one) are somewhat important,
but not the interesting part.  A good distributed DAG structure and a quality
3-point version "merge" is what you actually need to build bk-level SCMs.</p>

</quote>

<p>Pavel asked Olivier to elaborate on the importance of the DAG (<a
href="http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?directed">Directed
Acyclic Graph</a>) structure. Pavel was under the impression that <quote
who="Pavel Machek">this "real DAG" structure is more or less equivalent to
each developer having his owm CVS repository...</quote> Olivier elaborated,
<quote who="Olivier Galibert">Nope.  CVS uses RCS, and RCS only knows
about trees, not graphs.  Specifically, branch merges are not tagged as
such, and as a result CVS is unable to pick up the best grandparent when
doing a merge.  That's the main reason of why branching under CVS is so
painful (forgetting about the performance issues).</quote> Pavel replied,
<quote who="Pavel Machek">I see. But I still somehow can not understand how
merging is possible. Merge possibly means work-by-hand, right? So it is not
as simple as noting that 1.8 and 1.7.1.1 were merged into 1.9, no? [And what
if developer did really crap job at merging that, like dropping all changes
from 1.7.1.1?]</quote> Olivier went into more detail:</p>

<quote who="Olivier Galibert">

<p>Calling A and B the versions to merge and R the reference, diff3 uses
this algorithm (probably the simplest possible):</p>

<p>

<ul>

<li>Compute the diff between A and R, call it dA</li>

<li>Compute the diff between B and R, call it dB</li>

<li>Merge the two diffs into one (and conflict where you can't)</li>

<li>Apply the merged diff to R</li>

</ul>

</p>

<p>Better algorithms do the alignments per-character instead of per-line,
detect moved and changed functions, detect duplicate inserts, etc.
None, of course, is perfect, as Larry could tell you.</p>

<p>Now if the development went that way:</p>

<pre>1.7  -&gt; 1.7.1.1 (branching, i.e. copy)
 v         v
 v      1.7.1.2
1.8        v
 v   -&gt; 1.7.1.3 (merge)
1.9        v
 v         v  
1.10       v
 v   -&gt; 1.7.1.4 (merge)
 v         v
 v      1.7.1.5
 v         v
1.11 &lt;-         (merge)</pre>

<p>Pretty much standard, a developper created a new branch, made some changes
in it, synced with mainline, synced with mailine again a little later,
made some new changes and finally folded the branch back in the mainline.
Let's admit the developper changes don't conflict by themselves with the
mainline changes.</p>

<p>CVS, for all the merges, is going to pick 1.7 as the reference.  The first
time, for 1.7.1.3, it's going to work correctly.  It will fuse the 1.7-&gt;1.8
patch with the 1.7.1.1-&gt;1.7.1.2 patch and apply the result to 1.7 to get
1.7.1.3.  The two patches have no reason to overlap.  1.7.1.2-&gt;1.7.1.3 will
essentially be identical to 1.7-&gt;1.8, and 1.8-&gt;1.7.1.3 will essentially
be identical to 1.7.1.2-&gt;1.7.1.3.</p>

<p>As soon as the next merge, i.e 1.7.1.4, it breaks.  CVS is going to try to
fuse the 1.7-&gt;1.10 patch with the 1.7-&gt;1.7.1.3 patch.  But 1.7-&gt;1.10 =
1.7-&gt;1.8+1.8-&gt;1.10 and 1.7-&gt;1.7.1.3 ~= 1.7-&gt;1.7.1.2+1.7-&gt;1.8.
So they have components in common, hance they _will_ conflict.</p>

<p>If CVS had taken the latest common ancestor by keeping in the repository
the existence of the 1.8-&gt;1.7.1.3 link, it would have taken the 1.8
version as the reference.  The patches to fuse would have been 1.8-&gt;1.10
and 1.8-&gt;1.7.1.3, which have no reason to conflict.</p>

<p>Same for the next merge, the optimal merge point is in that case 1.10,
and it ends up being a null merge, i.e. 1.11 is a copy of 1.7.1.5.</p>

<p>You can see the final structure is a DAG, with each node having a max of
2 ancestors.  And that's what PRCS and bk are working with, fundamentally.</p>

</quote>

<p>Pavel asked, <quote who="Pavel Machek">So, basically, if branch was
killed and recreated after each merge from mainline, problem would be solved,
right?</quote> Linus Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>Wrong.</p>

<p>Now think three trees.  Each merging back and forth between each other.</p>

<p>Or, in the case of something like the Linux kernel tree, where you don't
have two or three trees.  You've got at least 20 actively developed concurrent
trees with branches at different points.</p>

<p>Trust me. CVS simple CANNOT do this. You need the full information.</p>

<p>Give it up.  BitKeeper is simply superior to CVS/SVN, and will stay
that way indefinitely since most people don't seem to even understand _why_
it is superior.</p>

</quote>

<p>Zack Brown (yes, I) said, <quote who="Zack Brown">You make it sound like
no one is even interested ;-). But it's not true! A lot of people currently
working on alternative version control systems would like very much to know
what it would take to satisfy the needs of kernel development. Maybe, being
on the inside of the process and well aware of your own needs, you don't
realize how difficult it is to figure these things out from the outside. I
think only very few people (perhaps only one) really understand this issue,
and they aren't communicating with the horde of people who really want to
help.</quote> And Larry McVoy said:</p>

<quote who="Larry McVoy">

<p>There are parts of BitKeeper which required multiple years of thought by
people a lot smarter than me.  You guys are under the mistaken impression
that BitKeeper is my doing; it's not.  There are a lot of people who work
here and they have some amazing brains.  To create something like BK is
actually more difficult than creating a kernel.</p>

<p>To understand why, think of BK as a distributed, replicated, version
controlled user level file system with no limits on any of the file system
events which may happened in parallel.  Now put the changes back together,
correctly, no matter how much parallelism there has been.  Pavel hasn't
understood anything but a tiny fraction of the problem space yet, he just
doesn't realize it.  Even Linus doesn't know how BitKeeper works, we haven't
told him and I can tell from his explanations that he gets part of it but not
most of it.  That's not a slam on Linus or Pavel or anyone else.  I'm just
trying to tell you guys that this stuff is a lot harder than you think.
I've told people that before, like the SVN and OpenCM guys, and the leaders
of both those efforts showed up later and said "yup, you're right, it is a
hell of a lot harder than it looks".  And they are nowhere near being able
to do what BK does.  Ask them if you have doubts about what I am saying.</p>

<p>Merging is just one of the complex areas.  It gets all the attention
because it is hard enough but easy enough that people like to work on it.
It's actually fun to work on merging.  Ditto for the graph structure,
that's trivial.  The other parts aren't fun and they are more difficult so
they don't get talked about.  But they are more important because the user
has no idea how to deal with them and users do know how to deal with merge
problems, lots of you understand patch rejects.</p>

<p>Rename handling in a distributed system is actually much harder than
getting the merging done.  It doesn't seem like it is, but we've rewritten
how we do it 3 times and are working on a 4th all because we've been forced
to learn about all the different ways that people move things around.
CVS doesn't have any of the rename problems because it doesn't do them, and
SVN doesn't have 1/1000th of the problems we do because it is centralized.
Centralized means that there is never any confusion about where something
should go, you can only create one file in one directory entry because there
is only one directory entry available.  In BK's case, there can be an infinite
number of different files which all want to be src/foo.c.</p>

<p>Symbolic tags are really hard.  What?!?  What could be easier than adding
a symbolic label on a revision?  Well, in a centralized system it is trivial
but in a distributed system you have to handle the fact that the same symbol
can be put on multiple revs.  It's the same problem as the file names, just
a variation.  Add to that the fact that time can march forward or backwards
in a distributed system, even if all the events were marching forward, and
the fun really starts.  I personally have redone the tags support about 6
times and it still isn't right.</p>

<p>Security semantics are hard in a distributed system.  Where do you put
them, how do you integrate them into the system, what happens when people
try and work around them?  In CVS or SVN you can simply lock down the server
and not worry about it, but in BK, the user has the revision history and
they are root, they can do whatever they want.</p>

<p>Time semantics are the hardest of all.  You simply can't depend on time
being correct.  It goes forwards, backwards, and sideways on you and if
you think you can use time you don't have the slightest idea of the scope
of the problem.  Again, not a problem for CVS/SVN/whatever, all the deltas
are made against the same clock.  Not true in a distributed system.</p>

<p>That's a taste of what it is like.  You have to get all of those right
and the many other ones that I didn't tell you about or you might as well
not bother.  Why?  Because the problems are very subtle and there isn't any
hope of getting an end user to figure out a subtle problem, they don't have
the time or the inclination.  We've seen users throw away weeks of work just
because they didn't understand the merge conflict so they start over on an
updated tree.  And those people will understand the rename corner cases?
Not a chance.</p>

<p>The main point here is that if you think that BK happened quickly,
by one guy, you are nuts.  It started in May of 1997, that's almost 6
years ago, not the 2 years that Pavel thinks, and I had already written
a complete version control system prior to that, so this was round two.
Even with that knowledge, I wasn't near enough to get BK to where it is today,
there is more than 40 man years of effort in BK so far.  A bunch of people,
working 60-90 hour weeks, for almost 6 years.  Not average people, either,
any one of these people would be a staff engineer or better at Sun (salaries
for those people are in the $115K - $140K range).</p>

<p>The disbelievers think that I'm out here waving the "it's too hard" flag
so you'll go away.  And the arrogant people think that they are smarter
than us and can do it quicker.  I doubt it but by all means go for it and
see what you can do.  Just file away a copy of this and let me know what
you think three or four years from now.</p>

<p>Oh, by the way, you'll need a business model, I found that out 2 or 3 years
into it when my savings ran out.  Oh, my, you might not be able to GPL it!
Why it might even end up being just like BitKeeper with an evil corporate
dude named Pavel running the show.  Believe me, if that happens, I'll be
here to rake him over the coals on a daily basis for being such an evil
person who doesn't understand the point of free software.  I can't wait.</p>

</quote>

<p>Zack took this post and tried to boil it down to a feature-set, and
posted the result. Pavel said he'd be willing to host that document
in the BitBucket CVS tree; and Daniel Phillips gave a pointer to <a
href="http://arx.fifthvision.net/bin/view/Arx/LinuxKernel">some earlier
discussion</a>. Zack incorporated this into his feature-set document, and
posted an update. The discussion began to turn into a general consideration of
preferred features for a version control system, with some folks complaining
that the discussion was off-topic for linux-kernel. Horst von Brand and
others attempted to correct various misconceptions in Zack's document, and
at one point Larry complained that, since Zack had released the document
under the GPL, and <quote who="Larry McVoy">Since a substantial amount of the
information in there is what I said, Zack has no right to impose any license
on the information.  It's a bit unethical if you ask me, it's my copyright,
not his.  And I didn't impose any silly license on it.</quote></p>

<p>The discussion continued to go further and further into feature
descriptions, with some folks asking for the moon, and others saying that
even BitKeeper's distributed approach was unnecessary. More folks said the
discussion was off-topic, and suggested going to the OpenCM or arch mailing
lists; and the thread petered out.</p>

</section>

<section
  title="kconfig Update"
  subject="[PATCH] kconfig update"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/0164.html"
  posts="12"
  startdate="08 Mar 2003 19:57:54 -0800"
  enddate="14 Mar 2003 11:36:40 -0800"
>

<p>Roman Zippel said, <quote who="Roman Zippel">It took a bit longer
than I wanted, but here is finally another kconfig update. There are two
important changes: I included Romain's gtk front end and the support for
the menuconfig keyword. Unfortunately the first is lacking a bit support
for the latter. Romain, you have to check that menu entries of type
P_MENU can now also have a config symbol. I looked a bit at it myself
but my gtk knowledge is insufficient. :) Other changes are small parser
fixes and the config list in qconf has a parent entry, so it should
be more obvious, how to get to a parent menu.  I don't expect bigger
problems, so I want to send this patch soon to Linus.  The patch is at <a
href="http://www.xs4all.nl/~zippel/lc/patches/kconfig-2.5.64.diff">http://www.xs4all.nl/~zippel/lc/patches/kconfig-2.5.64.diff</a></quote>
Christoph Hellwig asked, <quote who="Christoph Hellwig">Any chance you could
take a look at the patch that links lxdialog directly to menuconfig instead
of requiring the separate binary?  It has been around for a long time and
seems like a very worthwhile change, imho.</quote> And Petr Baudis said,
<quote who="Petr Baudis">It is me responsible for the delays and not being
integrated yet, unfortunately I didn't have time for proper debugging one
problem in it yet :-( (broken window resizing handler; Roman proposed some
solution which I didn't manage to try yet). I hope I will finally give it
a final kick really soon.</quote></p>

</section>

<section
  title="perfctr 2.5.0 Released"
  subject="perfctr-2.5.0 released"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/0629.html"
  posts="6"
  startdate="10 Mar 2003 16:02:30 -0800"
  enddate="16 Mar 2003 08:47:36 -0800"
>
<topic>Ioctls</topic>
<topic>Profiling</topic>

<p>Mikael Pettersson said:</p>

<quote who="Mikael Pettersson">

<p>Version 2.5.0 of perfctr, the Linux/x86 performance monitoring
counters driver, is now available at the usual place: <a
href="http://www.csd.uu.se/~mikpe/linux/perfctr/">http://www.csd.uu.se/~mikpe/linux/perfctr/</a></p>

<p>Quick guide to porting source code from perfctr-2.4 to perfctr-2.5:</p>

<p>

<ol>

<li>'evntsel_aux[]' in the x86 struct perfctr_cpu_control is
   now 'p4.escr[]' (moved to sub-struct and renamed).</li>
<li>'nrcpus' is gone from the perfctr info struct. It can be
   computed from the 'cpus' bitmask.</li>
<li>'version[]' in perfctr info is now 'driver_version[]'.</li>
<li>The VPERFCTR_STOP ioctl is gone. Use VPERFCTR_CONTROL instead.
   The library's vperfctr_stop() procedure still works.</li>
<li>The API to global-mode performance counters has changed.   
   The target CPU number is now included in the per-cpu
   control and state arrays. See examples/global/global.c.</li>

</ol>

</p>

<p>Other noteworthy changes from perfctr-2.4:</p>

<p>

<ol>

<li>The patch kit supports aliases, which allows kernels to share
   patch files. The 'update-kernel' script handles this.</li>
<li>'make install' will now install the library, include files,
   and the 'perfex' example program at user-specified locations.</li>
<li>The library will now check that the ABI the library was
   compiled for is compatible with the kernel driver.</li>
<li>A preliminary library API for remote access to other processes'
   virtual performance counters has been added.</li>
<li>The library now contains proper data structures with event set
   and unit mask descriptions. This handles all supported CPUs
   except for P4 (mostly done, but some tricky details remain).</li>
<li>A perfctr-patched kernel can now be compiled on non-x86 archs
   without causing compilation errors.</li>
<li>Global-mode (non pre-process) counters now work in 2.5 kernels,
   and on hyper-threaded P4s. Several API changes were needed for this.</li>

</ol>

</p>

<p>Version 2.5.0, 2003-03-10</p>

<p>

<ul>

<li>Added a simple user-space library API for accessing other
  processes' virtual performance counters. This uses a new
  type and a new set of operations since remote access has
  different requirements than accessing one's own counters.
  Following Mike Marty's suggestion, I left out the process
  control calls needed around these operations (ptrace() and
  wait()), so applications must handle that themselves.</li>

<li>Added 'make install' support for the user-space components.</li>

<li>Driver API cleanups. The 'eventsel_aux[]' array in 'struct
  perfctr_cpu_control' has been renamed as 'escr[]' and has been
  moved into the 'p4' sub-structure. (The change highlights the
  fact that this field was and is P4-only.) The 'version[]' string
  in 'struct perfctr_info' has been renamed to 'driver_version[]',
  since perfctr_info now also contains an 'abi_version' field.
  Some changes in the driver ABI: while not strictly necessary,
  they clean things up and make room for future changes. The ABI
  changed anyway from perfctr-2.4, so this shouldn't be a problem.</li>

<li>Added a perfctr_cpu_control_print() procedure to the library,
  and updated the example programs to use it.</li>

<li>Updated the perfex example program's help text to describe the
  syntax and meaning of event specifiers.</li>

<li>Patch kit updates for 2.2.24/2.4.18-26(RedHat)/2.5.64 kernels.</li>

</ul>

</p>

</quote>

<p>J.A. Magallon asked:</p>

<quote who="J.A. Magallon">

<p>Perhaps this has been asked for a million times, but I'm new to
perfctrs...</p>

<p>Is there any tool available to profile a program based on this ?
I have seen perfex, but that gives total counts. I would like something
like gprof... We are now optimizing some software and I would like to make
my colleagues leave Windows (they use Intel's VTune) and go to Linux.</p>

<p>Or at least compare the same kind of things between VTune on win and
'something' in Linux that also uses the counters. They don't seem to trust
gprof. And, looking at the results, I'm beginning to untrust VTune...</p>

</quote>

<p>Nils Smeds said, <quote who="Nils Smeds">Take a look at
HPCView from Rice unversity. It might do what you are looking for? <a
href="http://www.cs.rice.edu/~dsystem/hpcview/index.html">http://www.cs.rice.edu/~dsystem/hpcview/index.html</a></quote>
And William Cohen added, <quote who="William
Cohen">You might also look at OProfile (<a
href="http://oprofile.sourceforge.net/">http://oprofile.sourceforge.net/</a>).
There is an option in the oprofpp command to dump data OProfile collects in
gprof format.</quote></p>

<correction date="24 Mar 2003 09:15:00 -0800">In response to this issue of
Kernel Traffic, Christopher Curtis sent in a link to Intel's <a
href="http://www.intel.com/software/products/vtune/vlin/">native Linux
VTune</a>.</correction>

</section>

<section
  title="VMRegress 0.8a Released"
  subject="vmregress test on linux 2.5.62"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/0769.html"
  posts="3"
  startdate="11 Mar 2003 11:14:19 -0800"
  enddate="13 Mar 2003 14:03:46 -0800"
>
<topic>Virtual Memory</topic>

<p>Dave Olien said to Mel Gorman:</p>

<quote who="Dave Olien">

<p>I've modified your vmregress test form linux 2.4 so it works on linux
2.5.63.  I fixed up some of the core routines to understand new modifications
to kernel vm structures, so it all compiles and runs.</p>

<p>There are still some issues with the perl scripts that collect data and
pipe it to gnuplot.  Some of the plots of vmstat output don't work.</p>

<p>You can see what I've modified at the URL</p>

<p><a
href="http://www.osdl.org/archive/dmo/VMREGRESS/">http://www.osdl.org/archive/dmo/VMREGRESS/</a></p>

<p>There's a VMR_README file that describes the files there.</p>

</quote>

<p>Mel replied:</p>

<quote who="Mel Gorman">

<p>Excellent stuff, thanks. This prompted me to dust off my old test
box, get 2.5.64 on it, new modutils etc etc and get working back on VM
Regress. I'm releasing 0.8a for you to take a look at it, it is available from
http://www.csn.ul.ie/~mel/projects/vmregress/ and directly downloadable from <a
href="http://www.csn.ul.ie/~mel/projects/vmregress/vmregress-0.8a.tar.gz">http://www.csn.ul.ie/~mel/projects/vmregress/vmregress-0.8a.tar.gz</a>
.</p>

<p>I'm not going to be working on this for another few days (hence the rushed
release) so I wanted you to see what I did with your stuff so far. Rather
than merging your stuff blindly, I took a few extra steps</p>

<p>1. The changes you made broke VM Regress from working with 2.4.anything
so I sat down and made the configure script understand both 2.4 and 2.5
build systems. The way it is now, a</p>

<p>./configure --with-linux=/usr/src/linux-2.x.x<br />
make</p>

<p>will compile the modules and be loadable against 2.4.20 and 2.5.64 . It
generates different makefiles depending on the kernel release and I'm
fairly sure I got it right. My "extensive" testing involved loading the
vmregress_core, sizes.o and zones.o modules and printing the reports. They
worked fine for that, but note the "a" part of 0.8a, I didn't test anything
else.</p>

<p>2. vmr_mmzone.h is going to be my mapping between the different names of
structs and fields between 2.4 and 2.5 . this (you'll love this) involves
having #defines which map some VM Regress type to the actual kernel
structure. So for example, on 2.4 it's</p>

<p>#define C_ZONE struct zone_t</p>

<p>and 2.5 it's</p>

<p>#define C_ZONE struct zone</p>

<p>This looks (and is) horrible but there is very few name discrepancies so
it doesn't confuse things too much and I reckon it is better than having a
2.4 and 2.5 version of VM Regress for such minor differences.</p>

<p>3. I kept my old indenting style, but I think I incorporated all your
bug fixes. I need to double check this though, I have a few other bugs on
the ToDo list I want to clean up anyway</p>

<p>4. I blindly included the OSDL scripts into an osdl/ directory. I haven't
looked at them in detail yet, I presume they are doing magic OSDL stuff
for the moment until I get back onto it. If I don't though, I would still
like to get the OSDL tests integrated into the tool rather than having them
separate.</p>

</quote>

<p>He added:</p>

<quote who="Mel Gorman">

<p>I think I have 99% if not 100% of your work integrated in nicely so that
VM Regress still works on both sets of trees. The rudimentary ChangeLog so
far is below</p>

<p>Version 0.8a</p>

<p>

<ul>

<li>Minor bug fixes in the core</li>
<li>OSDL based merging</li>
<ul>
<li>Fixed the extract_structs.pl script to ensure its a struct been
extracted</li>
<li>Move the creation of internal.h from Makefiles to the configure script</li>
<li>Use configure script to apply kernel patch if requested</li>
</ul>
<li>Read kernel release version directly from Kernel makefile</li>
<li>Automatically generate makefiles depending on kernel version from
configure</li>
<li>Teach extract_structs.pl to identify a struct that is typedef'd</li>
<li>vmr_mmzone.h has been expanded to map between different struct and field
names between kernel versions. Not many differences thankfully</li>

</ul>

</p>

</quote>

<p>Dave was thrilled, and said he'd look over the new version.</p>

</section>

<section
  title="NetFlow Data Support"
  subject="NetFlow export"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1293.html"
  posts="7"
  startdate="13 Mar 2003 03:07:00 -0800"
  enddate="14 Mar 2003 01:32:35 -0800"
>

<p>Florian Weimer asked, <quote who="Florian Weimer">Are there any patches
which implement kernel-based NetFlow data export?</quote> Jakob Oestergaard
said, <quote who="Jakob Oestergaard">Netramet works very well - it's userspace
(and very flexible indeed).</quote> Florian Weimer replied, <quote who="Florian
Weimer">According to the documentation, it can receive NetFlow data and
process it, but it cannot generate such data.</quote> Jakob replied:</p>

<quote who="Jakob Oestergaard">

<p>I never used it to receive netflow data.</p>

<p>I used netramet to generate flow information on a linux-based backbone
router, and to periodically move the flow information to another node for
batch processing/analysis.</p>

<p>I used the netramet tools to extract that information from the netramet
"meter" (the flow measurement daemon running on the router), for storage on
the remote accounting/processing machine. Some custom Perl scripts process
the flow information thereafter.</p>

<p>You asked for netflow data export. Netramet can give you something similar
to netflow (I never used netflow, but from what I hear, netramet is similar
only more flexible).</p>

</quote>

<p>But Florian said he needed the NetFlow data format, not any
substitute. Jakob replied:</p>

<quote who="Jakob Oestergaard">

<p>Ok.</p>

<p>I suspect it's easier to patch netramet, than start a new kernel-based
project.</p>

<p>If Netramet really supports reading netflow data, I guess it would not be
a huge undertaking to implement write support too.   But I'm not familiar
with the Netramet source - really, you should look at it yourself or ask
the developers.</p>

</quote>

<p>David Luyer added:</p>

<quote who="David Luyer">

<p>NetFlowMet is the NetFlow module for netramet.  But it's only a receiver,
not a transmitter.</p>

<p>However, 'ntop' can generate NetFlow packets from a Linux system, using
libpcap.</p>

<p>I suggest you read <a
href="http://www.switch.ch/tf-tant/floma/software.html">http://www.switch.ch/tf-tant/floma/software.html</a></p>

</quote>

</section>

<section
  title="Some Developers Unhappy With Linus Dropping Patches"
  subject="Patches, effort, motivation"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1307.html"
  posts="2"
  startdate="13 Mar 2003 05:17:28 -0800"
  enddate="13 Mar 2003 07:39:19 -0800"
>
<topic>FS: sysfs</topic>
<topic>PCI</topic>
<topic>Version Control</topic>

<mention>Alan Cox</mention>

<p>Russell King lamented:</p>

<quote who="Russell King">

<p>I'm getting to the point of completely giving up kernel development
outside the ARM tree, which basically means leaving serial, pci, and
pcmcia to other people.</p>

<p>I have been trying for the last 5 days to get Linus to accept two
patches small patches:</p>

<p>

<ol>

<li>

<p>a patch to register tty_devclass using postcore_initcall().</p>

<p>   This is necessary before I can push the next set of serial changes.
   Without it, the serial layer will oops in sysfs when it tries to
   register drivers.</p>

</li>

<li>a patch to restore the PCI device probing, so we don't probe
   all functions when we discover that function 0 is not present.
   This is the behaviour we had prior to 2.5.64.</li>

</ol>

</p>

<p>Both of these patches have been sent to Linus several times over the
past 5 days, and each time they have been completely ignored without
explaination.</p>

<p>I have a huge pile of patches backing up here.  I'm at the point where
I'm going to give up updating them to bk-curr, and testing them before
sending each to Linus due to the number of patches.  Going around this
loop just takes too much of my time to make it worth while.</p>

<p>My backlog currently consists of:</p>

<p>        8 PCI patches (1 needs to be further cut up)<br />
        10 PCMCIA patches (1 needs to be further cut up)<br />
        1 tty_io.c patch<br />
        16 serial csets</p>

<p>there are some dependencies between these patches, and getting the stuff
applied in the right order is absolutely paramount to ensure that things
don't break.</p>

<p>So, any suggestions on how to handle this better, and above all get Linus
to start applying stuff?</p>

</quote>

<p>Alan Cox invited Russell to submit patches into his -ac tree.</p>

</section>

<section
  title="Modutils 2.4.23 Released"
  subject="Announce: modutils 2.4.23 is available"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1310.html"
  posts="1"
  startdate="13 Mar 2003 05:26:10 -0800"
>
<topic>Compression</topic>

<mention>Bill Nottingham</mention>
<mention>Amit S. Kale</mention>
<mention>Richard Henderson</mention>

<p>Keith Owens announced:</p>

<quote who="Keith Owens">

<p><a href="ftp://ftp.us.kernel.org/pub/linux/utils/kernel/modutils/v2.4">ftp://ftp.&lt;country&gt;.kernel.org/pub/linux/utils/kernel/modutils/v2.4</a></p>

<pre>modutils-2.4.23.tar.gz          Source tarball, includes RPM spec file
modutils-2.4.23-1.src.rpm       As above, in SRPM format
modutils-2.4.23-1.i386.rpm      Compiled with gcc 2.96 20000731,
                                glibc 2.2.2.
modutils-2.4.23-1.ia64.rpm      Compiled with gcc 2.96-ia64-20000731,
                                glibc-2.2.3.
patch-modutils-2.4.23.gz        Patch from modutils 2.4.22 to 2.4.23.</pre>

<p>Changelog extract</p>

<p>

<ul>

<li>Correct s390[x] relocations for position independent code.  Bill
Nottingham/Amit S. Kale.</li>

<li>Add alias for the tun/tap device.  Bill Nottingham.</li>

<li>Fix insmod for ppc64 MODULE_PARM(foo, "l").  Peter Bergner.</li>

<li>Add DESTDIR to man_kerneld, change man pages from 444 to 644.
Peter Breitenlohner.</li>

<li>libz must be static for --enable-zlib.  Bill Nottingham, reworked by
Keith Owens.</li>

<li>Add note about refusing patches that change behaviour to man pages.</li>

<li>Alpha now uses srel32 in the exception handling macros.  Richard
Henderson.</li>

<li>Support ia64 brl relocations.</li>

</ul>

</p>

<p>Modutils 2.4.24 will be out in the next few days.  The only change planned
for 2.4.24 is to complain about modules using the default behaviour of
"export all symbols" on architectures that use function descriptors.  Such
architectures must explicitly export symbols, otherwise gcc does not generate
function descriptors and inter-module references break spectacularly.</p>

</quote>

</section>

<section
  title="i2c Updated To The New Driver Model"
  subject="[BK PATCH] i2c driver changes for 2.5.64"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1512.html"
  posts="19"
  startdate="13 Mar 2003 16:50:27 -0800"
  enddate="15 Mar 2003 14:06:42 -0800"
>
<topic>I2C</topic>
<topic>Version Control</topic>

<p>Greg KH announced:</p>

<quote who="Greg KH">

<p>Here's a set of i2c driver changes that start the conversion of the i2c
core and drivers over to the kernel driver model.  Eventually this will
allow all of the sysctl and proc mess to be removed for this subsystem.</p>

<p>These patches add i2c driver bus and i2c adapter driver support to the
driver core.  They also export a needed symbol from the driver core
(which Pat Mochel agreed with doing.) The patches also add three i2c
controllers that have been in the i2c cvs tree for a long time, and are
on a lot of people's machines.</p>

<p>The i2c core needs Christoph's previous patches to work properly, and
with that patch, and these patches, it all works properly on my machines
(tested on 4 different types of i2c controllers.)</p>

<p>Oh, and the i2c development team has given the ok for me to send these
patches to you, and for me to do this work.</p>

<p>Please pull from:  bk://kernel.bkbits.net/gregkh/linux/i2c-2.5</p>

<p>Things left to do after this:</p>

<p>

<ul>

<li>clean up #ifdef mess in i2c controllers</li>

<li>fix the printk() calls to use proper levels</li>

<li>add i2c controller driver core support (present in the patch I
previously sent to lkml).</li>

<li>add i2c device core support.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Linux RAID FAQ Version 0.0.12 Released"
  subject="Posting of the Linux RAID FAQ"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1554.html"
  posts="3"
  startdate="13 Mar 2003 21:01:52 -0800"
  enddate="14 Mar 2003 11:20:22 -0800"
>
<topic>Disk Arrays: RAID</topic>
<topic>FS: sysfs</topic>

<p>Gregory Leblanc posted the latest version 0.0.12 of his <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1554.html">Linux
RAID FAQ</a>. Nandu Nair replied, <quote who="Nandu Nair">Thanks for taking
the time to write this FAQ. It is very informative.  One question I would like
answered and possibly included in the FAQ is as follows.  When an unclean
shutdown ( or similar event, but not bad disks ) causes the raid array to
be resynced on a subsequent reboot and if the resync process is crunching
more resources than desired - possibly due to the presence of multiple raid
volumes that need resyncing - , is there a way for a user process to request
the kernel to stop the resync process for the time being? In other words
can the user choose to wait and do the resync at what he thinks is a more
appropriate time - in terms of resouce availability - ( at night, for instance
) if he is willing to take up the risk involved ? If yes, how can the kernel
raid-recovery processes be stopped/controlled ?</quote> John Jasen replied:</p>

<quote who="John Jasen">

<p>You have /proc/sys/dev/raid/speed_limit_max and _min, where you can
specifiy upper and lower bounds for how fast the raid resyncs.</p>

<p>I imagine you could use cron or at to whack together something to arrange
higher speed resyncs during offhours.</p>

</quote>

</section>

<section
  title="Status Of Promise Driver Development"
  subject="Promise SATA, status"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1590.html"
  posts="2"
  startdate="14 Mar 2003 01:00:33 -0800"
  enddate="14 Mar 2003 02:07:31 -0800"
>
<topic>Serial ATA</topic>

<p>Andre Hedrick reported, <quote who="Andre Hedrick">For the folks out there
with this hardward and no support: Promise and I are back in communication and
may have reached an agreement for developing the needed driver.</quote> Stephan
von Krawczynski said happily, <quote who="Stephan von Krawczynski">Great news!
Thank you for your efforts.</quote></p>

<p>Previously, as covered in <kcref subject="Promise SATA chips" startdate="12 Feb 2003 04:33:11 -0800"/>, Promise had been unwilling to provide the needed
information.</p>

</section>

<section
  title="BitMover Considers Lawsuit Over BitBucket Development"
  subject="Never ever use word BitKeeper if Larry does not like you"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.1/1623.html"
  posts="66"
  startdate="14 Mar 2003 02:51:32 -0800"
  enddate="17 Mar 2003 06:56:01 -0800"
>
<topic>Version Control</topic>

<p>Pavel Machek said:</p>

<quote who="Pavel Machek">

<p>Never ever use word KitBeeper, Larry thinks he owns the world.</p>

<p>The page originally said "Goal of this project is to create version
managment system compatible with &lt;prohibited word&gt;".</p>

<p>PS: I know forwarding personal message to the mailing list is not polite,
but this is more of legal threat than personal message...</p>

<p>PPS: About Toyota: I may not be able to call my company Toyota (if you have
registered trademark in czech republic, which I doubt), but I'm sure able
to say that my car contains same engine as Toyota 1234cdt. And as you named
directory in the repository BitKeeper, there's no chance not to mention it.</p>

</quote>

<p>He quoted a private email from Larry McVoy:</p>

<quote who="Larry McVoy">

<pre>----- Forwarded message from Larry McVoy &lt;lm@bitmover.com&gt; -----

Date: Thu, 13 Mar 2003 20:21:54 -0800
From: Larry McVoy &lt;lm@bitmover.com&gt;
To: Pavel Machek &lt;pavel@ucw.cz&gt;
Cc: Larry McVoy &lt;lm@bitmover.com&gt;
Subject: Re: BitBucket: GPL-ed BitKeeper clone
User-Agent: Mutt/1.4i

&gt; Sorry, but I'm doing this on my own, this has nothing to do with SuSE.

That's fine, I've taken it up with the sourceforge people.  What you
are doing is a violation of their terms of use and they'll get you
to fix it, I don't care who fixes it, I want absolutely no reference
to anything which can connect that work with BitKeeper.  That's well
with in our legal rights.

As for it being on your own time, let's see if SuSE wants the negative
publicity.  I'm quite willing to make a stink, you've annoyed me and
I've put up with as much as I'm going to.

&gt; I believe the wording above is okay; if you miss "BitKeeper is
&gt; trademark of BitMover" notice, I guess you can have that too. If you
&gt; want your lawyer to call me, my cellphone is +XXXXXXXXXXXX; if you
&gt; want to suggest alternate wording, just do that. But I believe saying
&gt; "compatible with (something)" is okay, and I can allways just misspell
&gt; it.

No, you can't.  Check into the case law.  If there is any way to connect
it to our product, it is within our rights to protect our brand.  You
can't call your new car company Toyotaa either, Toyota can sue and will
if they think it infringes on their brand.

You are quite welcome to write your own SCM.  You may not take advantage
of our work, check into the law.</pre>

</quote>

<p>Several folks criticized Pavel for publishing private email, but Alan
Cox said:</p>

<quote who="Alan Cox">

<p>When you are dealing with someone apparently being a corporate bully you
have no choice quite often but to publicize stuff. Whether Larry is actually
unreasonable is kind of hard to tell without all the context.</p>

<p>If Larry feels bitbucket is a lot like bitkeeper then I see his point.
If he's moaning about things like "foobar is  a tool for reading BitKeeper
repositories" then I guess he forgot to take his pills this morning 8)</p>

<p>Unfortunately all the current bad feeling and suspicion keeps magnifying
probably minor misunderstandings into large ones</p>

</quote>

<p>Various folks were critical of Pavel for publishing private email,
and various folks were critical of Larry for sending the mail in the first
place.</p>

</section>

<section
  title="Mailing List Stats"
  subject="statistics for this mailinglist"
  posts="1"
  startdate="15 Mar 2003 19:01:01 -0800"
>
<topic>Klibc</topic>
<topic>Microsoft</topic>
<topic>Version Control</topic>

<mention>Jens Axboe</mention>
<mention>Larry McVoy</mention>
<mention>Martin J. Bligh</mention>
<mention>David S. Miller</mention>
<mention>Linus Torvalds</mention>
<mention>Alan Cox</mention>
<mention>Russell King</mention>
<mention>Pavel Machek</mention>
<mention>Andrew Morton</mention>
<mention>Greg KH</mention>
<mention>William Lee Irwin III</mention>

<p>Folkert van Heusden automated his mboxstats script to post the mailing
list statistics at regular intervals:</p>

<quote who="Folkert van Heusden">

<pre>Overall statistics
------------------
Statistics created on: Sat Mar 15 04:02:23 2003

First message was written at: 2003/02/24 11:22:10
Last message was written at: 2003/02/24 23:55:45   
Total number of messages: 3040
Total size: 17455KB
Total number of writers: 657
Number of people who wrote >1 message: 340
Total number of lines: 297404
Average lines per message: 97
Total header length (lines): 145698
Average header length (lines): 47
The header is on average 48.99% of the message (lines).
The header is 43.92% bytes in size of the total.
Average number of bits information per byte: 0.7502
Total number of unique user-agents: 0
Total number of unique organisations: 79
Total number of unique top-level domains: 66

Importance
----------
Low   : 0.00%
Normal: 1.61%
High  : 0.00%
(the rest is unspecified)

Top writers
   | # msgs|av size| total|time| e-mail address
---+-------+-------+------+----+--------------------------------
  1]     96|   4922| 461KB|1332| "Martin J. Bligh" &lt;mbligh@aracnet.com&gt;
  2]     81|   4656| 368KB|1142| Andrew Morton &lt;akpm@digeo.com&gt;
  3]     78|   3626| 276KB|0000| Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
  4]     60|   6447| 377KB|1420| Greg KH &lt;greg@kroah.com&gt;
  5]     55|   4274| 229KB|1312| Linus Torvalds &lt;torvalds@transmeta.com&gt;
  6]     48|   6912| 324KB|1535| William Lee Irwin III &lt;wli@holomorphy.com&gt;
  7]     47|   4500| 206KB|1428| Larry McVoy &lt;lm@bitmover.com&gt;
  8]     39|   5444| 207KB|1516| Pavel Machek &lt;pavel@ucw.cz&gt;
  9]     38|   3932| 145KB|1515| Jens Axboe &lt;axboe@suse.de&gt;
 10]     37|   6609| 238KB|1801| Russell King &lt;rmk@arm.linux.org.uk&gt;

Top subjects
   | # msgs|av size| total|time| subject
---+-------+-------+------+----+--------------------------------
  1]    111|   4362| 472KB|1405| Minutes from Feb 21 LSE Call
  2]     71|   5372| 372KB|1311| [ANNOUNCE] BK-&gt;CVS (real time mirror)
  3]     64|   4807| 300KB|1229| BitBucket: GPL-ed KitBeeper clone
  4]     43|   3677| 154KB|1252| 2.5.63 accesses below %esp (was: Re: ntfs OOPS
(2.5.63))
  5]     38|   4345| 161KB|0833| About /etc/mtab and /proc/mounts
  6]     38|   4307| 159KB|1012| Never ever use word BitKeeper if Larry does not
like you
  7]     35|   3684| 125KB|1207| bio too big device
  8]     32|   4385| 137KB|0742| [BK PATCH] klibc for 2.5.64 - try 2
  9]     31|   4517| 136KB|1515| [PATCH] s390 (7/13): gcc 3.3 adaptions.
 10]     29|   4265| 120KB|1451| [BUG] 2.5.63: ESR killed my box!

Top receivers
   | # msgs|av size| total|time| e-mail address
---+-------+-------+------+----+--------------------------------
  1]    859|   8109|6802KB|1315| linux-kernel@vger.kernel.org
  2]    211|   9306|1917KB|1336| torvalds@transmeta.com
  3]    128|   6791| 848KB|1114| Andrew Morton &lt;akpm@digeo.com&gt;
  4]     76|   4281| 317KB|1308| "Martin J. Bligh" &lt;mbligh@aracnet.com&gt;
  5]     72|   5868| 412KB|1136| Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
  6]     44|   3815| 163KB|1655| alan@redhat.com
  7]     43|   4396| 184KB|1228| Larry McVoy &lt;lm@bitmover.com&gt;
  8]     35|   4177| 142KB|0941| "'Jens Axboe'" &lt;axboe@suse.de&gt;
  9]     34|   6007| 199KB|0654| davem@redhat.com
 10]     34|   4542| 150KB|1350| Greg KH &lt;greg@kroah.com&gt;

Top CC'ers
   | # msgs|av size| total|time| e-mail address
---+-------+-------+------+----+--------------------------------
  1]   1316|   5138|6603KB|1202| linux-kernel@vger.kernel.org
  2]    216|   7992|1685KB|1333| torvalds@transmeta.com
  3]    106|   5193| 537KB|1237| Andrew Morton &lt;akpm@digeo.com&gt;
  4]    101|   7061| 696KB|1303| Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
  5]     62|   4950| 299KB|1021| "Martin J. Bligh" &lt;mbligh@aracnet.com&gt;
  6]     42|   6218| 255KB|1347| Larry McVoy &lt;lm@bitmover.com&gt;
  7]     40|   5520| 215KB|1051| linux-mm@kvack.org
  8]     34|   4574| 151KB|1125| "David S. Miller" &lt;davem@redhat.com&gt;
  9]     33|   4260| 137KB|1136| Greg KH &lt;greg@kroah.com&gt;
 10]     31|   3782| 114KB|1322| Alan Cox &lt;alan@redhat.com&gt;

Top of top-level-domain
----------------------------------------------------------
 1]  com 1145
 2]  org 474
 3]   de 291
 4]  net 187
 5]   uk 160
 6]   cz 86
 7]   ru 67
 8]  edu 61
 9]   au 60
10]   nl 48

Timezones
----------------------------------------------------------
 1]  777 +0100
 2]  731 -0800
 3]  357 -0500
 4]  196 +0000
 5]  115 -0600
 6]   71 +1100
 7]   69 +0300
 8]   64 +0200
 9]   50 -0700
10]   43 +0900

Top organisations
----------------------------------------------------------
 1]  198
 2]   48 The Domain of Holomorphy
 3]   29 OSDL
 4]   23 none
 5]   19 Open Source Devlopment Lab
 6]   17 Transmeta Corporation, Santa Clara CA
 7]   16 Working Overloaded Linux Kernel
 8]   15 HOME
 9]   15 IBM Deutschland GmbH
10]   14 daimi.au.dk

Top user-agents
----------------------------------------------------------
 1]   56 Mutt/1.4i
 2]   40 Mutt/1.5.3i
 3]   26 KMail/1.5
 4]   24 Ximian Evolution 1.2.2
 5]   20 Mutt/1.3.28i
 6]   17 Mutt/1.2.5.1i
 7]   12 KMail/1.4.3
 8]    9 Mutt/1.2.5i
 9]    8 Microsoft Outlook Express 6.00.2800.1106
10]    8 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20021003

Messages per day
----------------------------------------------------------
   Sunday   213 ****************
   Monday   387 *****************************
  Tuesday   507 *************************************
Wednesday   564 *****************************************
 Thursday   442 *********************************
   Friday   386 *****************************
 Saturday   128 **********

Messages per Month
----------------------------------------------------------
Jan     0
Feb  1060 *********************************
Mar  1566 ************************************************
Apr     0
May     0
Jun     0
Jul     0
Aug     0
Sep     0
Oct     0
Nov     0
Dec     1 *

Messages per day-of-the-month
----------------------------------------------------------
 1     2 *
 2     0
 3     0
 4     0
 5     0
 6     1 *
 7     2 *
 8   127 ***********
 9   211 ******************
10   217 *******************
11   221 *******************
12   314 ***************************
13   230 ********************
14   241 *********************
15     0
16     0
17     0
18     0
19     0
20     0
21     0
22     0
23     2 *
24   170 ***************
25   285 *************************
26   250 **********************
27   211 ******************
28   142 *************
29     0
30     0
31     1 *

Messages per hour
----------------------------------------------------------
 1    33 *********
 2    47 *************
 3    24 *******
 4    22 ******
 5    12 ****
 6    22 ******
 7    42 ************
 8    87 ************************
 9   137 *************************************
10   173 **********************************************
11   185 **************************************************
12   163 ********************************************
13   182 *************************************************
14   183 *************************************************
15   184 *************************************************
16   181 ************************************************
17   155 ******************************************
18   106 *****************************
19   146 ***************************************
20   119 ********************************
21   123 *********************************
22   103 ****************************
23   104 ****************************</pre>

</quote>

</section>

<section
  title="XFS, ReiserFS, And ext3 Comparisons"
  subject="FileSystem XFS vs RiserFS vs ext3"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0139.html"
  posts="5"
  startdate="16 Mar 2003 21:01:54 -0800"
  enddate="17 Mar 2003 18:26:17 -0800"
>
<topic>Disk Arrays: LVM</topic>
<topic>Disk Arrays: RAID</topic>
<topic>FS: NFS</topic>
<topic>FS: ReiserFS</topic>
<topic>FS: XFS</topic>
<topic>FS: ext3</topic>

<p>Alex Lau asked, <quote who="Alex Lau">I get basic understanding of the
functions and different between XFS, RiserFS and ext3. But in high volumn
read write enviornment (database, NFS email server etc), which will provide
better preformance?</quote> Bernd Eckenfels replied:</p>

<quote who="Bernd Eckenfels">

<p>NFS is a bit tricky. Reiser used to be broken on it, and at least from
large XFS NFS Servers I know that they tend to be unstable, still.</p>

<p>For the Database Servers, I am not sure how well they operate with
journaling filesystems. I think Linux Journal had an article on performance
on that.</p>

<p>Reiser might be your bet, depending on the usage pattern of the filename
space, with Ext3 catching up. Personally I love the XFS features for resizing
in connection with LVMs, but i guess you can have that with Ext3 and Reiser,
too.</p>

</quote>

<p>Hans-Peter Jansen replied, <quote who="Hans-Peter Jansen">The last big
problems with NFS on big ReiserFS shares where fixed with 2.4.19 (IIRC). Since
then, at least I haven't experienced any logic induced failures in this area
with my heavily used diskless setups on up to 80 GB ReiserFS, shared with
NFS. I enjoy this configuration a lot.</quote> And Bryan Whitehead added,
<quote who="Bryan Whitehead">I've never had problems with XFS+NFS on any of
my servers...</quote></p>

<p>Alex posted the results of his own tests:</p>

<quote who="Alex Lau">

<p>Thanks for all the input. Here is some info after I get from my setting.
Hardware config: Tyan 2466 Duel MP2200+ 512MB, SX6000 4 ide 120GB
7200RPM RAID5</p>

<pre>-------------------------------------------------------------------------
StPeter:/mnt/part1# sfdisk -l /dev/sda

Disk /dev/sda: 351905 cylinders, 64 heads, 32 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Warning: The first partition looks like it was made
for C/H/S=*/255/63 (instead of 351905/64/32).
For this listing I'll assume that geometry.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sda1 0+ 44860 44861- 360345951 5 Extended
/dev/sda2 0 - 0 0 0 Empty
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 0+ 3646 3647- 29294464+ 83 Linux
/dev/sda6 3647+ 7293 3647- 29294496 83 Linux
/dev/sda7 7294+ 10940 3647- 29294496 83 Linux
/dev/sda8 10941+ 14587 3647- 29294496 83 Linux
/dev/sda9 14588+ 18234 3647- 29294496 83 Linux
/dev/sda10 18235+ 21881 3647- 29294496 83 Linux
/dev/sda11 21882+ 25528 3647- 29294496 83 Linux
/dev/sda12 25529+ 29175 3647- 29294496 83 Linux
/dev/sda13 29176+ 32822 3647- 29294496 83 Linux
/dev/sda14 32823+ 36469 3647- 29294496 83 Linux
/dev/sda15 36470+ 44860 8391- 67400676 83 Linux

------------------------------------------------------------------
StPeter:/mnt/part1# hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads: 64 MB in 1.60 seconds = 40.00 MB/sec
StPeter:/mnt/part1# hdparm -T /dev/sda

/dev/sda:
Timing buffer-cache reads: 128 MB in 0.47 seconds =272.34 MB/sec
------------------------------------------------------------------
StPeter:/mnt/part1# mount
/dev/sda5 on /mnt/part1 type xfs (rw,noexec,nosuid,nodev)
/dev/sda6 on /mnt/part2 type reiserfs (rw,noexec,nosuid,nodev)
/dev/sda7 on /mnt/part3 type ext3 (rw,noexec,nosuid,nodev)

StPeter:/mnt/part1# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 28G 4.8M 27G 1% /mnt/part1
/dev/sda6 28G 33M 27G 1% /mnt/part2
/dev/sda7 27G 33M 26G 1% /mnt/part3

StPeter:/mnt/part1# time cp -rf /usr/src/kernel-source-2.4.20 ./

real 1m3.501s
user 0m0.140s
sys 0m2.680s

StPeter:/mnt/part2# time cp -rf /usr/src/kernel-source-2.4.20 ./

real 0m3.696s *************** so fast...
user 0m0.110s
sys 0m3.570s

StPeter:/mnt/part3# time cp -rf /usr/src/kernel-source-2.4.20 ./

real 1m29.697s
user 0m0.090s
sys 0m2.490s

*ext3 used the most space

StPeter:/mnt/part3# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 28G 180M 27G 1% /mnt/part1
/dev/sda6 28G 191M 27G 1% /mnt/part2
/dev/sda7 27G 211M 25G 1% /mnt/part3
--------------------------------------------------------
StPeter:/mnt/part1# time rm -rf kernel-source-2.4.20/

real 0m23.351s
user 0m0.050s
sys 0m1.250s

StPeter:/mnt/part2# time rm -rf kernel-source-2.4.20/

real 0m1.297s
user 0m0.010s
sys 0m0.890s

StPeter:/mnt/part3# time rm -rf kernel-source-2.4.20/

real 0m1.062s
user 0m0.000s
sys 0m0.690s

-------------------------------------------------------</pre>

</quote>

</section>

<section
  title="Support For NUMAQ Machines With More Than 8 IOAPICs"
  subject="[PATCH][ANNOUNCE] 32way/8quad NUMAQ booting with 16 IOAPICs, 223 IRQs"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0142.html"
  posts="7"
  startdate="16 Mar 2003 21:21:42 -0800"
  enddate="17 Mar 2003 00:15:48 -0800"
>

<p>Zwane Mwaikambo said:</p>

<quote who="Zwane Mwaikambo">

<p>I've managed to put together a patch which allows a NUMAQ box with
more than 8 IOAPICs to boot, the current workaround is to force it to 8
or lower. This was achieved by setting up percpu idts thus allowing
us to implement per node vector spaces. The previous hurdle was running out
of vectors to assign, the current one is running out of irqs, something
which i'll further be looking at.</p>

<p>Later on i'm planning to move to per node IDTs so that i can fix f00f
workaround and also save space on nodeless systems. To do this will
probably require early_cpu_to_node workalikes (or perhaps just use
logical_smp_processor_id and apic_to_node).</p>

<p>Thanks to the folks at OSDL (and Mark for giving up his 4quad for so
long) for providing me access to the 8quad.</p>

<p><a href="http://www.osdl.org/projects/numaqhwspprt/results/dmesg-32way-8quad-2.5.64-highirq">http://www.osdl.org/projects/numaqhwspprt/results/dmesg-32way-8quad-2.5.64-highirq</a><br />
<a href="http://www.osdl.org/projects/numaqhwspprt/results/lspci-numaq-8quad">http://www.osdl.org/projects/numaqhwspprt/results/lspci-numaq-8quad</a><br />
<a href="http://www.osdl.org/projects/numaqhwspprt/results/mptable-32way-8quad">http://www.osdl.org/projects/numaqhwspprt/results/mptable-32way-8quad</a></p>

</quote>

</section>

<section
  title="KDB Kernel Debugger 4.0 For 2.4.19, 2.4.20, i386 And ia64"
  subject="Announce: kdb v4.0 is available for kernels 2.4.19, 2.4.20, i386 and ia64"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0143.html"
  posts="1"
  startdate="16 Mar 2003 21:40:44 -0800"
>

<p>Keith Owens announced:</p>

<quote who="Keith Owens">

<p><a href="ftp://oss.sgi.com/projects/kdb/download/v4.0/">ftp://oss.sgi.com/projects/kdb/download/v4.0/</a></p>

<p>  kdb-v4.0-2.4.19-common-1.bz2<br />
  kdb-v4.0-2.4.19-i386-1.bz2<br />
  kdb-v4.0-2.4.19-ia64-020821-1.bz2<br />
  kdb-v4.0-2.4.20-common-1.bz2<br />
  kdb-v4.0-2.4.20-i386-1.bz2<br />
  kdb-v4.0-2.4.20-ia64-021210-1.bz2</p>

<p>&lt;=== You know what they say about .0 releases.  Caveat emptor. ===&gt;</p>

<p>The biggest change is this release in the way that kdb captures data
from each cpu.  Prior to v4.0, the controlling cpu (first to get into kdb)
would try to pull the other cpus into kdb by sending them an IPI.  Doing a
backtrace on the active tasks required that kdb switch its context into each
cpu in turn.</p>

<p>This works in most cases, but when the system is really wedged,
it is difficult to get data from the other cpus.  Of course this is
precisely the case when we want data from the other cpus.  This problem
is particularly noticeable on ia64, when machine checks (MCA) or INIT
interrupts can disable normal IPI or dive down into SAL, taking control away
from the OS.  Also on IA64 the non-maskable interrupt is actually masked (<a
href="http://external-lists.valinux.com/archives//linux-ia64/2001-May/subject.html">http://external-lists.valinux.com/archives//linux-ia64/2001-May/subject.html</a>,
look for 'Replacements for local_irq_xxx').</p>

<p>In kdb v4.0, each cpu pushes its state via a global array.  This allows
any cpu to do a backtrace on any other cpu, from a known starting point.
It even handles the cases when IA64 requires that cpus rendezvous and spin
in SAL.  The push model also makes it easier to detect when a cpu is dead,
an event which would often hang the old kdb pull model.</p>

<p>On ia64, kdb v4.0 gives decent backtraces from MCA callback, MCA
rendezvous and the INIT monarch event.  The next step in kdb v4.1
is to detect hung spinloops and break out of them, and to support
INIT slave events.  The detection and debugging of hung spinloops
is waiting on acceptance of my new spinlock code for IA64 (<a
href="http://external-lists.valinux.com/archives//linux-ia64/2003-March/004976.html">http://external-lists.valinux.com/archives//linux-ia64/2003-March/004976.html</a>).</p>


</quote>

</section>

<section
  title="LKST (Linux Kernel State Tracker) 1.4 Released"
  subject="Release of LKST 1.4"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0174.html"
  posts="1"
  startdate="17 Mar 2003 01:39:13 -0800"
>

<p>Yumiko Sugita announced:</p>

<quote who="Yumiko Sugita">

<p>I'd like to announce publication of Linux Kernel State Tracer (LKST) 1.4,
which is a tracer for Linux kernel.</p>

<p>In release 1.4, we especially improved about event-buffer.  Please refer
to changesto1.4.txt in documents for details.</p>

<p>LKST binaries, source code and documents are available in the following
site,</p>

<p><a href="https://sourceforge.net/projects/lkst/">https://sourceforge.net/projects/lkst/</a><br />
<a href="http://sourceforge.jp/projects/lkst/">http://sourceforge.jp/projects/lkst/</a></p>

<p>We prepared a mailing list written below in order to let users know update
of LKST.</p>

<p>lkst-users@lists.sourceforge.net<br />
lkst-users@lists.sourceforge.jp</p>

<p>To subscribe, please refer following URL,</p>

<p><a href="http://lists.sourceforge.net/lists/listinfo/lkst-users">http://lists.sourceforge.net/lists/listinfo/lkst-users</a><br />
<a href="http://lists.sourceforge.jp/mailman/listinfo/lkst-users">http://lists.sourceforge.jp/mailman/listinfo/lkst-users</a></p>

<p>And if you have any comments, please send to the above list, or to
another mailing  list written below.</p>

<p>lkst-develop@lists.sourceforge.net<br />
lkst-develop@lists.sourceforge.jp</p>

</quote>

</section>

<section
  title="SquashFS 1.2 Compressed Filesystem Released"
  subject="[ANNOUNCE]:Squashfs1.2 released (compressed filesystem)"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0181.html"
  posts="1"
  startdate="17 Mar 2003 02:34:35 -0800"
>
<topic>Compression</topic>
<topic>FS: SquashFS</topic>
<topic>Small Systems</topic>

<p>Phillip Lougher announced:</p>

<quote who="Phillip Lougher">

<p>Squashfs1.2 has been released.</p>

<p>Squashfs is a highly compressed read-only filesystem for Linux 2.4.
It uses zlib to compress files, inodes, and directories. All blocks are
packed to minimise the data overhead, and block sizes of between 4K and 32K
are supported. It is intended to be used as a filesystem for archival use
and in embedded systems where low overhead is needed.</p>

<p>1.2 has added append capability to Mksquashfs. This means that new files and
directories can be added to pre-existing filesystems without needing to rewrite
the original data. For large filesystems this can be of major benefit. Because
mksquashfs peforms duplicate checking against the original filesystem, it means
that updated directories can be appended over time, and only the changed files
will take extra space. The unchanged files will be detected as duplicates,
and will share data. This exhibits a basic versioning capability.</p>

<p>Squashfs1.2 is available from <a
href="http://squashfs.sourceforge.net">http://squashfs.sourceforge.net</a>.</p>

</quote>

</section>

<section
  title="BitKeeper Gateway To CVS"
  subject="BK-&gt;CVS is live"
  posts="7"
  startdate="17 Mar 2003 07:52:20 -0800"
  enddate="17 Mar 2003 10:16:04 -0800"
>
<topic>Modems</topic>
<topic>Version Control</topic>

<mention>David Woodhouse</mention>
<mention>Jan-Benedict</mention>

<p>Larry McVoy announced:</p>

<quote who="Larry McVoy">

<p>I think those repositories are stable enough you can start to count on
them.  Sam and others have looked over their changes and think that
the CVS tree has accurate data.</p>

<p>The CVS repository is at</p>

<p>    cvs -d:pserver:anonymous@kernel.bkbits.net:/home/cvs</p>

<p>and it has two top level directories, linux-2.4 and linux-2.5.</p>

</quote>

<p>Jan-Benedict Glaw suggested, <quote who="Jan-Benedict Glaw">Allowing rsync
on the repository could help people on slow links (modem) esp. as CVS isn't
exactly known to be fast and evvective. I'd love to have it rsyncable (as we
have it for mips-linux:-)</quote> And David Woodhouse suggested that CVSup
might also be good in conjunction with this. Sebastian D.B.  Krause said,
<quote who="Sebastian D.B. Krause">That would be nice and easy to set up
because Larry could just use cvsup with the current CVS-repository. And
it would be much faster than cvs.</quote> And Tomas Szepe put in, <quote
who="Tomas Szepe">rsync would be totally splendid.  Say, Larry, is that
feasible?</quote> But there was no reply in that thread.</p>

</section>

<section
  title="New Configuration Organization For IPX Under 2.5"
  subject="Where did IPX on 2.5 go?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0272.html"
  posts="4"
  startdate="17 Mar 2003 10:40:58 -0800"
  enddate="17 Mar 2003 11:03:08 -0800"
>

<mention>Randy Dunlap</mention>

<p>Maciej Soltysiak reported, <quote who="Maciej Soltysiak">i tried to find
IPX support in 2.5 via make menuconfig, it is not there.  (or where it used to
be) There is nothing about IPX also in .config but net/ipx files are there.
It is 2.5.64-bk12. Was it removed or i am missing something here.</quote>
Randy Dunlap replied that it should show up under the LLP option, but that
LLP had to be enabled for IPX to appear. Brian Davids also said to Maciej,
<quote who="Brian Davids">It's under Networking Support, Networking Options,
ANSI/IEEE 802.0 - aka LLC (IPX, Appletalk, Token Ring).  Yeah it's a little
more buried than before, but it's still there.</quote> Maciej found it,
and was happy.</p>

</section>

<section
  title="kernel.org Planned Downtime"
  subject="kernel.org: Extended downtime announcement"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0309.html"
  posts="2"
  startdate="17 Mar 2003 12:39:51 -0800"
  enddate="17 Mar 2003 19:42:28 -0800"
>
<topic>Disk Arrays: RAID</topic>

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

<quote who="H. Peter Anvin">

<p>In order to make the best use of available space, we will unfortunately
have to reconfigure the RAID arrays on the main kernel.org server.
This will result in extended downtime for all kernel.org services,
starting at 16:00 PST/24:00 UTC this evening, March 17, 2003.  For <a
href="ftp://www/rsync/filehub.kernel.org">ftp/www/rsync/filehub.kernel.org</a>,
this downtime should be in the ballpark of 2-3 hours; with luck less; for
mirrors.kernel.org, this downtime is expected to be 3-4 days.  Services will
be phased in as they become available, so if you get a "connection refused"
from one service other services might still be operational.</p>

<p>Hopefully this will be reasonably painless.</p>

</quote>

<p>He replied to himself a few hours later:</p>

<quote who="H. Peter Anvin">

<p>OK, so I'm an idiot.</p>

<p>The correct downtime estimate is about 6-7 hours.  This is a matter of
simple arithmetric, but somehow I never bothered to actually calculate
it out.</p>

<p>Just to be on the safe side I'm going to estimate kernel.org being back
up around 00:00 PST/08:00 UTC.</p>

</quote>

</section>

<section
  title="Linux 2.5.65 Released"
  subject="Linux 2.5.65"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0330.html"
  posts="15"
  startdate="17 Mar 2003 14:31:01 -0800"
  enddate="18 Mar 2003 07:33:03 -0800"
>
<topic>Version Control</topic>

<p>Linus Torvalds announced kernel <a
href="http://www.kernel.org/pub/linux/kernel/v2.5/ChangeLog-2.5.65">2.5.65</a>:</p>

<quote who="Linus Torvalds">

<p>I've delayed this too long, but Ingo found why the scheduler sometimes
did bad things, and this should all be good.</p>

<p>A lot of fairly small changes all over the map, see the full changelog
for details.</p>

</quote>

<p>John Cherry posted some compilation statistics:</p>

<quote who="John Cherry">

<p>Compile statistics: 2.5.65</p>

<pre>                               2.5.64               2.5.65
                       --------------------    -----------------
bzImage (defconfig)         14 warnings          14 warnings
                             0 errors             0 errors

bzImage (allmodconfig)      30 warnings          30 warnings
                             9 errors            12 errors

modules (allmodconfig)    2356 warnings        2421 warnings
                            99 errors           100 errors</pre>

<p>Compile statistics have been for
kernel releases from 2.5.46 to 2.5.65 at: <a
href="http://www.osdl.org/archive/cherry/stability">www.osdl.org/archive/cherry/stability</a>
(will be updated by 6PM PST).</p>

<p>Other stability-related links:</p>

<p>   OSDL Stability page:<br />
       <a href="http://osdl.org/projects/26lnxstblztn/results/">http://osdl.org/projects/26lnxstblztn/results/</a><br />
   Nightly linux-2.5 bk build:<br />
       <a href="http://www.osdl.org/archive/cherry/stability/linus-tree/running.txt">www.osdl.org/archive/cherry/stability/linus-tree/running.txt</a><br />
   2.5 porting items:<br />
       <a href="http://www.osdl.org/archive/cherry/stability/linus-tree/port_items.txt">www.osdl.org/archive/cherry/stability/linus-tree/port_items.txt</a><br />
   2.5 porting items history:<br />
       <a href="http://www.osdl.org/archive/cherry/stability/linus-tree/port_history.txt">www.osdl.org/archive/cherry/stability/linus-tree/port_history.txt</a></p>

</quote>

</section>

<section
  title="Kernel 2.5.65-mm1 Released"
  subject="2.5.65-mm1"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0458.html"
  posts="14"
  startdate="18 Mar 2003 03:11:04 -0800"
  enddate="19 Mar 2003 00:20:11 -0800"
>

<p>Andrew Morton announced:</p>

<quote who="Andrew Morton">

<p><a href="http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.65/2.5.65-mm1/">http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.65/2.5.65-mm1/</a></p>

<p>kernel.org is being slow.   Should later appear at</p>

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

<p>

<ul>

<li>An updated version of Russell's PCMCIA patches</li>

<li>Lots more anticipatory scheduler work.</li>

<li>

<p>It turns out that calling disk request_fns from timer/tasklet context is
  not permitted because a few old drivers like to sleep in that function.</p>

<p>  keventd cannot be used for this because it can deadlock.  So another
  kernel thread per CPU has been reluctantly added.</p>

</li>

</ul>

</p>

</quote>

</section>

<section
  title="VM Subsystem Documentation"
  subject="VM documentation"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0476.html"
  posts="1"
  startdate="18 Mar 2003 06:07:05 -0800"
>
<topic>Virtual Memory</topic>

<p>Mel Gorman announced:</p>

<quote who="Mel Gorman">

<p>Yet another release in the usual places. The main reasons for the release
is a correction on the subject of vmalloc more than anything else and the
rearrangement of chapters to present the material in more logical order. I
am hoping there will only be one, or at most two more releases after this
before it's done and dusted (famous last words).</p>

<p>Understanding the Linux Virtual Memory Manager<br />
PDF:  <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/understand.pdf">http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/understand.pdf</a><br />
HTML: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/html/understand">http://www.csn.ul.ie/~mel/projects/vm/guide/html/understand</a><br />
Text: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/text/understand.txt">http://www.csn.ul.ie/~mel/projects/vm/guide/text/understand.txt</a></p>

<p>Code Commentary<br />
PDF:  <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/code.pdf">http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/code.pdf</a><br />
HTML: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/html/code">http://www.csn.ul.ie/~mel/projects/vm/guide/html/code</a><br />
Text: <a href="http://www.csn.ul.ie/~mel/projects/vm/guide/text/code.txt">http://www.csn.ul.ie/~mel/projects/vm/guide/text/code.txt</a></p>

<p>Few important reasons for this release but still, it brings me closer to
just finalising it and releasing it fully.</p>

<p>

<ol>

<li>Chapters have been rearranged a little so there should be no forward
   references left and the material is handled in an "easier" order for
   understanding it. Each chapter now has an introduction as well so it
   isn't as clunky to read at parts</li>

<li>I messed up the explanation of vmalloc by saying pages are allocated at
   fault time rather than saying that it is just the page tables for the
   faulting process are synced with the master page tables. Pretty serious
   mistake so anyone looking at vmalloc stuff should re-read</li>

<li>Minor correction on the explanation of try_to_free_pages() in the code
   commentary. I now explain why it only frees up pages in ZONE_NORMAL</li>

<li>Loads of polish like font and grammar corrections. Minor mistake in
   slab where I said /proc/cpuinfo instead of /proc/slabinfo and a few
   others like that</li>

</ol>

</p>

</quote>

</section>

<section
  title="New relayFS High-Speed Data Relay Filesystem"
  subject="[ANNOUNCE] relayfs, a high-speed data relay filesystem"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0522.html"
  posts="1"
  startdate="18 Mar 2003 08:34:17 -0800"
>
<topic>SMP</topic>

<p>Tom Zanussi announced:</p>

<quote who="Tom Zanussi">

<p>A kernel patch implementing relayfs, a Linux filesystem designed to
simplify the buffering and efficient transfer of large amounts of data
from kernel to user space for those facilities that need to do such things,
is now available as:</p>

<p><a
href="http://www.opersys.com/ftp/pub/relayfs/patch-relayfs-2.5.65-030317.bz2">http://www.opersys.com/ftp/pub/relayfs/patch-relayfs-2.5.65-030317.bz2</a></p>

<p>The relayfs home page, which will host the latest versions of the above
and related patches and info is:</p>

<p><a
href="http://www.opersys.com/relayfs">http://www.opersys.com/relayfs</a></p>

<p>A preliminary description of the characteristics and API for relayfs was
previously posted to this list.  Here's a link to that post:</p>

<p><a
href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=104196329807755&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=104196329807755&amp;w=2</a></p>

<p>I've included at the end of this mail the relayfs doc file
(Documentation/filesystems/relafys.txt), which describes the API in detail,
as currently implemented.</p>

<p>Also, the Linux Trace Toolkit has been reworked to make use of relayfs;
a preliminary kernel patch and updated user tools are available at the LTT
website, and can be used as a concrete working example of using the API:</p>

<p><a
href="http://www.opersys.com/relayfs/ltt-on-relayfs.html">http://www.opersys.com/relayfs/ltt-on-relayfs.html</a></p>

<p>I've tested the relayfs code (via the updated LTT code) on my UP PII
machine and so far haven't seen any problems with it, but I still need to
do SMP testing and otherwise pound more heavily on it - I plan on generating
some benchmark data, which in addition to putting relayfs through its paces,
should give some idea of how much overhead might be introduced by the
API/implementation itself, as compared with the benchmark data previously
posted for LTT without it:</p>

<p><a
href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103573710926859&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103573710926859&amp;w=2</a></p>

<p>I wouldn't expect to see much difference, as the underlying logging code
is essentially the same.</p>

</quote>

</section>

<section
  title="cvsps Project To Support BitKeeper Metadata In CVS"
  subject="[ANNOUNCE] cvsps support for parsing BK-&gt;CVS kernel tree logs"
  posts="9"
  startdate="18 Mar 2003 09:41:42 -0800"
  enddate="19 Mar 2003 17:00:32 -0800"
>
<topic>Compression</topic>
<topic>MAINTAINERS File</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>Version Control</topic>

<p>David Mansfield announced:</p>

<quote who="David Mansfield">

<p>I've just added (updated) lightly tested support for the BK-&gt;CVS kernel
trees to cvsps (<a href="http://www.cobite.com/cvsps">www.cobite.com/cvsps</a>)
in version 2.0b4.  The purpose of this effort is to recreate the BK ChangeSet
meta-data that is embedded in the 'cvs log' data in these trees.  BTW, cvsps
is GPL software :-p. I'd like to thank Larry and Andrea for helping me track
down some issues with this effort. This is still a BETA version, though,
and I haven't given this enough testing, so be nice.  It works for me.</p>

<p>This version is tested and works against this morning's linux-2.4 and
linux-2.5 trees, and contains a few workarounds for specific issues in
those trees.  See below for information on these problems.</p>

<p>The output of cvsps looks like:</p>

<pre>------------------------------
PatchSet 999
Date: 2002/07/11 19:50:46
Author: alan
Branch: HEAD
Tag: (none)
Log:
[PATCH] Fix several pdc202xx problems

Misnaming of 20270 as 20268R
Failure of LBA48 on 20262
Incorrect speed detection because the old driver used host not drive side
cable detect
PDC202xx handling for quirks in udma reporting off some drives
LBA48 for PIO mode

BKrev: 3d2dd386wJMnehoOAhv3wL991IfXVQ

Members:
        ChangeSet:1.999-&gt;1.1000
        MAINTAINERS:1.74-&gt;1.75
        drivers/ide/ide-features.c:1.4-&gt;1.5
        drivers/ide/ide-pci.c:1.18-&gt;1.19
        drivers/ide/pdc202xx.c:1.11-&gt;1.12
        include/linux/pci_ids.h:1.44-&gt;1.45
-----------------</pre>

<p>You can also get a diff of this PatchSet using the '-g' option to cvsps.</p>

<p>There are currently 2,798 PatchSets in the linux-2.4 tree, and 8,382 in
the linux-2.5 tree.</p>

<p>Quick start instructions<br />
========================</p>

<p>Download, build and install cvsps from <a href="http://www.cobite.com/cvsps">http://www.cobite.com/cvsps</a><br />
Get the 2.0b4 (or latest) version.<br />
Create a working directory with the tree of your choice:</p>

<p>cvs -d:pserver:anonymous@kernel.bkbits.net:/home/cvs co
linux-2.4/Makefile</p>

<p>cd linux-2.4</p>

<p>[ IMPORTANT: cvsps doesn't currently support an option for setting the
compression level so PLEASE, edit your .cvsrc and put 'cvs -z4' to enable
compression ]</p>

<p>cvsps [-x] --bkcvs</p>

<p>This basically runs a 'cvs rlog' against the tree, parses, and caches all
of the revision history as PatchSets.  It also outputs all of the
PatchSet summaries to stdout, so you may want to '&gt;/dev/null' the first
time.</p>

<p>Subsequent 'cvsps' commands do not need the '--bkcvs' unless you are
updating (-u, not completely tested) or rebuilding (-x, always works) the
cache file.</p>

<p>Now you can use cvsps to browse the patchsets at your leisure, without
loading the cvs server (except to generate diffs).  See cvsps -h for the
many ways you can slice and dice the information.</p>

<p>I welcome any feedback.</p>

<p>Problems<br />
========</p>

<p>I have currently encountered two problems with the log format.</p>

<p>1) someone has committed sections of 'cvs log' text into the log.  This
causes quite a headache for my parser, because false end-of-log-message
markers are present in the log.  Fortunately, Larry has put a '(Logical
change x.yyyy)' marker at the end of each log message, see alse 2)</p>

<p>2) Not all log messages are terminated by a '(Logical change x.yyy)'
marker.  A single revision of one file is missing this marker, Larry is
looking into why this may have happened.</p>

<p>Both of these problems are being worked around by my 'Adaptive Crap Filter
(notTM)' code.  Don't look at it.  It'll kill you.</p>

</quote>

<p>Andrea Arcangeli asked:</p>

<quote who="Andrea Arcangeli">

<p>what about the deleted files? should we teach cvsps how to diff the old
revision fetched with cvs up -p against /dev/null to make a completely
coherent patch?</p>

<p>this is with 2.4</p>

<p>Directing PatchSet 2742 to file ../patches-2.4//2742.patch<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'<br />
cvs [update aborted]: no such directory `drivers/usb/hcd'</p>

</quote>

<p>David Mansfield said, <quote who="David Mansfield">This has been fixed
already in 2.0b5 (on www.cobite.com/cvsps website).  It was all working fine
if you had a checked out tree.  But doesn't work to use 'update -p' if the
sub-directory isn't checked out (update -p is what is used in your version).
The new code uses 'cvs co -p -r x.y repository/file' which works fine.
The patches that are generated by '-g' now need 'patch -p1' to be applied
inside the working directory.</quote></p>

<p>Andrea, in his same post, had gone on to say, <quote who="Andrea
Arcangeli">I also wonder if cvsps is so accurate also w/o the --bkcvs option
(i.e.  w/o atomic commits from bk). are the dates guaranteed to be the same
for all files w/ a normal cvs tree?</quote> To which David had replied,
<quote who="David Mansfield">No.  On a normal CVS repository, and without
the --bkcvs, a heuristic is used to recreate a 'commit'.  The commit must
have the same author, the same message and the time of commit must be within
a fuzz-factor number of seconds (default 300, settable via the -z option).
The reason the fuzz-factor is needed is that a commit over a slow link,
or a very large commit in general can take a lot of time, and the log time
will vary for each file committed. It actually works quite well.</quote></p>

<p>Also in his same post, Andrea had asked, <quote who="Andrea Arcangeli">what
about the -f option? why can't I use it at the same time with -r?  Can I use
multiple -f at the same time? That is getting very cool and so useful.</quote>
And David had said, <quote who="David Mansfield">Oops.  You found a bug.
See the attached patch against 2.0b5 (should work against any recent version).
By design though, all of the 'filter' options can be combined.  Also by design,
you cannot specify multiple instances of any option (except -d and -r, where
the first and second instance have special meaning - start vs
end).</quote> Anrea said he'd try out the patch.</p>

<p>Also in his original response, Andrea asked, <quote who="Andrea
Arcangeli">Would also be nice to export the API of the cvsps internals to
python (i.e. to allow to efficiently parse the cvsps metadata files in .cvsps
from scripts that will give the flexibility of parsing the data as you want
or to quickly write a gui fronthand). This is low prio though, having -f
working together with -r and all the other options is much more interesting
at this point IMHO.  Being able to specify a directory as a file would also
be very useful.</quote> And David said, <quote who="David Mansfield">The file
is actualy a substring match.  If the -f argument matches as a substring the
filename it will count as a match.  So you can specify directory names just
as is.</quote> Andrea replied:</p>

<quote who="Andrea Arcangeli">

<p>so it doesn't sound a regex. Being able to specify more than 1 -f would
be very useful. Either that or regex would do it fine too with '^net/core',
so as far as I can write stuff like -f '^net/core|^net/ipv4' I'm fine.</p>

<p>I also think using match by default in the regex is cleaner. So I can
write -f 'net/core|net/ipv4' w/o bothering about the ^ because it become
implicit. And I can still use '.*net/core.*' if I want a substring regex. I
think substring search will be not common.</p>

<p>But really, any kind of way you implement the 'multiple file' thing is
fine as far as I can specify more than 1 file ;).</p>

</quote>

<p>David posted a patch to allow the -f option to take a regular
expression.</p>

<p>At one point, Andrea also remarked, <quote who="Andrea Arcangeli">BTW,
I think cvsps should be shipped together with cvs and integrated over time
in the unstable branch, this is a major feature for any cvs user. Storing
metadata locally is the way to go, over time the whole tree should be cached
local (as an option). This is actually the major cvs improvement I seen since
years. And I'm glad I can contribute to it unlike many kernel developers
out there.</quote></p>

</section>

<section
  title="Blank-Screen On Demand"
  subject="Blank-screen-on-demand"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0588.html"
  posts="1"
  startdate="18 Mar 2003 12:32:22 -0800"
>

<p>Pavel Machek announced, <quote who="Pavel Machek">This allows user to
blank screen on demand. On some machines (philips velo) backlight takes more
energy than rest of system, and this becomes pretty critical.</quote></p>

</section>

<section
  title="Linux On Small Systems"
  subject="Linux on 16-bit processors"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0605.html"
  posts="7"
  startdate="18 Mar 2003 15:46:47 -0800"
  enddate="19 Mar 2003 09:36:36 -0800"
>

<p>Mick Weiss wanted to run Linux on cheap, 16-bit machines, and wondered if any
particular Linux version would be best for that. Joel Jaeggli suggested:</p>

<quote who="Joel Jaeggli">

<p>try elks:</p>

<p><a href="http://elks.sourceforge.net/">http://elks.sourceforge.net/</a></p>

<p>the economics aren't really there as far as I can tell given the cost
of embeded 386 and 486 class cpu's to say nothing of tiny powerpc and arm
cpu's.</p>

</quote>

<p>J.A. Magallon also suggested:</p>

<quote who="J.A. Magallon">

<p><a href="http://www.uclinux.org/">http://www.uclinux.org/</a></p>

<p>It doesn't need an mmu, boots on a Palm. ;) Look  in 'uClinux Ports'</p>

<p>Or <a
href="http://www.linux.org/projects/ports.html">http://www.linux.org/projects/ports.html</a>,
look for m68k ports, don't know if any of them work on cpus below 68020.</p>

</quote>

<p>Xavier Bestel replied, <quote who="Xavier Bestel">It works on an Amiga 500
(plain 68000).</quote></p>

<p>Alan Cox also said to Mick, <quote who="Alan Cox">The kernel side is fairly
easy if you have a couple of megs of ram. The ucLinux tree supports mmuless
systems and a fair variety of processors.  User space is more of an issue. The
standard Linux userspace is designed for systems with disks and paging, the
uclinux stuff is smaller and the ELKS userspace is tinier still.</quote></p>

</section>

<section
  title="I2O Update"
  subject="PATCH: I2O updates"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0790.html"
  posts="2"
  startdate="19 Mar 2003 10:00:02 -0800"
  enddate="19 Mar 2003 10:42:38 -0800"
>
<topic>I2O</topic>

<p>Alan Cox posted some patches and said, <quote who="Alan Cox">This brings
the I2O layer up to date. It fixes the i2o scsi hang on boot. It fixes the
stack abuse by the i2o_proc code and it merges i2o_pci into i2o_core. I2O is
now dead so no other transports are likely to appear, so this always rather
messy abstraction can go.</quote></p>

</section>

<section
  title="Essential Reality P5 Data Glove Not HID Compliant"
  subject="HID Patch for Essential Reality P5 Glove"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0819.html"
  posts="2"
  startdate="19 Mar 2003 10:20:46 -0800"
  enddate="19 Mar 2003 14:17:59 -0800"
>

<p>Jason McMullan said:</p>

<quote who="Jason McMullan">

<p>This patch adds the Essential Reality P5 data glove to the HID
blacklist. It's yet another device that advertises itself as a HID, and
doesn't comply with the HID specs.</p>

<p>The P5 is an inexpensive ($99 USD) data glove, with 5 finger flexion
sensors and 8 IR location sensors.</p>

<p>A user-space library to access the P5 is available at <a
href="http://www.evillabs.net/~jmcc/p5/">http://www.evillabs.net/~jmcc/p5/</a></p>

</quote>

</section>

<section
  title="New OpenHPI Implementation For SAForum's HPI"
  subject="[ANNOUNCE] OpenHPI -- an implementation for SAForum's HPI"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0303.2/0823.html"
  posts="1"
  startdate="19 Mar 2003 10:31:33 -0800"
>
<topic>Clustering</topic>

<p>Andrea L. Brugger announced:</p>

<quote who="Andrea L. Brugger">

<p>I'd like to introduce the OpenHPI project at <a
href="http://openhpi.sf.net">http://openhpi.sf.net</a>. The intent of this
project is to produce an implementation of the Service Availability Forum's
Hardware Platform Interface (HPI). HPI provides a universal interface for
creating resource system models, typically for chassis and rack based
servers, but extendable for other problem domains such as clustering,
virtualization, and simulation.</p>

<p>We are currently in the design phase of the project and are soliciting
involvement with others in the community.</p>

<p>Our goal is to have modular hardware support that can be implemented using
a plugin architecture.  This would allow a top-level OpenHPI implementation
to be independent of the underlying hardware platform(s).  We are also just
getting a build environment up and a stubbed-out library implementation
available.  Work has also just begun regarding the planning and development
of a certification suite for the HPI implementation.</p>

<p>For more information and how you can become involed please see...</p>

<p>Project Website:<br />
<a href="http://openhpi.sf.net">http://openhpi.sf.net</a></p>

<p>Mailing List:<br />
<a href="http://lists.sourceforge.net/lists/listinfo/openhpi-devel">http://lists.sourceforge.net/lists/listinfo/openhpi-devel</a></p>

</quote>

</section>

</kc>

