<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="183" date="08 Sep 2002 23:00:00 -0800" />

<stats posts="1469" size="7526" contrib="420" multiples="219" lastweek="167">

<person posts="56" size="153" who="Alan Cox " />
<person posts="44" size="126" who="Thunder from the hill " />
<person posts="41" size="164" who="Linus Torvalds " />
<person posts="38" size="452" who="Greg KH " />
<person posts="36" size="118" who="&quot;David S. Miller&quot; " />
<person posts="35" size="126" who="Andrew Morton " />
<person posts="26" size="73" who="Daniel Phillips " />
<person posts="23" size="179" who="Luca Barbieri " />
<person posts="23" size="67" who="Rik van Riel " />
<person posts="20" size="75" who="Robert Love " />
<person posts="19" size="229" who="Jean Tourrilhes " />
<person posts="19" size="104" who="Andre Hedrick " />
<person posts="19" size="80" who="&quot;Peter T. Breuer&quot; " />
<person posts="18" size="104" who="Vojtech Pavlik " />
<person posts="18" size="58" who="Ingo Molnar " />
<person posts="17" size="214" who="Trond Myklebust " />
<person posts="17" size="129" who="Rusty Russell " />
<person posts="17" size="108" who="William Lee Irwin III " />
<person posts="17" size="80" who="Russell King " />
<person posts="16" size="55" who="&quot;Martin J. Bligh&quot; " />
<person posts="15" size="54" who="Tomas Szepe " />
<person posts="15" size="51" who="Benjamin Herrenschmidt " />
<person posts="14" size="45" who="Benjamin LaHaise " />
<person posts="12" size="54" who="Anton Altaparmakov " />
<person posts="11" size="83" who="Adam Belay " />
<person posts="11" size="35" who="Adrian Bunk " />
<person posts="11" size="34" who="Mikael Pettersson " />
<person posts="10" size="42" who="Ivan Kokshaysky " />
<person posts="10" size="34" who="Christoph Hellwig " />
<person posts="9" size="48" who="&quot;Adam J. Richter&quot; " />
<person posts="9" size="34" who="Andreas Dilger " />
<person posts="9" size="32" who="Roy Sigurd Karlsbakk " />
<person posts="8" size="47" who="Jeff Chua " />
<person posts="8" size="33" who="Helge Hafting " />
<person posts="8" size="25" who="Tobias Ringstrom " />
<person posts="7" size="108" who="James Cleverdon " />
<person posts="7" size="34" who="&quot;Libershteyn, Vladimir&quot; " />
<person posts="7" size="25" who="Andries Brouwer " />
<person posts="7" size="23" who="Thomas Molina " />
<person posts="6" size="52" who="Georg Demme " />
<person posts="6" size="44" who="Joseph N. Hall " />
<person posts="6" size="29" who="Remco Post " />
<person posts="6" size="25" who="&quot;Richard B. Johnson&quot; " />
<person posts="6" size="24" who="Ingo Oeser " />
<person posts="6" size="23" who="Paul Larson " />
<person posts="6" size="22" who="Hacksaw " />
<person posts="6" size="22" who="Alessandro Suardi " />
<person posts="6" size="20" who="Nicholas Miell " />
<person posts="6" size="16" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="5" size="60" who="Dipankar Sarma " />
<person posts="5" size="37" who="Morten Helgesen " />
<person posts="5" size="22" who="Frank Davis " />
<person posts="5" size="18" who="Jan Harkes " />
<person posts="5" size="17" who="Alexander Viro " />
<person posts="5" size="17" who="Oliver Pitzeier " />
<person posts="5" size="16" who="mike heffner " />
<person posts="5" size="16" who="Miles Lane " />
<person posts="5" size="16" who="Chris Wright " />
<person posts="5" size="15" who="Con Kolivas " />
<person posts="5" size="13" who="Bernd Eckenfels " />
<person posts="4" size="52" who="&quot;Pedro M. Rodrigues&quot; " />
<person posts="4" size="42" who="Christoph Hellwig " />
<person posts="4" size="20" who="Mel Gorman " />
<person posts="4" size="20" who="Lars Marowsky-Bree " />
<person posts="4" size="19" who="David Lang " />
<person posts="4" size="17" who="Terence Ripperda " />
<person posts="4" size="14" who="Gabor Kerenyi " />
<person posts="4" size="13" who="OGAWA Hirofumi " />
<person posts="4" size="13" who="Markus Plail " />
<person posts="4" size="12" who="&quot;Henning P. Schmiedehausen&quot; " />
<person posts="4" size="12" who="Zwane Mwaikambo " />
<person posts="4" size="12" who="Jean-Luc Coulon " />
<person posts="4" size="12" who="Alex Riesen " />
<person posts="4" size="12" who="Chuck Lever " />
<person posts="4" size="11" who="Stefano Biella " />
<person posts="4" size="10" who="&quot;Randy.Dunlap&quot; " />
<person posts="3" size="100" who="Peter " />
<person posts="3" size="76" who="Alan Cox " />
<person posts="3" size="55" who="Jurriaan " />
<person posts="3" size="48" who="Michael Obster " />
<person posts="3" size="38" who="&quot;Krishna Kumar&quot; " />
<person posts="3" size="25" who="Meelis Roos " />
<person posts="3" size="23" who="Phil Stracchino " />
<person posts="3" size="23" who="&quot;Michael H. Warfield&quot; " />
<person posts="3" size="22" who="Kenneth Corbin " />
<person posts="3" size="22" who="Badari Pulavarty " />
<person posts="3" size="20" who="Juergen Sawinski " />
<person posts="3" size="19" who="Sergio Bruder " />
<person posts="3" size="18" who="Terry Barnaby " />
<person posts="3" size="17" who="Seiichi Nakashima " />
<person posts="3" size="16" who="Andy Tai " />
<person posts="3" size="14" who="Tom Rini " />
<person posts="3" size="14" who="Jonathan Woithe " />
<person posts="3" size="13" who="Dean Nelson " />
<person posts="3" size="13" who="Dave Hansen " />
<person posts="3" size="13" who="Tony Hoyle " />
<person posts="3" size="13" who="Allan Duncan " />
<person posts="3" size="13" who="Matt Porter " />
<person posts="3" size="12" who="Craig Arsenault " />
<person posts="3" size="12" who="Frank Otto " />
<person posts="3" size="12" who="Gerd Knorr " />
<person posts="3" size="12" who="bert hubert " />
<person posts="3" size="11" who="Ravikiran G Thirumalai " />
<person posts="3" size="11" who="Neil Brown " />
<person posts="3" size="11" who="Andi Kleen " />
<person posts="3" size="10" who="David Woodhouse " />
<person posts="3" size="10" who="Paul Mackerras " />
<person posts="3" size="10" who="Anssi Saari " />
<person posts="3" size="9" who="&quot;H. Peter Anvin&quot; " />
<person posts="3" size="9" who="Arnaldo Carvalho de Melo " />
<person posts="3" size="9" who="Pavel Machek " />
<person posts="3" size="9" who="&quot;Heiko Carstens&quot; " />
<person posts="3" size="9" who="Daniel Jacobowitz " />
<person posts="3" size="9" who="Bernd Eckenfels " />
<person posts="3" size="8" who="Jean-Eric Cuendet " />
<person posts="3" size="8" who="Molbo " />
<person posts="3" size="8" who="Shawn Starr " />
<person posts="3" size="8" who="Kelsey Hudson " />
<person posts="3" size="8" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="3" size="8" who="Jeff Garzik " />
<person posts="3" size="8" who="&quot;J.A. Magallon&quot; " />
<person posts="3" size="7" who="Manfred Spraul " />
<person posts="3" size="7" who="Oliver Neukum " />
<person posts="3" size="7" who="David Brownell " />
<person posts="3" size="7" who="Zwane Mwaikambo " />
<person posts="3" size="7" who="Joe Kellner " />
<person posts="3" size="6" who="Roman Zippel " />
<person posts="3" size="6" who="Chris Wedgwood " />
<person posts="2" size="58" who="&quot;David Stevens&quot; " />
<person posts="2" size="53" who="&quot;Bjoern A. Zeeb&quot; " />
<person posts="2" size="45" who="Matt Domsch " />
<person posts="2" size="42" who="Suparna Bhattacharya " />
<person posts="2" size="38" who="Stephane Wirtel " />
<person posts="2" size="30" who="Peter Osterlund " />
<person posts="2" size="28" who="Krzysiek Taraszka " />
<person posts="2" size="25" who="Markus Blatt " />
<person posts="2" size="22" who="Matthew Wilcox " />
<person posts="2" size="21" who="Matthew Dharm " />
<person posts="2" size="20" who="abhishek Sinha " />
<person posts="2" size="15" who="Diego Biurrun " />
<person posts="2" size="15" who="Marc MERLIN " />
<person posts="2" size="15" who="&quot;Leslie Donaldson&quot; " />
<person posts="2" size="13" who="Jordan Breeding " />
<person posts="2" size="10" who="Ed Sweetman " />
<person posts="2" size="10" who="Justin Heesemann " />
<person posts="2" size="9" who="Gene Heskett " />
<person posts="2" size="9" who="&quot;Dr. David Alan Gilbert&quot; " />
<person posts="2" size="9" who="jw schultz " />
<person posts="2" size="9" who="Andrea Arcangeli " />
<person posts="2" size="8" who=" (Linus Torvalds)" />
<person posts="2" size="8" who="&quot;Christian Ehrhardt&quot; " />
<person posts="2" size="8" who="&quot;Leslie Donaldson&quot; " />
<person posts="2" size="8" who="Tony Spinillo " />
<person posts="2" size="8" who="Stephen Rothwell " />
<person posts="2" size="8" who="Bill Davidsen " />
<person posts="2" size="8" who="Jens Axboe " />
<person posts="2" size="7" who="Paul " />
<person posts="2" size="7" who="george anzinger " />
<person posts="2" size="7" who="Mike Fedyk " />
<person posts="2" size="7" who="Paul Larson " />
<person posts="2" size="7" who="Joachim Breuer " />
<person posts="2" size="7" who="Bjoern Krombholz " />
<person posts="2" size="7" who="Roman Dementiev " />
<person posts="2" size="7" who="Anton Lavrentiev " />
<person posts="2" size="7" who=" (Jakob Sandgren)" />
<person posts="2" size="7" who="Jan Hudec " />
<person posts="2" size="7" who="Nikita Danilov " />
<person posts="2" size="7" who="Urban Widmark " />
<person posts="2" size="7" who="Steve Mickeler " />
<person posts="2" size="6" who="Marek Michalkiewicz " />
<person posts="2" size="6" who="Patrick Mochel " />
<person posts="2" size="6" who="Alex Riesen " />
<person posts="2" size="6" who="Gilad Ben-Yossef " />
<person posts="2" size="6" who="Panu Matilainen " />
<person posts="2" size="6" who="Ed Tomlinson " />
<person posts="2" size="6" who="Pavel Machek " />
<person posts="2" size="6" who="Matti Aarnio " />
<person posts="2" size="6" who="Richard Zidlicky " />
<person posts="2" size="6" who="Erik Andersen " />
<person posts="2" size="6" who="&quot;Grover, Andrew&quot; " />
<person posts="2" size="6" who="Rasmus Andersen " />
<person posts="2" size="6" who="James Simmons " />
<person posts="2" size="5" who="Toon van der Pas " />
<person posts="2" size="5" who="Steven Cole " />
<person posts="2" size="5" who="Oliver Neukum " />
<person posts="2" size="5" who="Christoph Simon " />
<person posts="2" size="5" who="Matt Bernstein " />
<person posts="2" size="5" who="Ray Lee " />
<person posts="2" size="5" who="Jan Kasprzak " />
<person posts="2" size="5" who="Jamie Lokier " />
<person posts="2" size="5" who="Edward Coffey " />
<person posts="2" size="5" who="Axel Siebenwirth " />
<person posts="2" size="5" who="Milton Miller " />
<person posts="2" size="5" who="James Morris " />
<person posts="2" size="5" who="Dave Jones " />
<person posts="2" size="5" who="Steffen Persvold " />
<person posts="2" size="5" who=" (Klaus Dittrich)" />
<person posts="2" size="5" who="&quot;Tomasz Torcz, BG&quot; " />
<person posts="2" size="5" who="&quot;Barry K. Nathan&quot; " />
<person posts="2" size="5" who="Jos Hulzink " />
<person posts="2" size="5" who="DervishD " />
<person posts="2" size="5" who="Ralf Baechle " />
<person posts="2" size="5" who="Gregoire Favre " />
<person posts="2" size="5" who="Padraig Brady " />
<person posts="2" size="4" who="&quot;H.Rosmanith (Kernel Mailing List)&quot; " />
<person posts="2" size="4" who="Pete Zaitcev " />
<person posts="2" size="4" who="Mike Dresser " />
<person posts="2" size="4" who="&quot;Maciej W. Rozycki&quot; " />
<person posts="2" size="4" who="&quot;David D. Hagood&quot; " />
<person posts="2" size="4" who="&quot;Imran Badr&quot; " />
<person posts="2" size="4" who="Reinhard Moosauer " />
<person posts="1" size="43" who="Brian J.Conway " />
<person posts="1" size="33" who="Albert Cranford " />
<person posts="1" size="31" who="Jan Marek " />
<person posts="1" size="30" who="Rich Baum " />
<person posts="1" size="29" who="Will Dyson " />
<person posts="1" size="26" who="&quot;Ph. Marek&quot; " />
<person posts="1" size="22" who="Jani Monoses " />
<person posts="1" size="19" who="George Toft " />
<person posts="1" size="16" who="&quot;Gabor Z. Papp&quot; " />
<person posts="1" size="16" who="cfraas " />
<person posts="1" size="15" who="Davide Patti " />
<person posts="1" size="15" who="Roger Larsson " />
<person posts="1" size="15" who="Peter Bergner " />
<person posts="1" size="15" who="Scott Edlund " />
<person posts="1" size="14" who="Ryan White " />
<person posts="1" size="13" who="&quot;Guillaume Boissiere&quot; " />
<person posts="1" size="12" who="Muli Ben-Yehuda " />
<person posts="1" size="12" who="&quot;Ulrich Windl&quot; " />
<person posts="1" size="12" who="walt " />
<person posts="1" size="12" who="Paul Mackerras " />
<person posts="1" size="11" who="&quot;Jeffrey J. Kosowsky&quot; " />
<person posts="1" size="11" who=" (Henrique de Moraes Holschuh)" />
<person posts="1" size="9" who="Florian Hinzmann " />
<person posts="1" size="9" who="Per Gregers Bilse " />
<person posts="1" size="7" who="Luiz Henrique Shigunov " />
<person posts="1" size="7" who="Olivier Galibert " />
<person posts="1" size="7" who="&quot;Chris Funderburg (at home)&quot; " />
<person posts="1" size="7" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="1" size="6" who="=?ISO-8859-1?Q?Micsk=F3_G=E1bor?= " />
<person posts="1" size="6" who="Burton Windle " />
<person posts="1" size="6" who="Stephen Tweedie " />
<person posts="1" size="5" who="&quot;Udo A. Steinberg&quot; " />
<person posts="1" size="5" who="Michael Dreher " />
<person posts="1" size="5" who="Dmitry Melekhov " />
<person posts="1" size="5" who="Mark Mielke " />
<person posts="1" size="5" who=" (Konstantin Kletschke)" />
<person posts="1" size="5" who="&quot;M.L.PrasannaK.R.&quot; " />
<person posts="1" size="5" who="Andre Bonin " />
<person posts="1" size="4" who="&quot;Robbert Kouprie&quot; " />
<person posts="1" size="4" who="Frank v Waveren " />
<person posts="1" size="4" who="Patrick McHardy " />
<person posts="1" size="4" who="=?ISO-8859-1?Q?G=E9rard_Roudier?= " />
<person posts="1" size="4" who="Michael Hohnbaum " />
<person posts="1" size="4" who="Jeff Johnson " />
<person posts="1" size="4" who=" (Joe Korty)" />
<person posts="1" size="4" who="Rodrigo Ventura " />
<person posts="1" size="4" who="Andrew Theurer " />
<person posts="1" size="4" who="Kerenyi Gabor " />
<person posts="1" size="4" who="Pekka Savola " />
<person posts="1" size="4" who="Alexander Hoogerhuis " />
<person posts="1" size="4" who="Thomas Koller " />
<person posts="1" size="3" who="Jimmy Jazz " />
<person posts="1" size="3" who="Patrick Mansfield " />
<person posts="1" size="3" who="&quot;Mikolaj J. Habryn&quot; " />
<person posts="1" size="3" who="Christian Reis " />
<person posts="1" size="3" who="John Alvord " />
<person posts="1" size="3" who="Bruce Guenter " />
<person posts="1" size="3" who="Miguel =?iso-8859-1?Q?Gonz=E1lez=20Casta=F1os?= " />
<person posts="1" size="3" who="&quot;Mala Anand&quot; " />
<person posts="1" size="3" who="Hu Gang " />
<person posts="1" size="3" who="&quot;Martin Brulisauer&quot; " />
<person posts="1" size="3" who="Lionel Bouton " />
<person posts="1" size="3" who="Jari Ruusu " />
<person posts="1" size="3" who="Andreas Steinmetz " />
<person posts="1" size="3" who="Jens Wiesecke " />
<person posts="1" size="3" who="Sven Koch " />
<person posts="1" size="3" who="Avery Pennarun " />
<person posts="1" size="3" who="Dmitri " />
<person posts="1" size="3" who="&quot;Thomas Graham&quot; " />
<person posts="1" size="3" who="Martin Knoblauch " />
<person posts="1" size="3" who="Jan-Benedict Glaw " />
<person posts="1" size="3" who="Greg Banks " />
<person posts="1" size="3" who="Keith Owens " />
<person posts="1" size="3" who="Adam Scislowicz " />
<person posts="1" size="3" who="Paul Fulghum " />
<person posts="1" size="3" who="Arador " />
<person posts="1" size="3" who="Nuitari " />
<person posts="1" size="3" who="Jim Radford " />
<person posts="1" size="3" who="Bob Miller " />
<person posts="1" size="3" who="&quot;Dan Egli&quot; " />
<person posts="1" size="3" who="&quot;Rob Turk&quot; " />
<person posts="1" size="3" who="Clemens Schwaighofer " />
<person posts="1" size="3" who="Dieter =?iso-8859-15?q?N=FCtzel?= " />
<person posts="1" size="3" who="&quot;Clemens 'Gullevek' Schwaighofer&quot; " />
<person posts="1" size="3" who="Daniel Berlin " />
<person posts="1" size="3" who="Andreas Schwab " />
<person posts="1" size="3" who="Moritz Muehlenhoff " />
<person posts="1" size="3" who="Gil Disatnik " />
<person posts="1" size="3" who="&quot;D. Sen&quot; " />
<person posts="1" size="3" who="&quot;Kevin Liao&quot; " />
<person posts="1" size="3" who="Andris Pavenis " />
<person posts="1" size="3" who="Marcus Grando " />
<person posts="1" size="3" who="Der Herr Hofrat " />
<person posts="1" size="3" who="Marc Zyngier " />
<person posts="1" size="3" who="James Bottomley " />
<person posts="1" size="3" who="&quot;sakib mondal&quot; " />
<person posts="1" size="3" who="Mike Galbraith " />
<person posts="1" size="3" who="Daniel Bruce Lynes " />
<person posts="1" size="3" who="=?iso-8859-1?q?willy=20tarreau?= " />
<person posts="1" size="2" who=" (Kai Henningsen)" />
<person posts="1" size="2" who="&quot;Scott Murray&quot; " />
<person posts="1" size="2" who="Hugh Dickins " />
<person posts="1" size="2" who="James Di Toro " />
<person posts="1" size="2" who="&quot;Stephen Lee&quot; " />
<person posts="1" size="2" who="Karim Yaghmour " />
<person posts="1" size="2" who="&quot;Adriano Galano&quot; " />
<person posts="1" size="2" who="&quot;Brent D. Norris&quot; " />
<person posts="1" size="2" who="&quot;Raj, Ashok&quot; " />
<person posts="1" size="2" who="Christopher Keller " />
<person posts="1" size="2" who="Michal Semler " />
<person posts="1" size="2" who="&quot;Axel H. Siebenwirth&quot; " />
<person posts="1" size="2" who="Giacomo Catenazzi " />
<person posts="1" size="2" who="&quot;dirty boy&quot; " />
<person posts="1" size="2" who="Mat Harris " />
<person posts="1" size="2" who="Davide Libenzi " />
<person posts="1" size="2" who="&quot;Alex Adriaanse&quot; " />
<person posts="1" size="2" who="Clemens 'Gullevek' Schwaighofer " />
<person posts="1" size="2" who="Moritz Muehlenhoff " />
<person posts="1" size="2" who="Mark Hahn " />
<person posts="1" size="2" who="Fabio Massimo Di Nitto " />
<person posts="1" size="2" who="Rogier Wolff " />
<person posts="1" size="2" who="&quot;Kevin P. Fleming&quot; " />
<person posts="1" size="2" who="Sebastian Hanigk " />
<person posts="1" size="2" who="&quot;Petr Vandrovec&quot; " />
<person posts="1" size="2" who="Andrew Rodland " />
<person posts="1" size="2" who="Volker Kuhlmann " />
<person posts="1" size="2" who="&quot;Pascal Nobus&quot; " />
<person posts="1" size="2" who="Sythos " />
<person posts="1" size="2" who="Mitch Sako " />
<person posts="1" size="2" who="Andre Bonin " />
<person posts="1" size="2" who="John Levon " />
<person posts="1" size="2" who="Vikas Jain " />
<person posts="1" size="2" who="Dominik Brodowski " />
<person posts="1" size="2" who="Andre Hedrick " />
<person posts="1" size="2" who="Andi Kleen " />
<person posts="1" size="2" who="&quot;Christoph Baumann&quot; " />
<person posts="1" size="2" who="&quot;Heusden van, FJJ (Folkert)&quot; " />
<person posts="1" size="2" who="Daniel Egger " />
<person posts="1" size="2" who="Martin Wilck " />
<person posts="1" size="2" who="Gcc k6 testing account " />
<person posts="1" size="2" who="Jerry McBride " />
<person posts="1" size="2" who="&quot;Bloch, Jack&quot; " />
<person posts="1" size="2" who="David Mosberger " />
<person posts="1" size="2" who="Greg Ungerer " />
<person posts="1" size="2" who="Val Henson " />
<person posts="1" size="2" who="J Sloan " />
<person posts="1" size="2" who="Michael Kerrisk " />
<person posts="1" size="2" who="Hans Reiser " />
<person posts="1" size="2" who="Kasper Dupont " />
<person posts="1" size="2" who="&quot;Ernesto Quiroz&quot; " />
<person posts="1" size="2" who="Alexander Kellett " />
<person posts="1" size="2" who="John Kim " />
<person posts="1" size="2" who="Steve Kenton " />
<person posts="1" size="2" who="&quot;Michel Eyckmans (MCE)&quot; " />
<person posts="1" size="2" who="&quot;Thomas Koller&quot; " />
<person posts="1" size="2" who="Michael Bellion " />
<person posts="1" size="2" who="Florian Weimer " />
<person posts="1" size="2" who="Willy Tarreau " />
<person posts="1" size="2" who="&quot;Juan M. de la Torre&quot; " />
<person posts="1" size="2" who="Tim Habermann " />
<person posts="1" size="2" who="Giuliano Pochini " />
<person posts="1" size="2" who="Pavel Roskin " />
<person posts="1" size="2" who="Nicholas " />
<person posts="1" size="2" who="Mario Mikocevic " />
<person posts="1" size="2" who="Shaya Potter " />
<person posts="1" size="2" who="Jose Luis Domingo Lopez " />
<person posts="1" size="2" who="Oleg Nesterov " />
<person posts="1" size="2" who="Alastair Stevens " />
<person posts="1" size="2" who="Adam Kropelin " />
<person posts="1" size="2" who="Leif Sawyer " />
<person posts="1" size="2" who="Robin Holt " />
<person posts="1" size="2" who="Jeff Dike " />
<person posts="1" size="2" who="Gerhard Mack " />
<person posts="1" size="2" who="Hanno =?ISO-8859-1?Q?B=F6ck?= " />
<person posts="1" size="2" who="Rene Blokland " />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Fr=E9d=E9ric_L=2E_W=2E_Meunier?= " />
<person posts="1" size="2" who="&quot;Larry M. Augustin&quot; " />
<person posts="1" size="2" who="&quot;Kerl, Andreas&quot; " />
<person posts="1" size="2" who="Wade " />
<person posts="1" size="1" who="Rudmer van Dijk " />
<person posts="1" size="1" who="Stas Sergeev " />

</stats>

<section
  title="IRQ Balancing For Various Systems"
  subject="[PATCH] NUMA-Q disable irqbalance"
  archive=""
  posts="42"
  startdate="13 Aug 2002 08:13:42 -0800"
  enddate="29 Aug 2002 14:10:17 -0800"
>
<topic>SMP</topic>

<p>Martin J. Bligh posted a patch, and explained, <quote who="Martin
J. Bligh">This patch is from Matt Dobson. It disables irq_balance for the
NUMA-Q and makes it a config option for everyone else. This is needed for
NUMA-Q to work, since the irq_balance code assumes a logical flat apic
addressing mode that's not true in all cases. We created a config option
since irq_balance makes performance significantly worse for some workloads.
Says it's against 2.5.25, but applies to and works on 2.5.31</quote> Linus
Torvalds was unhappy with a negative configuration option that asked to turn
something <i>off</i> rather than <i>on</i>; but he added, <quote who="Linus
Torvalds">since IRQ balancing is practically required on P4-SMP, I really
don't think a CONFIG option works. It needs to be configured in on any
kernel that expects to use P4's in an SMP configuration.</quote> Martin
felt this wouldn't work because it would be difficult to get it to work
properly on all P4 systems. In a later post he added, <quote who="Martin
J. Bligh">Forcing it on for every machine just because P4s are borked
sounds wrong</quote> [...] <quote who="Martin J. Bligh">we really do need to
disable it for many machines. Getting rid of the negative config option is
easy though.</quote> But Linus disagreed, saying the need for IRQ balancing
should be determined dynamically at run-time, not as an option. Martin replied,
<quote who="Martin J. Bligh">But if it's good for P4, and bad for P3 (at least
for some workloads), surely this leads to the conclusion that it should be
a config option (probably defaulting to being on)? If you can see another
way to solve the conundrum ....</quote> and Linus replied:</p>

<quote who="Linus Torvalds">

<p>But this is exactly the kinds of cases that config options do _not_
work well for.</p>

<p>There are tons of reasons to run the same kernel on a multitude of machines,
even ignoring the issue of things like installers etc.</p>

<p>We had this CONFIG_xxxx disease when it came to SSE, we had it when it
came to TSC, etc. And in every case it ended up being bad, simply because
it's not the right interface for _users_.</p>

<p>So this is why I think the IRQ balance code has to be there, regardless,
and then it gets turned on dynamically for when it is needed (or turned off
when it hurts, whatever). But it should _not_ be a CONFIG option.</p>

</quote>

<p>Martin posted a very short patch and said, <quote who="Martin
J. Bligh">OK ... you're right ;-) This is bad, especially for distribution
kernels. So I just need something to stop the NUMA-Q crashing.  Can I have the
appended? Please, please, please? ;-) It just adds an if switch to irq_balance
which the compiler optimises away anyway. Not a whiff of a config option.
Tested on 2.5.31.</quote></p>

</section>

<section
  title="Status Of IPv6"
  subject="2.4 and full ipv6 - will it happen?"
  archive=""
  posts="37"
  startdate="18 Aug 2002 20:39:41 -0800"
  enddate="29 Aug 2002 10:47:39 -0800"
>
<topic>Networking</topic>

<mention>Alexey Kuznetsov</mention>

<p>Tomasz Torcz remarked, <quote who="Tomasz Torcz">Some time ago Linux was
first OS to have full RFC complaint IPv4 stack.  Linux still has superior
networking, but protocol of the future is IPv6.  IPv6 stack in mainline is
currently far from perfect. There is a hope, however. Full IPv6 stack is
beeing mantained by USAGI project. It's clear, that USAGI's project will be
integrated into mainline kernel.  What worries me - it's planned for 2.7,
what is _BAD_ and late.  IMO, it can be included in any time. The sooner
is better.  Marcelo - would you include full IPv6 stack in 2.4.20 if you
get patches?  Please - it's important for Linux to be network OS choice
in future.  It's barely possible with current IPv6 implementation.</quote>
David S. Miller replied:</p>

<quote who="David S. Miller">

<p>based upon previous attempts to get them to merge their work into the
mainline, we believe at this point that they actually enjoy being a totally
seperate project and not merging completely is a feature for them.</p>

<p>USAGI may only accept that comment, and the only way they may disprove it is
to merge their code to us as we have continually requested them to do so.</p>

<p>In my opinion, USAGI has been given more than adequate opportunities
to merge their entire work into the mainline.  Alexey Kuznetsov has asked
them repeatedly over the years to merge with him, yet they always fail to
do so completely.  Occaisionally one or two trivially bug fixes they are
able to merge, but otherwise their efforts always fall short.</p>

<p>They claim they wish to merge so badly, yet act in opposite manner.  It is
almost disgraceful and I am so tired of this continual public propaganda
that tries to make it look as if Alexey and myself are to blame for this.</p>

</quote>

<p>Tomasz replied that his impression was that Alexey Kuznetsov and USAGI had
been cooperating, but David said shortly, <quote who="David S. Miller">Alexey
is asking USAGI folks for patches, they are not responding.</quote></p>

<p>Elsewhere, someone said the IPv6 code had been working will on his/her system
for years. David replied:</p>

<quote who="David S. Miller">

<p>The keyword is "you", you are using is locally at your site.  </p>

<p>There are zero backbone ipv6 routers, everyone is still tunneling or has
a custom network layout for their usage.</p>

</quote>

<p>A number of folks pointed out that there were some backbone IPv6 routers in
use at the current time; and the discussion skewed off into the various possible
futures, whether IPv6 would become popular, whether there were other
alternatives that might delay things. The bottom line seemed to be that no one
really knew, but that everyone was in favor of IPv6.</p>

</section>

<section
  title="Adding 'localconfig' To Automate .config Choices"
  subject="[RFC] make localconfig"
  archive=""
  posts="17"
  startdate="24 Aug 2002 06:12:46 -0800"
  enddate="02 Sep 2002 00:50:47 -0800"
>
<topic>Kernel Build System</topic>

<p>Someone suggested a 'localconfig' Makefile target, that would analyze
the current running system and produce a .config file to match the current
hardware as closely as possible. He/she added that the recommendation would
be to run 'make menuconfig' afterwards just to confirm the accuracy of
the .config file.  Andrew Rodland replied, <quote who="Andrew Rodland">It
turns out that the autoconfigure script included in CML2 is actually an
adaptation of kautoconfigure (Giacomo Catenazzi &lt;cate@debian.org&gt;, <a
href="http://sf.net/projects/kautoconfigure">http://sf.net/projects/kautoconfigure</a>),
just tweaked to use CML2 and python... a slightly older version that uses sh
(well, bash) is still available. The ruleset is something like 8 months old
by now, but the features provided are really pretty nifty. I used it once
and it worked very nicely. I don't know if it was the, erm, downfall of CML2
that killed this project, but I wouldn't mind seeing it come back.</quote></p>

<p>Elsewhere, Zwane Mwaikambo remarked, <quote who="Zwane
Mwaikambo">For this kind of thing, code talks. Otherwise no one
will take heed.</quote> A couple posts later, Giacomo Catenazzi
replied, <quote who="Giacomo Catenazzi">I have some bash code (to
probe hardware), an hardware/driver database and a python script to
partly generate the database direct from kernel sources.  It should be in <a
href="http://people.debian.org/~cate/files/kautoconfigure">http://people.debian.org/~cate/files/kautoconfigure</a>
and in <a
href="http://people.debian.org/~cate/files/gnome-os">http://people.debian.org/~cate/files/gnome-os</a></quote></p>

</section>

<section
  title="Comparing 2.4 VMs With VM Regress"
  subject="2.4.19 Vs 2.4.19-rmap14a with anonymous mmaped memory"
  archive=""
  posts="5"
  startdate="25 Aug 2002 14:22:54 -0800"
  enddate="29 Aug 2002 12:53:32 -0800"
>
<topic>Virtual Memory</topic>

<p>Mel Gorman reported:</p>

<quote who="Mel Gorman">

<p>I ran a brief series of tests on a small crash box. the intention was to
see what sort of figures and conclusions could be gathered with VM Regress
in it's current public release. VM Regress is the beginnings of a tool that
ultimatly aims to answer questions about the VM by testing and benchmarking
individual parts of it. The conclusions drawn here are extremly ad-hoc so
take them with a very large grain of salt.</p>

<p>4 tests were run on each machine each related to anonymous memory
used in a mmaped region. Two reference patterns were used. smooth_sin and
smooth_sin-random . Both sets show a sin curve when the number of times
each page is referenced is graphed (See the green line in the graph Pages
Present/Swapped). With smooth_sin, the pages are reffered to in order.
With smooth_sin-random, the pages are referenced in a random order but the
amount of times a page is referenced.</p>

<p>Both patterns are tested with 2,000,000 page references made to a mmaped
region. The first memory mapped region is 25000 pages large, about the size
of physical memory on the machine. The second was with 50000.  Unfortunatly
detailed statistical information is unavailable, but some conclusions can still
be drawn. Statistical information is aimed to be available at least by 0.9</p>

<p>Test 1 - smooth-sin_25000<br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin_25000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin_25000/mapanon.html</a><br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin_25000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin_25000/mapanon.html</a></p>

<p>Behaviour is pretty much comparable. The average page access times look
roughly the same so at the very least the performance is similiar. rmap14a did
perform faster but hte test wasn't long enough to be conclusive. All in all,
when enough physical memory is avilable, rmap14a and stock will perform roughly
the same with a linear reference pattern and enough memory is available.</p>

<p>Test 2 - smooth-sin-random_25000<br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin-random_25000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin-random_25000/mapanon.html</a><br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin-random_25000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin-random_25000/mapanon.html</a></p>

<p>here, the average performanceremains roughly the same. It is interesting
to note that rmap14a had periodic large access times to pages and it's
unclea. Despite this, rmap14a still completed the test faster. So again,
with enough memory available, the performance remains roughly the same even
with a relatively random page reference pattern</p>

<p>Test 3 - smooth_sin_50000<br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin_50000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin_50000/mapanon.html</a><br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin_50000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin_50000/mapanon.html</a></p>

<p>This test is interesting. Remember that the references are linear
in memory. At about the 1,000,000 page reference, physical memory is
exhausted. Both tests completed in the same time so in "raw performance"
they would appear the same but not so. The time access graph shows that for
most of the test, rmap14a performed much better on average except for the
occasional large spikes. At the end, it degrades very quickly but is still
faster than the stock kernel about about 300000 microseconds to access a
page which the unscaled graphs show</p>

<p><a href="http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin_50000/mapanon-time-unscaled.png">http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin_50000/mapanon-time-unscaled.png</a><br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin_50000/mapanon-time-unscaled.png">http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin_50000/mapanon-time-unscaled.png</a></p>

<p>This would appear consistent with reports that the stock kernel degrades
slowly where rmap seems to fall apart really quickly in some situations.</p>

<p>It is suspected that the large periodic spikes are where the proper page
to select out is found but it's pure guesswork and VM Regress is not at the
point where it can investigate more.</p>

<p>The second point of note is the present pages at the end of the test.
stock makes no attempt to keep certain pages in memory. When physical memory
is out, it swaps out enitre processes unconditionally. rmap14a tries to keep
the proper pages in memory and the page reference vs presense graph shows
that it did. stock has a large block of pages present, rmap14a had swapped
out some pages from the beginning of the test.</p>

<p>In this case, stock just happened to swap out correctly because the pages
remove were not going to be used again in this particular case</p>

<p>Test 4 - smooth_sin-random<br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin-random_50000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19/smooth_sin-random_50000/mapanon.html</a><br />
<a href="http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin-random_50000/mapanon.html">http://www.csn.ul.ie/~mel/vmr/2.4.19-rmap14a/smooth_sin-random_50000/mapanon.html</a></p>

<p>With this test, the page references are in random order so determining
which page to remove is much more difficult. rmap14a completed this test
almost 10 minutes quicker than stock.</p>

<p>The average time for the stock kernel is consistently bad. I am guessing
that this is because the kernel consistently ends up swapping out the entire
process. rmap has periods of quick accesses with unfortunatly large spikes
because it is trying to keep the right pages in memory and a lot of the time
gets it right. This is better than stock kernel which never keeps the right
pages in memory.</p>

<p>Conclusion</p>

<p>It is hard to draw solid conclusions because large gaps still exist in
the data but some can be drawn. I am sure an experienced VM developer will
be able to draw much more reliable conclusions :-)</p>

<p>First, when enough physical memory is available, rmap and stock perform
more or less the same so appreciatable overhead is not introduced for normal
anonymous memory use.</p>

<p>Second, when memory is tight, the type of memory reference behaviour
will determine how good or bad the two will perform. With a strictly linear
pattern, stock will perform better because it just dumps all the old pages
en-mass. I seriously doubt this reference is common.</p>

<p>For other patterns with large anonymous page use, rmap is more likely to
perform better because it tries to keep anonymous pages in memory. Even with
a totally random pattern, it'll perform reasonably well.</p>

<p>Lastly, it is obvious from the tests that for deciding which page to swap,
age is more important than frequency but that is already known. The page
age graphs are on the way and will be available in VM Regress 0.7</p>

</quote>

<p>Daniel Phillips asked, <quote who="Daniel Phillips">Could you please
provide pseudocode, to specify these reference patterns more precisely?</quote>
Mel replied:</p>

<quote who="Mel Gorman">

<p>Rather than providing pseudo code, here is a link to the actual function
that generates the smooth_sin references</p>

<p><a
href="http://www.csn.ul.ie/~mel/vmr/smooth_sin.html">http://www.csn.ul.ie/~mel/vmr/smooth_sin.html</a></p>

<p>It is really crude and written to generate any type of data until I found
the time to generate more realistic data which is a project in itself. Anyone
who wants to generate better data only has to edit the References.pm file.</p>

<p>It takes there inputs</p>

<p>references - number of references to generate range - the size in pages
of the region to reference output - the output filename</p>

<p>the function has three parts</p>

<p>part 1: Plot a sin wave so that the sum of all the integer values of each
        part of it would generate enough references to satisify at least
        half of the requessted number<br />
part 2: Starting at the beginning of the range, reference each page in a
        linear pattern until all the required references are generated<br />
part 3: Dump all references to disk</p>

<p>now that I think of it, it would have made more sense to begin with the
linear reference pattern and then generate the sin curve but seeing as
this pattern is nothing resembling real life, I didn't worry about it too
much. It is probably something I should change as it would illustrate
better what pages are kept in memory.</p>

<p>smooth_sin-random<br />
<a href="http://www.csn.ul.ie/~mel/vmr/randomize_references.txt">http://www.csn.ul.ie/~mel/vmr/randomize_references.txt</a></p>

<p>This is a perl script for randomizing an input file. It takes an input
file generated by the smooth_sin function and outputs a randomized version
of it. It is pretty simple</p>

<p>

<ol>

<li>For each input reference, output a random number between 0 and range
   followed by the input reference</li>
<li>Sort the file numerically with sort. This will efficively randomize the
   input</li>
<li>Reread the randomized input and strip away the generated random number</li>

</ol>

</p>

</quote>

<p>Daniel replied, <quote who="Daniel Phillips">The perl script that writes
tables isn't too informative without knowing how the tables are used.
Pseudocode that says exactly what your final reference pattern is would
be a lot more useful.  Just leave out the part about generating the tables
and express it as if you were computing the distribution at the same time
as generating the references, unless it's really impossible to do that.
I don't think it's impossible to do that in this case.</quote> Mel said:</p>

<quote who="Mel Gorman">

<p>I guessed that after I thought about it for a while and reworked the
algorithm for 0.7. To make things easier again, I added a new graph to the
reports which is in 0.7 called "Page Index Reference over Time"</p>

<p>see</p>

<p><a
href="http://www.csn.ul.ie/~mel/projects/vmregress/output_sample/mmap/read/25000/mapanon.html">http://www.csn.ul.ie/~mel/projects/vmregress/output_sample/mmap/read/25000/mapanon.html</a></p>

<p>It is the second graph. At the beginning, it is at the 0th page and it
moves through the address space over time. A totally random one would make
this graph look like noise. The graph should give a good idea how memory
was referenced.</p>

<p>In 0.6 and with these tests, it would have been a similar curve except
the last page would have been hit around 40000 references before the end of
the test. After that, the pages were referenced in a linear pattern which
was a mistake after reviewing it a bit.</p>

<p>If people are still interested, I'll run a full set of tests again on
2.4.19 and 2.4.19-rmap14a with 0.7 and post up the results complete with the
page reference information so you don't have to guess this time. It takes
about a full day to run a complete series. Any taker?</p>

</quote>

</section>

<section
  title="Extending The Kernel API To Handle 64-Bit Values"
  subject="atomic64_t proposal"
  archive=""
  posts="9"
  startdate="27 Aug 2002 11:37:27 -0800"
  enddate="29 Aug 2002 09:15:47 -0800"
>

<mention>David S. Miller</mention>
<mention>Andi Kleen</mention>

<p>Dean Nelson proposed the creation of a 'atomic64_t' variable, to be
a 64-bit version of the existing 'atomic_t' variable; and to enable the
various macros in the kernel to operate on either variable. Andi Kleen
felt that it would be much cleaner to just provide a common kernel API
across all architectures, by adding some new macros that dealt explicitly
with 64-bit values.  David S. Miller also didn't like to see the data
types handled transparently. Dean replied, <quote who="Dean Nelson">Your
point about a common kernel api (across all architectures) is valid and
leads me to reconsider the use of common macros for the two atomic types.
So I guess I would lean in the direction you suggested of separate macros
(atomic64_add/sub/read etc.) for the atomic64_t type.</quote> But he added,
<quote who="Dean Nelson">I have no plans on implementing this for anything
but the IA-64 linux kernel.  But its api should be discussed and approved
(or disapproved) by this list.  The implementations for the other platforms
can come as other people feel so moved to do them.</quote></p>

</section>

<section
  title="Kernel 2.5.32 Announced; IDE Breakage; Keyboard Beep Breakage"
  subject="Linux v2.5.32"
  archive=""
  posts="36"
  startdate="27 Aug 2002 11:47:16 -0800"
  enddate="31 Aug 2002 08:54:59 -0800"
>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS</topic>
<topic>Hyperthreading</topic>
<topic>Kernel Release Announcement</topic>
<topic>USB</topic>

<mention>Alan Cox</mention>
<mention>Randy Hron</mention>
<mention>Mikael Pettersson</mention>

<p>Linus Torvalds announced 2.5.32 (see <a
href="http://www.kernel.org/pub/linux/kernel/v2.5/ChangeLog-2.5.32">ChangeLog</a>),
and explained:</p>

<quote who="Linus Torvalds">

<p>Delayed by various issues (including a HT-only MTRR bug that Ingo finally
chased down and that kept me chasing shadows for days). As a result, this
is fairly big..</p>

<p>Most noticeable is the (already discussed) IDE revert, and the threading
updates. The input layer switch-over may also end up being a bit painful
for a while, since that not only adds a lot of config options that you have
to get right to have a working keyboard and mouse (we'll fix that usability
nightmare), but the drivers themselves are different and there are likely
devices out there that depended on various quirks.</p>

<p>The AIO core code from Ben got merged, and Al worked on cleaning up the
gendisk stuff from a number of drivers that were missed last time. And the
usual USB updates..</p>

<p>Oh, and various architecture updates (sparc64, ppc64, ia-64).</p>

</quote>

<p>Udo A. Steinberg took a look, and reported, <quote who="Udo A. Steinberg">It
looks like the kernel is trying to read partition tables on IDE cdrom drives
in SCSI emulation mode - and failing.</quote> Andre Hedrick said he'd get
to it as soon as he and Alan Cox finished some work they were doing for the
2.4 kernel. And Alexander Viro said that the 2.5 IDE merge was broken with
regard to partitioning. He'd put up a patch-set to fix it, but was waiting
for an acknowledgement from Alan. Alan replied that he was too busy with
the Red Hat beta to work on 2.5 stuff for another few days, but that he'd
look at it then.  Alexander replied:</p>

<quote who="Alexander Viro">

<p>OK.  Here's the contents of patchset, patches will go in followups (and
not Cc'd to l-k)</p>

<p>

<ol>

<li>moves stuff from ide_register_subdriver() (associating drive with
high-level driver) to ide-probe.c, so that remaining stuff can be safely
called in parallel with IO on other drives [Andre]</li>

<li>finishes introduction of ->reinit() - Jens had missed MOD_DEC_USE_COUNT
on several exits from ide-cd one and forgot to remove the loop from ide-floppy
ide-tape and ide-scsi ones ;-) (->reinit() is the body of loop in ->init() -
stuff that should be done one drive; in 2.5.32 ide-disk one is OK, ide-cd is
OK modulo minor bugs and in the rest it's a copy of ->init())</li>

<li>puts drives on cyclic lists - per-driver ones for drives that had
been claimed by high-level drivers and ata_unused for unclaimed drives.
We put drives on ata_unused in the very end of ideprobe_init() and then
move them to drivers' lists as they are claimed.</li>

<li>checks for media type, ->driver_req, etc. are moved from the
ide_scan_devices() to ->reinit().  ide_scan_devices() had lost first
two arguments (it will completely disappear later).</li>

<li>duplicate calls of ide_cdrom_init(), idedisk_init(), etc. are
removed from ide_init_builtin_drivers() (they were called both from
there (i.e. from ide_init()) and later as module_init() for high-level
drivers).</li>

<li>loops in ide_cdrom_init()/ide_cdrom_exit(), etc. are pulled into
ide_register_module()/ide_unregister_module() resp.</li>

<li>->owner added to ide_driver_t.  MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT
taken out of ->reinit().  ide_reinit_drive() turned into "call ->reinit()
for all high-level drivers that are registered until somebody claims the
drive" (instead of open-coded variant in 2.5.32; cleaner and works correctly
for modular drivers).</li>

<li>

<p>That's the central part of the series:</p>

<p>

<ul>

<li>     ide_reinit_drive() turned into ata_attach().  Said beast takes a
drive, tries to feed it to high-level drivers and drops it on the ata_unused
if nobody claims the sucker.  IOW, that's what ide_register_module() used
to do, but for a single drive.</li>
<li>        ideprobe_init() calls ata_attach() instead of putting on
ata_unused.</li>
<li>        ide_register_module() eliminated.  Some of the callers do not need
it anymore, some (ide_replace_subdriver()) actually want ata_attach(drive).</li>
<li>        ide_scan_devices() is gone.  There were two remaining callers - in
ide_register_module() and ide_unregister_module().  The former had been
turned into "put driver on the list, empty ata_unused into temporary list
and call ata_attach() on all drives there".  The latter is "remove driver
from the list, call ->cleanup() and ata_attach() for all drives" (->cleanup()
gives the drive up, ata_attach() gives the remaining drivers a shot for
that drive; if nobody claims it - it's put on ata_unused).</li>

</ul>

</p>

</li>

<li>->init() for high-level drivers is never called (other than as
module_init() when they are initialized).  Method removed, instances
cleaned up.</li>

<li>instead of messing with ide_module_t, we put ide_driver_t themselves
on a (cyclic) list - said list being the only use of ide_module_t for
high-level drivers.  ide_register_module()/ide_unregister_module() takes
ide_driver_t now (renamed to ide_register_driver()).  /proc/ide/drivers
switched to use of that cyclic list and uses seq_file instead of old
home-grown code.</li>

<li>

<p>2.5 bits:</p>

<p>

<ul>

<li>        add_gendisk()/del_gendisk() moved into ->reinit() and ->cleanup() of
ide-{disk,cd,floppy} - i.e. moments when high-levle driver claims/gives up
a drive.</li>
<li>        register_disk() also shifted into ->reinit().</li>
<li>        consequently, revalidate_drives() is gone (it did messy postponed
rereading of partition tables; not needed anymore).  Ditto for
ide_geninit().</li>
<li>        regular 2.5 changes in ->revalidate() and BLKRRPART handling - same
as all other block devices.</li>

</ul>

</p>

</li>

</ol>

</p>

<p>The reason why we couldn't do just #11 and be done with that is simple
- high-level drivers were rude and considered drives fair game as soon as
they had been probed.  That is *wrong* - we might be still doing "unsafe"
work with the interface (or related interfaces) and any regular IO at that
point is a Bad Thing(tm).  As the result we had to use very odd logics in
partition handling, registering, etc.</p>

<p>New variant lets the probing code to decide when it's safe to put the drives
in circulation - no high-level driver will see a drive until ata_attach()
is called.  Which puts the knowledge of ordering between configuring and
normal IO into the probing code where it belongs.  High-level drivers don't
have to think about it anymore - as soon as drive is given to them it's safe
to do IO on it.</p>

<p>Ordering issues between configuring different interfaces, etc. still remain
where they were - that's a separate story and it belongs to the low-level
driver cleanups.  Moreover, place where we are calling ata_attach() is very
conservative - we do _all_ configuring of interfaces and then call ata_attach()
on everything we'd found.  Eventually, low-level drivers should be able to do
"configure our group of interfaces, then call ata_attach() on their drives",
but that, again, is a separate story - one I'd happily leave to the folks
who do cleanup of low-level drivers.  All ordering issues with high-level
drivers are reduced to one rule: don't call ata_attach() on a drive before
it's safe to get IO on it.</p>

<p>The patchset doesn't fix all problems with the driver - code that went
into 2.5 had been derived from 2.4.19 and several megabytes of fixes went into
2.4.20-ac since then.  However, these fixes are mostly in low-level drivers,
so they shouldn't cause problems with porting and I'll happily leave that
fun to Jens when he comes back.</p>

</quote>

<p>Randy Hron reported no more breakage using this patch-set, and Andre added,
<quote who="Andre Hedrick">Yep, that has been verified and there are more
extentions needed to bring up support for all archs.  I will send them to
Al and Alan first and post them here too shortly I hope.</quote></p>

<p>Elsewhere, Mikael Pettersson reported that 2.5.32 wouldn't give a keyboard
beep with CONFIG_KEYBOARD_ATKBD=y. Vojtech Pavlik replied, <quote who="Vojtech
Pavlik">2.5.32 still has quite complex input core config options - sorry,
my fault, and I'll fix it soon. You have to enable CONFIG_INPUT_MISC and
CONFIG_INPUT_PCSPKR.</quote> Mikael confirmed that this worked, but Gerhard
Mack asked, <quote who="Gerhard Mack">That begs the question: How do I
input using the PC speaker ?</quote> And Jos Hulzink said, <quote who="Jos
Hulzink">Easy :) A speaker is also a microphone...2.5.32 will go into the
history books as the kernel that implemented voice recognition for all AT
class computers...</quote></p>

</section>

<section
  title="Some IDE Developer Interaction"
  subject="ide-2.4.20-pre4-ac2.patch"
  archive=""
  posts="19"
  startdate="27 Aug 2002 14:17:31 -0800"
  enddate="30 Aug 2002 01:43:05 -0800"
>
<topic>Disks: IDE</topic>
<topic>PCI</topic>

<mention>Joel Becker</mention>
<mention>Roman Zippel</mention>
<mention>Alexander Viro</mention>
<mention>Jeff Garzik</mention>

<p>Andre Hedrick announced:</p>

<quote who="Andre Hedrick">

<p>This is out and has been forwarded to AC for review.</p>

<p>Joel Becker<br />
Nick Bellinger<br />
Alan Cox<br />
Peter Denison<br />
Jeff Garzik<br />
Benjamin Herrensch<br />
Roman Zippel<br />
Alexander Viro</p>

<p>Others helped with ideas and concepts.</p>

<p>This should work on all archs in IDE, there may be other issues which
causes compile failures but should not be related to IDE.</p>

<p><a href="http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.4.20/ide-2.4.20-pre4-ac2.patch.bz2">http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.4.20/ide-2.4.20-pre4-ac2.patch.bz2</a><br />
<a href="http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.4.20/ide-2.4.20-pre4-ac2.patch.gz">http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.4.20/ide-2.4.20-pre4-ac2.patch.gz</a><br />
<a href="http://www.linuxdiskcert.org/ide-2.4.20-pre4-ac2.patch.bz2">http://www.linuxdiskcert.org/ide-2.4.20-pre4-ac2.patch.bz2</a></p>

<p><a href="http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.5.32/">http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.5.32/</a></p>

<p>This shall have something in it soon, as I am reviewing the pieces to pick
up and play catch up in 2.5 learning curve as to beat the Halloween
DEAD-DATE.</p>

</quote>

<p>Alan Cox replied:</p>

<quote who="Alan Cox">

<p>Rejected. I found several errors, a couple of strange reverts and some files
being moved to clearly wrong places. It also mixes up multiple changes.</p>

<p>Andre to make this work I need</p>

<p>

<ul>

<li>One change per patch (within reason)</li>

<li>An explanation of what it does</li>

</ul>

</p>

<p>For example I've got files you moved and changed, looking at that in diff
is a right pita. I've got a big diff with errors in it (eg gayle in ppc)
I can't easily be sure I can cleanly drop parts of.</p>

<p>Lets start with the file moving. Send me a diff for the Config/Makefile and
a lit of the files to move and where. Gayle I think should be m68k not ppc
(actually Im pretty sure), CMD640 is PCI so why file it in legacy. "legacy"
I took to mean pre PCI rather than "I think its junk" 8)</p>

</quote>

<p>Andre said:</p>

<quote who="Andre Hedrick">

<p>Deal, undoing the moves.</p>

<p>Parsing out all the summitted stuff first for send.
Then the breakdown of the rest.</p>

<p>Gemme a bit to catch on to your request, Viro is trying to teach the ways
of mad patcher and not the patch bomber.</p>

</quote>

</section>

<section
  title="ATI Framebuffer Problems In 2.5.31"
  subject="still ati fb errors with 2.5.31, thought patch applied"
  archive=""
  posts="5"
  startdate="27 Aug 2002 23:05:46 -0800"
  enddate="30 Aug 2002 06:13:18 -0800"
>
<topic>Framebuffer</topic>

<mention>James Simmons</mention>

<p>Clemens Schwaighofer reported compile-time errors when compiling 2.5.31,
when the compile reached the aty128fb driver. James Simmons replied
that this driver had not been ported to the new API, and would need to
be ported before it would work again. Paul Mackerras said he'd sent in a
patch that should have been included already, but then replied to himself,
<quote who="Paul Mackerras">But of course those error messages were *with*
my patch.  I just cross-compiled a kernel for i386 and got the same errors.
Here is a patch to go on top of my other patch which should fix things,
though I haven't tried running it on an x86 box yet.</quote> Clemens replied
that Paul's new patch allowed the kernel to compile and boot, but had other
problems such as strange font colors. The discussion ended there though.</p>

</section>

<section
  title="Anycast Support For IPv6"
  subject="[PATCH] anycast support for IPv6, linux-2.5.31"
  archive=""
  posts="4"
  startdate="28 Aug 2002 13:44:57 -0800"
  enddate="30 Aug 2002 00:16:39 -0800"
>
<topic>Capabilities</topic>
<topic>Networking</topic>
<topic>SMP</topic>

<mention>Pekka Savola</mention>

<p>David Stevens of IBM announced:</p>

<quote who="David Stevens">

<p>Below is a patch relative to the mainline 2.5.31 code for an
implementation of anycast support for IPv6. This code was submitted and accepted
in the USAGI tree last Fall. Below is a high-level description of the
implementation:</p>

<p>

<ol>

<li>

<p>The API:</p>

<p>      Although the RFC's liken anycasting to ordinary unicasting, I think
it's more appropriate to tie it closely to particular applications, so I've
chosen an API similar to multicasting. So, rather than having a permanent
anycast address associated with the machine, particular applications
that use anycasting can join or leave "anycast groups," and the machine will
recognize the anycast addresses as its own when one or more applications have
joined the group.</p>

<p>      So, for example, someone using anycasting for DNS high availability
can add a join to the anycast group in the server and as long as the DNS server
is running, the machine will answer to that anycast address. But the machine
will not respond to anycasts when the service that's using it isn't available,
so a broken server application that has exited won't deny that service if
there are other working members of the anycast group on other hosts.</p>

<p>      I don't know if that's controversial or not-- the RFC's are written
more from the external context, but seem to imply a model along the lines of
using "ifconfig" to add anycast addresses. I think that model doesn't fit the
best uses of anycasting, but I'd like to hear your thoughts on it.   </p>

<p>      The application interface for joining and leaving anycast groups is 2
new setsockopt() calls: IPV6_JOIN_ANYCAST and IPV6_LEAVE_ANYCAST. The arguments
are the same as the corresponding multicast operations. The kernel keeps a
reference count of members; when that goes to zero, the anycast address is not
recognized as a local address. While nonzero, the host listens on the solicited
node for that address, sends advertisements in response to solicitations (with
override=0) and delivers packets sent to the anycast address to upper
layers.</p>

<p>      There's also an in-kernel interface described below, which is used by
IPv6 mobility, for example.</p>

</li>

<li>

<p>Security Model:</p>

<p>      RFC 2373 states:</p>

<p>"An anycast address must not be assigned to an IPv6 host, that is, it may be
assigned to an IPv6 router only."</p>

<p>      This patch violates this in 1 special case, and I'll explain why.</p>

<p>a) The restriction on host use of anycast is to avoid carrying individual host
      routes for anycast addresses spread out among multiple physical
      networks. I think the initial application sets are exactly things that
      won't be on off-the-shelf routers (high availabily servers (DNS, http,
      etc) and mobile IPv6) and the particular cases don't have the problem of
      requiring host routes or participation in the routing system. They use
      anycast addresses with a prefix common to a unicast address on the
      system, so ordinary routing gets you to the right network, anyway, and
      there's no external penalty on the routing system for using those types
      of anycast addresses. For that reason, I allow anycast addresses that
      match an existing unicast prefix even on hosts.</p>

<p>      Finally (for security considerations), I had to choose whether anycast
should require root privilege or not. Multicasting does not, but it'd obviously
be a spoofing issue if an application joined an "anycast" that was actually the
unicast address of another machine on that network. On the other hand, it's
handy for non-root users to be able to make use of anycasting where that use
doesn't pose any security risks.</p>

<p>      The code below allows non-root users to join anycast groups that have
matching prefixes (don't require special-route propagation) with existing
unicast addresses,  and require root (really "CAP_NET_ADMIN") and a router for
off-link anycasts (disallowed completely on hosts). I think that should be
extended to require CAP_NET_ADMIN for any anycasts (even on-link ones) that are
not well-known anycasts (to avoid the spoofing of on-link unicast
addresses).</p>

</li>

<li>

<p>The Implementation:</p>

<p>      The code maintains a list of anycast addresses that are in use for
a given interface. The code is a modifed version of the existing multicast
code, with some things cleaned up, and operations on the anycast list instead
of the multicast list. Because the anycast address list is separate from the
ordinary address list, anycast addresses in general won't be selected as a
source address, or available for inappropriate uses. Protocols (like ICMP ECHO)
that respond by swapping the source and destination address have a separate
check for anycasts and set the source to zero in that case-- allows IPv6 to
choose the outbound source address.</p>

<p>      The code has the setsockopt() interface for joining and leaving anycast
groups, but does not yet have changes needed for UDP and TCP to work with them.
TCP is problematic, because the PCB lookup mechanism relies on the destination
address which must change-- it should be disallowed initially. UDP may work
with an INADDR_ANY-bound listener, but I haven't made changes to support it
yet. It will probably use the anycast address as the source, so it'll need a
modification similar to what I've done with ICMP, but should be straightforward.
Ultimately, I think we want to allow binding to anycast addresses as well.</p>

<p>      Our immediate application is mobile IPv6, so this patch doesn't include
any of the upper-layer changes that may be needed for general application
support.</p>

<p>      For in-kernel use, applications (like mobile IPv6) can call join and
drop functions for anycast addresses, and a function that checks if a device
is in an anycast group (if dev == 0, checks if any device is in that group).</p>

<p>      They are (similar to multicast functions):</p>

<p>int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)<br />
      - add "addr" as an anycast address on "dev"<br />
int ipv6_dev_ac_dec(struct net_device *dev, struct in6_addr *addr)<br />
      - remove "addr" as an anycast address on "dev"</p>

<p>these use reference counts, so only the first call to "inc" for a particular
address will add a new address, and only when all references are removed via
"dec" will the address be removed as a local address.</p>

<p>      The function:</p>

<p>int ipv6_chk_acast_addr(struct net_device *dev, struct in6_addr *addr)</p>

<p>returns true if "addr" is an anycast address on "dev", false otherwise. If
"dev" is 0, it searches all devices for "addr".</p>

<p>      Those 3 functions provide the in-kernel interface.</p>

</li>

<li>

<p>Things of Note:</p>

<p>      I think we want the ip6_addr_type() to check *only* the well-known
anycasts, since it seems inappropriate to me that that function should be
searching linked lists of anycast addresses. It would also need a "dev"
argument it doesn't have now, since anycast addresses, like unicast and
multicast addresses, in this implementation are associated with particular
devices. Use of those address on other devices should not return type ANYCAST,
but should for the device that has the anycast address. So, in most cases,
ipv6_chk_acast_addr() and not ipv6_addr_type() will be more appropriate.</p>

<p>      ipv6_addr_type(), with modifications included for reserved anycast
addresses, will still be useful for cases where the address is known to
*always* be an anycast (for example, disallowing reserved anycasts through
"ifconfig" being set as an ordinary address), but for the lower-level code,
it'll usually need a per-device check. So, I recommend we keep both, and use
ipv6_chk_acast_addr() to answer if it is a configured anycast address, use
ipv6_addr_type() to answer if the address is reserved for anycast (whether
configured or not).</p>

<p>      That's what this code does.</p>

</li>

<li>

<p>Testing:</p>

<p>      I wrote programs to join and leave anycast groups and I checked through
the /proc/net interface (file "anycast6") the presence of the groups. I've
used network sniffers to watch the neighbor discovery sequence and verify the
override bit is cleared, and I've tested with multiple hosts in the anycast
group talking to an unmodifed host that pings the anycast address. I also
verified that the existing code handles "override=0" correctly (it does).</p>

<p>      In addition, our mobile IPv6 team has used the code to test the use of
anycasting for Dynamic Home Agent address discovery, with several different
topologies and configurations.</p>

<p>      We've done tests with uniprocessor and SMP kernels on multiprocessor
machines.</p>

</li>

<li>

<p>TODO:</p>

<p>      I think the next steps are to flesh out the UDP part so ordinary
user-level applications can make full use of anycasting.</p>

</li>

</ol>

</p>

</quote>

<p>Pekka Savola suggested first writing an Internet Draft describing the
proposed API, and David replied:</p>

<quote who="David Stevens">

<p>I don't disagree with that, for informational purposes, but it doesn't
conflict with the RFC's, which of course don't cover API's, and don't specify
any interface for anycasting.</p>

<p>However, my primary goal is to get anycasting support with an in-kernel
interface in 2.5 before the freeze. :-) I used the setsockopt() API for
testing, and left it in the patch for others to do the same. Though I think
it's the right approach, for the reasons I mentioned, I'd rather see that
portion pulled from the patch if it's controversial, than have the in-kernel
interface and anycasting proper delayed over that.</p>

<p>The one use of anycast I'm aware of right now is for IPv6 mobility, which
needs the in-kernel interface. The user-level interface is important for
future applications, and a reference-counted setsockopt() interface doesn't
mean we can't also have an ip/ifconfig interface for permanent anycast
addresses, too (the required anycast addresses in this patch are permanent,
for example). So I don't see it as committing to one choice, but having
in-kernel anycast support (soon) I think is the more important first step.</p>

</quote>

</section>

<section
  title="Prefix List Support For IPv6"
  subject="[PATCH]  IPv6 Prefix List support for 2.5.31"
  archive=""
  posts="4"
  startdate="28 Aug 2002 14:05:12 -0800"
  enddate="29 Aug 2002 10:28:15 -0800"
>
<topic>Networking</topic>

<p>Krishna Kumar announced:</p>

<quote who="Krishna Kumar">

<p>This patch implements Prefix List support in IPv6. The reasons for the
patch are :</p>

<p>

<ul>

<li>RFC conformance (RFC 2461 - Neighbor Discovery, Section 5.1 and
others).</li>

<li>Prefix List is needed to support Mobile IPv6 when it gets submitted to
the kernel list.</li>

</ul>

</p>

<p>This code has both been tested within IPv6 and with Mobile IPv6. It has
also been integrated into the USAGI kernel.</p>

</quote>

</section>

<section
  title="Keyboard-Activated Screen Blanking"
  subject="Blank now key"
  archive=""
  posts="2"
  startdate="28 Aug 2002 14:16:45 -0800"
  enddate="29 Aug 2002 03:10:29 -0800"
>

<p>Pavel Machek posted a patch and explained, <quote who="Pavel Machek">Being
able to "blank now" is very important for handheld devices (where screen
can eat more than 50% of total power), and it is just nice everywhere else
(also saves a little power). Please apply.</quote> Someone else liked the
patch and said it would also be good for systems that were usually up with
the monitor powered down all the time.</p>

</section>

<section
  title="Status Of i845mp Chipset Support In 2.4"
  subject="i845mp support: 82845 (Brookdale) 82801BAM/CAM"
  archive=""
  posts="2"
  startdate="28 Aug 2002 23:44:27 -0800"
  enddate="29 Aug 2002 02:31:07 -0800"
>
<topic>PCI</topic>

<p>Andreas Kerl asked when support for i845mp would be adopted into the
kernel, and Alan Cox replied, <quote who="Alan Cox">Eventually. I have to
get Marcelo all the pci updates and a couple of pci bug fixes before I can
feed him the pci_enable_bars ide fix. He has some of the bits now.</quote></p>

</section>

<section
  title="Status Of e1000 In 2.4"
  subject="e1000 in 2.4?"
  archive=""
  posts="5"
  startdate="29 Aug 2002 00:45:36 -0800"
  enddate="29 Aug 2002 02:52:34 -0800"
>

<mention>David S. Miller</mention>
<mention>Roy Sigurd Karlsbakk</mention>

<p>Roy Sigurd Karlsbakk asked if anyone was working on porting the Intel
e1000 drive from 2.5 back to 2.4, and David S. Miller replied that the code
was already in the 2.4.20-pre tree; and Adriano Galano gave a link to the <a
href="http://sourceforge.net/project/showfiles.php?group_id=42302&amp;release_id=107462">Sourceforge
project page</a>.</p>

</section>

<section
  title="VM Regress 0.7 Released"
  subject="VM Regress 0.7"
  archive=""
  posts="1"
  startdate="29 Aug 2002 07:15:28 -0800"
>
<topic>SMP</topic>
<topic>Virtual Memory</topic>

<p>Mel Gorman announced:</p>

<quote who="Mel Gorman">

<p>Project page: <a href="http://www.csn.ul.ie/~mel/projects/vmregress/">http://www.csn.ul.ie/~mel/projects/vmregress/</a><br />
Download:
<a href="http://www.csn.ul.ie/~mel/projects/vmregress/vmregress-0.7.tar.gz">http://www.csn.ul.ie/~mel/projects/vmregress/vmregress-0.7.tar.gz</a></p>

<p>This is the fourth release of VM Regress. It is a regression, benchmarking
and test tool for the Linux VM in it's early stages. This will be the last
release for a while as funding in my University is a bit tight these days.
Mine is due to run out in a few months and I have to re-prioritise what I'm
doing unfortunately. I hope to get back working on this once I have secured
external funding to work full time on VM management in general and Linux
in particular.</p>

<p>This release has at least one major bug fix. It would have been triggered
by an SMP machine running an alloc or page faulting validation test. I haven't
heard any reports and I haven't triggered it myself but I'm pretty sure it
would deadlock. The project will now compile cleanly against late 2.5.32
which is the first 2.5 kernel since 2.5.28 it compiled against.  I haven't
managed to test with a 2.5.x kernel but there is no reason it shouldn't
work. I'd be interested in hearing any success/failure stories with 2.5.x</p>

<p>Perl scripts are now provided to run each test and benchmark, produce a
report, graph vmstat output etc so running tests is a lot easier. It will
load/unload modules as necessary to run the test. This reduces a lot of the
drudge work involved with setting up a test. There is also scripts available
for replotting graphs to a given scale so comparing vm's is a bit easier. man
pages and online help is available for each of them.</p>

<p>The mmap module will now run read or write benchmarks on either anonymous or
file backed maps. It produces graphs showing age of pages, reference counts,
page present/swapped, what pages were referenced over time, vmstat output
and some timing information. It still doesn't do statistical analysis but
that was in the works for 0.9 . the data files are all preserved as .data
files so any stats tool that can import space separated files can be used.
Links to sample test output is on the webpage.</p>

<p>If I get back working on this, 0.8 will have the simulated webserver
originally outlined by Rik Van Riel. Most of what is needed is already there
with the mmap module bench_mmap.pl uses.</p>

<p>Documentation is reasonably up to data and provided with the package. If
people have suggestions or reports, send them on and I'll add them to the
ToDo list. I'll continue to work on this periodically.</p>

<p>Full changelog for 0.7</p>

<p>Version 0.7</p>

<p>

<ul>

<li>Updated bench_mapanon.pl to perform read/write tests</li>
<li>Adapted mapanon.o and changed to mmap.o so it can map file descriptors</li>
<li>Adapted bench_mapanon.pl to bench_mmap.pl to be a generate mmap benchmark</li>
<li>Told benchmark to preserve sampling data</li>
<li>Time.pm exports new timing functions</li>
<li>mapanon.o changed to mmap.o, handles files or anonymous memory</li>
<li>Added graph to show page age vs page presence</li>
<li>Added graph to show reference pattern</li>
<li>Added replot.pl for easy replotting of time data</li>
<li>Fixed access permissions to alloc and fault tests</li>
<li>Removed stupid deadlock with alloc and fault modules</li>
<li>Various perl lib updates</li>
<li>Will now compile against late 2.5.x kernels (untested)</li>
<li>Automatically load and unload kernel modules</li>

</ul>

</p>

</quote>

</section>

<section
  title="Porting Sound Drivers To New Locking System"
  subject="1/41 sound/oss/maestro3.c - convert cli to spinlocks"
  archive=""
  posts="43"
  startdate="29 Aug 2002 11:56:27 -0800"
  enddate="30 Aug 2002 02:56:58 -0800"
>
<topic>SMP</topic>
<topic>Sound: OSS</topic>

<mention>Tomas Szepe</mention>

<p>Someone submitted a large number of patches against 2.5.32, converting
almost all remaining OSS sound drivers to use spin_lock_irqsave() and other
functions instead of the outdated cli() under SMP. Tomas Szepe pointed out
some formatting inconsistancies with his/her patch, but Alan Cox said, <quote
who="Alan Cox">When you've ported that much code to a new locking mechanism
then you can moan. If he wants to take on the old OSS code and making it work
in the 2.5 universe as far as I (as the ex OSS code maintainer) am concened
he can format it how he likes.</quote></p>

</section>

<section
  title="Linux 2.4.20-pre5-ac1 Released"
  subject="Linux 2.4.20-pre5-ac1"
  archive=""
  posts="4"
  startdate="30 Aug 2002 05:53:16 -0800"
  enddate="01 Sep 2002 15:05:13 -0800"
>
<topic>Disks: IDE</topic>
<topic>I2C</topic>
<topic>PCI</topic>
<topic>Sound: i810</topic>

<mention>Bjorn Helgaas</mention>
<mention>Manfred Spraul</mention>
<mention>Andreas Schwab</mention>
<mention>Steven Cole</mention>
<mention>Linus Torvalds</mention>

<p>Alan Cox announced:</p>

<quote who="Alan Cox">

<p> [+ indicates stuff that went to Marcelo, o stuff that has not,
 * indicates stuff that is merged in mainstream now, X stuff that proved
   bad and was dropped out, - indicates stuff not relevant to the main
tree]</p>

<p>Resync and collect up the main stuff. The IDE stuff Andre sent me isn't
in - its going back for another debug phase before its considered. Caution
is still advised with the IDE and ide-scsi is known to cause crashes.</p>

<p>Linux 2.4.20-pre5-ac1</p>

<pre>        Resync with 2.4.20pre5
o       Fix IDE compile                                 (me)
o       Update defconfig                                (Niels Jensen)
o       Various warning fixes                           (Niels Jensen)  
+       Remove epat debug printk that escaped           (Moritz Barsnick) 
o       Fix PPC build for pre4-ac                       (Ben Herrenschmidt)
o       Fix hang in Matrox DRM                          (Jonny Strom)
o       Backport 2.5 LDT allocation improvements        (Manfred Spraul)
+       Lp tidy and printk levels               (Lucas Correia Villa Real)
o       Update yenta region size patch                  (Manfred Spraul)
+       Fix an i2c bus leak on the acorn pcf8583        (Silvio Cesare)
+       Fix e100 phy build                              (Linus Torvalds)
o       Further i810 audio updates                      (Juergen Sawinski)
+       Tidy ver_linux output with gcc 3.x              (Steven Cole)
o       ppp_generic fixes for building on boxes         (Bjorn Helgaas)
        with out* as macros
o       pdc4030 updates                                 (Peter Denison)   
+       Forte sound driver updates                      (Martin Petersen)
o       Fix AMD7441 PCI ID error
o       Tighten asm-ia64 io macros                      (Andreas Schwab)</pre>

</quote>

</section>

<section
  title="Configuration Requirements For USB Mice"
  subject="USB mouse in 2.4.19-pre4 vs later"
  archive=""
  posts="2"
  startdate="30 Aug 2002 06:07:19 -0800"
  enddate="30 Aug 2002 06:17:31 -0800"
>
<topic>USB</topic>

<mention>Mario Mikocevic</mention>

<p>Mario Mikocevic reported that his USB mouse stopped working in X Windows
after he upgraded beyond 2.4.19-pre4 or -pre5. Tim Habermann replied, <quote
who="Tim Habermann">I had the same issue migrating from 2.4.18 to plain
2.4.19. Activating the new option "HID input layer support" under USB
support fixed this.</quote></p>

</section>

<section
  title="Linux 2.2.22-rc2 Released"
  subject="Linux 2.2.22rc2"
  archive=""
  posts="3"
  startdate="30 Aug 2002 06:55:54 -0800"
  enddate="31 Aug 2002 15:32:51 -0800"
>
<topic>MAINTAINERS File</topic>

<mention>Tomas Szepe</mention>
<mention>Julian Anastasov</mention>
<mention>Keith Owens</mention>

<p>Alan Cox announced:</p>

<quote who="Alan Cox">

<p>This is going straight to rc1 because it contains a lot of security fixes
for local security problems found by Silvio's audit Solar Designer and
a couple of other folks. The other stuff is minor and is the entire 2.2
pending queue anyway.</p>

<p>Special thanks go to Openwall who did pretty much all of the security
backporting work. This is mostly their kernel update not mine.</p>

<pre>2.2.22-rc2
o       Fix isofs over loopback problems                (Balazs Takacs)
o       Backport 2.4 shutdown/reset SIGIO from 2.4      (Julian Anastasov)
o       Fix error reporting in OOM cases                (Julian Anastasov)
o       List a 2.2 maintainer in MAINTAINERS            (Keith Owens)
o       Set atime on AF_UNIX sockets                    (Solar Designer)
o       Restore SPARC MD boot configuration             (Tomas Szepe)
o       Multiple further sign/overflow fixes            (Solar Designer)
o       Fix ov511 'vfree in interrupt'                  (Mark McClelland)</pre>

</quote>

<p>Krzysiek Taraszka liked the patch but reported that PowerPC was still
broken. He offered to send some quick but ugly patches while he worked on
the better solution.</p>

</section>

<section
  title="Various ARM Patches"
  subject="Patches..."
  archive=""
  posts="1"
  startdate="30 Aug 2002 13:38:21 -0800"
>
<topic>PCI</topic>

<p>Russell King announced:</p>

<quote who="Russell King">

<p>I'm about to send out 8 patches:</p>

<p>

<ul>

<li>2.5.29-keyboard</li>
<li>2.5.29-pci</li>
<li>2.5.29-rdunzip</li>
<li>2.5.30-pcnet_cs</li>
<li>2.5.31-serport</li>
<li>2.5.32-bug</li>
<li>2.5.32-flags</li>
<li>2.5.32-smph</li>

</ul>

</p>

<p>These are patches that are in the ARM tree, and I consider them to
be useful to others, bug fixes or compilation fixes that have been
collected.  All the above have been found not to be in 2.5.32.</p>

<p>Where applicable, they're copied to maintainers or Rusty's trivial    
patch address.  However, if people want to pick off any of these
patches and integrate them into their trees, and eventually push
them towards Linus, that's fine by me.</p>

<p>Any that aren't picked up will be re-mailed at some point in the
future (seems like its about once every 3 weeks to a month at the
moment.)</p>

</quote>

<p>In subsequent posts he explained that the keyboard patch was to handle
the extra '#' key on the ARM numeric keypad. And the rdunzip patch ensured
that the kernel reported failures when unzipping ramdisks.</p>

</section>

<section
  title="PCI Ops Cleanups For 2.5.32"
  subject="[BK PATCH] PCI ops cleanups for 2.5.32-bk"
  archive=""
  posts="17"
  startdate="30 Aug 2002 14:07:21 -0800"
  enddate="30 Aug 2002 14:24:46 -0800"
>
<topic>FS: driverfs</topic>
<topic>Hot-Plugging</topic>
<topic>PCI</topic>
<topic>Version Control</topic>

<mention>Hanna Linder</mention>
<mention>David Brownell</mention>

<p>Greg KH announced:</p>

<quote who="Greg KH">

<p>Here are the pci_ops cleanups that were discussed on lkml last week.  It
removes a lot of code from the arch specific implementation of          
pci_*_config* functions, and removes lots of code from the pci_hotplug
core (yes, the pci_hotplug code is still broken, I'm working on that
next...)</p>

<p>These patches includes fixups for almost all of the different  
architecture specific code.  I have a number of patches that I will send
to some of the arch maintainers directly, that are not included in this
bk tree.</p>

<p>I would like to thank Matt Dobson and Hanna Linder for doing lots of  
this work.</p>

<p>This series also includes a driverfs pci pool patch from David Brownell
(as long as we are making pci changes...)</p>

<p>Pull from:  http://linuxusb.bkbits.net/pci-2.5</p>

</quote>

</section>

<section
  title="New VFS inode Cache Lookup Function"
  subject="[BK-PATCH-2.5] Introduce new VFS inode cache lookup function"
  archive=""
  posts="9"
  startdate="31 Aug 2002 10:00:04 -0800"
  enddate="03 Sep 2002 10:14:04 -0800"
>
<topic>FS: NTFS</topic>
<topic>FS: ReiserFS</topic>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>

<mention>David Woodhouse</mention>
<mention>Nikita Danilov</mention>

<p>Anton Altaparmakov announced:</p>

<quote who="Anton Altaparmakov">

<p>The below ChangeSet against Linus' current BK tree adds a new function to
the VFS, fs/inode.c::ilookup().</p>

<p>This is needed in NTFS when writing out inode metadata pages via the VM
dirty page code paths as we need to know whether there is an active inode
in icache but we don't want to do an iget() because if the inode is not 
active then there is no need to write it... - I can just skip onto the next
one instead... - If there is an active inode then I need to get the struct
inode in order to perform appropriate locking for the write out to happen. </p>

<p>If there is something you don't like about this patch please let me know
what it is, preferably with what you want instead so I can modify it...</p>

<p>Without such icache lookup functionality it is impossible to write inodes
via the VM page dirty code paths AFAICS. - The only alternative I can see
is to duplicate the whole icache private to NTFS so that I can perform the
lookup internally but I think that is silly considering the VFS already
keeps the inode cache...</p>

</quote>

<p>David Woodhouse added that JFFS2 also needed this, and Nikita Danilov said
the same of ReiserFS.</p>

</section>

<section
  title="Watchdogging Out-Of-Filehandle Conditions"
  subject="[patch 2.4.19] reboot on out-of-file handles"
  archive=""
  posts="4"
  startdate="31 Aug 2002 12:16:38 -0800"
  enddate="31 Aug 2002 14:58:55 -0800"
>
<topic>FS: sysfs</topic>

<p>Dr. David Alan Gilbert announced:</p>

<quote who="Dr. David Alan Gilbert">

<p>Please find below a patch that adds the ability to panic if you run
out of file handles (by setting /proc/sys/fs/file-max-panic to none-0).  
When combined with reboot-on-panic this means that a server might be
able to get out of a service-gone-mad situation. It calls show_state
before panic'ing to log what was going on - adding something similar
which listed open filehandles would probably be advantageous.</p>

<p>The patch is against a clean 2.4.19 and was tested on sparc64.</p>

</quote>

<p>Alan Cox replied that this was already possible in user-space as part of
watchdog daemon processing. David agreed this was best, though a user-space
solution seemed to preclude logging the state of the system at the time of
failure. But Alan said, <quote who="Alan Cox">If your daemon keeps a few
open handles to reuse and the log file it can maybe do that when it spots
the problem occurs and isnt bumping the watchdog.</quote></p>

</section>

<section
  title="Syscalltrack 0.74 Released"
  subject="ANN: syscalltrack 0.74, &quot;Hyperactive Iguana&quot; released"
  archive=""
  posts="1"
  startdate="31 Aug 2002 13:02:24 -0800"
>
<topic>FS: sysfs</topic>
<topic>SMP</topic>
<topic>User-Mode Linux</topic>

<mention>Muli</mention>

<p>Muli Ben-Yehuda announced:</p>

<quote who="Muli Ben-Yehuda">

<p>syscalltrack-0.74, the 10th _alpha_ release of the Linux kernel system
call tracker, is now available. syscalltrack supports version 2.4.x of  
the Linux kernel on the i386 and UML architectures. 2.5.x kernel      
versions should work as well, but did not receive the same extensive
testing. Kernel 2.2.x is NOT supported in this release, due to
technical difficulties. This release contains support for almost all
system calls - more than 100 have been added since the last release.</p>

<p>

<ul>

<li>What is syscalltrack?

<blockquote>

<p>syscalltrack is made of a pair of Linux kernel modules and supporting
user space environment which allow interception, logging and possibly
taking action upon system calls that match user defined
criteria. syscalltrack can operate either in "tweezers mode", where
only very specific operations are tracked, such as "only track and log
attempts to delete /etc/passwd", or in strace(1) compatible mode,
where all of the supported system calls are traced. syscalltrack can
do things that are impossible to do with the ptrace mechanism, because
its core operates in kernel space.</p>

</blockquote>

</li>

<li>Where can I get it?

<blockquote>

<p>Information on syscalltrack is available on the project's homepage: <a
href="http://syscalltrack.sourceforge.net">http://syscalltrack.sourceforge.net</a>,
and in the project's file release.</p>

<p>The source for the latest version can be downloaded directly from: <a
href="http://osdn.dl.sourceforge.net/sourceforge/syscalltrack/syscalltrack-0.74.tar.gz">http://osdn.dl.sourceforge.net/sourceforge/syscalltrack/syscalltrack-0.74.tar.gz</a>
or any of the other sourceforge mirrors.</p>

</blockquote>

</li>

<li>Call for developers:

<blockquote>

<p>The syscalltrack project is looking for developers, both for
kernel space and user space. If you want to join in on the fun,
get in touch with us on the syscalltrack-hackers mailing list (<a
href="http://lists.sourceforge.net/lists/listinfo/syscalltrack-hackers">http://lists.sourceforge.net/lists/listinfo/syscalltrack-hackers</a>).</p>

</blockquote>

</li>

<li>License and NO Warrany

<blockquote>

<p>syscalltrack is Free Software, licensed under the GNU General Public
License (GPL) version 2. The 'sct_ctrl_lib' library is licensed under
the GNU Lesser General Public License (LGPL).</p>

<p>syscalltrack is in _alpha_ stages and comes with NO warranty. We put
it through extensive testing and routinely run it on our systems, but
if it breaks something, you get to keep all of the pieces.</p>

</blockquote>

</li>

<li>PGP Signature

<blockquote>

<p>All syscalltrack releases from now on will be signed. This
release is signed with my pgp public key, which you can get from <a
href="http://vipe.technion.ac.il/~mulix/pubkey.asc">http://vipe.technion.ac.il/~mulix/pubkey.asc</a>
or via<br />
'gpg --keyserver wwwkeys.pgp.net --recv-keys 0xBFD537CB'</p>

</blockquote>

</li>

</ul>

</p>

<p>Happy hacking and tracking!</p>

<p>=======================================================================<br />
New in version 0.74, "Hyperactive Iguana"<br />
-----------------------------------------------------------------------</p>

<p>

<ul>

<li>Added a whole lot of new system calls. syscalltrack now supports
  almost all of the system calls available on 2.4.x:
  vhangup, wait4, swapoff, sysinfo, fsync, readv, writev, fdatasync,
  msync, getpgid, fchdir, personality, bdflush, flock, setdomainname,
  newuname, modify_ldt, mprotect, sigprocmask, create_module,
  init_module, delete_module, get_kernel_syms, setfsuid16, setfsgid16,
  llseek, quotactl, sysfs, getdents, select, sysctl, mlock, mlockall,
  munlockall, munlockall, sched_setparam, sched_getapram,
  sched_setscheduler, sched_getscheduler, sched_yield,
  sched_get_priority_max, sched_get_priority_min,
  sched_rr_get_interval, nanosleep, mremap, setresuid16, getresuid16,
  query_module, poll, nfsservctl, setresgid16, getresgid16, prctl,
  rt_sigpending, rt_sigtimedwait, rt_sigqueueinfo, chown16, getcwd,
  sendfile,getrlimit, mmap2, stat64, lstat64, fstat64, lchown, getuid,
  getgid, geteuid, getegid, setreuid, setregid, getgroups, setgroups,
  fchown, setresuid, getresuid, setresgid, getresgid, chown, setgid,
  setfsuid, setfsgid, pivot_root, mincore, madvise, getdents64, fnctl64,
  gettid, tkill, sched_setaffinity, sched_getaffinity, sys_olduname
  sys_ustat, old_select, getitimer, setitimer, uname. pread, pwrite,
  truncate64, ftruncate64, readahead.</li>

<li>Fix a bug where we wouldn't correctly print NULL system call
  parameters. Now we print &lt;NULL&gt;.</li>

<li>Add support for system calls with loff_t and long long parameters.</li>

<li>Fix several bugs in sctrace.</li>

<li>Fix several important bugs in the system call data file parser (used
  in sctrace(1) and sct_config(1)) which prevented valid configuration
  files from being accepted. Added much better error reporting.</li>

<li>Numerous other bug fixes and internal cleanups.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Linux 2.5.33 Released"
  subject="Linux v2.5.33"
  archive=""
  posts="4"
  startdate="31 Aug 2002 14:22:31 -0800"
>
<topic>Disks: IDE</topic>
<topic>FS: JFS</topic>
<topic>FS: NTFS</topic>
<topic>Networking</topic>
<topic>USB</topic>

<p>Linus Torvalds announce Linux 2.5.33 (see the <a
href="http://www.kernel.org/pub/linux/kernel/v2.5/ChangeLog-2.5.33">ChangeLog</a>),
saying:</p>

<quote who="Linus Torvalds">

<p>There's a fair amount of stuff in here again, but I'd personally like to
have people who actually use that d*ng floppy driver please test it out. I
finally broke down and tried to fix it, since it's been broken in 2.5.x
for longer than most people care to remember.</p>

<p>I don't even have floppies to test with, I just verified that I could read
two old backup disks, and one seemed fine, and the other read 90% of the
thing, which was a lot more than I expected since they are both at least
five years old. I've never had good luck with those unreliable 3.5"
things, I'd rather have as little to do with them as possible.</p>

<p>Anyway, apart from floppies, this has the IDE organizational cleanups by
Al, another merge with Andrew, and some new networking stuff (TCP
segmentation offload onto network cards, and initial cut of SCTP support).</p>

<p>And NTFS, JFS, and of course USB updates. Oh, and some of the keyboard
input stuff should fix some random breakage in the input switchover.</p>

</quote>

</section>

<section
  title="NTFS 2.1.0a For Linux 2.4.19 And 2.4.20-pre-BK"
  subject="ANN: NTFS 2.1.0a for Linux 2.4.19 and 2.4.20-pre-BK"
  archive=""
  posts="1"
  startdate="01 Sep 2002 06:19:21 -0800"
>
<topic>FS: NTFS</topic>
<topic>FS: ext3</topic>
<topic>Version Control</topic>

<mention>Richard Russon</mention>

<p>Anton Altaparmakov announced:</p>

<quote who="Anton Altaparmakov">

<p>The new NTFS driver 2.1.0(a) is now available for kernel 2.4.19. NTFS
2.1.0(a) implements the first steps towards file overwrite support.  </p>

<p>Full and incremental patches are available from the Linux NTFS download
page:<br />
        <a href="http://linux-ntfs.sf.net/downloads.html">http://linux-ntfs.sf.net/downloads.html</a><br />
and from the Sourceforge project page (also older patches here):<br />
        <a href="http://sf.net/project/showfiles.php?group_id=13956&amp;release_id=107961">http://sf.net/project/showfiles.php?group_id=13956&amp;release_id=107961</a></p>

<p>If you use bitkeeper, you can get NTFS 2.1.0a by pulling from our bitkeeper
repository (note this is based on Marcelo's current bitkeeper tree so it is
at 2.4.20-pre5 at the moment and will move forward as Marcelo's repository
moves forward):<br />
        <a href="http://linux-ntfs.bkbits.net/ntfs-2.4">http://linux-ntfs.bkbits.net/ntfs-2.4</a></p>

<p>The current code is relatively well tested both for mmap(2) and write(2)
both using existing applications to randomly write to files and using
custom programs to do specialized writes to test boundary conditions.</p>

<p>Still the code has only been run on two machines, so people trying it,
please have backups! I am confident it won't eat your data, but I am not
willing to guarantee it! I have put in an appropriately very scary config
help message to scare off the casual user for the moment...</p>

<p>Features of NTFS 2.1.0(a)<br />
=========================</p>

<p>It is now possible to write over existing files both with mmap(2)
and write(2).</p>

<p>It is now possible to setup a loopback on an NTFS file and then you have
full read/write access to the loopback device. You can create a Linux fs
on the loop device for example and mount it.</p>

<p>This has been a much requested feature because it allows installation of
Linux on an NTFS partition using the loopback trick, i.e. from windows one
creates a large file on NTFS, then one boots Linux (from installation CD,
rescue floppies or whatever) and as root does:</p>

<p>mount -t ntfs -o rw /dev/hda1 /mnt/ntfs<br />
losetup /dev/loop0 /mnt/ntfs/some_dir/preprepared_large_file<br />
mke2fs -j /dev/loop0<br />
mount -t ext3 /dev/loop0 /mnt/new_root<br />
mkdir old_root<br />
&lt;install Linux into /mnt/new_root&gt;<br />
umount /mnt/new_root<br />
losetup -d /dev/loop0<br />
umount /mnt/ntfs</p>

<p>From now on, you can boot Linux and using a minimal ramdisk loaded via
floppy for example, one just needs to have something simillar to the
following done:</p>

<p>mount -t ntfs -o rw /dev/hda1 /mnt/ntfs<br />
mount -t ext3 -o loop /ntfs/some_dir/preprepared_large_file /mnt/new_root<br />
cd /mnt/new_root<br />
pivot_root . old_root<br />
exec chroot . sh &lt;dev/console &gt;dev/console 2&gt;&amp;1<br />
umount /old-root</p>

<p>[Note you probably cannot umount /old-root but it doesn't matter. It doesn't
disturb anyone... You could always hide it inside root/old_root or something
so users don't see it.]</p>

<p>I haven't actually tried to install Linux in the above way but Richard
Russon (flatcap) tested the loopback/mke2fs/read-write stuff and it
worked fine for him.</p>

<p>Limitations of NTFS 2.1.0(a) overwrite abilities<br />
================================================</p>

<p>

<ul>

<li>Resident files only written to in memory so far, i.e. writes to files
  smaller than 1kiB won't be permanent. Warnings to that effect are shown
  via printk().</li>

<li>Filling in of holes/non-initialized areas is not supported yes.</li>

<li>File resize/truncate not implemented and actively trapped and aborted.</li>

</ul>

</p>

<p>Anyone who tries this new code please let me know how you get on...</p>

</quote>

</section>

<section
  title="uCLinux Update"
  subject="[PATCH]: linux-2.5.33uc0 (MMU-less support)"
  archive=""
  posts="1"
  startdate="01 Sep 2002 06:41:31 -0800"
>

<p>Greg Ungerer announced:</p>

<quote who="Greg Ungerer">

<p>The latest MMU-less patch set is 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>Mostly changes to support 2.5.33. Much cleaning up of
the old cli/sti (now gone).</p>

</quote>

</section>

<section
  title="New Kernel Debugging Code For x86"
  subject="[PATCH] kprobes for 2.5.33"
  archive=""
  posts="1"
  startdate="01 Sep 2002 21:14:37 -0800"
>

<p>Rusty Russell announced, <quote who="Rusty Russell">This patch allows
trapping at almost any kernel address, useful for various kernel-hacking
tasks, and building on for more infrastructure.  This patch is x86 only,
but other archs can add support as required.</quote></p>

</section>

<section
  title="IPv4 Route Cache Lookup Enhancements"
  subject="[BKPATCH] lockfree rtcache lookup using RCU"
  archive=""
  posts="1"
  startdate="02 Sep 2002 01:11:21 -0800"
>
<topic>Networking</topic>
<topic>Real-Time</topic>
<topic>Version Control</topic>

<p>Dipankar Sarma announced:</p>

<quote who="Dipankar Sarma">

<p>The lockfree ipv4 route cache lookup code is now available
for pulling from -</p>

<p><a
href="http://lse.bkbits.net/linux-2.5-rcu-rtcache">http://lse.bkbits.net/linux-2.5-rcu-rtcache</a></p>

<p>It speeds up route cache lookup by 30-50% approximately as measured with
synthetic benchmark suggested by Dave.</p>

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

<p>The entire discussion is in - <a
href="http://marc.theaimsgroup.com/?t=102258611100001&amp;r=1&amp;w=2">http://marc.theaimsgroup.com/?t=102258611100001&amp;r=1&amp;w=2</a></p>

<p>Changes from Linus' tree are -</p>

<p>ChangeSet@1.500, 2002-09-02 12:34:24+05:30, dipankar@in.ibm.com<br />
  Implemented lockfree lookup of routes from ipv4 route cache using RCU.</p>

<p>ChangeSet@1.499, 2002-09-02 11:54:55+05:30, dipankar@in.ibm.com<br />
  Add a lightweight read barrier (read_barrier_depends()) for data
  dependent reads. Also, add more explicit versions of barrier names like
  read_barrier()/write_barrier().</p>

<p>ChangeSet@1.498, 2002-08-27 00:27:13+05:30, dipankar@in.ibm.com<br />
    Add RCU infrastructure based on rcu_poll in -aa kernels with support
    for preemption and per-CPU queues.</p>

</quote>

</section>

<section
  title="Adding XFS To 2.5"
  subject="[PATCH] XFS filesystem support"
  archive=""
  posts="1"
  startdate="03 Sep 2002 12:32:21 -0800"
>
<topic>FS: XFS</topic>
<topic>Version Control</topic>

<p>Christoph Hellwig announced:</p>

<quote who="Christoph Hellwig">

<p>The following patch adds the Config/Makefile/Documentation infrastructure
for XFS to the current BK tree (or 2.5.33). The actual XFS code is to big
to be posted as patch to lkml so I've uploaded a tarball at</p>

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/hch/xfs/xfs-2.5.33-20020903.tar.gz">ftp://ftp.kernel.org/pub/linux/kernel/people/hch/xfs/xfs-2.5.33-20020903.tar.gz</a></p>

<p>or</p>

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/hch/xfs/xfs-2.5.33-20020903.tar.bz2">ftp://ftp.kernel.org/pub/linux/kernel/people/hch/xfs/xfs-2.5.33-20020903.tar.bz2</a></p>

<p>that can be just unpacked in the toplevel kernel source directory.
The patch and the unpacked tarball give a fully functional XFS filesystem
driver, but no additional features that would require VFS changes.</p>

<p>This XFS code is very different from the latest official release (XFS 1.1).
Namely it uses the generic I/O path, has lots of dead code removed that
was needed in IRIX but superceeded by VFS check in Linux (e.g. the famous
rename checks).</p>

</quote>

</section>

<section
  title="x86 BIOS Enhanced Disk Device (EDD) Polling"
  subject="[RFC][PATCH] x86 BIOS Enhanced Disk Device (EDD) polling"
  archive=""
  posts="7"
  startdate="03 Sep 2002 14:05:16 -0800"
  enddate="04 Sep 2002 08:02:44 -0800"
>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS: driverfs</topic>
<topic>I2O</topic>
<topic>Ioctls</topic>
<topic>PCI</topic>
<topic>Serial ATA</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Matt Domsch said:</p>

<quote who="Matt Domsch">

<p>x86 systems suffer from a disconnect between what BIOS believes is the
boot disk, and what Linux thinks BIOS thinks is the boot disk.  BIOS
Enhanced Disk Device Services (EDD) 3.0 provides the ability for disk
adapter BIOSs to tell the OS what it believes is the boot disk.  While
this isn't widely implemented in BIOSs yet (thus shouldn't be
completely trusted), it's time that Linux received support to be
ready as BIOSs with this feature do become available.</p>

<p>EDD works by providing the bus (PCI, PCI-X, ISA, InfiniBand, PCI
Express, or HyperTransport) location (e.g. PCI 02:01.0) and interface
(ATAPI, ATA, SCSI, USB, 1394, FibreChannel, I2O, RAID, SATA) location
(e.g. SCSI ID 5 LUN 0) information for each BIOS int13 device.  The
patch below creates CONFIG_EDD, that when defined, makes the calls to
retrieve and store this information.  It then exports it (yes, another
/proc, glad to change it to driverfs or whatever else when that makes
sense) in /proc/edd/{bios-device-number}, as such:</p>

<p># ls /proc/edd/<br />
80  81  82  83  84  85</p>

<p># cat /proc/edd/80<br />
host_bus_type: PCI      02:01.0  channel: 0<br />
interface_type: SCSI            id: 0  lun: 0</p>

<p>Warning: Spec violation.  Key should be 0xBEDD, is 0xDDBE<br />
Warning: Spec violation.  Padding should be 0x20, is 0x00</p>

<p># cat /proc/edd/81<br />
host_bus_type: PCI      04:00.0  channel: 0   <br />
interface_type: SCSI            id: 0  lun: 0   </p>

<p>Warning: Spec violation.  Device Path checksum invalid (0x4b should be
0x00).</p>

<p>In the above case, BIOS int13 device 80 (the boot disk) believes it is
on PCI 02:01.0, SCSI bus 0, ID 0 LUN 0 (in this case it's an Adaptec
39160 add-in card).  Likewise, device 81 believes it's at PCI 04:00.0,
channel 0, ID 0, LUN 0 (a Dell PERC3/QC card).  In both cases the BIOS
vendors have some cleanup work to do, so I warn when they don't adhere
to the spec.</p>

<p>It's possible to query device drivers from user-space (either via a
SCSI ioctl, or IDE /proc/ide/*/config), to compare results to
determine which disk is the boot disk.</p>

<p>At most 6 BIOS devices are reported, as that fills the space that's
left in the empty_zero_page.  In general you only care about device
80h, though for software RAID1 knowing what 81h is might be useful also.</p>

<p>The major changes implemented in this patch:<br />
arch/i386/boot/setup.S - int13 real mode calls store results in empty_zero_page<br />
arch/i386/kernel/setup.c - copy results from empty_zero_page to local storage<br />
arch/i386/kernel/edd.c - export results via /proc/edd/</p>

<p>If you use this, please send reports of success/failure, and the
adapter types and BIOS versions, to edd30@domsch.com.  I'm keeping a
tally at http://domsch.com/linux/edd30/results.html.  If built as
CONFIG_EDD=m, please 'modprobe edd debug=1' and send those results -
it's more verbose.</p>

<p>Patch below applies to BK-current 2.5.x.  Also available in BitKeeper
at <a href="http://mdomsch.bkbits.net/linux-2.5-edd">http://mdomsch.bkbits.net/linux-2.5-edd</a></p>

</quote>

<p>Andre Hedrick replied, <quote who="Andre Hedrick">WOOHOO!  This looks like
some serious fun to make it go!  Matt, how about a location for a normal patch
for those of us who do not believe in BK.</quote> Matt said sure, and gave
<a href="http://domsch.com/linux/edd30/linux-2.5.33-edd-initial-rfc.patch">a
link</a>.</p>

</section>

<section
  title="gcml2 Version 0.7.1 Released"
  subject="ANNOUNCE: gcml2 version 0.7.1"
  archive=""
  posts="1"
  startdate="03 Sep 2002 18:19:15 -0800"
>
<topic>Kernel Build System</topic>

<mention>Randy Dunlap</mention>

<p>Greg Banks announced:</p>

<quote who="Greg Banks">

<p>gcml2 is (among other things) a Linux kconfig language syntax checker.
Version 0.7.1 is available at:</p>

<p><a href="http://sourceforge.net/project/showfiles.php?group_id=18813&amp;release_id=108721">http://sourceforge.net/project/showfiles.php?group_id=18813&amp;release_id=108721</a></p>

<p>and</p>

<p><a href="http://www.alphalink.com.au/~gnb/gcml2/download.html">http://www.alphalink.com.au/~gnb/gcml2/download.html</a></p>

<p>This is a bugfix release of gcml2.  Thanks to Randy Dunlap in particular
for reporting problems.  Future announcements of minor releases will be
on the kbuild-devel list only.</p>

<p>Here is a brief change log.</p>

<p>

<ul>

<li>Fixed memory corruption error where the banner node was being
  freed but not removed from the hashtable of all nodes.</li>
<li>The CONFIG_DECSTATION bug in the mips port triggered an assert
  failure in the overlap code; this case is now handled more
  gracefully.</li>
<li>Added two new warnings, condition-loop and dependency-loop.</li>
<li>Gracefully handle case where a define_bool is conditional on itself.</li>
<li>Fixed misfeature where failure to find a "source"d file would
  terminate parsing the remainder of the rulebase.</li>
<li>Using a symbol name instead of a sub-prompt as the default
  value for a "choice" no longer causes a parse error.</li>
<li>Various minor bugs, memory leaks, speed improvements.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Kernel 2.5 Status For September 4, 2002"
  subject="[STATUS 2.5]  September 4, 2002"
  archive=""
  posts="1"
  startdate="03 Sep 2002 19:03:32 -0800"
>

<p>Guillaume Boissiere announced:</p>

<quote who="Guillaume Boissiere">

<p>The latest and greatest status update is available at: <a
href="http://www.kernelnewbies.org/status/">http://www.kernelnewbies.org/status/</a></p>

<p>Of note this week is the inclusion of SCTP (Stream Control Transmission
Protocol) in 2.5.33.</p>

</quote>

</section>

<section
  title="Problem Report Status"
  subject="2.5 Problem Report Status"
  archive=""
  posts="5"
  startdate="03 Sep 2002 19:26:01 -0800"
  enddate="04 Sep 2002 02:16:43 -0800"
>
<topic>Disks: IDE</topic>
<topic>FS: JFS</topic>
<topic>FS: driverfs</topic>
<topic>FS: ext2</topic>
<topic>Feature Freeze</topic>
<topic>Forward Port</topic>
<topic>Version Control</topic>

<mention>Andre Hedrick</mention>
<mention>Linus Torvalds</mention>

<p>Thomas Molina reported:</p>

<quote who="Thomas Molina">

<p>The latest version of the followng problem
report status page can be found at: <a
href="http://members.cox.net/tmolina/kernprobs/status.html">http://members.cox.net/tmolina/kernprobs/status.html</a></p>

<p>   Notes:</p>

<p>

<ul>

<li>Off-list  email sent to me regarding these reports is much
appreciated. Relevant comments to a problem report will
       be added to the discussion thread unless specifically requested not
to. If you do send me a comment, please CC the
       list.</li>

<li>Great  progress has been made in forward porting IDE driver code
from 2.4 to 2.5. Several people have tried 2.5.33
       without disaster. Updates continue to be added to the -ac kernels
and the 2.5 bitkeeper kernels.</li>

<li>Floppy  support  is  currently  semi-broken/semi-fixed  in  2.5.
The  driver currently works (as of 2.5.33-bk) on
       filesystems  with  512-byte  blocks  (e.g. vfat/msdos) but has
produced corruption on filesystems with other block
       sizes  such as ext2, minix, etc. Update: Several fixes to the
floppy driver itself and the bio layer have improved
       things. This needs more testing and confirmation that the fix is
in.</li>

<li>Support for __FUNCTION__ pasting is being phased out of gcc. This
has broken compiling in numerous places. Defines
       of the form:<br />
       #define func_enter() sx_dprintk (SX_DEBUG_FLOW, "sx: enter " 
__FUNCTION__ "\n")<br />
       need to be changed to the form:<br />
       #define func_enter() sx_dprintk (SX_DEBUG_FLOW, "sx: enter %s\n", 
__FUNCTION__)</li>

<li>Items  marked with "No further discussion" have not had any
additional comments posted to the mailing list for one
       or more development point releases. These items will be archived
when Linus issues the next point release.</li>

</ul>

</p>

<pre>               2.5 Kernel Problem Reports as of 04 Sep
   Problem Title                  Status                Discussion
   schedule() with irqs disabled! open                  03 Sep 2002
   schedule in interrupt          No further discussion 2.5.31
   JFS oops                       No further discussion 2.5.31
   unmount oops                   No further discussion 2.5.31
   usb problem                    No further discussion 2.5.31
   pte.chain BUG                  No further discussion 2.5.31
   cciss broken                   proposed fix          2.5.31
   qlogicisp oops                 open                  01 Sep 2002
   qlogic error                   No further discussion 2.5.31
   kmap_atomic oops               No further discussion 2.5.31
   swap problem                   No further discussion 2.5.31
   oops in gpm.c                  No further discussion 2.5.31
   page allocation failure        No further discussion 2.5.31
   driverfs oops                  No further discussion 2.5.31
   2.5.32 reboot oops             open                  30 Aug 2002
   ext2 umount oops               open                  30 Aug 2002
   DEBUG_SLAB oops                open                  30 Aug 2002
   2.5.32-mm1 problems            open                  30 Aug 2002
   soft suspend problem           open                  30 Aug 2002</pre>

</quote>

<p>Andre Hedrick was pleased about the IDE reports, saying he'd been worried
about migrating the code too quickly from 2.4 to 2.5; Robert Love said that
the "schedule() with irqs disabled!" problem had a fix in Linus Torvalds'
BitKeeper tree that would appear in 2.5.34, so it could be marked closed. He
added, <quote who="Robert Love">Note this was never a problem - it was an
informative debugging message that unfortunately happens much more often
than anticipated.</quote> About the JFS oops, Axel Siebenwirth said:</p>

<quote who="Axel Siebenwirth">

<p>Okay. My JFS oops which was about the same style as the one that
occurred in 2.5 has gone away. Unfortunately I have not figured out yet
how to get my completely normal PS/2 keyboard to work with current
kernel 2.5.33 because of input driver options weirdness. So I could not
test it yet.</p>

<p>But then I guess the 2.5 JFS oops should have gone as well.
I cannot clearly state whether it was something that got fixed in JFS
tree or if it was my upgrade of gcc, i.e. something got fixed in gcc and
I do not want to test that.</p>

</quote>

<p>Thomas replied, <quote who="Thomas Molina">I expect things to break,
get fixed, and break again in a development series.  I've seen it in the
2.1, 2.3 as well as 2.5.  I expect it to smooth out once feature freeze
happens.</quote></p>

</section>

<section
  title="Leonard Zubkoff Killed"
  subject="Leonard Zubkoff killed"
  archive=""
  posts="1"
  startdate="04 Sep 2002 11:37:29 -0800"
>

<p>Larry M. Augustin reported that Leonard Zubkoff, a longtime contributor
to free software, had died. Larry said:</p>

<quote who="Larry M. Augustin">

Many of you may know Linux kernel developer Leonard
Zubkoff (BusLogic and DAC960 maintainer, among other
contributions).  Leonard was killed recently in a helicopter crash.  See <a
href="http://www.ktva.com/Stories/0,1413,163%257E6883%257E834332,00.html">http://www.ktva.com/Stories/0,1413,163%257E6883%257E834332,00.html</a>.
Leonard was one of the smartest people that I know, and I consider myself
lucky enough to have been privileged to work with him.  He will be missed.

</quote>

</section>

</kc>
