<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="186" date="29 Sep 2002 23:00:00 -0800" />

<stats posts="1481" size="8463" contrib="374" multiples="196" lastweek="162">

<person posts="65" size="286" who="Andrew Morton " />
<person posts="55" size="281" who="Ingo Molnar " />
<person posts="51" size="173" who="William Lee Irwin III " />
<person posts="46" size="208" who="Greg KH " />
<person posts="41" size="889" who="Karim Yaghmour " />
<person posts="37" size="183" who="Jeff Garzik " />
<person posts="35" size="88" who="&quot;David S. Miller&quot; " />
<person posts="33" size="418" who="Rusty Russell " />
<person posts="28" size="100" who="&quot;Martin J. Bligh&quot; " />
<person posts="28" size="83" who="Alan Cox " />
<person posts="24" size="418" who="Martin Schwidefsky " />
<person posts="22" size="82" who="Con Kolivas " />
<person posts="21" size="83" who="Jens Axboe " />
<person posts="21" size="82" who="Linus Torvalds " />
<person posts="20" size="65" who="Daniel Phillips " />
<person posts="20" size="61" who="Robert Love " />
<person posts="17" size="56" who="Rik van Riel " />
<person posts="17" size="49" who="Andi Kleen " />
<person posts="16" size="66" who="&quot;Richard B. Johnson&quot; " />
<person posts="14" size="48" who="Brad Hards " />
<person posts="13" size="43" who="Adrian Bunk " />
<person posts="12" size="99" who="Bill Davidsen " />
<person posts="11" size="82" who="Badari Pulavarty " />
<person posts="11" size="62" who="Peter Waechtler " />
<person posts="11" size="37" who="Andries Brouwer " />
<person posts="11" size="33" who="&quot;Benjamin Herrenschmidt&quot; " />
<person posts="10" size="109" who="Erich Focht " />
<person posts="10" size="67" who="Dipankar Sarma " />
<person posts="10" size="34" who="Oleg Drokin " />
<person posts="10" size="31" who="Mikael Pettersson " />
<person posts="9" size="252" who="Patrick Mansfield " />
<person posts="9" size="39" who="Andre Hedrick " />
<person posts="9" size="22" who="Jeff Dike " />
<person posts="8" size="123" who="Dave Olien " />
<person posts="8" size="39" who="bob " />
<person posts="8" size="23" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="8" size="22" who="Jeff Garzik " />
<person posts="7" size="56" who="Tom Rini " />
<person posts="7" size="48" who="Patrick Mochel " />
<person posts="7" size="38" who="&quot;Rhoads, Rob&quot; " />
<person posts="7" size="34" who="&quot;Bond, Andrew&quot; " />
<person posts="7" size="33" who="Jurriaan " />
<person posts="7" size="29" who="&quot;Paolo Ciarrocchi&quot; " />
<person posts="7" size="26" who="Russell King " />
<person posts="7" size="24" who="&quot;Justin T. Gibbs&quot; " />
<person posts="7" size="22" who="Pavel Machek " />
<person posts="6" size="71" who="Marc-Christian Petersen " />
<person posts="6" size="24" who="Rolf Fokkens " />
<person posts="6" size="22" who="&quot;Bloch, Jack&quot; " />
<person posts="6" size="21" who="Kai Germaschewski " />
<person posts="6" size="19" who="Remco Post " />
<person posts="6" size="17" who="Richard Henderson " />
<person posts="6" size="17" who="Dan Christian " />
<person posts="5" size="76" who="Benjamin LaHaise " />
<person posts="5" size="56" who="James Cleverdon " />
<person posts="5" size="28" who="Marcelo Tosatti " />
<person posts="5" size="20" who=" (Florin Iucha)" />
<person posts="5" size="19" who="Francois Romieu " />
<person posts="5" size="19" who="Jakob Oestergaard " />
<person posts="5" size="19" who="Jean Tourrilhes " />
<person posts="5" size="18" who="george anzinger " />
<person posts="5" size="18" who="Steven Cole " />
<person posts="5" size="17" who="Cort Dougan " />
<person posts="5" size="16" who="Roman Zippel " />
<person posts="5" size="16" who="Dominik Brodowski " />
<person posts="5" size="15" who="Rob van Nieuwkerk " />
<person posts="5" size="15" who="Martin Loschwitz " />
<person posts="5" size="14" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="5" size="13" who="Thunder from the hill " />
<person posts="4" size="166" who="Alan Cox " />
<person posts="4" size="39" who="Burton Samograd " />
<person posts="4" size="38" who="john stultz " />
<person posts="4" size="35" who="Anton Altaparmakov " />
<person posts="4" size="26" who="Andrea Arcangeli " />
<person posts="4" size="24" who="Denis Vlasenko " />
<person posts="4" size="19" who="Meelis Roos " />
<person posts="4" size="18" who="Marek Michalkiewicz " />
<person posts="4" size="16" who="&quot;Michael Duane&quot; " />
<person posts="4" size="15" who="Nikita Danilov " />
<person posts="4" size="15" who="Brian Gerst " />
<person posts="4" size="15" who="Vojtech Pavlik " />
<person posts="4" size="14" who="Hanna Linder " />
<person posts="4" size="14" who="Duncan Sands " />
<person posts="4" size="14" who="Dave Hansen " />
<person posts="4" size="13" who="Jason Lunz " />
<person posts="4" size="13" who="David Brownell " />
<person posts="4" size="13" who="Martin Hermanowski " />
<person posts="4" size="12" who="Thomas Molina " />
<person posts="4" size="12" who="Trond Myklebust " />
<person posts="4" size="12" who="Pavel Machek " />
<person posts="4" size="11" who="Hans Reiser " />
<person posts="4" size="11" who="Manfred Spraul " />
<person posts="4" size="11" who="John Levon " />
<person posts="4" size="9" who="Alex Davis " />
<person posts="3" size="39" who="Shawn Starr " />
<person posts="3" size="38" who="Grega Fajdiga " />
<person posts="3" size="37" who="&quot;Stuart MacDonald&quot; " />
<person posts="3" size="35" who="bert hubert " />
<person posts="3" size="34" who="Albert Cranford " />
<person posts="3" size="26" who="Matthew Dobson " />
<person posts="3" size="20" who="&quot;svetljo&quot; " />
<person posts="3" size="15" who="Sam Ravnborg " />
<person posts="3" size="15" who="anton wilson " />
<person posts="3" size="15" who="&quot;Bjoern A. Zeeb&quot; " />
<person posts="3" size="15" who="Morten Helgesen " />
<person posts="3" size="14" who="Shailabh Nagar " />
<person posts="3" size="13" who="Mika Liljeberg " />
<person posts="3" size="13" who="Michael Sinz " />
<person posts="3" size="13" who="Ulrich Drepper " />
<person posts="3" size="12" who="Daniel Jacobowitz " />
<person posts="3" size="12" who="Pete Zaitcev " />
<person posts="3" size="11" who="Felipe W Damasio " />
<person posts="3" size="11" who="Donald Becker " />
<person posts="3" size="11" who="Andi Kleen " />
<person posts="3" size="10" who="Christer Weinigel " />
<person posts="3" size="10" who="Alexander Hoogerhuis " />
<person posts="3" size="10" who="Zwane Mwaikambo " />
<person posts="3" size="9" who="Richard Zidlicky " />
<person posts="3" size="9" who="David Mosberger " />
<person posts="3" size="9" who="Andreas Dilger " />
<person posts="3" size="8" who="Padraig Brady " />
<person posts="3" size="8" who=" (Eric W. Biederman)" />
<person posts="3" size="8" who="&quot;Randy.Dunlap&quot; " />
<person posts="3" size="8" who="&quot;Mehdi Hashemian&quot; " />
<person posts="2" size="56" who="Larry Kessler " />
<person posts="2" size="44" who="Olaf Dietsche " />
<person posts="2" size="42" who="&quot;Drew J. Como&quot; " />
<person posts="2" size="29" who="Warren Turkal " />
<person posts="2" size="25" who="Banai Zoltan " />
<person posts="2" size="18" who="Marc Zyngier " />
<person posts="2" size="15" who="John Gardiner Myers " />
<person posts="2" size="14" who="dvorak " />
<person posts="2" size="13" who="Chris Underhill " />
<person posts="2" size="12" who="Nicholas Henke " />
<person posts="2" size="10" who="James Finnie " />
<person posts="2" size="10" who="Mark Veltzer " />
<person posts="2" size="9" who="&quot;Clement T. Cole&quot; " />
<person posts="2" size="9" who="&quot;A1 Web Design&quot; " />
<person posts="2" size="9" who="jw schultz " />
<person posts="2" size="8" who="Jan Hudec " />
<person posts="2" size="8" who="Andreas Steinmetz " />
<person posts="2" size="7" who="&quot;Martin J. Bligh&quot; " />
<person posts="2" size="7" who="Hirokazu Takahashi " />
<person posts="2" size="7" who="Greg Ungerer " />
<person posts="2" size="7" who="&quot;Corporal Pisang&quot; " />
<person posts="2" size="7" who="Burton Windle " />
<person posts="2" size="7" who="Neil Brown " />
<person posts="2" size="7" who="Brian Waite " />
<person posts="2" size="7" who="Suparna Bhattacharya " />
<person posts="2" size="7" who="Willy Tarreau " />
<person posts="2" size="6" who="&quot;Miquel van Smoorenburg&quot; " />
<person posts="2" size="6" who="Tomas Szepe " />
<person posts="2" size="6" who="Axel Siebenwirth " />
<person posts="2" size="6" who="Oliver Xymoron " />
<person posts="2" size="6" who="Mark Hounschell " />
<person posts="2" size="6" who="Mike Anderson " />
<person posts="2" size="6" who="Stephan von Krawczynski " />
<person posts="2" size="6" who="Paul Mackerras " />
<person posts="2" size="6" who="&quot;walairat kladmuk&quot; " />
<person posts="2" size="6" who="&quot;Nadav Har'El&quot; " />
<person posts="2" size="6" who=" (Kai Henningsen)" />
<person posts="2" size="6" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="2" size="6" who="Robert Schwebel " />
<person posts="2" size="6" who="Alexander Lyamin " />
<person posts="2" size="6" who="Bongani " />
<person posts="2" size="6" who="&quot;Grover, Andrew&quot; " />
<person posts="2" size="6" who="Ryan Anderson " />
<person posts="2" size="6" who="Daniel Pittman " />
<person posts="2" size="6" who="Nicholas " />
<person posts="2" size="6" who="Krzysztof Halasa " />
<person posts="2" size="5" who="Jakub Jelinek " />
<person posts="2" size="5" who="Matt Porter " />
<person posts="2" size="5" who="Seaman Hu " />
<person posts="2" size="5" who="Dan Aloni " />
<person posts="2" size="5" who="Bernd Eckenfels " />
<person posts="2" size="5" who="Der Herr Hofrat " />
<person posts="2" size="5" who="&quot;James Stevenson&quot; " />
<person posts="2" size="5" who="&quot;Hanumanthu. H&quot; " />
<person posts="2" size="5" who="Ralf Baechle " />
<person posts="2" size="5" who="Matthew Wilcox " />
<person posts="2" size="5" who="Rob Ransbottom " />
<person posts="2" size="5" who="Christoph Hellwig " />
<person posts="2" size="5" who="Dan Kegel " />
<person posts="2" size="4" who="Anders Fugmann " />
<person posts="2" size="4" who="Helge Hafting " />
<person posts="2" size="4" who="Ricardo Galli " />
<person posts="2" size="4" who="Anton Blanchard " />
<person posts="2" size="4" who="Nicolas Pitre " />
<person posts="2" size="4" who="Neale Banks " />
<person posts="2" size="4" who="Guido Arenstedt " />
<person posts="2" size="4" who="Kent Hunt " />
<person posts="1" size="48" who="Clemens Schwaighofer " />
<person posts="1" size="39" who="Peter =?iso-8859-1?Q?W=E4chtler?= " />
<person posts="1" size="32" who="Jochen Friedrich " />
<person posts="1" size="29" who="Robert Tilley " />
<person posts="1" size="24" who="Maciej Babinski " />
<person posts="1" size="23" who="Adam Kropelin " />
<person posts="1" size="21" who="Duc Vianney " />
<person posts="1" size="18" who="Art " />
<person posts="1" size="16" who="Martin Knott " />
<person posts="1" size="15" who="Lawrence Walton " />
<person posts="1" size="15" who="Kirk Reiser " />
<person posts="1" size="13" who="Philippe Troin " />
<person posts="1" size="13" who="Thomas Winischhofer " />
<person posts="1" size="9" who="&quot;=?ISO-8859-2?B?RXJk9XNpIFpvbHThbg==?=&quot; " />
<person posts="1" size="8" who="Wilton Wong " />
<person posts="1" size="8" who="Solomon Peachy " />
<person posts="1" size="7" who="&quot;Mingming Cao&quot; " />
<person posts="1" size="7" who="Fabian Lienert " />
<person posts="1" size="6" who="&quot;Scott M. Hoffman&quot; " />
<person posts="1" size="6" who="phil " />
<person posts="1" size="6" who="Kevin Easton " />
<person posts="1" size="6" who=" (Juergen Hasch)" />
<person posts="1" size="6" who="&quot;Randy.Dunlap&quot; " />
<person posts="1" size="5" who="Paul Larson " />
<person posts="1" size="5" who="Pozsar Balazs " />
<person posts="1" size="5" who="Frank Rowand " />
<person posts="1" size="5" who="Pierrick Hascoet " />
<person posts="1" size="5" who="Tomasz Wrona " />
<person posts="1" size="5" who="Zach Brown " />
<person posts="1" size="5" who="henrique " />
<person posts="1" size="4" who="Matti Aarnio " />
<person posts="1" size="4" who="David Coulson " />
<person posts="1" size="4" who="Witek Krecicki " />
<person posts="1" size="4" who="Andreas Ferber " />
<person posts="1" size="4" who=" (Eran Man)" />
<person posts="1" size="4" who="&quot;J.A. Magallon&quot; " />
<person posts="1" size="4" who="Paul P Komkoff Jr " />
<person posts="1" size="4" who="Mark Hindley " />
<person posts="1" size="4" who="Matthew Dharm " />
<person posts="1" size="4" who="&quot;Michael Sinz&quot; " />
<person posts="1" size="4" who="Kevin Curtis " />
<person posts="1" size="4" who="&quot;Murray J. Root&quot; " />
<person posts="1" size="4" who="Andree Leidenfrost " />
<person posts="1" size="4" who="Bob Miller " />
<person posts="1" size="4" who="Lukasz Trabinski " />
<person posts="1" size="4" who="Erik Hensema " />
<person posts="1" size="4" who="Lars Marowsky-Bree " />
<person posts="1" size="4" who="Alexis de Bernis " />
<person posts="1" size="4" who="Andree Leidenfrost " />
<person posts="1" size="4" who=" (Linus Torvalds)" />
<person posts="1" size="4" who="Duncan Sands " />
<person posts="1" size="4" who="David Kleikamp " />
<person posts="1" size="4" who="&quot;Scott Murray&quot; " />
<person posts="1" size="3" who="&quot;Mark Knecht&quot; " />
<person posts="1" size="3" who="Miles Lane " />
<person posts="1" size="3" who="&quot;VIVIAN ONYEKWERE&quot; " />
<person posts="1" size="3" who="&quot;Todor Todorov&quot; " />
<person posts="1" size="3" who="Eric Sandeen " />
<person posts="1" size="3" who="Nuno Monteiro " />
<person posts="1" size="3" who="&quot;Cress, Andrew R&quot; " />
<person posts="1" size="3" who="&quot;M. Edward Borasky&quot; " />
<person posts="1" size="3" who="&quot;Mala Anand&quot; " />
<person posts="1" size="3" who="Alessandro Suardi " />
<person posts="1" size="3" who="&quot;Mike Black&quot; " />
<person posts="1" size="3" who="Todor Todorov " />
<person posts="1" size="3" who="Ville Herva " />
<person posts="1" size="3" who="&quot;Mark A. Greer&quot; " />
<person posts="1" size="3" who="Mark Mielke " />
<person posts="1" size="3" who="Paul Bristow " />
<person posts="1" size="3" who="&quot;Michael D. Crawford&quot; " />
<person posts="1" size="3" who="David Howells " />
<person posts="1" size="3" who="Kai Germaschewski " />
<person posts="1" size="3" who="&quot;Petr Vandrovec&quot; " />
<person posts="1" size="3" who="&quot;H. J. Lu&quot; " />
<person posts="1" size="3" who="Frank Davis " />
<person posts="1" size="3" who="Rogier Wolff " />
<person posts="1" size="3" who="James Bottomley " />
<person posts="1" size="3" who="Gregoire Favre " />
<person posts="1" size="3" who="Andrew Pimlott " />
<person posts="1" size="3" who="&quot;Feldman, Scott&quot; " />
<person posts="1" size="3" who="Ed Vance " />
<person posts="1" size="3" who="Theodore Ts'o " />
<person posts="1" size="3" who="Daniel Ahlberg " />
<person posts="1" size="3" who="Larry McVoy " />
<person posts="1" size="3" who="Fernando Alencar =?ISO-8859-1?Q?Mar=F3stica?= " />
<person posts="1" size="3" who="Frank Cornelis " />
<person posts="1" size="3" who="Hiroshi Takekawa " />
<person posts="1" size="3" who="Brad Chapman " />
<person posts="1" size="3" who="Dmitri " />
<person posts="1" size="3" who="&quot;Maneesh Soni&quot; " />
<person posts="1" size="3" who="Rene von Grillo " />
<person posts="1" size="3" who="Srinivas Chavva " />
<person posts="1" size="3" who="Hua Qin " />
<person posts="1" size="3" who="&quot;Axel H. Siebenwirth&quot; " />
<person posts="1" size="3" who="Wes Kurdziolek " />
<person posts="1" size="3" who="&quot;Yann E. MORIN&quot; " />
<person posts="1" size="3" who="Dave Maietta " />
<person posts="1" size="3" who="Chris Friesen " />
<person posts="1" size="3" who="Jordan Breeding " />
<person posts="1" size="3" who="Allan Duncan " />
<person posts="1" size="3" who="Johannes Erdfelt " />
<person posts="1" size="3" who="Jonathan Lundell " />
<person posts="1" size="3" who="john slee " />
<person posts="1" size="2" who="Frank v Waveren " />
<person posts="1" size="2" who="Konstantin Kletschke " />
<person posts="1" size="2" who="Bill Huey (Hui) " />
<person posts="1" size="2" who="Martin Mares " />
<person posts="1" size="2" who="Phil Brutsche " />
<person posts="1" size="2" who="James Stevenson " />
<person posts="1" size="2" who="Kari Hameenaho " />
<person posts="1" size="2" who="Ian Carr-de Avelon " />
<person posts="1" size="2" who="Dave Jones " />
<person posts="1" size="2" who="Roger Luethi " />
<person posts="1" size="2" who="Erik Andersen " />
<person posts="1" size="2" who="Jos Hulzink " />
<person posts="1" size="2" who="James Morris " />
<person posts="1" size="2" who="Han Boetes " />
<person posts="1" size="2" who="Florian Lohoff " />
<person posts="1" size="2" who="Milicchio Franco " />
<person posts="1" size="2" who="&quot;Witek Krecicki&quot; " />
<person posts="1" size="2" who="Brian Gerst " />
<person posts="1" size="2" who="Neil Booth " />
<person posts="1" size="2" who="&quot;Seth Z. Dickerson&quot; " />
<person posts="1" size="2" who="Pavel Machek " />
<person posts="1" size="2" who="Eric Buddington " />
<person posts="1" size="2" who="&quot;Chen, Kenneth W&quot; " />
<person posts="1" size="2" who="Sebastian Heidl " />
<person posts="1" size="2" who="Balint Cristian " />
<person posts="1" size="2" who="Mark Hahn " />
<person posts="1" size="2" who="Jamie Zawinski " />
<person posts="1" size="2" who="Petr Vandrovec " />
<person posts="1" size="2" who="Tim Schmielau " />
<person posts="1" size="2" who="&quot;David Christensen&quot; " />
<person posts="1" size="2" who="Olaf =?iso-8859-2?Q?Fr=B1czyk?= " />
<person posts="1" size="2" who="Jamie Lokier " />
<person posts="1" size="2" who="Arnaldo Carvalho de Melo " />
<person posts="1" size="2" who="&quot;Michael Cohen&quot; " />
<person posts="1" size="2" who="=?iso-8859-15?q?Ren=E9=20Scharfe?= " />
<person posts="1" size="2" who="Alexander Viro " />
<person posts="1" size="2" who="jamal " />
<person posts="1" size="2" who="Russ Lewis " />
<person posts="1" size="2" who="Mike Galbraith " />
<person posts="1" size="2" who="Matthew Kirkwood " />
<person posts="1" size="2" who="Meelis Roos " />
<person posts="1" size="2" who="Pawel Bernadowski " />
<person posts="1" size="2" who="David Ford " />
<person posts="1" size="2" who="&quot;Maciej W. Rozycki&quot; " />
<person posts="1" size="2" who="Dan Kegel " />
<person posts="1" size="2" who="Reg Clemens " />
<person posts="1" size="2" who="Bryan O'Sullivan " />
<person posts="1" size="2" who="David Woodhouse " />
<person posts="1" size="2" who="Aaron Lehmann " />
<person posts="1" size="2" who="&quot;Christian Ludwig&quot; " />
<person posts="1" size="2" who="Gustavo Lozano " />
<person posts="1" size="2" who="Peter " />
<person posts="1" size="2" who="&quot;Imran Badr&quot; " />
<person posts="1" size="2" who="Stephen Hemminger " />
<person posts="1" size="2" who="&quot;Barry K. Nathan&quot; " />
<person posts="1" size="2" who="Giuliano Pochini " />
<person posts="1" size="2" who="Horst von Brand " />
<person posts="1" size="2" who="Stephen Aiken " />
<person posts="1" size="2" who="&quot;Kevin N. Carpenter&quot; " />
<person posts="1" size="2" who="Joel Votaw " />
<person posts="1" size="2" who="Boro King " />
<person posts="1" size="1" who="Andrew Rodland " />

</stats>

<section
  title="VM Subsystem Necessitating User-Space Changes; Favorite Kernel Trees"
  subject="2.5.34-mm4"
  archive=""
  posts="17"
  startdate="13 Sep 2002 20:06:27 -0800"
  enddate="19 Sep 2002 01:01:39 -0800"
>
<topic>Disks: IDE</topic>
<topic>FS: ext3</topic>
<topic>Networking</topic>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>

<p>Andrew Morton gave a <a
href="http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.34/2.5.34-mm4/">URL
to his -mm patches</a>, and announced:</p>

<quote who="Andrew Morton">

<p>Some additional work has been performed on the new, faster
sleep/wakeup facilities.</p>

<p>I have converted TCP/IPV4 over to use the faster wakeups.  It would be
appreciated if the people who are interested in (and set up for testing)
high performance networking could test this out.  Note however that there
is no benefit to select()/poll().  That's quite a large change.</p>

<p>So please bear in mind that this code will only help if applications are
generally sleeping in accept(), connect(), etc.  At this stage I'd like to
know whether this work is generally something which should be pursued further
- let's be careful that the measurements are not swamped by select()/poll()
wakeups.</p>

<p>The individual patches are:</p>

<p><a href="http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.34/2.5.34-mm4/broken-out/wake-speedup.patch">http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.34/2.5.34-mm4/broken-out/wake-speedup.patch</a><br />
<a href="http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.34/2.5.34-mm4/broken-out/tcp-wakeups.patch">http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.34/2.5.34-mm4/broken-out/tcp-wakeups.patch</a></p>

<p>These apply against 2.5.26 and possibly earlier, and testing against
earlier kernels would be valid.  Thanks.</p>

<p>Changes have been made to /proc/stat which
break top(1) and vmstat(1).  New versions are available at <a
href="http://www.zip.com.au/~akpm/linux/patches/procps-2.5.34-mm4.tar.gz">http://www.zip.com.au/~akpm/linux/patches/procps-2.5.34-mm4.tar.gz</a>
and newer versions will appear at <a
href="http://surriel.com/procps/">http://surriel.com/procps/</a></p>

</quote>

<p>Axel Siebenwirth reported:</p>

<quote who="Axel Siebenwirth">

<p>With changing from 2.5.34-mm2 to -mm4 I have experienced some moments of
quite unresponsive behaviour. For example I am building X which at that
special moment causes pretty heavy disk load and the system doesn't respond
at all. I was using X and was not able to switch consoles or move mouse only
extremely sluggish.</p>

<p>I have seen that it used more swap that usual.</p>

<pre>             total       used       free     shared    buffers     cached
Mem:        191096     159340      31756          0      10568      94100
-/+ buffers/cache:      54672     136424
Swap:       289160          0     289160</pre>

<p>This is how it looks like under normal circumstances and when building X I
had 20M in swap usage which seemed quite a lot to me. Maybe I'm just wrong.
Unfortunately I was not able to start vmstat, first because I can't start
vmstat when system is not responding and second it doesn't work anyway
because of your changes.</p>

</quote>

<p>To the vmstat breakage, Andrew said:</p>

<quote who="Andrew Morton">

<p>Yeah, sorry.  The burden of back-compatibility weighed too heavy
and Rik decided that we just have to fix userspace to follow kernel
changes.  There will be breakage for a while;  updates are at <a
href="http://surriel.com/procps/">http://surriel.com/procps/</a>.</p>

<p>Unfortunately, those updates cause odd-but-not-serious things to happen
to Red Hat initscripts.  This happens when you install standard util-linux
as well.  It is due to the initscripts passing in arguments which the standard
tools do not understand.</p>

</quote>

<p>And to the increased swap usage, he went on, <quote who="Andrew Morton">2.5
is much more swaphappy than 2.4.  I believe that this is actually correct
behaviour for optimum throughput.  But it just happens that people
(me included) hate it.  We don't notice the improved runtimes for the
pagecache-intensive operations but we do notice the time it takes to get
the xterms working again.  We have not yet sat down and worked out what to
do about this.</quote> Rik replied, saying he was about to send his procps
patches upstream to the procps CVS tree, which he expected would fix the
breakage soon.</p>

<p>At this point the discussion bent off into which kernel tree seemed
best at the moment. A few posts down the line, Rik said, <quote who="Rik
van Riel">Current 2.5 is sluggish on systems with a fast CPU and 768 MB
of RAM, whereas current -ac runs the same workload smoothly with 128 MB
of RAM.</quote> Andrew replied:</p>

<quote who="Andrew Morton">

<p>I've been running 2.5 on my desktop at work (800MHz/256M UP) since
2.5.26 and on the machine at home (Dual 850MHz/768M) on-and-off
(recent freizures sent that machine back to Marcelo; need to try
again).  I also ran 2.4.19-ac-something for a couple of weeks.</p>

<p>Impressions are:</p>

<p>

<ul>

<li>

<p>2.5 swaps a lot in response to heavy pagecache activity.</p>

<p>  SEGQ didn't change that, actually.  And this is correct,
  as-designed behaviour.  We'll need some "don't be irritating"
  knob to prevent this.  Or speculative pagein when the load
  has subsided, which would be a fair-sized project.</p>

</li>

<li>

<p>In both -ac and 2.5 the scheduler is prone to starving interactive
  applications (netscape 4, gkrellm, command-line gdb, others) when
  there is a compilation happening.</p>

<p>  This is very, very noticeable; and it afects applications which
  do not use sched_yield().  Ingo has put some extra stuff in since
  then and I need to retest.</p>

</li>

<li>In -ac, there are noticeable stalls during heavy writeout.  This
  may be an ext3 thing, but I can't think of any IO scheduling
  differences in -ac ext3.  I'd be guessing that it is due to
  bdflush/kupdate lumpiness.</li>

</ul>

</p>

<p>Overall I find Marcelo kernels to be the most comfortable, followed
by 2.5.  Alan's kernels I find to be the least comfortable in a
"developer's desktop" situation.</p>

</quote>

<p>Rik pointed out that the stalls during heavy write-out were <quote
who="Rik van Riel">due to the fact that -ac has an older -rmap VM. As in
current 2.5, rmap can write out all inactive pages ... and it did in some
worst case situations.  This is fixed in rmap14.</quote> He added, <quote
who="Rik van Riel">I hope Alan is done playing with IDE soon so I can push
him a VM update</quote> And Alan Cox replied, <quote who="Alan Cox">send me
rmap-14a patches by all means.</quote></p>

<p>Elsewhere, also in reply to Andrew's assessment of kernel trees, Andi
Kleen remarked, <quote who="Andi Kleen">-aa kernels are marcelo kernels,
just with the the corner cases fixed too. Works very nicely here.</quote> But
Bill Davidsen said, <quote who="Bill Davidsen">Corner cases? The IDE, VM and
scheduler are different...</quote> And Jens Axboe replied, <quote who="Jens
Axboe">The IDE is the same, I'll refrain from commenting on the rest. There's
just an adjustment to the read ahead, which makes sense.</quote></p>

</section>

<section
  title="Kernel Conf 0.6 Released; Merge With kbuild"
  subject="linux kernel conf 0.6"
  archive=""
  posts="14"
  startdate="16 Sep 2002 15:16:55 -0800"
  enddate="23 Sep 2002 11:59:49 -0800"
>
<topic>Kernel Build System</topic>

<p>Roman Zippel announced:</p>

<quote who="Roman Zippel">

<p>At <a
href="http://www.xs4all.nl/~zippel/lc/lkc-0.6.tar.gz">http://www.xs4all.nl/~zippel/lc/lkc-0.6.tar.gz</a>
you can find the latest version of the new config system. Changes this
time:</p>

<p>
<ul>
<li>update to 2.5.35</li>
<li>I included my convert script and prepare/fixup patch to convert all archs</li>
<li>qconf got a split screen mode</li>
<li>the save bug is fixed</li>
<li>the converter mostly ignores "define_bool CONFIG_FOO n" now, they are</li>
</ul>
</p>

<p>only used for type definitions. They were only needed to keep the old
config system working, but shouldn't be needed anymore, this allows to
generate slightly better dependencies in the generated configs.</p>

</quote>

<p>Sam Ravnborg posted a patch and replied:</p>

<quote who="Sam Ravnborg">

<p>I have been working on integrating lkc with kbuild.
Here is the result.</p>

<p>Rules.make:</p>
<blockquote>
<p>Added infrastructure to support host-ccprogs, in other words
support tools written (partly) in c++.</p>
</blockquote>

<p>scripts/lkc/Makefile*:</p>
<blockquote>
<p>As kbuild does not distingush between individual objects,
used for a given target, but (try to) build them all, I have 
found a solution where I create one Makefile for each executable.
I could not see a clean way to integrate this in kbuild, and finally
decided that in this special case a number of Makefiles did not
hurt too much.</p>
</blockquote>

<p>flex/bison:</p>
<blockquote>
<p>Prepared for "_shipped" files.<br />
Rename lex.zconf.c to lex.zconf.c_shipped etc. in the version
reday to go in the kernel.</p>
</blockquote>

</quote>

<p>Roman was very pleased with this work, but to Sam's flex/bison point, he
objected:</p>

<quote who="Roman Zippel">

<p>This works quite well for users, but it's very annoying for the developer.
Kai, any chances to use md5sum for this at some point, e.g. with a helper
script like this:</p>

<pre>set -e
src=$1
dst=$2
shift 2</pre>

<pre>test -f $dst &amp;&amp; tail -1 $dst | sed 's,/\* \(.*\) \*/,\1,' | md5sum -c &amp;&amp; touch
$dst &amp;&amp; exit 0
echo "$@"
"$@"
echo "/* $(md5sum $src) */" &gt;&gt; $dst</pre>

<p>The only problem with this script is that it only supports a single input
and output file.</p>

</quote>

<p>Kai Germaschewski also said he was happy with Sam's work, and said he
(Kai) had also made some improvements. He replied to Roman's objection:</p>

<quote who="Kai Germaschewski">

<p>I'm not particularly fond of these md5sum hacks. I don't think it's
all that annoying for the developer, either, it's basically just a alias
make="make LKC_GENPARSER=1"</p>

<p>(Of course, you'll have to update the _shipped files eventually, but
there isn't really any way around that either way)</p>

<p>One might consider setting LKC_GENPARSER based on a test if bison/flex
are in the path.</p>

</quote>

</section>

<section
  title="Supporting Large Numbers Of Threads"
  subject="[patch] lockless, scalable get_pid(), for_each_process() elimination, 2.5.35-BK"
  archive=""
  posts="84"
  startdate="17 Sep 2002 15:06:11 -0800"
  enddate="22 Sep 2002 07:27:20 -0800"
>
<topic>Big O Notation</topic>
<topic>FS: sysfs</topic>
<topic>SMP</topic>
<topic>Version Control</topic>

<mention>Linus Torvalds</mention>

<p>Ingo Molnar announced:</p>

<quote who="Ingo Molnar">

<p>the attached patch is yet another step towards world-class threading
support.</p>

<p>the biggest known load-test of the new threading code so far was 1 million
concurrent kernel threads (!) running on Anton's 2.5.34 Linux box. On my
testsystem i was able to test 100,000 concurrent kernel threads, which can
be started and stopped within 2 seconds.</p>

<p>While even the biggest internet servers are not quite at 1 million parallel
users yet, even a much smaller 10,000 threads workload causes the O(N^2)
get_pid() algorithm to explode, if consecutive PID ranges are taken and the
PID value overflows and reaches the lower end of the PID range.</p>

<p>With 100,000 or more threads get_pid() causes catastrophic, many minutes
silent 'lockup' of the system. Plus the current get_pid() implementation
iterates through *every* thread in the system if it reaches a PID that
was used up before - which can happen quite often if the rate of thread
creation/destruction is sufficiently high. Besides being slow, the algorithm
also touches lots of unrelated cachelines, effectively flushing the CPU
cache. Eg. for the default pid_max value of 32K threads/processes, if there
are only 10% processes (3200), statistically we will flush the cache for
every 10 threads created. This is unacceptable.</p>

<p>there are a number of patches floating around that try to improve
the worst-case scenario of get_pid(), but the best they can achieve is a
runtime construction of a bitmap and then searching it => this still sucks
performance-wise, destroys the cache and is generally a very ugly approach.</p>

<p>the underlying problem is very hard - since get_pid() not only has to
take PIDs into account, but TGIDs, session IDs and process groups as well.</p>

<p>then i found one of wli's older patches for 2.5.23 [grr, it was not
announced anywhere, i almost started coding the same problem], which provides
the right (and much harder to implement) approach: it cleans up PID-space
allocation to provide a generic hash for PIDs, session IDs, process group
IDs and TGIDs, properly allocated and freed. This approach, besides paving
the way for a scalable and time-bounded get_pid() implementation, also got
rid of roughly half of for_each_process() (do_each_thread()) iterations done
in the kernel, which alone is worth the effort. Now we can cleanly iterate
through all processes in a session group or process group.</p>

<p>i took the patch, adopted it to the recent -&gt;ptrace_children and
threading related changes, fixed a couple of bugs and made it work. It really
worked well, nice work William!</p>

<p>I also wrote a new alloc_pid()/free_pid() implementation from scratch,
which provides lockless, time-bounded PID allocation. This new PID allocator
has a worst-case latency of 10 microseconds on a cache-cold P4, the cache-hot
worst-case latency is 2 usecs, if pid_max is set to 1 million.</p>

<p>Ie. even in the most hopeless situation, if there are 999,999 PIDs
allocated already, it takes less than 10 usecs to find and allocate the
remaining one PID. The common fastpath is a couple of instructions only.
The overhead of skipping over continuous regions of allocated PIDs scales
gracefully with the number of bits to be skipped, from 0 to 10 usecs.</p>

<p>(In the fastpath, both the alloc_pid() and free_pid() function falls
through to a 'ret' instruction if compiled with gcc 3.2 on x86.)</p>

<p>i tested the new PID allocation functions under heavy thread creation
workloads, and the new functions just do not show up in the kernel profiler
...</p>

<p>[ on SMP the new PID allocator has a small window to not follow the
'monotonic forward allocation of PIDs' semantics provided by the previous
implementation - but it's not like we can guarantee any PID allocation sequence
to user-space even with the current get_pid() allocation. The new allocator
still follows the last_pid semantics in the typical case. The reserved PID
range is protected as well. ]</p>

<p>memory footprint of the new PID allocator scales dynamically with
/proc/sys/kernel/pid_max: the default 32K PIDs cause a 4K allocation, a pid_max
of 1 million causes a 128K footprint. The current absolute limit for pid_max
is 4 million PIDs - this does not cause any allocation in the kernel, the
bitmaps are demand-allocated runtime. The pidmap table takes up 512 bytes.</p>

<p>and as an added bonus, the new PID allocator fails in fork() properly
if the whole PID space is used up. BK-curr's get_pid() still didnt do this
properly.</p>

<p>i have tested the patch on BK-curr, on x86 UP and SMP boxes - it compiles,
boots and works just fine. X and the other session/pgrp-intensive applications
appear to work just fine as well.</p>

</quote>

<p>William Lee Irwin III, the current maintainer of the patch, said,
<quote who="William Lee Irwin III">Thank you for taking up the completion
of development on and maintenance of this patch. I have not had the time
resources to advance it myself, though now with your help I would be glad
to contribute to the effort.  If you would like to assume ownership, I'd
be glad to hand it over, and send patches removing additional instances
of for_each_process() to you as I find the time.</quote> And Ingo replied,
<quote who="Ingo Molnar">well, it's your baby, i only dusted it off, merged
it and redid the PID allocator. I have intentionally left out some of the
for_each_task eliminations, to ease the merging - you are more than welcome
to extend the patch.</quote></p>

<p>Elsewhere, there was a medium-sized argument over whether Ingo's and
William's work was needed at all. To many folks, it seemed that simply making
PID a sufficiently large number would solve all the practical problems. Linus
Torvalds was one of these folks. He felt Ingo's and William's work was
adding too much complexity for very little gain. Ingo and others defended
the patch, and by the end of the discussion Linus was willing to allow it,
if they'd do some cleanup work and some tighter integration with existing
code. Ingo said he was working on it.</p>

</section>

<section
  title="Zero-Copy NFS For 2.5.36"
  subject="[PATCH] zerocopy NFS for 2.5.36"
  archive=""
  posts="20"
  startdate="18 Sep 2002 00:14:31 -0800"
  enddate="21 Sep 2002 03:56:21 -0800"
>
<topic>FS: NFS</topic>
<topic>FS: XFS</topic>

<p>Hirokazu Takahashi announced:</p>

<quote who="Hirokazu Takahashi">

<p>I ported the zerocopy NFS patches against linux-2.5.36.</p>

<p>I made va05-zerocopy-nfsdwrite-2.5.36.patch more generic,   
so that it would be easy to merge with NFSv4. Each procedure can
chose whether it can accept splitted buffers or not.
And I fixed a probelem that nfsd couldn't handle NFS-symlink    
requests which were very large.</p>

<p>

<ol>

<li><a
href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va10-hwchecksum-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va10-hwchecksum-2.5.36.patch</a><br />
This patch enables HW-checksum against outgoing packets including UDP
frames.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va11-udpsendfile-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va11-udpsendfile-2.5.36.patch</a><br />
This patch makes sendfile systemcall over UDP work. It also supports
UDP_CORK interface which is very similar to TCP_CORK. And you can call
sendmsg/senfile with MSG_MORE flags over UDP sockets.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va-csumpartial-fix-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va-csumpartial-fix-2.5.36.patch</a><br />
This patch fixes the problem of x86 csum_partilal() routines which
can't handle odd addressed buffers.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va01-zerocopy-rpc-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va01-zerocopy-rpc-2.5.36.patch</a><br />
This patch makes RPC can send some pieces of data and pages without copy.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va02-zerocopy-nfsdread-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va02-zerocopy-nfsdread-2.5.36.patch</a><br />
This patch makes NFSD send pages in pagecache directly when NFS clinets request
file-read.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va03-zerocopy-nfsdreaddir-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va03-zerocopy-nfsdreaddir-2.5.36.patch</a><br />
nfsd_readdir can also send pages without copy.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va04-zerocopy-shadowsock-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va04-zerocopy-shadowsock-2.5.36.patch</a><br />
This patch makes per-cpu UDP sockets so that NFSD can send UDP frames on
each prosessor simultaneously.
Without the patch we can send only one UDP frame at the time as a UDP socket
have to be locked during sending some pages to serialize them.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va05-zerocopy-nfsdwrite-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va05-zerocopy-nfsdwrite-2.5.36.patch</a><br />
This patch enables NFS-write uses writev interface. NFSd can handle NFS
requests without reassembling IP fragments into one UDP frame.</li>

<li>

<p><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/taka-writev-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/taka-writev-2.5.36.patch</a><br />
This patch makes writev for regular file work faster.
It also can be found at
<a href="http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.35/2.5.35-mm1/broken-out/">http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.35/2.5.35-mm1/broken-out/</a></p>

<p>Caution:
       XFS doesn't support writev interface yet. NFS write on XFS might
       slow down with No.8 patch. I wish SGI guys will implement it.</p>

</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va07-nfsbigbuf-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va07-nfsbigbuf-2.5.36.patch</a><br />
This makes NFS buffer much bigger (60KB).
60KB buffer is the same to 32KB buffer for linux-kernel as both of them
require 64KB chunk.</li>

<li><a href="ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va09-zerocopy-tempsendto-2.5.36.patch">ftp://ftp.valinux.co.jp/pub/people/taka/2.5.36/va09-zerocopy-tempsendto-2.5.36.patch</a><br />
If you don't want to use sendfile over UDP yet, you can apply it instead of No.1
and No.2 patches.</li>

</ol>

</p>

</quote>

</section>

<section
  title="contest Benchmark Results Comparing 2.5.34 With 2.5.36"
  subject="[BENCHMARK] contest results for 2.5.36"
  archive=""
  posts="10"
  startdate="18 Sep 2002 06:46:26 -0800"
  enddate="19 Sep 2002 05:20:07 -0800"
>
<topic>Virtual Memory</topic>

<p>Con Kolivas reported:</p>

<quote who="Con Kolivas">

<p>Here are the latest results with 2.5.36 compared with 2.5.34</p>

<pre>No Load:
Kernel                  Time            CPU
2.4.19                  68.14           99%   
2.4.20-pre7             68.11           99%
2.5.34                  69.88           99%   
2.4.19-ck7              68.40           98%
2.4.19-ck7-rmap         68.73           99%   
2.4.19-cc               68.37           99%
2.5.36                  69.58           99%

Process Load:
Kernel                  Time            CPU
2.4.19                  81.10           80%
2.4.20-pre7             81.92           80%
2.5.34                  71.39           94%
2.5.36                  71.80           94%

Mem Load:
Kernel                  Time            CPU   
2.4.19                  92.49           77%   
2.4.20-pre7             92.25           77%
2.5.34                  138.05          54%
2.5.36                  132.45          56%

IO Halfmem Load:
Kernel                  Time            CPU
2.4.19                  99.41           70%   
2.4.20-pre7             99.42           71%
2.5.34                  74.31           93%
2.5.36                  94.82           76%

IO Fullmem Load:
Kernel                  Time            CPU
2.4.19                  173.00          41%
2.4.20-pre7             146.38          48%
2.5.34                  74.00           94%
2.5.36                  87.57           81%</pre>

<p>The full log for 2.5.34 is:</p>

<pre>noload Time: 69.88  CPU: 99%  Major Faults: 247874  Minor Faults: 295941
process_load Time: 71.39  CPU: 94%  Major Faults: 204811  Minor Faults: 256001
io_halfmem Time: 74.31  CPU: 93%  Major Faults: 204019  Minor Faults: 255284
Was writing number 4 of a 112Mb sized io_load file after 76 seconds
io_fullmem Time: 74.00  CPU: 94%  Major Faults: 204019  Minor Faults: 255289
Was writing number 2 of a 224Mb sized io_load file after 98 seconds
mem_load Time: 138.05  CPU: 54%  Major Faults: 204107  Minor Faults: 255695</pre>

<p>and for 2.5.36 is:</p>

<pre>noload Time: 69.58  CPU: 99%  Major Faults: 242825  Minor Faults: 292307
process_load Time: 71.80  CPU: 94%  Major Faults: 205009  Minor Faults: 256150
io_halfmem Time: 94.82  CPU: 76%  Major Faults: 204019  Minor Faults: 255214
Was writing number 6 of a 112Mb sized io_load file after 104 seconds
io_fullmem Time: 87.57  CPU: 81%  Major Faults: 204019  Minor Faults: 255312
Was writing number 3 of a 224Mb sized io_load file after 119 seconds
mem_load Time: 132.45  CPU: 56%  Major Faults: 204115  Minor Faults: 255234</pre>

<p>As you can see, going from 2.5.34 to 2.5.36 has had a minor improvement in
response under memory loading, but a drop in response under IO load. The log
shows more was written by the IO load during benchmarking in 2.5.36 The values
are different from the original 2.5.34 results I posted as there was a problem
with the potential for loads overlapping, and doing the memory load before
others made for heavy swapping afterwards.</p>

<p>contest has been upgraded to v0.34 with numerous small changes and a few fixes.
It can be downloaded here:</p>

<p><a href="http://contest.kolivas.net">http://contest.kolivas.net</a></p>

</quote>

</section>

<section
  title="Linux 2.4.20-pre2-ac2 Released"
  subject="Linux 2.4.20-pre7-ac2"
  archive=""
  posts="5"
  startdate="18 Sep 2002 13:33:43 -0800"
  enddate="19 Sep 2002 07:12:25 -0800"
>
<topic>Disks: IDE</topic>
<topic>FS: JFS</topic>
<topic>Kernel Release Announcement</topic>
<topic>USB</topic>

<mention>Hugh Dickins</mention>
<mention>Joel Becker</mention>
<mention>Andre Hedrick</mention>
<mention>Ivan Kokshaysky</mention>
<mention>Steven Cole</mention>

<p>Alan Cox announced 2.4.20-pre7-ac2 and said:</p>

<quote who="Alan Cox">

<p>Ok thats the worst of the queue cleared. I still need to sort
out the JFS module cond_resched stuff. This kernel also reports
itself as -ac1. I know, but I only just noticed..</p>

<p>Linux 2.4.20-pre7-ac2</p>

<p>

<ul>

<li>Fix mtd glitch                                  (Art Haas)</li>
<li>Updated Configure.help entries                  (Steven Cole)  </li> 
<li>Configurable core file naming                   (Jes Klinke)</li>
<li>layer updates                               (Ivan Kokshaysky)</li>
<li>Fixing missing hard_cur_sectors assignment
on legacy ide disk path                         (Andre Hedrick)</li>
<li>Remove _p form I/O helpers                      (Andre Hedrick)</li>
<li>Remove all the ifdef stuff from ide-iops        
        This means if you have a device needing delays (we don't
        in our tree right now) you should register a new set of
        delaying iops yourself. That keeps the crud in the afflicted
        code not in the core. No functionality actually removed I believe
                                                        (me)</li>
<li>IDE taskfile diag breakages fix                 (Andre Hedrick)</li>
<li>CMD648 Ultra DMA mask setup                     (Andre Hedrick)</li>
<li>PDC202xx-old cleanuops - use dma_master address (Andre Hedrick)</li>
<li>Test tg3 fix                                    (Dave Miller)</li>
<li>Add SETTIMEOUT to wafer5823 watchdog            (Joel Becker)  </li>
<li>Add Motorola TimePort to USB ACM idents         (Andrew Meredith)</li>
<li>Fix get_user checks in sc520_wdt, shwdt,
        sc1200wdt, advantechwdt, alim7101, machzwdt,
        eurotechwdt, wdt_pci, w83877f_wdt watchdogs     (Joel Becker)</li>
<li>Fix piix build I hope                           (me)</li>
<li>Give tmpfs directories a size to avoid
        confusing broken apps                           (Hugh Dickins)</li>

</ul>

</p>

</quote>

</section>

<section
  title="Supporting Large Numbers Of Threads (Continued)"
  subject="[patch] generic-pidhash-2.5.36-D4, BK-curr"
  archive=""
  posts="28"
  startdate="18 Sep 2002 18:54:46 -0800"
  enddate="20 Sep 2002 09:11:55 -0800"
>
<topic>SMP</topic>
<topic>Version Control</topic>

<p>Ingo Molnar announced:</p>

<quote who="Ingo Molnar">

<p>the attached patch is a significantly cleaned up version of the generic
pidhash patch, against BK-curr. Changes:</p>

<p>

<ul>

<li>merged the pidhash and id-hash concepts into a single 'generic
   pidhash' thing.</li>

<li>unified kernel/pid.c and kernel/idtag.c into kernel/pid.c.</li>

<li>eliminated the pidhash lock.</li>

<li>

<p>simplified the use of the generic pidhash, in most cases we simply
   iterate over a given PID 'type' (or class):</p>

<pre>       for_each_task_pid(current-&gt;session, PIDTYPE_SID, p, l, pid)
               p-&gt;tty = NULL;</pre>

<p>   there's no get_tag()/put_tag() anymore, just simple loops.</p>

</li>

<li>fixed a number of bugs that caused inconsistent pid hashing. Added two
   bugchecks that catch all cases when the pidhash gets out of sync with
   the pidmap.</li>

<li>removed the per-user task-list changes, it will be done in a separate
   patch.</li>

<li>removed the PIDTYPE_TGID class, it's not necessary anymore with the
   latest threading changes in 2.5.35.</li>

<li>lots of other cleanups and simplifications.</li>

</ul>

</p>

<p>the patch is stable in both UP and SMP tests.</p>

<p>performance and robustness measurements:</p>

<p>thread creation+destruction (full) latency is the one that is most   
sensitive to the PID allocation code. I've done testing on a 'low end
server' system with 1000 tasks running, and i've also done 5000, 10000 and
50000 (inactive) threads test. In all cases pid_max is at a safely large
value, 1 million, the PID fill ratio is 1% for the 10K threads test, 0.1%
in the 1000 threads test.</p>

<p>i created and destroyed 1 million threads, in a serial way:</p>

<p>    ./perf -s 1000000 -t 1 -r 0 -T --sync-join</p>

<p>4 of such measurements were running at once, to load the dual-P4 SMP box.
All CPUs were 100% loaded during the test. Note that pid_max and the
number of threads created is 1 million as well, this is to get a fair
average of passing the whole PID range.</p>

<p>BK-stock gives the following results:</p>

<pre>        # of tasks:             250     1000    5000    10000   50000
        -------------------------------------------------------------
        4x 1m threads (sec):    21.2    23.0    47.4    [NMI]   [NMI]</pre>

<p>the results prove that even this extremely low PID space fill rate causes
noticeable PID allocation overhead. Things really escallate at 10000
threads, the NMI watchdog triggered very quickly (ie. an irqs-off latency
of more than 5 seconds happened). The results would have been well above
200 seconds. Even in the 5000 threads test the system was occasionally
very jerky, and probably missed interrupts as well.</p>

<p>Note that the inactive threads (1K, 5K, 10K and 10K threads) were using a
consecutive PID range, which favors the get_pid() algorithm, as all
cachemisses will be concentrated into one big chunk, and ~0.95 million
PIDs can be allocated without any interference afterwards. With a more
random distribution of PIDs the overhead is larger.</p>

<p>BK+patch gives the following results:</p>

<pre>        # of tasks:             250     1000    5000    10000   50000
        -------------------------------------------------------------
        4x 1m threads (sec):    23.8    23.8    24.1    25.5    27.7</pre>

<p>ie. thread creation performance is stable, it increases slightly, probably
due to hash-chains getting bigger. The catastrophic breakdown in
performance is solved.</p>

<p>but i'm still not happy about the 250 tasks performance of the generic
pidhash - it has some constant overhead. It's not noticeable in fork
latencies though. I think there are still a number of performance
optimizations possible that we can do.</p>

<p>(i have not attempted to measure the improvement in those cases where the
for_each_task loop was eliminated - it's no doubt significant.)</p>

</quote>

<p>Linus Torvalds said, <quote who="Linus Torvalds">Hmm.. I think I like
it.</quote> He did have some objections, and after some debate, Ingo posted
a new version, saying:</p>

<quote who="Ingo Molnar">

<p>i've attached the latest version of the generic pidhash patch. The biggest  
change is the removal of separately allocated pid structures: they are now
part of the task structure and the first task that uses a PID will provide
the pid structure. Task refcounting is used to avoid the freeing of the  
task structure before every member of a process group or session has
exited.</p>

<p>this approach has a number of advantages besides the performance gains.   
Besides simplifying the whole hashing code significantly, attach_pid() is
now fundamentally atomic and can be called during create_process() without
worrying about task-list side-effects. It does not have to re-search the
pidhash to find out about raced PID-adding either, and attach_pid()
cannot fail due to OOM. detach_pid() can do a simple put_task_struct()
instead of the kmem_cache_free().</p>

<p>the only minimal downside is the potential pending task structures after
session leaders or group leaders have exited - but the number of orphan
sessions and process groups is usually very low - and even if it's higher,
this can be regarded as a slow execution of the final deallocation of the
session leader, not some additional burden.</p>

<p>[Benchmark results comparing stock kernel against patched kernel come
after the Changelog.]</p>

<p>Changes since -D4:</p>

<p>

<ul>

<li>remove the tty_io.c changes.</li>

<li>remove stale change from include/asm-i386/types.h</li>

<li>add list_for_each_noprefetch() to list.h, for all those list users who
   know that in the majority of cases the list is going to be short.</li>

<li>reorganize struct pid: remove the type field, add the task pointer.</li>

<li>reorganize pid_link: remove the 'nr' field, add the struct pid field.</li>

<li>thread-exit optimization: remove the tsk->real_timer only if it was
   pending.</li>

<li>thread-create optimization: reuse the task_cache if existent. Use
   atomic ops to manipulate it, so that thread-create can access it from
   outside of the tasklist lock.</li>

<li>remove the pid_cache SLAB cache.</li>

<li>simplify and speed up attach_pid(): no need to drop the lock, look up
   the pid only once, and no failure path.</li>

<li>speed up detach_pid(): put_task_struct() instead of kmem_cache_free().</li>

<li>merge pidhash_init() into pid_init(). Call it from main.c only.</li>

<li>allocate not only the PID 0 bitmap slot, but also hash it into all
   three hashes to make sure no-one tries to reuse it.</li>

<li>cleanups, code simplifications.</li>

</ul>

</p>

<p>Performance:</p>

<p>single-thread create+exit latency (full latency, including the
release_task() overhead) on a UP 525 MHz PIII box:</p>

<pre>        stock BK-curr
        -------------
        -&gt; 3864 cycles [7.025455 usecs]

        BK-curr + generic-pidhash-J2
        ----------------------------
        -&gt; 3430 cycles [6.236364 usecs]</pre>

<p>ie. the patched kernel is 12% faster than the stock kernel. Most of the
improvement is due to the fork.c and exit.c optimizations.</p>

<p>Note that this is the best-possible benchmark scenario for the old PID
allocator: the new PID allocator's best-case latency is burdened by the
fact that it avoids worst-case latencies, and its average latency is
independent of layout of the PID space. Yesterday's test that proved the
old allocator's high sensitivity to the PID allocation rate and patterns
is still valid.</p>

<p>i've compiled, booted &amp; tested the patch on UP and SMP x86 as well.</p>

</quote>

<p>Linus said:</p>

<quote who="Linus Torvalds">

<p>Ok, applied.</p>

<p>I'm also applying the session handling changes to tty_io.c as a separate
changeset, since the resulting code is certainly cleaner and reading
peoples areguments and looking at the code have made me think it _is_
correct after all.</p>

<p>And as a separate changeset it will be easier to test and perhaps revert
on demand.</p>

</quote>

</section>

<section
  title="Module Updates"
  subject="[PATCH] Updated module rewrite."
  archive=""
  posts="1"
  startdate="19 Sep 2002 04:58:45 -0800"
>
<topic>Backward Compatibility</topic>

<p>Rusty Russell announced:</p>

<quote who="Rusty Russell">

<p>Convenient mega-patch:<br />
<a href="http://www.kernel.org/pub/linux/people/rusty/MODULE-X86-19-09-2002.2.5.36.diff.gz">http://www.kernel.org/pub/linux/people/rusty/MODULE-X86-19-09-2002.2.5.36.diff.gz</a></p>

<p>You'll want the 0.4 version of module init tools:  <br />
<a href="http://www.kernel.org/pub/linux/people/rusty/module-init-tools-0.4.tar.gz">http://www.kernel.org/pub/linux/people/rusty/module-init-tools-0.4.tar.gz</a></p>

<p>Changes (roughly, it's been busy here):</p>

<p>

<ul>

<li>Updated to 2.5.36</li>
<li>bigrefs and modules use a non-schedule-intrusive synchronize_kernel()
<ul>
<li>Makes it almost impossible to safely control own refcnts.</li>
</ul>
</li>
<li>Mark unsafe modules at runtime   </li>
<li>Experimental -F option to unload unconditionally</li>
<li>bigrefs use atomics</li>
<li>0.4 module init tools do backwards compatibility exec of xxx.old</li>
<li>Probably lots of other things I forgot.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Linux 2.4.20-pre7-ac3 Released"
  subject="Linux 2.4.20-pre7-ac3"
  archive=""
  posts="5"
  startdate="19 Sep 2002 09:28:11 -0800"
  enddate="20 Sep 2002 02:47:12 -0800"
>
<topic>Braille</topic>
<topic>FS: JFS</topic>
<topic>Hot-Plugging</topic>
<topic>PCI</topic>
<topic>USB</topic>

<mention>Jens Axboe</mention>
<mention>Dominik Brodowski</mention>

<p>Alan Cox announced:</p>

<quote who="Alan Cox">

<p>I still need to sort out the JFS cond_resched</p>

<p>Linux 2.4.20-pre7-ac3</p>

<p>

<ul>

<li>Clean up rlimit bits for generic_file_write     (Solar Designer)</li>
<li>USBLCD update</li>
<li>USB header updates                              (Greg Kroah Hartmann)</li>
<li>USB serial fixes                                (Greg Kroah Hartmann)</li>
<li>Revert incorrect vlan.c change                  (Dave Miller)</li>
<li>Interrupt.h needs asm/system for smb_mb         (Dominik Brodowski)</li>
<li>Fix signed/unsigned in usblp_write              (Silvio Cesare)</li>
<li>Fix signed/unsigned in mdc800                   (Silvio Cesare)</li>
<li>Fix 64 to 32bit chop in brlvger                 (Silvio Cesare)</li>
<li>Fix unterminated strchr in ieee1394             (Silvio Cesare)</li>
<li>Fix signed/unsigned in apm_emu                  (Silvio Cesare)</li>
<li>Put allocation sanity checks into ibm hotplug   (Silvio Cesare)</li>
<li>Use unsigneds in the amdtp buffering            (Silvio Cesare)</li>
<li>Fix typo in i810_audio                          (Juergen Sawinksi)</li>
<li>Fix the initdata in the PCI ide                 (Jens Axboe, me)</li>

</ul>

</p>

</quote>

</section>

<section
  title="Linux Trace Toolkit 0.9.6-pre1 Released"
  subject="LTT 0.9.6pre1: Lockless logging, ARM, MIPS, etc."
  archive=""
  posts="1"
  startdate="19 Sep 2002 12:10:22 -0800"
>
<topic>Real-Time: RTAI</topic>
<topic>SMP</topic>

<mention>Frank Rowand</mention>
<mention>Tom Zanussi</mention>

<p>Karim Yaghmour announced:</p>

<quote who="Karim Yaghmour">

<p>A new development version of LTT, 0.9.6pre1, is now available.
At this point, LTT supports 6 architectures:  
i386, PPC, S/390, ARM, SuperH, and MIPS.</p>

<p>Here's what's in 0.9.6pre1:</p>

<p>

<ul>

<li>Lockless logging implementation a-la K42 by Tom Zanussi (IBM).
  This was added to the 2.5.x patch series only.  </li>
<li>ARM port by Frank Rowand (MontaVista).</li>
<li>MIPS port update/cleanup by Frank Rowand (MontaVista).</li>
<li>Autotools update by Andrea Cisternino (ST Micro) and Frank
  Rowand (MontaVista)</li>
<li>Added RTAI install script by Klaas Gadeyne to Examples/ directory.</li>
<li>Added arch/mips/timer.c instrumentation by Bino Mathew (Wipro).</li>
<li>Fixes for keeping track of event details by Andreas Heppel (Sysgo).</li>
<li>Fixes for SMP trace analysis by Frank Rowand (MontaVista).</li>
<li>Moved max limit of IRQ to 256 for XScale by Frank Rowand (MontaVista).</li>

</ul>

</p>

<p>The lockless logging feature is very important because LTT can now
trace a system without using any spinlocks or IRQ disabling whatsoever.
Though this feature is currently only in the 2.5.35 patch included with
LTT, it will be part of all patches for kernels past 2.5.35. At this
time, preliminary testing of the 2.5.35 patch included in 0.9.6pre1
has shown some minor issues which will result in lockups. These issues
will be addressed in a patch I will soon be releasing for 2.5.36.</p>

<p>This is a development release, so the usual warnings apply.   </p>

<p>You will find 0.9.6pre1 here:<br />
<a
href="http://opersys.com/ftp/pub/LTT/">http://opersys.com/ftp/pub/LTT/</a></p>

<p>LTT's web site is here:<br />
<a href="http://www.opersys.com/LTT">http://www.opersys.com/LTT</a></p>

</quote>

</section>

<section
  title="Support For GMIIPHY And GMIIREG ioctls In 2.4's 8139cp Ethernet Driver"
  subject="[PATCH] 8139cp: SIOCGMIIPHY and SIOCGMIIREG"
  archive=""
  posts="1"
  startdate="19 Sep 2002 17:49:12 -0800"
>
<topic>Ioctls</topic>
<topic>Networking</topic>

<p>Felipe W Damasio announced:</p>

<quote who="Felipe W Damasio">

<p>This patch adds support to the GMIIPHY and GMIIREG ioctls to the 2.4
version of the 8139cp ethernet driver.</p>

<p>This is required so we don't break apps (eg mii-diag, mii-tools) who rely
on these ioctls to get the NIC's settings.   </p>

<p>Patch against 2.4.20-pre7.</p>

<p>Please consider pulling it from:</p>

<p><a
href="http://cscience.org/~felipewd/linux/patches-fwd/2.4/8139cp-gmii.patch">http://cscience.org/~felipewd/linux/patches-fwd/2.4/8139cp-gmii.patch</a></p>

</quote>

</section>

<section
  title="AccessFS 0.4 Released For 2.5.34"
  subject="[ANNOUNCE][PATCH] accessfs v0.4 - 2.5.34"
  archive=""
  posts="1"
  startdate="20 Sep 2002 03:33:39 -0800"
>
<topic>FS: accessfs</topic>

<p>Olaf Dietsche announced:</p>

<quote who="Olaf Dietsche">

<p>Accessfs is a new file system to control access to system resources.
Currently it controls access to inet_bind() with ports &lt; 1024 only.</p>

<p>With this patch, there's no need anymore to run internet daemons as
root. You can individually configure which user/program can bind to ports
below 1024.</p>

<p>For further information see the help text.</p>

<p>I adapted accessfs to linux 2.5.34.</p>

<p>The patch is attached below. It is also available at:<br />
&lt;<a
href="http://home.t-online.de/home/olaf.dietsche/linux/accessfs-2.5.34-0.4.patch.gz">http://home.t-online.de/home/olaf.dietsche/linux/accessfs-2.5.34-0.4.patch.gz</a>&gt;</p>

<p>I did minimal testing using uml 0.58-2.5.34.</p>

</quote>

</section>

<section
  title="Linux 2.5.37 Released"
  subject="Linux 2.5.37"
  archive=""
  posts="3"
  startdate="20 Sep 2002 07:45:04 -0800"
  enddate="20 Sep 2002 09:31:32 -0800"
>
<topic>FS: driverfs</topic>
<topic>Power Management: ACPI</topic>
<topic>Virtual Memory</topic>

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

<quote who="Linus Torvalds">

<p>Lots of stuff all over the map.  Arch updates (ppc*, sparc*, x86 machine
reorg), VM merges from Andrew, ACPI updates, BIO layer updates, networking,
driverfs, build process, pid hash, you name it it's there.</p>

<p>And that probably still means I missed some stuff.</p>

</quote>

</section>

<section
  title="New ext3 Indexed-Directory Patch"
  subject="New version of the ext3 indexed-directory patch"
  archive=""
  posts="3"
  startdate="20 Sep 2002 08:41:12 -0800"
  enddate="22 Sep 2002 12:00:40 -0800"
>
<topic>Backward Compatibility</topic>
<topic>FS: ext3</topic>
<topic>Version Control</topic>

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

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

<p>I've done a bunch of hacking on the ext3 indexed directory patch, and I
believe it's just about ready for integration with the 2.5 tree.
Testing and comments are appreciated.</p>

<p>The code can be found either via bitkeeper, at:</p>

<p>        bk://extfs.bkbits.net/ext3-htree-2.4<br />
and <br />
        bk://extfs.bkbits.net/ext3-htree-2.5</p>

<p>Or for those people who want straight diffs, patches against 2.4
and 2.5 can be found at:</p>

<p><a href="http://thunk.org/tytso/linux/ext3-dxdir">http://thunk.org/tytso/linux/ext3-dxdir</a></p>

<p>Here are my Release Notes for my changes:
        (i.e., the changes from Christopher Li's port of Daniel
        Phillip's hashtree code)</p>

<p>

<ul>

<li>The Ext3 hash-tree code uses the new TEA and half-MD4 hash that ships
        with e2fsprogs 1.28</li>

<li>The code has been massively reorganized and rewritten to make it more
        maintainable.  In particular, the horrible mess which had been
        ext3_find_entry and ext3_add_entry has been broken up into
        multiple functions.  This eliminated a lot of goto's, and more
        importantly, found some memory leaks which have been eliminated.
        Some were only in the error paths, but some were in normal code
        paths that would be executed after a split, for example.</li>

<li>As a side effect of the reorganization, the ext3_find_entry() and
        ext3_readdir() paths can now support arbitrary numbers of
        indirect levels in the tree.  (The resulting code was simpler,
        too!)   The one code path that still could use some work is the
        split handling on the insert path.  Once that is generalized, we
        will be able to remove the depth restriction on the indexed tree.</li>

<li>The error handling has been cleaned up, so that they are appropriately
        reported back up to userspace, where approach.  Ext3_std_error()
        is now called when the journal routines report an error, in line
        with all of the other journalling calls in the rest of the ext3
        codebase.</li>

<li>

<p>Ext3_readdir now traverses the directory in hash sort order.  This
        (mostly) solves the requirement that readdir not return doubled
        file entries, or skip a block of files, which could happen if
        another process managed to trigger a tree split while the
        readdir operation was going on.  Unfortunately, on 32 bit
        machines, we have to use a 31-bit sort under all conditions,
        even if telldir64() is used in userspace.  This is because the
        VFS uses a single path for sys_lseek() and sys_llseek(), and so
        the ext3 code can't tell whether to send back a 32-bit value or
        a 64-bit value.  And, if we send a 64-bit positional value when
        the 32-bit lseek() was called, lseek() will bomb out.</p>

<p>        This is unfortunate, but the chances of our hitting this failure
        more are relatively small.  Since readdir (well, sys_getdents64)
        returns 4k of data at at time, that means a directory with
        400,000 entries have approximately 3,000 getdents() system
        calls, with each getdents() returning approximately 133 entries.
        In order to trigger the problem, the 31-bit hash collision
        must be positioned such that it straddles one of the 4k getdents
        blocks --- while a split operation is taking place.</p>

<p>        (If we were willing to modify the VFS layer, so that
        ext3_readdir() knew how much space was left in the filldir
        buffer, we could be even smarter about things by stopping if
        there is only space for less than all of the entries that have
        the same hash value.  I'm not entirely convinced this is
        necessary, though.  The risk is low and in the worst case, one
        or two filenames will simply be returned twice by readdir, which
        shouldn't cause problems for most applications.)</p>

</li>

<li>Ext3_readdir(), ext3_add_entry(), and ext3_find_entry() now
        automatically fall back to the old linear directory code if they
        find a indexed directory format they don't understand.  This
        allows us to add new hash versions, and/or allow the depth of
        the tree to be increased, without losing backwards compatiblity
        with deployed kernels.</li>

</ul>

</p>

</quote>

<p>Andrew Morton was very pleased with this, and asked, <quote who="Andrew
Morton">What is the status of e2fsprogs support for htree?  Is everything
covered?</quote> Theodore replied:</p>

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

<p>Almost.  E2fsck support is fully there.  With e2fsprogs 1.28, you
still need to manually set up the dir_index feature flag to convert a
filesystme to use the directory indexing feature:</p>

<p>debugfs -w -R "features dir_index" /dev/hdXX<br />
debugfs -w -R "ssv def_hash_version tea" /dev/hdXX<br />
debugfs -w -R "ssv hash_seed random" /dev/hdXX  </p>

<p>In the 1.29 release, mke2fs will create filesystems with the directory
indexing flag set by default, and tune2fs -O dir_index will do set up
the directory indexing flag and the default hash version
automatically.</p>

<p>There is also a bug in e2fsprogs 1.28 so that the -D option to e2fsck
(which optimizes all directories) has a 1 in 512 chance of corrupting
a directory, due to a fenceport error that escaped my testing.  This
will be fixed in 1.29, which should be released very shortly.</p>

<p>Folks who want to play with the latest e2fsprogs get grab it here:</p>

<p>        bk://thunk.org:5000</p>

</quote>

</section>

<section
  title="Controlling Core Dump Filenames"
  subject="[PATCH] kernel 2.4.19 &amp; 2.5.38 - coredump sysctl"
  archive=""
  posts="14"
  startdate="20 Sep 2002 12:40:39 -0800"
  enddate="23 Sep 2002 11:00:10 -0800"
>
<topic>BSD: FreeBSD</topic>
<topic>Debugging</topic>
<topic>FS: NFS</topic>

<mention>Andrew Morton</mention>

<p>Michael Sinz announced:</p>

<quote who="Michael Sinz">

<p>coredump name format control via sysctl</p>

<p>Provides for a way to securely move where core files show up and to
set the name pattern for core files to include the UID, Program,
Hostname, and/or PID of the process that caused the core dump.
This is very handy for diskless clusters where all of the core
dumps go to the same disk and for production servers where core
dumps want to be segregated from the main production disks.</p>

<p>I have again updated the patch to work with 2.4.19 and 2.5.36
kernels and am now hosting it on my web site at:</p>

<p>        http://www.sinz.org/Michael.Sinz/Linux/ </p>

<p>-- Patch background and how it works --</p>

<p>What I did with this patch is provide a new sysctl that lets you
control the name of the core file. The this name is actually a format
string such that certain values from the process can be included.
If the sysctl is not used to change the format string, the behavior
is exactly the same as the current kernel coredump behavior.</p>

<p>The default name format is set to "core" to match the current
behavior of the kernel. Old behavior of appending the PID to
the "core" name is also preserved with added logic of only doing
so if the PID is not already part of the name format.  This fully
preserves current behaviors within the system while still providing
for the full control of the format of the core file name.  Thus
current behavior is not a special case but "falls out" of the
general code when the format is set to "core".</p>

<p>The following format options are available in that string:</p>

<pre>      %P   The Process ID (current-&gt;pid)
      %U   The UID of the process (current-&gt;uid)
      %N   The command name of the process (current-&gt;comm)
      %H   The nodename of the system (system_utsname.nodename)
      %%   A "%"</pre>

<p>For example, in my clusters, I have an NFS R/W mount at /coredumps
that all nodes have access to. The format string I use is:</p>

<p>        sysctl -w "kernel.core_name_format=/coredumps/%H-%N-%P.core"</p>

<p>This then causes core dumps to be of the format:</p>

<p>        /coredumps/whale.sinz.org-badprogram-13917.core</p>

<p>I used upper case characters to reduce the chance of getting confused
with format() characters and to be somewhat simular to the mechanism
that exists on FreeBSD.</p>

</quote>

<p>Andrew Morton felt that 'sysctl -w
"kernel.core_name_format=/coredumps/%H-%N-%P.core"' was too complex; he proposed
an alternative, but Bill Davidsen replied:</p>

<quote who="Bill Davidsen">

<p>this way you can do more things with where you put your dumps,
such as using one element of this flexible method to select a directory,
where the dump directories for various applications would be on a single
NFS server, and dumps for another might be on another server, or all dumps
of a certain kind could share a filename, where only the latest dump would
be of interest (or take space).</p>

<p>The code seems to have very little overhead involved in the parse, and it
gives a good deal of flexibility to the admin. I like the idea of a sysctl
for setting the value, you don't want to have to reboot the system when an
app goes sour and you need to save more than one dump to run it down, or
need to mvoe the dump target dir somewhere with more space.</p>

<p>If you're worried about size make it a compile option, but if I (as an
admin) need any control I really want a bunch of control I can set right
now. I don't think most people will want this option, but it would be
really useful in some cases.</p>

</quote>

<p>This made sense to Andrew, and Michael was also impressed, saying,
<quote who="Michael Sinz">Ahh, I never thought of using the program name
for a directory.  That would be nice as only those programs you pre-made a
directory for would dump (as the code does not create directories).  Using the
UID for a directory name works out to separate the dumps of different users.
(And works really well too - albeit on a non-Linux platform that happens to
have a simular feature.)</quote></p>

</section>

<section
  title="Linux Hardened Device Project"
  subject="[ANNOUNCE] Linux Hardened Device Drivers Project"
  archive=""
  posts="35"
  startdate="20 Sep 2002 16:26:47 -0800"
  enddate="24 Sep 2002 15:29:23 -0800"
>
<topic>BSD</topic>
<topic>POSIX</topic>

<mention>Jeff Garzik</mention>

<p>Rob Rhoads announced:</p>

<quote who="Rob Rhoads">

<p>Project Announcement:<br />
--------------------</p>

<p>We've started a new project on sourceforge.net w/ focus
on hardening Linux device drivers for highly available
systems. This project is being worked on with folks from
OSDL's CGL and DCL projects as well.</p>

<p>Initially we've created a specification, a few kernel modules
that implement a set of driver programming interfaces, and
a sample device driver that demonstrates those interfaces.</p>

<p>We are actively soliciting involvement with others in the
Linux developer community. We need your help to make this
project relevant and useful.</p>

<p>Below I've included an overview of the hardened driver project.
By no means is this complete or final. It's just our initial
attempt at defining what is meant by the term hardened driver 
and the areas we want to focus on.</p>

<p>For additional info, please checkout the links at the bottom
of this message and the Hardened Drivers web site at
<a href="http://hardeneddrivers.sf.net">http://hardeneddrivers.sf.net</a>.</p>

<p>Hardened Driver Project Overview:<br />
--------------------------------</p>

<p>Device drivers have traditionally been a significant source of software
faults. For this reason, they are of key concern in improving the availability
and stability of the operating system. A critical element in creating Highly
Available (HA) environment is to reduce the likelihood of faults in key
drivers, a methodology called driver hardening.</p>

<p>A device driver is typically implemented with emphasis on the proper
operation of the hardware. Attention to how it will function in the event
of hardware faults is often minimal. Hardened drivers, on the other hand,
are designed with the assumption that the underlying hardware that they
control will fail. They need to respond to such failures by handling faults
gracefully, limiting the impact on the overall system. Hardened device
drivers must continue to operate when the hardware has failed (e.g. allow
device fail-over), and must not allow the propagation of corrupt data from
a failed device to other components of the system.</p>

<p>Hardened device drivers must also be active participants in the recovery
of detected faults, by locally recovering them or by reporting them to
higher-level system management software that subsequently instructs the
driver to take a specific action.</p>

<p>The goal of a hardened driver is to provide an environment in which
hardware and software failures are transparent to the applications using
their services, where possible. The way to effectively achieve this goal is
to analyze a driver's software design and implement appropriate changes to
improve stability, reliability and availability, and to provide instrumentation
for management middleware.</p>

<p>We believe that improving driver stability and reliability includes such
measures as ensuring that all wait loops are limited with a timeout, validating
input and output data and structuring the driver to anticipate hardware errors.
Improving availability includes adding support for device hot swapping and
validating the driver with fault injection.  Instrumentation for management
middleware includes functions such as reporting of statistical indicators
and logging of pertinent events to enable postmortem analysis in the event
of a failure.</p>

<p>To minimize instability contributed by device drivers and to enhance the
availability of HA systems, we've attempted to define a set of requirements
that a device driver should adhere to in order to be considered a hardened
driver. We then define different hardening traits and the required programming
interfaces to support these hardening traits.</p>

<p>We've identified four areas in which drivers can be hardened:
<ul>
<li>Hardening with code robustness</li>
<li>Hardening with event logging</li>
<li>Hardening with diagnostics</li>
<li>Hardening with resource monitoring and statistics</li>
</ul>
</p>

<p>We've also identified some key areas we feel are most critical
to overall system stability and plan to focus initial hardening
efforts on drivers for network interface cards, physical storage,
and logical storage.</p>

<p>Project Links:<br />
-------------</p>

<p>

<ul>

<li>The Driver Hardening website:<br />
  <a href="http://hardeneddrivers.sourceforge.net">http://hardeneddrivers.sourceforge.net</a></li>

<li>The SourceForge project related info:<br />
  <a href="http://sourceforge.net/projects/hardeneddrivers">http://sourceforge.net/projects/hardeneddrivers</a></li>

<li>Hardened Drivers Mailing List Info (subscribe here):<br />
  <a href="http://lists.sourceforge.net/mailman/listinfo/hardeneddrivers-discuss">http://lists.sourceforge.net/mailman/listinfo/hardeneddrivers-discuss</a></li>

</ul>

</p>

</quote>

<p>There was a lot of criticism of the whole idea on linux-kernel. Jeff Garzik
said the goals were lofty enough, but that it was absurd to try to formalize the
'hardening' process, without taking into account the fact that the core, people
had to be responsible for making sure the code worked properly.</p>

<p>Elsewhere, Andre Hedrick felt even the goals were pretty bad. He said:</p>

<quote who="Andre Hedrick">

<p>Obvious this is a way for the telecom folks to get something for free that
really should be paid for by funding the project with CASH.  Or funding
(a) startup(s) related to generating such support.</p>

<p>Regardless, it takes (fill in the blank) to boldly ask people to add APIs
for an industry who is only interested in using and not contributing.
Prove that all the stuff which is going to be plugged into these
security-hole^Wbug-generators^Wfeatures will be scheduled for open source.
Or this another attempt to try and take over the license and shove BSD
down the piles?</p>

</quote>

<p>Rob replied, <quote who="Rob Rhoads">This project is open to anyone who
wants to participate and is being paid for by Intel and a host of other
companies. The idea is to enable Linux to play in the Carrier space with all
the work given away under the GPL.</quote> But Andre said, <quote who="Andre
Hedrick">Explain how it is paid and to whom?</quote> There was no reply.</p>

<p>Greg KH took a look at the published specification, and gave some point by
point comments, then summarized:</p>

<quote who="Greg KH">

<p>I think that a lot of people have spent a lot of time in creating this
document, and the surrounding code that matches this document.  I really
wish that a tiny bit of that effort had gone into contacting the Linux kernel
development community, and asking to work with them on a project like this.
Due to that not happening, and by looking at the resultant spec and code, I'm
really afraid the majority of that time and effort will have been wasted.</p>

<p>What do I think can be salvaged?  Diagnostics are a good idea, and I
think they fit into the driver model in 2.5 pretty well.  A lot of kernel
janitoring work could be done by the CG team to clean up, and harden (by
applying the things in section 2) the existing kernel drivers.  That effort
alone would go a long way in helping the stability of Linux, and also introduce
the CG developers into the kernel community as active, helping developers.
It would allow the CG developers to learn from the existing developers, as we
must be doing something right for Linux to be working as well as it does :)</p>

<p>Also, open specs for the hardware the CG members produce, to allow existing
kernel drivers to be enhanced (instead of having to be reverse engineered),
and new kernel drivers to be created, would also go a long way in helping
out both the CG's members and the entire Linux community's cause of having
a robust, stable kernel be achived easier.  Closed specs, and closed drivers
do not help anyone.</p>

</quote>

<p>Patrick Mochel agreed with Greg's first paragraph, saying:</p>

<quote who="Patrick Mochel">

<p>in order to gain the support of kernel developers, or even the
blessing of a few, you should be working with them on the design from the
beginnging.</p>

<p>Designing APIs is hard. Doing it well is very hard. I'm not claiming I've
done a stellar job, but I have at least learned that. I've made a lot of
poor design decisions, many of which are also evident in your code
descriptions and examples. I can't tell you how many times I've rewritten
things over and over and over because someone hated them (usually Linus or
Greg).</p>

<p>There are people that are willing to help, as we are trying to do. But,
it's much easier if you do things gradually and get that help from the
beginning.</p>

</quote>

<p>At one point Rob said elsewhere:</p>

<quote who="Rob Rhoads">

<p>I appreciate all the feedback. Based on the wide variety of ideas/comments,
it looks like I need to go back and incorporate these ideas into the document,
potentially changing areas in major ways where appropriate.</p>

<p>Rather than bog down this mailing list with exchanges, I would like to
move this discussion to the hardened driver mailing list.  Please don't feel
like I'm ignoring your feedback--just moving the forum.</p>

<p>An underlying theme tends to revolve around the binding of the concepts
of 'hardening' and RAS features being added to drivers.  We will be looking
into splitting these two different approaches out from this singular document
and into their appropriate locations.</p>

</quote>

<p>He set up a new mailing list for the discussion, but Greg said this was
a bad idea. Major discussions of kernel drivers should be on linux-kernel,
he said. Rob dove in, saying:</p>

<quote who="Rob Rhoads">

<p>First throw away any idea of a spec. That was a bad idea. :)</p>

<p>Next, turn the first section, "Stability &amp; Reliability" of our original
doc into a "Driver Hardening HOWTO". It would be a list of characteristics
that all good drivers should have, packed with examples to back it up.</p>

<p>BTW, by no means did I or anyone involved on this project, ever
mean to imply that the current drivers in the kernel are "bad".
Rather, I'd like to capture a list of the best practices and
document them. In any event our current list needs to be
strengthened with concrete examples. My thinking is that we
should work with the Kernel Janitor project. This is where
Intel can probably really help out.</p>

<p>The section on Instrumentation should be broken up and each piece
dealt with separately as separate project. Most likely killed outright
or as part of existing efforts. I see this section as not having
anything to do with driver hardening and more to do with driver RAS.</p>

<p>POSIX Event Logging-- is a dead issue. The mailing list feedback
is making that point very clear, many thanks. The current
thread on an alternative, seems like there is some sort of need
for event logging. Whatever the final decision that the Linux
community decides, we'll do.</p>

<p>There seems to be a desire to have some sort of driver diagnostics.
We can work on that with the existing linux-diag project.</p>

<p>Statistics needs to be debated on its own merits. There are some
arguments for keeping it, but I think that stats could be better
handled in user-space and NOT kernel space. IMHO it's not driver
hardening, therefore it's a separate project.</p>

<p>Third, the most of the section on High Availability should just
be axed. The big exception being "fault injection testing".</p>

<p>I see value in keeping FI testing. I think that getting FI
tools into the hands of developers would be worthwhile. Why?
Because letting people do more complicated testing, produces
better code. I think there is room for us to work on a set of
FI tools.</p>

</quote>

<p>Greg liked these ideas, and Rob said he'd get on it.</p>

</section>

<section
  title="CPUFreq Released For 2.5.37"
  subject="cpufreq for 2.5.37 now available"
  archive=""
  posts="1"
  startdate="21 Sep 2002 03:06:41 -0800"
>
<topic>Hyperthreading</topic>

<p>Dominik Brodowski announced:</p>

<quote who="Dominik Brodowski">

<p>Updated patches for CPU frequency and voltage scaling support are now  
available at</p>

<p><a href="http://www.brodo.de/cpufreq/">http://www.brodo.de/cpufreq/</a></p>

<p>Changes since the version for 2.5.36:</p>

<p>

<ul>

<li>longrun.c: use LRTI for lowest frequency detection if available</li>
<li>p4-clockmod.c: allow to run rdmsr/wrmsr on both hyperthreading cores</li>

</ul>

</p>

<p>complete patch for kernel 2.5.37:<br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.5.37-1.gz">http://www.brodo.de/cpufreq/cpufreq-2.5.37-1.gz</a></p>

<p>step-by-step patches for kernel 2.5.37:<br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.5.37-core-1">http://www.brodo.de/cpufreq/cpufreq-2.5.37-core-1</a><br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.5.37-i386-core-1">http://www.brodo.de/cpufreq/cpufreq-2.5.37-i386-core-1</a><br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.5.37-i386-drivers-1">http://www.brodo.de/cpufreq/cpufreq-2.5.37-i386-drivers-1</a><br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.5.37-doc-1">http://www.brodo.de/cpufreq/cpufreq-2.5.37-doc-1</a><br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.5.37-24api-1">http://www.brodo.de/cpufreq/cpufreq-2.5.37-24api-1</a></p>

<p>backport to kernel 2.4.19/2.4.20-pre7:<br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.4.19-3.gz">http://www.brodo.de/cpufreq/cpufreq-2.4.19-3.gz</a><br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.4.20-pre7-3.gz">http://www.brodo.de/cpufreq/cpufreq-2.4.20-pre7-3.gz</a></p>

<p>This cpufreq version is included in 2.4.-ac patchsets since
2.4.20-pre7-ac1, a few updates for -ac2 and -ac3 can be found here:<br />
<a href="http://www.brodo.de/cpufreq/cpufreq-2.4.20-pre7-ac2-1">http://www.brodo.de/cpufreq/cpufreq-2.4.20-pre7-ac2-1</a></p>

<p>Comments welcome; please ensure that the cpufreq development list at
cpufreq@www.linux.org.uk receives a copy of all comments.</p>

</quote>

</section>

<section
  title="Problem Report Status For 2.5 For September 21"
  subject="2.5 Problem Report Status"
  archive=""
  posts="3"
  startdate="21 Sep 2002 14:52:45 -0800"
  enddate="21 Sep 2002 15:26:34 -0800"
>
<topic>FS: JFS</topic>
<topic>Software Suspend</topic>
<topic>Version Control</topic>

<p>Thomas Molina reported:</p>

<quote who="Thomas Molina">

<p>I had a system crash, so this may have some holes in it.  My backup was a
week old since this is my testing system.</p>

<p>The most up-to-date version of this report can be found on my web page at:<br />
<a href="http://members.cox.net/tmolina/kernprobs/status.html">http://members.cox.net/tmolina/kernprobs/status.html</a></p>

<pre>              2.5 Kernel Problem Reports as of 21 Sep
     Problem Title                  Status               Discussion
 1   BUG at kernel/sched.c          open                 15 Sep 2002
 2                                  another report       13 Sep 2002
 3                                  fix under discussion 18 Sep 2002
 4   lockups under X                possible fix in bk   21 Sep 2002
 5                                  additional reports   18 Sep 2002
 6   2.5.37 won't run X             open                 21 Sep 2002
 7   KVM/Mouse problem              open                 20 Sep 2002
 8   AIC7XXX boot failure           open                 20 Sep 2002
 9   Dead loop on virtual device lo open                 18 Sep 2002
10   nmi_watchdog problem           open                 19 Sep 2002
11   JFS software suspend problem   open                 18 Sep 2002
12   preempt related lockup         possible fix in bk   20 Sep 2002
13   ide double init                open                 19 Sep 2002
14   DRM/XFree issue                open                 18 Sep 2002
15   oops in lock_get_status        open                 18 Sep 2002
16                                  additional reports   20 Sep 2002
17   scheduling while atomic oops   possible fix in bk   20 Sep 2002

References

   1. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103166646702935&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103166646702935&amp;w=2</a>
   2. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103184045102066&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103184045102066&amp;w=2</a>
   3. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103220232808356&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103220232808356&amp;w=2</a>
   4. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103170969316930&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103170969316930&amp;w=2</a>
   5. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103237870212293&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103237870212293&amp;w=2</a>
   6. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103260318814826&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103260318814826&amp;w=2</a>
   7. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103170259412602&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103170259412602&amp;w=2</a>
   8. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103250741229189&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103250741229189&amp;w=2</a>
   9. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103238248416900&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103238248416900&amp;w=2</a>
  10. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103241914811779&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103241914811779&amp;w=2</a>
  11. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103236777430692&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103236777430692&amp;w=2</a>
  12. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103255645120076&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103255645120076&amp;w=2</a>
  13. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103242818519195&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103242818519195&amp;w=2</a>
  14. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103238121815285&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103238121815285&amp;w=2</a>
  15. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103237662509801&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103237662509801&amp;w=2</a>
  16. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103244657605155&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103244657605155&amp;w=2</a>
  17. <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103255596119498&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103255596119498&amp;w=2</a></pre>

</quote>

</section>

<section
  title="Floppy Driver Broken In 2.5.37"
  subject="2.5.37 broke the floppy driver"
  archive=""
  posts="8"
  startdate="21 Sep 2002 15:01:57 -0800"
  enddate="23 Sep 2002 12:04:05 -0800"
>
<topic>Version Control</topic>

<mention>Jens Axboe</mention>
<mention>Alexander Viro</mention>
<mention>Thomas Molina</mention>

<p>Mikael Pettersson reported that doing a 'dd bs=8k if=bzImage of=/dev/fd0'
under 2.5.37 <quote who="Mikael Pettersson">makes the kernel print "blk:
request botched" and a few seconds later instantly reboot the machine (w/o
any further messages).</quote> He could reproduce this at will, but 2.5.36
worked fine. Thomas Molina confirmed that he could duplicate this on 2.5.37-bk
as well as 2.5.38-bk. Jens Axboe posted a patch, and Mikael replied, <quote
who="Mikael Pettersson">It's an improvement (the kernel doesn't reboot as
soon as I read or write /dev/fd0), but there are still some strange things
going on with floppy in 2.5.38.</quote> They hunted around a bit more,
and Alexander Viro identified part of the problem as his own fault; but a
conclusive solution did not emerge in the discussion.</p>

</section>

<section
  title="MMU-Less Patches 2.5.38-uc0 Released"
  subject="[PATCH]: linux-2.5.38uc0 (MMU-less support)"
  archive=""
  posts="1"
  startdate="22 Sep 2002 07:11:01 -0800"
>

<p>Greg Ungerer announced:</p>

<quote who="Greg Ungerer">

<p>Latest MMUless support patches, against linux-2.5.38,
are up at:</p>

<p><a href="http://www.uclinux.org/pub/uClinux/uClinux-2.5.x">http://www.uclinux.org/pub/uClinux/uClinux-2.5.x</a>.</p>

<p>The patch file is linux-2.5.38uc0.patch.gz</p>

<p>After the hiccup that was 2.5.17 this one patched pretty
easily. Happy hacking :-)</p>

</quote>

</section>

<section
  title="Wolk 3.6 Released"
  subject="[ANNOUNCE] WOLK v3.6 FINAL"
  archive=""
  posts="1"
  startdate="22 Sep 2002 12:35:41 -0800"
>
<topic>Compression</topic>
<topic>Disks: SCSI</topic>
<topic>FS: JFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: ext3</topic>
<topic>Framebuffer</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>POSIX</topic>
<topic>Power Management: ACPI</topic>
<topic>Sound: i810</topic>
<topic>USB</topic>
<topic>User-Mode Linux</topic>

<p>Marc-Christian Petersen gave <a href="http://sf.net/projects/wolk">a
link</a> and announced:</p>

<quote who="Marc-Christian Petersen">

<p>this is v3.6 FINAL of WOLK. This is the last release of the 3.x series! </p>

<pre>Here we go, Changelog from v3.5 -&gt; v3.6
---------------------------------------

 o indicates work by WOLK Developers (almost me)
 + indicates work by WOLK Users

+   add:        SuperPage Support for alpha, sparc64 and x86
                 This is an EXPERIMENTAL PATCH. Apply manually! Nr. 990
o   add:        SCSI-Idle for v2.4.19 + SCSI Idle Daemon in WOLK-Tools package
o   add:        oom_killer updates from v2.4.19 final
o   add:        some another ext3 additions from v2.4.20-pre5
o   add:        VFS Soft/Hard-Limit of FileDescriptors
o   add:        ebtables v2.0
+   fixed:      USB v2.4.19 compile problems / missing definitions
+   fixed:      BlueTooth v2.4.19 compile problems / missing definitions
+   fixed:      Some Config dependencies for ISDN / USB Stuff
o   fixed:      LSM compile problems. totally conflicts with CTX(vserver)
o   fixed:      One AIO reversed #ifdef -> #ifndef
o   fixed:      Forgot to add "gr_is_capable(cap)" to #ifndef CONFIG_LSM
                 This broke capabilities to add/remove with grsecurity!
o   update:     MIPL Mobile IPv6 v0.9.4
o   update:     Bridge with Netfilter firewalling v0.0.7
o   update:     ACPI (Sep 18th, 2002) (use pci=noacpi when you have problems)
o   update:     e2compression v0.4.43
o   update:     SOFFIC (Secure On-the-Fly File Integrity Checker) v0.1
o   update:     Crypto v2.4.19-1
                 includes new options:
                 - 3DES cipher (64bit blocksize)
                 - GOST cipher (64bit blocksize)
                 - NULL cipher (NO CRYPTO)
                 - RIPEMD160 digest
                 - SHA256 digest
                 - SHA384 digest
                 - SHA512 digest
                 - Atomic Loop Crypto
                 - Loop IV hack
                 - Loop Crypto Debugging
                 - IPSEC tunneling (ipsec_tunnel) support
o   update:     Compressed Cache v0.24-pre4
o   update:     HTB v3.6-020525
o   update:     grsecurity v1.9.7 final
                 + gradm v1.5 final in the WOLK-tools package
o   update:     IBM's NGPT2 (Next Generation Posix Threading 2) v2.0.2
o   update:     htree ext3 directory indexing 2.4.19-3-dxdir
o   update:     UML - User-Mode-Linux v2.4.18-53
o   update:     NTFS Filesystem Driver v2.1.0a
o   update:     XFree v4.2.0 DRM/DRI Drivers from 2.4.20-preX-acX tree
o   update:     JFS v1.0.22
o   update:     Intel EtherExpress PRO/100 Support (Alternate Driver) v2.1.6
o   update:     Intel EtherExpress PRO/1000 Gigabit NIC Support v4.3.2
o   update:     i810/i815 Framebuffer Device Driver v0.0.33
o   change:     CTX12 (Virtual private servers and security contexts)
                 and disable vservers if grsecurity is selected (breaks gradm)
o   removed:    some ext3 additions
                 (causes system locking at high disk i/o)</pre>

</quote>

</section>

<section
  title="BitKeeper Behavior"
  subject="boring BK stats"
  archive=""
  posts="2"
  startdate="22 Sep 2002 15:56:04 -0800"
  enddate="22 Sep 2002 18:01:39 -0800"
>
<topic>Compression</topic>
<topic>FS: ext2</topic>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>

<p>Larry McVoy said:</p>

<quote who="Larry McVoy">

<p>I should be working on getting the bk-3.0 release done but I'm sick of
fixing BK-on-windows bugs...</p>

<p>Linus' kernel tree has 13333 revision controlled files in it.  Without
repository compression, it eats up 280M in an ext2 fs.  With repository
compression, that drops to 129M.  After checking out all the files, the size
of the revision history and the checked out files is 317MB when the revision
history is compressed.  That means the tree without the history is 188MB,
we get the revision history in less space than the checked out tree.  That's
pretty cool, by the way, I know of no other SCM system which can say that.</p>

<p>Checking out the tree takes 16 seconds.  Doing an integrity check takes 10
seconds if the repository is uncompressed, 15 seconds if it is compressed.
That's on 1.3Ghz Athlon w/ PC133 memory running at the slower CAS rate,
but lots of it, around 900MB.</p>

<p>An integrity check checksums the entire revision history and does a
checkout into /dev/null to make sure that both the overall and most recent
delta checksums are valid.</p>

<p>There are about 8600 changesets in the tree.  There have been 76998 deltas
made to the tree since Feb 05 2002.  That's an average of 37 changesets and
333 deltas per *day* seven days a week.  If you assume a 5 day work week
then the numbers are 52 csets/day and 466 deltas/day.</p>

<p>Those changerate numbers are pretty zippy.  You guys are rockin'.</p>

<p>As for syncs with bkbits, I dunno, my guess is we're pushing 300,000 pulls
or so.  We're nowhere near to saturating the T1 line so BK compression stuff
is working well.</p>

</quote>

<p>Jeff Garzik replied:</p>

<quote who="Jeff Garzik">

<p>If you can't fit a whole tree including metadata into RAM, though, BK
crawls...   Going from "bk citool" at the command line to actually
seeing the citool window approaches five minutes of runtime, on this
200MB laptop...  [my dual athlon with 512MB RAM corroborates your  
numbers, though]  "bk -r co -Sq" takes a similar amount of time...   </p>

<p>I also find that BK brings out the worst in the 2.4 kernel
elevator/VM...  mouse clicks in Mozilla take upwards of 10 seconds to
respond, when "bk -r co -Sq" is running on this laptop [any other
read-from-disk process behaves similarly].  And running any two BK jobs
at the same time is a huge mistake.  Two "bk -r co -Sq" runs easily take
four or more times longer than a single run.  Ditto for consistency
checks, or any other disk-intensive activity BK indulges in.</p>

<p>Next time I get super-annoyed at BK on this laptop, I'm gonna look into
beating the disk scheduler into submission...  some starvation is 
clearly occurring.</p>

</quote>

</section>

<section
  title="User-Mode Linux 2.5.38-1 Released"
  subject="uml-patch-2.5.38-1"
  archive=""
  posts="1"
  startdate="23 Sep 2002 12:34:57 -0800"
>
<topic>Kernel Build System</topic>
<topic>User-Mode Linux</topic>

<mention>Nikita Danilov</mention>

<p>Jeff Dike announced:</p>

<quote who="Jeff Dike">

<p>UML has been updated to 2.5.38.</p>

<p>Thanks to comments from Al Viro and fixes from James McMechan, the block
driver is up to date with the block layer changes.</p>

<p>There were some fixes to keep up with the latest kbuild, including some 
changes in the top-level Makefile, which I'll be feeding to Kai.</p>

<p>There were also a number of smaller fixes to update to 2.5.38, a number
of which came from Nikita Danilov.</p>

<p>I'll be feeding these changes to Linus.</p>

<p>The patch is available at<br />
        <a href="http://uml-pub.ists.dartmouth.edu/uml/uml-patch-2.5.38-1.bz2">http://uml-pub.ists.dartmouth.edu/uml/uml-patch-2.5.38-1.bz2</a></p>

<p>For the other UML mirrors and other downloads, see<br />
        <a href="http://user-mode-linux.sourceforge.net/dl-sf.html">http://user-mode-linux.sourceforge.net/dl-sf.html</a></p>

<p>Other links of interest:</p>

<p>        The UML project home page : <a href="http://user-mode-linux.sourceforge.net">http://user-mode-linux.sourceforge.net</a><br />
        The UML Community site : <a href="http://usermodelinux.org">http://usermodelinux.org</a></p>

</quote>

</section>

</kc>

