<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="175" date="14 Jul 2002 23:00:00 -0800" />

<stats posts="1136" size="4973" contrib="388" multiples="176" lastweek="126">

<person posts="51" size="303" who="Andrew Morton " />
<person posts="34" size="92" who="Thunder from the hill " />
<person posts="24" size="105" who="Keith Owens " />
<person posts="24" size="54" who="Alan Cox " />
<person posts="23" size="170" who="Bartlomiej Zolnierkiewicz " />
<person posts="22" size="70" who="Bill Davidsen " />
<person posts="19" size="160" who="Alexander Viro " />
<person posts="16" size="243" who="Anton Altaparmakov " />
<person posts="16" size="68" who="Andre Hedrick " />
<person posts="15" size="48" who="Jens Axboe " />
<person posts="15" size="45" who="Adrian Bunk " />
<person posts="14" size="68" who="Pavel Machek " />
<person posts="14" size="67" who="Andrea Arcangeli " />
<person posts="14" size="57" who="Dave Hansen " />
<person posts="14" size="47" who="Russell King " />
<person posts="14" size="38" who="Zwane Mwaikambo " />
<person posts="13" size="78" who="Ingo Molnar " />
<person posts="12" size="44" who="Werner Almesberger " />
<person posts="12" size="42" who="&quot;Richard B. Johnson&quot; " />
<person posts="11" size="36" who="&quot;J.A. Magallon&quot; " />
<person posts="11" size="33" who="James Simmons " />
<person posts="10" size="26" who="" />
<person posts="9" size="54" who="Karim Yaghmour " />
<person posts="9" size="49" who="Tom Rini " />
<person posts="9" size="29" who="Martin Dalecki " />
<person posts="9" size="27" who="Greg KH " />
<person posts="9" size="26" who="Dave Jones " />
<person posts="8" size="47" who="Roy Sigurd Karlsbakk " />
<person posts="8" size="40" who="Patrick Mochel " />
<person posts="8" size="26" who="Arnd Bergmann " />
<person posts="7" size="31" who="Trond Myklebust " />
<person posts="7" size="23" who="Matthias Andree " />
<person posts="6" size="94" who="Martin Schwidefsky " />
<person posts="6" size="35" who="Rob Landley " />
<person posts="6" size="21" who="Daniel Phillips " />
<person posts="6" size="19" who="Tomas Konir " />
<person posts="6" size="19" who="Rik van Riel " />
<person posts="6" size="19" who="Joe Thornber " />
<person posts="6" size="19" who="Austin Gonyou " />
<person posts="6" size="18" who="Vojtech Pavlik " />
<person posts="6" size="18" who="Matthew Wilcox " />
<person posts="6" size="15" who="Andi Kleen " />
<person posts="6" size="13" who="Jeff Dike " />
<person posts="5" size="42" who="Brad Hards " />
<person posts="5" size="41" who="Fabio Massimo Di Nitto " />
<person posts="5" size="26" who="Matthew Dharm " />
<person posts="5" size="24" who="Diego Calleja " />
<person posts="5" size="21" who="george anzinger " />
<person posts="5" size="21" who="Xinwen - Fu " />
<person posts="5" size="18" who="Jussi Laako " />
<person posts="5" size="16" who="Riley Williams " />
<person posts="5" size="16" who="Daniel Egger " />
<person posts="5" size="15" who="Jamie Lokier " />
<person posts="5" size="14" who="Ben Greear " />
<person posts="5" size="14" who="Stephen Tweedie " />
<person posts="5" size="13" who="&quot;Martinez, Michael - CSREES/ISTM&quot; " />
<person posts="5" size="12" who="Marcelo Tosatti " />
<person posts="5" size="12" who="Robert Love " />
<person posts="5" size="9" who="" />
<person posts="4" size="23" who="Stephen Rothwell " />
<person posts="4" size="21" who="Linus Torvalds " />
<person posts="4" size="14" who="" />
<person posts="4" size="13" who="Andries Brouwer " />
<person posts="4" size="13" who="&quot;Nick Evgeniev&quot; " />
<person posts="4" size="12" who="&quot;H. Peter Anvin&quot; " />
<person posts="4" size="12" who="Lukas Hejtmanek " />
<person posts="4" size="12" who="&quot;Ted Kaminski&quot; " />
<person posts="4" size="12" who="Oliver Neukum " />
<person posts="4" size="11" who="&quot;Albert D. Cahalan&quot; " />
<person posts="4" size="11" who="Oleg Nesterov " />
<person posts="4" size="10" who="William Lee Irwin III " />
<person posts="3" size="45" who="Manfred Spraul " />
<person posts="3" size="27" who="Matthias Fricke " />
<person posts="3" size="23" who="Tim Alexeevsky " />
<person posts="3" size="22" who="Rusty Russell " />
<person posts="3" size="21" who="Douglas Gilbert " />
<person posts="3" size="16" who="Pavel Roskin " />
<person posts="3" size="16" who="&quot;Holzrichter, Bruce&quot; " />
<person posts="3" size="16" who="jw schultz " />
<person posts="3" size="14" who="&quot;Kevin O'Connor&quot; " />
<person posts="3" size="14" who="Alessandro Suardi " />
<person posts="3" size="13" who="John Levon " />
<person posts="3" size="12" who="Marc-Christian Petersen " />
<person posts="3" size="12" who="Shaya Potter " />
<person posts="3" size="11" who="Justin Guyett " />
<person posts="3" size="10" who="Ville Herva " />
<person posts="3" size="10" who="Martin Josefsson " />
<person posts="3" size="10" who="Frank Davis " />
<person posts="3" size="10" who="Andreas Dilger " />
<person posts="3" size="10" who="Alex Riesen " />
<person posts="3" size="10" who="&quot;Martin J. Bligh&quot; " />
<person posts="3" size="9" who="Neil Brown " />
<person posts="3" size="9" who="Thomas Tonino " />
<person posts="3" size="9" who="Michael Gruner " />
<person posts="3" size="9" who="Axel Siebenwirth " />
<person posts="3" size="9" who="Chris Friesen " />
<person posts="3" size="8" who="" />
<person posts="3" size="8" who="Richard Zidlicky " />
<person posts="3" size="8" who="Miles Lane " />
<person posts="3" size="8" who="Benjamin Herrenschmidt " />
<person posts="3" size="8" who="Roman Zippel " />
<person posts="3" size="8" who="" />
<person posts="3" size="8" who="Oleg Drokin " />
<person posts="3" size="7" who="Tomas Szepe " />
<person posts="3" size="7" who="Anders Peter Fugmann " />
<person posts="3" size="7" who="Bernd Eckenfels " />
<person posts="3" size="6" who="Gregory Giguashvili " />
<person posts="3" size="6" who="" />
<person posts="3" size="6" who="&quot;Vinolin&quot; " />
<person posts="3" size="6" who="Alan Cox " />
<person posts="2" size="26" who="Mauricio Pretto " />
<person posts="2" size="23" who="Tim Schmielau " />
<person posts="2" size="17" who="john stultz " />
<person posts="2" size="15" who="Justin Hibbits " />
<person posts="2" size="15" who="Meelis Roos " />
<person posts="2" size="12" who="&quot;Richard J Moore&quot; " />
<person posts="2" size="10" who="Andrey Nekrasov " />
<person posts="2" size="9" who="Andrew Rodland " />
<person posts="2" size="9" who="Larry Kessler " />
<person posts="2" size="8" who="Martin Wilck " />
<person posts="2" size="8" who="Jesse Pollard " />
<person posts="2" size="8" who="Dipankar Sarma " />
<person posts="2" size="8" who="Brian Gerst " />
<person posts="2" size="8" who="&quot;Pablo Fischer&quot; " />
<person posts="2" size="8" who="Nick Urbanik " />
<person posts="2" size="8" who="Bastien Nocera " />
<person posts="2" size="8" who="Jens Axboe " />
<person posts="2" size="7" who="&quot;dan carpenter&quot; " />
<person posts="2" size="7" who="Kevin Curtis " />
<person posts="2" size="7" who="Gogu Mihai " />
<person posts="2" size="7" who="Peter Osterlund " />
<person posts="2" size="7" who="David Brownell " />
<person posts="2" size="7" who="Piotr Sawuk " />
<person posts="2" size="7" who="Harald Welte " />
<person posts="2" size="7" who="James Bottomley " />
<person posts="2" size="7" who="&quot;Hurwitz Justin W.&quot; " />
<person posts="2" size="6" who="Chris Wright " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Ivan Gyurdiev " />
<person posts="2" size="6" who="John Alvord " />
<person posts="2" size="6" who="Daniel Kobras " />
<person posts="2" size="6" who="&quot;Lu, Yan P&quot; " />
<person posts="2" size="6" who="Bernd Schubert " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="Steven Cole " />
<person posts="2" size="6" who="&quot;Martin Schwidefsky&quot; " />
<person posts="2" size="6" who="&quot;Petr Vandrovec&quot; " />
<person posts="2" size="6" who="&quot;Bloch, Jack&quot; " />
<person posts="2" size="5" who="Sanjoy Mahajan " />
<person posts="2" size="5" who="Ian Molton " />
<person posts="2" size="5" who="Arnaldo Carvalho de Melo " />
<person posts="2" size="5" who="Bill Darrow " />
<person posts="2" size="5" who="bert hubert " />
<person posts="2" size="5" who="&quot;Miquel van Smoorenburg&quot; " />
<person posts="2" size="5" who="Christer Weinigel " />
<person posts="2" size="5" who="Matthias Welk " />
<person posts="2" size="5" who="Christoph Hellwig " />
<person posts="2" size="5" who="&quot;Brett Simpson&quot; " />
<person posts="2" size="5" who="Matti Aarnio " />
<person posts="2" size="5" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="2" size="5" who="mbs " />
<person posts="2" size="5" who="Dieter Stueken " />
<person posts="2" size="5" who="Benjamin LaHaise " />
<person posts="2" size="5" who="David Schwartz " />
<person posts="2" size="5" who="Erlend Aasland " />
<person posts="2" size="5" who="Jan Harkes " />
<person posts="2" size="5" who="Nicholas Miell " />
<person posts="2" size="5" who="Mikael Pettersson " />
<person posts="2" size="5" who="Vitaly Fertman " />
<person posts="2" size="5" who="Eric Altendorf " />
<person posts="2" size="4" who="Jeff Garzik " />
<person posts="2" size="4" who="Min Li " />
<person posts="2" size="4" who="Voluspa " />
<person posts="2" size="4" who="Madhavi " />
<person posts="2" size="4" who="&quot;Perches, Joe&quot; " />
<person posts="2" size="4" who="&quot;Lists (lst)&quot; " />
<person posts="1" size="43" who="Alan Cox " />
<person posts="1" size="33" who="Pozsar Balazs " />
<person posts="1" size="28" who="Yann Dirson " />
<person posts="1" size="27" who="Naohiko Shimizu " />
<person posts="1" size="21" who="Hanna Linder " />
<person posts="1" size="17" who="=?iso-8859-1?q?Henning=20Petersen?= " />
<person posts="1" size="16" who="sullivan " />
<person posts="1" size="15" who="&quot;Filip J. Bujanic&quot; " />
<person posts="1" size="14" who="Rob van Nieuwkerk " />
<person posts="1" size="12" who="Paul Menage " />
<person posts="1" size="12" who=" (Linus Torvalds)" />
<person posts="1" size="11" who="Samuel Flory " />
<person posts="1" size="11" who="Russ Weight " />
<person posts="1" size="9" who="nigga " />
<person posts="1" size="9" who="Christian =?iso-8859-15?q?Borntr=E4ger?= " />
<person posts="1" size="9" who="Bob Miller " />
<person posts="1" size="8" who="digital_boy " />
<person posts="1" size="7" who="Patrick Mau " />
<person posts="1" size="7" who="bob " />
<person posts="1" size="7" who="Jarda Gress " />
<person posts="1" size="6" who="=?ISO-8859-1?Q?Pasi_K=E4rkk=E4inen?= " />
<person posts="1" size="6" who="Helge Deller " />
<person posts="1" size="6" who="Albert Cranford " />
<person posts="1" size="6" who="Neale Banks " />
<person posts="1" size="6" who="&quot;Ronny Lampert (EED)&quot; " />
<person posts="1" size="6" who="J Sloan " />
<person posts="1" size="6" who="&quot;Taylor, Neville&quot; " />
<person posts="1" size="6" who="Marc Haber " />
<person posts="1" size="6" who="Kevin Corry " />
<person posts="1" size="5" who="Marcus Alanen " />
<person posts="1" size="5" who="Jakob Oestergaard " />
<person posts="1" size="5" who="Greg Smith " />
<person posts="1" size="5" who="Martin Lillepuu " />
<person posts="1" size="5" who="&quot;george kukah&quot; " />
<person posts="1" size="5" who="&quot;Adam J. Richter&quot; " />
<person posts="1" size="5" who="Sergey Kononenko " />
<person posts="1" size="5" who="Marko Kohtala " />
<person posts="1" size="5" who="&quot;Randal, Phil&quot; " />
<person posts="1" size="5" who="George France " />
<person posts="1" size="5" who="Dmitry Kasatkin " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Paul Bristow " />
<person posts="1" size="4" who="&quot;Imran Badr&quot; " />
<person posts="1" size="4" who="Geert Uytterhoeven " />
<person posts="1" size="4" who="Brett " />
<person posts="1" size="4" who="Hank Leininger " />
<person posts="1" size="4" who="Paul P Komkoff Jr " />
<person posts="1" size="4" who="Hubertus Franke " />
<person posts="1" size="4" who="Zeljko Brajdic " />
<person posts="1" size="4" who="Peter Oberparleiter " />
<person posts="1" size="4" who="Suparna Bhattacharya " />
<person posts="1" size="4" who="Lionel Bouton " />
<person posts="1" size="4" who="Sebastian Droege " />
<person posts="1" size="4" who="Abraham vd Merwe " />
<person posts="1" size="4" who="&quot;Bill Rugolsky Jr.&quot; " />
<person posts="1" size="4" who="Ken Moffat " />
<person posts="1" size="4" who="Brandon Low " />
<person posts="1" size="4" who="Joseph Pingenot " />
<person posts="1" size="3" who="Thomas Winischhofer " />
<person posts="1" size="3" who="Keith Owens " />
<person posts="1" size="3" who="&quot;kenorb -&quot; " />
<person posts="1" size="3" who="&quot;Bill Shirley&quot; " />
<person posts="1" size="3" who="John Levon " />
<person posts="1" size="3" who="Petr Vandrovec " />
<person posts="1" size="3" who="David Weinehall " />
<person posts="1" size="3" who=" (Bob_Tracy)" />
<person posts="1" size="3" who="Helge Hafting " />
<person posts="1" size="3" who="&quot;Edward J. Huff&quot; " />
<person posts="1" size="3" who="David Dillow " />
<person posts="1" size="3" who="Andrew Friedley " />
<person posts="1" size="3" who="Frank van de Pol " />
<person posts="1" size="3" who="James Cleverdon " />
<person posts="1" size="3" who="Richard Ems " />
<person posts="1" size="3" who="Bongani " />
<person posts="1" size="3" who="Iain Thomas " />
<person posts="1" size="3" who="Manoj Iyer " />
<person posts="1" size="3" who=" (David Wagner)" />
<person posts="1" size="3" who="Sandy Harris " />
<person posts="1" size="3" who="Gerd Knorr " />
<person posts="1" size="3" who="Nivedita Singhvi " />
<person posts="1" size="3" who="&quot;David D. Hagood&quot; " />
<person posts="1" size="3" who="Russ Lewis " />
<person posts="1" size="3" who="Chris Rankin " />
<person posts="1" size="3" who="&quot;Justin M. Forbes&quot; " />
<person posts="1" size="3" who="Manik Raina " />
<person posts="1" size="3" who="Vance Lankhaar " />
<person posts="1" size="3" who="&quot;Mohammad A. Haque&quot; " />
<person posts="1" size="3" who="MR.Nily " />
<person posts="1" size="3" who="Hugh Dickins " />
<person posts="1" size="3" who="&quot;Randy.Dunlap&quot; " />
<person posts="1" size="3" who="&quot;Dr. David Alan Gilbert&quot; " />
<person posts="1" size="3" who="&quot;Dejan&quot; " />
<person posts="1" size="3" who="Theodore Ts'o " />
<person posts="1" size="3" who="James Cassidy " />
<person posts="1" size="3" who="Gabriel Paubert " />
<person posts="1" size="3" who="&quot;Per Jessen&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who=" (=?iso-8859-1?Q?Dr._Markus_Ammer=2C_Ingenieurb=FCro_Ammer?=)" />
<person posts="1" size="3" who="Hans Reiser " />
<person posts="1" size="3" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="1" size="3" who="Dominik Geisel " />
<person posts="1" size="3" who="Andreas Dilger " />
<person posts="1" size="3" who="Larry McVoy " />
<person posts="1" size="3" who="Nathan Scott " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Stephen Clark " />
<person posts="1" size="3" who="Peter Chubb " />
<person posts="1" size="3" who="Jose Orlando Pereira " />
<person posts="1" size="2" who="Andreas Jaeger " />
<person posts="1" size="2" who="Willy Tarreau " />
<person posts="1" size="2" who="&quot;Nivedita Singhvi&quot; " />
<person posts="1" size="2" who="Marcus Sundberg " />
<person posts="1" size="2" who="J Sloan " />
<person posts="1" size="2" who="Eyal Lebedinsky " />
<person posts="1" size="2" who="Julian Anastasov " />
<person posts="1" size="2" who="Dave Richards " />
<person posts="1" size="2" who="Ian Kumlien " />
<person posts="1" size="2" who="Jan-Benedict Glaw " />
<person posts="1" size="2" who="Kai Germaschewski " />
<person posts="1" size="2" who="Gunther Mayer " />
<person posts="1" size="2" who="&quot;David Marques Neves (DMNss)&quot; " />
<person posts="1" size="2" who=" (khromy)" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;Raptorfan&quot; " />
<person posts="1" size="2" who="Andre Hedrick " />
<person posts="1" size="2" who="Pablo Fischer " />
<person posts="1" size="2" who="Paul Mackerras " />
<person posts="1" size="2" who="&quot;Sujit&quot; " />
<person posts="1" size="2" who="&quot;Justin R Hibbits&quot; " />
<person posts="1" size="2" who="Mark Kettenis " />
<person posts="1" size="2" who="Chris Mason " />
<person posts="1" size="2" who="Vitez Gabor " />
<person posts="1" size="2" who="Timo Jantunen " />
<person posts="1" size="2" who="Bart Trojanowski " />
<person posts="1" size="2" who="&quot;Michael Nguyen&quot; " />
<person posts="1" size="2" who="Kai Makisara " />
<person posts="1" size="2" who="Ralf Baechle " />
<person posts="1" size="2" who="&quot;Mark Peloquin&quot; " />
<person posts="1" size="2" who="Horst von Brand " />
<person posts="1" size="2" who="Greg Ungerer " />
<person posts="1" size="2" who="Andreas Schwab " />
<person posts="1" size="2" who="&quot;David S. Miller&quot; " />
<person posts="1" size="2" who="Andi Kleen " />
<person posts="1" size="2" who="Matt Bernstein " />
<person posts="1" size="2" who=" (Rogier Wolff)" />
<person posts="1" size="2" who="Clemens Schwaighofer " />
<person posts="1" size="2" who="Bruno Pujol " />
<person posts="1" size="2" who="=?iso-8859-1?Q?Micha=B3_Adamczak?= " />
<person posts="1" size="2" who="&quot;Scott M. Hoffman&quot; " />
<person posts="1" size="2" who="Patrick Clohessy " />
<person posts="1" size="2" who="Gilad Ben-Yossef " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Pavel Machek " />
<person posts="1" size="2" who="anton wilson " />
<person posts="1" size="2" who="Francois Romieu " />
<person posts="1" size="2" who="Bruce Harada " />
<person posts="1" size="2" who="Peter Svensson " />
<person posts="1" size="2" who="&quot;Tim Pepper&quot; " />
<person posts="1" size="2" who="Pierfrancesco Caci " />
<person posts="1" size="2" who="john slee " />
<person posts="1" size="2" who="Vladimir Zidar " />
<person posts="1" size="2" who="Pawel Kot " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Ariel Garcia " />
<person posts="1" size="2" who="&quot;Nils O.&quot; =?ISO-8859-1?Q?Sel=E5sdal?= " />
<person posts="1" size="2" who="Rudmer van Dijk " />
<person posts="1" size="2" who="&quot;Anthony Spinillo&quot; " />
<person posts="1" size="2" who="Duncan Sands " />
<person posts="1" size="2" who="&quot;Rahul Karnik&quot; " />
<person posts="1" size="2" who="Chris Chabot " />
<person posts="1" size="2" who="Paul Larson " />
<person posts="1" size="2" who="Kareem Dana " />
<person posts="1" size="2" who="Sanctus Evanidus " />
<person posts="1" size="2" who="Gerhard Mack " />
<person posts="1" size="2" who="&quot;Steve Cole&quot; " />
<person posts="1" size="2" who="Klaasjan Brand " />
<person posts="1" size="2" who="Gabor Kerenyi " />
<person posts="1" size="2" who="&quot;Lee Chin&quot; " />
<person posts="1" size="2" who="Hacksaw " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="=?iso-8859-1?Q?Brasseur_Val=E9ry?= " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Christian Berger " />
<person posts="1" size="2" who="Robin Farine " />
<person posts="1" size="2" who="Jason Lunz " />
<person posts="1" size="2" who="Dan Sturtevant " />
<person posts="1" size="2" who="Mark Hahn " />
<person posts="1" size="2" who="John W Fort " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="James Morris " />
<person posts="1" size="2" who="Anders Fugmann " />
<person posts="1" size="2" who="Mukesh Rajan " />
<person posts="1" size="2" who="sun zongjun " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;linswing&quot; " />
<person posts="1" size="2" who="Shanti Katta " />
<person posts="1" size="2" who="Richard Gooch " />
<person posts="1" size="2" who="Kyler Laird " />
<person posts="1" size="2" who="Aaron Lehmann " />
<person posts="1" size="2" who="&quot;Pedro M. Rodrigues&quot; " />
<person posts="1" size="2" who="Peter Zelezny " />
<person posts="1" size="2" who="=?iso-8859-2?Q?Witek_Kr=EAcicki?= " />
<person posts="1" size="2" who="Grega Fajdiga " />
<person posts="1" size="2" who="=?iso-8859-1?q?Jim=20MacBaine?= " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;Mohamed Ghouse , Gurgaon&quot; " />
<person posts="1" size="1" who="Anders Gustafsson " />
<person posts="1" size="1" who="Michael Mertins " />
<person posts="1" size="1" who="&quot;jusy&quot; " />
<person posts="1" size="1" who="" />
<person posts="1" size="1" who="David Chow " />

</stats>

<section
  title="Reducing Disk Spin When Running Off Battery Power"
  subject="Automatically mount or remount EXT3 partitions with EXT2 when a laptop is powered by a battery?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0206.3/0106.html"
  posts="18"
  startdate="24 Jun 2002 12:02:26 -0800"
  enddate="05 Jul 2002 16:58:35 -0800"
>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>
<topic>Laptop Support</topic>
<topic>Ottawa Linux Symposium</topic>
<topic>Power Management: ACPI</topic>

<mention>Stephen C. Tweedie</mention>
<mention>Miles Lane</mention>

<p>Miles Lane asked if there were any way to make a laptop switch its
filesystem mount from ext3 to ext2, when running on battery power. Several
people said this was not possible, and asked why Miles would want to do
such a thing. Andrew Morton speculated, <quote who="Andrew Morton">If it's
because of the disk-spins-up-too-much problem then that can be addressed
by allowing the commit interval to be set to larger values.</quote> Miles
confirmed that this was indeed why he'd mentioned it; and went on to ask if
there were any ay to set the commit interval automatically when switching to
battery power. Andrew replied, <quote who="Andrew Morton">If the APM/ACPI
stuff can report the transition to userspace then yes, that's something
which their support scripts could do.</quote> Pavel Machek chimed in,
with, <quote who="Pavel Machek">ACPI should be able to pass that info.
Please make that patch go to linus, it looks very usefull to me.</quote>
Elsewhere some folks discussed various implementation details, and Stephen
C. Tweedie said he'd check a patch into the tree when he got back from the
Ottawa Linux Symposium.</p>

</section>

<section
  title="X86 Page Sizes"
  subject="x86 Page Sizes"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0206.3/0358.html"
  posts="7"
  startdate="26 Jun 2002 14:02:03 -0800"
  enddate="05 Jul 2002 22:22:44 -0800"
>
<topic>Big Page Size Support</topic>
<topic>Ottawa Linux Symposium</topic>

<mention>Steven Cole</mention>

<p>Dan Sturtevant asked, <quote who="Dan Sturtevant">I know the x86 linux
kernel has 4K pages in userspace and 4M pages in kernel space.  These two sizes
seem to be limitations of the intel architecture (I think).  Does anyone know
a way to increase the userspace page size above 4K?  Are there any patches
for a 4M userspace pagesize?</quote> A couple posts down the line, Peter
Svensson explained, <quote who="Peter Svensson">The x86 cpus can use 4K or
4M pages in the hardware. The 4M pages are restricted to the kernel in Linux
due to various problems</quote> ... <quote who="Peter Svensson">4M pages are
useful to minimize tlb misses which can be costly for some algorithms.</quote>
He referred Dan to an earlier discussion on the list, with the Subject: <a
href="http://www.uwsg.iu.edu/hypermail/linux/kernel/0205.2/1201.html">Have the
2.4 kernel memory management problems on large machines been fixed?</a> Steven
Cole also gave a link to the <a href="http://www.linuxsymposium.org/2002/">2002
Ottawa Linux Symposium</a> page, which contained the full pProceedings as a
PDF file. He warned that it was 631 pages long, and pointed to pages 573-593
as bearing on this subject.</p>

</section>

<section
  title="Some Discussion Of Hardware Auto-Detection"
  subject="Multiple profiles"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0206.3/0391.html"
  posts="9"
  startdate="27 Jun 2002 01:30:03 -0800"
  enddate="04 Jul 2002 05:28:24 -0800"
>
<topic>FS</topic>
<topic>Hot-Plugging</topic>
<topic>USB</topic>

<p>Gregory Giguashvili asked why Linux was unable to detect all hardware
configurations automatically. After some confusion over his phrasing of the
question, he clarified, and Jesse Pollard explained:</p>

<quote who="Jesse Pollard">

<p>Most tapes/scanners/disks that are removable/detachable are using the
USB.</p>

<p>If that is the case, then yes - they can be handled automatically.</p>

<p>You do have to setup the USB daemon and drivers. Once configured they
should be connected automatically. Depending on the type of disk (hard
disk, filesystem type, access authorizations) you run into additional
complications.</p>

<p>Not everything SHOULD be automatically done. For instance - overriding
authorizations on a disk drive can allow a workstation user to violate the
security policy established for the disk drive. The same can be said for
a tape or floppy. Such policies are NOT implementable inside the kernel
(at least not portably).</p>

<p>This is one reason an automatic mount is not necessarily valid. That
policy cannot be supported (or even identified) by the kernel.</p>

<p>Scanners and printers however, are more policy neutral - they don't
inherently store data that is policy controlled. At least not in the US. These
devices are usually immediately available after connection. (Though I'm still
working on getting my HP G55 scanner/printer working - it is recognized by
the USB subsystem as soon as it is attached).</p>

<p>I believe in other countries scanners are required to be able to label
the data being scanned and/or printed to identify the source of the data
(doesn't prevent tampering, but it is still a policy).</p>

</quote>

<p>And Brad Hards also replied to Gregory:</p>

<quote who="Brad Hards">

<p>We can do this, for some device types. Not just for boot, but for hotplug
type devices as well. The kernel option is CONFIG_HOTPLUG, and it signals
userspace to describe what went on.</p>

<p>It is not appropriate for the kernel to decide what goes on (eg, if you
attach a USB scanner, whether you'd like to load the necessary kernel modules,
start up KDE and kooka, start a scan and save to /tmp/pr0n; or just ignore it
for now because the scanner is noisy, and you'll start it running overnight
from a cron job). So we make such policy decisions in userspace. This is
normally some shell script run as /sbin/hotplug (although you can change
the script name using a /proc interface). Sample scripts can be downloaded
from <a href="http://linux-hotplug.sf.net">http://linux-hotplug.sf.net</a>,
which has lots more documentation on this.</p>

</quote>

</section>

<section
  title="SCHED_IDLE Implementation"
  subject="[announce] [patch] batch/idle priority scheduling, SCHED_BATCH"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0206.3/0694.html"
  posts="9"
  startdate="30 Jun 2002 16:26:42 -0800"
  enddate="07 Jul 2002 11:07:58 -0800"
>
<topic>Big O Notation</topic>
<topic>Real-Time</topic>
<topic>SMP</topic>
<topic>Scheduler</topic>
<topic>Security</topic>

<p>Ingo Molnar announced:</p>

<quote who="Ingo Molnar">

<p>the attached patch adds a feature that was pretty high on the scheduler
features wishlist: it implements the functionality of SCHED_IDLE, in a safe
way. Another desired scheduler feature was batch scheduling, the cache-friendly
handling of lowprio, batch-like, CPU-bound, 100% noninteractive tasks. The
new SCHED_BATCH scheduler policy implements both features.</p>

<p>the existing SCHED_IDLE patches floating around, despite their simplicity,
had one major flaw that prevented their integration into the scheduler:
if an unpriviledged SCHED_IDLE process uses normal kernel functionality,
which happens to grab a critical kernel resource such as the root directory's
semaphore, and schedules away still holding the semaphore, then there is no
guarantee that the task will run again in any deterministic amount of time
- keeping the critical resource potentially forever - deadlocking every
other process that attempts to use that critical resource. This property,
while being a source for soft lockups even during ordinary use, also makes
SCHED_IDLE an easy DoS exploit.</p>

<p>as the size of the patch suggests, the safe solution is not simple. The
basic concept is the identification of user-space preemption via a special
scheduler upcall: one safe point to delay a task's execution indefinitely is
when the task is preempted in pure user-space mode - if this happens then
the lowlevel kernel entry code calls the schedule_userspace() function,
instead of schedule(). In every other case the task needs to stay in the
'normal' scheduler queues, to guarantee prompt processing of kernelspace
code. Furthermore, such batch-mode tasks need to be scheduled if they get
a signal delivered - otherwise it would not be possible to eg.  kill them.</p>

<p>other properties: SCHED_BATCH also triggers much longer, batch-like
timeslices - the default SCHED_BATCH timeslice is 1.5 seconds. Nice values
still have a meaning for SCHED_BATCH processes as well - they determine the
relative percentage of idle CPU time allocated to SCHED_BATCH processes. If
the SCHED_BATCH process is in kernel-mode then the nice value is used as the
normal priority when preempting (or not preempting) other, non-SCHED_BATCH
processes.</p>

<p>put in another way: whenever a SCHED_BATCH process is in kernel-mode, it's
"elevated" into the SCHED_NORMAL priority domain - which guarantees timely
execution of kernel-space code. When the SCHED_BATCH process is executing
user-space code then it can be put into the batch-queue, and can be delayed
indefinitely.</p>

<p>Timeslice distribution is a modified/simplified version of SCHED_NORMAL
scheduling: SCHED_BATCH processes are scheduled in a roundrobin way, timeslices
are distributed based on the nice value. SCHED_BATCH tasks that use up
their timeslices get suspended until all other SCHED_BATCH tasks on that CPU
exhaust their timeslices - at which point a new turn begins.  SCHED_NORMAL,
SCHED_RR and SCHED_FIFO tasks preempt SCHED_BATCH processes immediately. All
this functionality is implemented in an O(1) way. (The interactivity estimator
is active for SCHED_BATCH processes as well - this has an effect if the task
is in kernelspace mode. This also makes sure that no artificial priority
boost can be achieved by switching in/out of SCHED_BATCH mode.)</p>

<p>on SMP there are per-CPU batch queues - which enables the use of hundreds
or thousands of SCHED_BATCH processes, if desired. A new, independent
load-balancer is used to distribute SCHED_BATCH processes: SCHED_BATCH
processes will populate CPUs depending on the CPU's "10 seconds history
of idleness". The more idle a CPU, the more SCHED_BATCH processes it will
handle. The weighting is done in a way to make the global distribution of
SCHED_BATCH timeslices fair. The load-balancer also honors caching properties
and tries to reduce unnecessery bouncing of SCHED_BATCH processes. (The
balancing, like in the SCHED_NORMAL case, is not intended to be 100% 'sharp'
- some statistical fuzziness is allowed to keep overhead and complexity
down.)</p>

<p>(to see the SMP SCHED_BATCH load-balancer in action, start up multiple
SCHED_BATCH processes on an SMP box - they populate all available CPUs
evenly. Then start up a single CPU-intensive, non-SCHED_BATCH process - after
a few seconds all SCHED_BATCH processes will migrate off to the remaining
CPUs, and the SCHED_NORMAL task will get 100% CPU time of a single CPU.)</p>

<p>(design sidenote: initially i tried to integrate SCHED_BATCH scheduling
into the existing scheduler and SCHED_NORMAL balancer somehow, but gave up
on this idea. While that worked for RT scheduling, SCHED_BATCH scheduling
is quite different, and is 100% orthogonal to all the other scheduling
domains. Eg. the balancing of non-SCHED_BATCH processes *must not* be
influenced by the way SCHED_BATCH processes are distributed amongst CPUs.
The distribution of timeslices must be completely separated as well. So since
all the queues and state has to be separate, they can as well be in separate
(and simplified) data structures.)</p>

<p>i've also attached setbatch.c, which is a simple utility to change a given
PID's scheduling policy to SCHED_BATCH. One straightforward way of using it
is to change one shell to be SCHED_BATCH:</p>

<p>        ./setbatch $$</p>

<p>and start various commands from this SCHED_BATCH shell - all forked
children inherit the SCHED_BATCH setting.</p>

<p>the load generated by multiple SCHED_BATCH processes does not show up
in the load average - this is the straightforward solution to not confuse
load-average-sensitive applications such as sendmail.</p>

<p>the runtime performance impact of SCHED_BATCH is fairly minimal. There
is a (pretty light) branch and function call cost in the entry.S preemption
codepath. Otherwise the SCHED_BATCH code triggers in slowpaths only: eg.
when we would otherwise switch to the idle thread.</p>

<p>the patch was tested on x86 systems. non-x86 systems should still work with
the patch applied, but no SCHED_BATCH process will in fact be suspended. For
batch-suspension to work the architecture needs to call schedule_userspace()
instead of schedule(), when pure userspace code is preempted.</p>

<p>the attached patch is against 2.5.24, it was tested on SMP and UP systems
as well, but keep in mind that this is the first version of this patch, so
some rough edges might be present. The patch can also be downloaded from my
scheduler patches homepage:</p>

<p><a
href="http://redhat.com/~mingo/O(1)-scheduler/batch-sched-2.5.24-A0">http://redhat.com/~mingo/O(1)-scheduler/batch-sched-2.5.24-A0</a></p>

</quote>

<p>There were only a few comments on this. Nicholas Miell had some questions
about how Ingo's patch would jibe with the IEEE standard, but it turned out
his objections would be best solved in user-space. However, Nicholas pointed
out, <quote who="Nicholas Miell">Keep in mind that someday, someone who is
looking for the implementation of the SCHED_OTHER policy will be thoroughly
confused by the kernel's complete lack of reference to SCHED_OTHER. And
they'll be asking you for clarification.  Or, you could make some note in
the source that SCHED_OTHER is SCHED_NORMAL and eliminate any source of
confusion now.</quote> Ingo did this.</p>

</section>

<section
  title="Status Of O(1) Scheduler In 2.4"
  subject="[OKS] O(1) scheduler in 2.4"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.0/0087.html"
  posts="28"
  startdate="01 Jul 2002 09:52:54 -0800"
  enddate="07 Jul 2002 02:55:16 -0800"
>
<topic>Big O Notation</topic>
<topic>Feature Freeze</topic>
<topic>Scheduler</topic>
<topic>Virtual Memory</topic>

<p>Bill Davidsen asked what the holdup was for getting the O(1) scheduler
into 2.4. Various distributions had been using it for awhile, he said,
with no problems. Ingo Molnar replied, <quote who="Ingo Molnar">well, the
patch is barely 6 months old. A new scheduler changes the 'heart' of the
kernel and something like that should not be done for the stable branch,
especially since it has finally started to converge towards a state that
can be called stable ...</quote> Bill replied that there were very invasive
changes being done to the 2.4 Virtual Memory subsystem, that would be more
likely to break things than the new scheduler. But no one replied to him.</p>

<p>Elsewhere, Tom Rini also pointed out that the current 2.4 kernel was
2.4.19-rc1, and any major change would make it impossible to move the
release-candidate into the official 2.4.20 kernel. Also, he said the 2.4 tree
was not supposed to receive such huge changes, as it was theoretically a
<i>stable</i> tree. Bill replied:</p>

<quote who="Bill Davidsen">

<p>Since 2.5 feature freeze isn't planned until fall, I think you can assume
there will be releases after 2.4.19... Since it has been as heavily tested
as any feature not in a stable release kernel can be, there seems little
reason to put it off for a year, assuming 2.6 releases within six months of
feature freeze.</p>

<p>Stable doesn't mean moribund, we are working Andrea's VM stuff in, and
that's a LOT more likely to behave differently on hardware with other word
length. Keeping inferior performance for another year and then trying to
separate 2.5 other unintended features from any possible scheduler issues
seems like a reduction in stability for 2.6.</p>

</quote>

<p>Tom replied that it was important to stop feature-creep, and that O(1)
would be a major change to the core kernel. It was too invasive, he felt,
for the 2.4 series. A little later he added, <quote who="Tom Rini">I don't
think the low-latency, preempt or O(1) should make it into 2.4.  And since
Ingo, who wrote this, doesn't think it should go into 2.4 right now, it
hopefully won't.</quote> Elsewhere, Ingo commented:</p>

<quote who="Ingo Molnar">

<p>it might be a candidate for inclusion once it has _proven_ stability and
robustness (in terms of tester and developer exposion), on the same order
of magnitude as the 2.4 kernel - but that needs time and exposure in trees
like the -ac tree and vendor trees. It might not happen at all, during the
lifetime of 2.4.</p>

<p>Note that the O(1) scheduler isnt a security or stability fix, neither is
it a driver backport. It isnt a feature backport that enables hardware that
couldnt be used in 2.4 before. The VM was a special case because most people
agreed that it truly sucked, and even though people keep disagreeing about
that decision, the VM is in a pretty good shape now - and we still have good
correlation between the VM in 2.5, and the VM in 2.4. The 2.4 scheduler on the
other hand doesnt suck for 99% of the people, so our hands are not forced in
any way - we have the choice of a 'proven-rock-solid good scheduler' vs. an
'even better, but still young scheduler'.</p>

<p>if say 90% of Linux users on the planet adopt the O(1) scheduler, and
in a year or two there wont be a bigger distro (including Debian of course)
without the O(1) scheduler in it [which, admittedly, is happening already],
then it can and should perhaps be merged into 2.4. But right now i think
that the majority of 2.4 users are running the stock 2.4 scheduler.</p>

</quote>

<p>Bill replied that the O(1) scheduler <i>had</i> proven itself to be
at least as good as the stock scheduler, but Ingo came back with, <quote
who="Ingo Molnar">this is your experience, and i'm happy about that. Whether
it's the same experience for 90% of Linux users, time will tell.</quote></p>

</section>

<section
  title="Some Discussion Of Major Version Release Scheduling"
  subject="[OKS] Kernel release management"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.0/0090.html"
  posts="19"
  startdate="01 Jul 2002 10:25:16 -0800"
  enddate="07 Jul 2002 11:37:46 -0800"
>
<topic>Feature Freeze</topic>
<topic>Release Scheduling</topic>
<topic>Virtual Memory</topic>

<mention>Alan Cox</mention>

<p>Bill Davidsen suggested that 2.7 be forked as soon as Linus released 2.6;
he said, <quote who="Bill Davidsen">I think developers will maintain the 2.6
work out of pride and desire to have a platform for the "next big thing." And
their code can always be placed on hold for 2.7 until they clarify their
thinking on 2.6, if that's really needed.  Most of the developers take pride
in what they did in the recent past and would certainly not be a problem if
a fix were needed. And if there is a reasonable -rc process there shouldn't
be any major bugs of the "start over" variety.</quote> Dave Jones replied,
<quote who="Dave Jones">Unfortunatly, there's the possibility of people
thinking "I'll fix it properly in 2.7, and backport", during which time, 2.6
doesn't get fixed any faster.  People diving into 2.7 development and leaving
2.6 to those that actually care about stabilising it was Linus' concern if
I understood correctly at the summit.</quote> Rob Landley replied:</p>

<quote who="Rob Landley">

<p>And leaving stabilization to the people who care about stabilization would
be a bad thing why?  2.4's first ten releases are a marvelous counter-example
to the "stonewall new development to speed up bugfixing" theory of software
development.  The musical rotating feature freeze/thaw/slush/slurpee halfway
through development cycles haven't been that effective either.</p>

<p>Linus ain't so good at maintenance, and he has said as much on this list.
Linus's kernel sets the direction for Linux evolution, but he couldn't get
the 2.4.0 VM stabilized and Alan Cox did.  (Better than mainline, anyway.)
If Linus had handed over the stable series to Alan right after 2.4.1,
taken a month long vacation, and then opened a new branch that was a bit
selective at first about what it took and from who, does anybody think 2.4
would have taken any longer to properly stabilize than it wound up doing?
(Did Jens's bio patches really need to wait on the VM stabilization work?
Did Jens help stabilize the 2.4 VM?)</p>

<p>We live in a world of multiple Linux kernel trees already, each with a
different maintainer who is good at different things.  Linus is a brilliant
architect who is great at plucking the best ideas from the cream layer of the
churning mass of Sturgeon's Law flung at him on a daily basis.  When presented
with four ways to do something, he'll spot the hidden fifth better way like
nobody else can.  But saying no in such a way as to promote stability is
a different skill, and last time Linus went into big time "saying no" mode
he wound up dropping VM stabilization patches from the then VM maintainer.
And the feature freezes haven't historically been remarkably effective at
producing a stable kernel soon after either.</p>

<p>A "stabilization fork" off of the development series could be done, as an
experiment, during the next "feature slush".  A maintainer who specializes in
stabilizing code (You, Alan, and Marcelo are all doing a decent job at this
now: it's not a common skill but not as rare as being a brilliant architect
like Linus) can fork a "fixes only" tree that may or may not become 2.6,
and see how it goes.</p>

<p>It it works, great, if it doesn't work, fine.  You already maintain a
fork off of Linus's tree, and Alan maintains one off of Marcelo's tree.
Red Hat and SuSE maintain their own forks as well.  The existence of such a
fork, with a compentent maintainer and its own user base, is not inherently
disruptive to the rest of the world.  Feeding patches from one tree into
another and dropping the rest until they're merged is what you and Alan
do normally anyway, so the down side of it NOT working (giving up after a
few months and going "shucks, people just won't listen to anyone but Linus")
isn't exactly catastrophic.  As long as the maintainer is competent at merging
to clean up the fork afterwards, and if they're not they can't effectively
maintain their own tree in the first place anyway.</p>

<p>An explicit stabilization-only fork could even be a tool to help Linus's
fork stabilize (if that is or becomes the goal), by tracking down bugs and
performance tuning in a less turbulent environment while trying hard to
introduce as few new problems as possible, and that being the ONLY goal of
the fork.  Lots of bugs have been tracked down in -dj or -ac and the fix
then ported to the appropriate mainline later.</p>

<p>If the stabilization fork DOES become 2.6, then 2.6 can START with a new
maintainer, like Marcelo for 2.4 and Alan for 2.2.  Stable branch maintainers
aren't normally expected to make major new architectural decisions anyway,
that's what development kernels are for. :)</p>

<p>And if nothing else, it reduces the likelihood of development being
stuck in a nebulous "no new features, well, okay, one more but that's it"
mode for most of a year.</p>

<p>Yes, in theory 2.5 should BECOME a stabilization fork, under Linus,
during the feature freeze.  It might even happen this time.  But how would
hedging the bet hurt?</p>

</quote>

<p>Russell King asked:</p>

<quote who="Russell King">

<p>Think about who will do the stabilisation.  Do you really think Alan
or Marcelo will pick up 2.6 when it comes out?  Or do you see someone else
picking up 2.6?</p>

<p>One of the fundamental questions that needs to be asked along side the
"fork 2.7 with 2.6" problem is _who_ exactly is going to look after 2.6.
Dave Jones?  If Dave, who's going to do Daves job of making sure fixes get
propagated between stable and development trees?</p>

</quote>

<p>Dave Jones pointed out that Marcelo Tossatti was not averse to taking
over 2.6 once 2.7 came out. Dave said, <quote who="Dave Jones">as he's done
a pretty good job so far in 2.4, he seems to be the ideal guy for the job
(time permitting). At the time we get to 2.6.0, 2.4 should have slowed down
sufficiently that he'll be looking for something else to do.</quote> As far
as his own future role, Dave added, <quote who="Dave Jones">When we get to
2.6, I'll do 2.6-dj's until the important bits are all pushed to $maintainer,
and keep the leftovers until 2.7-dj.</quote></p>

<p>Elsewhere, Adrian Bunk was very much against forking 2.6 and 2.7 at the same
time. He said:</p>

<quote who="Adrian Bunk">

<p>

<ul>

<li>A stable base to start new development upon is a very good thing
  (and I don't believe in the stability of 2.6.0).</li>

<li>Something I'd call the "Debian syndrome" will appear:
    There are only very few developers who run Debian stable because even
    during the release cycle there's always an unstable tree. One of the
    results is that many of the Debian developers aren't that much focussed
    on working on the next stable release (the current stable release of
    Debian is nearly two years old and doesn't support kernel 2.4...).</li>

</ul>

</p>

<p>  If 2.7 doesn't start before 2.6 is _really_ stable everyone who wants
  to have a new development tree is more interested in making 2.6 a really
  good kernel instead of focussing immediately on 2.7 .</p>

</quote>

<p>Bill replied:</p>

<quote who="Bill Davidsen">

<p>Seems the reason this is being suggested is that lots of new stuff got
shoved into 2.2 and 2.4 in the early stages, and they were NOT stable.
Since far more influential people than I are suggesting this, obviously at
least some of the folks feel it's worth trying something different.</p>

<p>The maintainer can alway push really new stuff into 2.7, and Linus can
always refuse to take a feature into 2.7 until something else is fixed in
2.6. Looking at how hard people are working to backport things from 2.5 to
2.4 I have faith that extra effort will be taken.</p>

</quote>

<p>Russell King came in at this point, with:</p>

<quote who="Russell King">

<p>I'm maintaining the 2.5 and 2.4 ARM trees here in parallel, and it is
*really* tough to handle.  There are several problems:</p>

<p>

<ol>

<li>finding the time to build and test each kernel version on hardware
reasonably well.</li>

<li>keeping track of what has been applied to which kernels</li>

<li>getting down-stream developers to produce patches for the stable and
development kernels generally doesn't happen.</li>

</ol>

</p>

<p>The net effect is I have more support for various ARM machines in 2.4 at
present than in 2.5, but 2.5 only contains my new features.</p>

<p>If 2.6 and 2.7 appear at the same time, you _will_ run into the same
problems across the community.  Unless people are willing to put lots of
work in to making patches apply to two widely different kernel source trees,
you could end up in the same situation.  And it's no fun to be there.</p>

</quote>

<p>The discussion went on for a few more posts, then petered out
inconclusively.</p>

</section>

<section
  title="Device Model Docs"
  subject="Device Model Docs"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.0/0258.html"
  posts="6"
  startdate="02 Jul 2002 13:28:52 -0800"
  enddate="05 Jul 2002 17:36:54 -0800"
>
<topic>Documentation</topic>
<topic>Ottawa Linux Symposium</topic>
<topic>Version Control</topic>

<mention>Arnd Bergmann</mention>

<p>Patrick Mochel announced:</p>

<quote who="Patrick Mochel">

<p>I have had a chance to make a pass over the device model documentation.
I've removed most gross inaccuracies, though there may still be a few glowing
warts. You can get at them at</p>

<p><a
href="http://kernel.org/pub/linux/kernel/people/mochel/doc/">http://kernel.org/pub/linux/kernel/people/mochel/doc/</a></p>

<p>The OLS paper and presentation (in Open Office format) are also there.</p>

<p>Everyone is encouraged to have a look. Feel free to send me comments,
corrections, or patches.</p>

<p>Additionally, I've also exported my BK tree, which can be found at</p>

<p>bk://ldm.bkbits.net/linux-2.5/</p>

<p>Currently, the only thing committed so far is the above mentioned
documentation and the fixing of the existing documentation.</p>

</quote>

<p>Arnd Bergmann took a look at the documentation, and the two of them went
over some of the details.</p>

</section>

<section
  title="Localizing #include Directives"
  subject="[patch,rfc] make depencies on header files explicit"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.0/0397.html"
  posts="5"
  startdate="03 Jul 2002 13:45:19 -0800"
  enddate="05 Jul 2002 16:39:25 -0800"
>
<topic>Source Tree</topic>

<p>Tim Schmielau remarked, <quote who="Tim Schmielau">It seems to be
quite common to assume that sched.h and all the other headers it drags
in are available without declaration anyways. Since I aim at invalidating
this assumption by removing all unneccessary includes, I have started to
make dependencies on header files included by sched.h explicit.  This is,
again, just a small start, a patch covering the whole include/ subtree
would be approximately 25 times as large. However, before I'll dig into
this further, I'd like to make sure I haven't missed some implicit rules
about which headers might be assumed available, or should be included by
the importing .c file, or something like that.  So any comments about this
project are welcome.</quote> Stephen Rothwell thought this was a super plan,
and added, <quote who="Stephen Rothwell">IMHO any source file (and here I
include header files) should include all the header files it depends on.
This gives us at least some chance of keeping the headers consistant with
their usage.</quote> Sandy Harris replied:</p>

<quote who="Sandy Harris">

<p>I thought conventional wisdom was that header files should never #include
other headers, and .c files should explicitly #include all headers they
need.</p>

<p>Googling on "nested header" turns up several style guides that agree:</p>

<p><a
href="http://www.cs.mcgill.ca/resourcepages/indian-hill.html">http://www.cs.mcgill.ca/resourcepages/indian-hill.html</a></p>

<p><a
href="http://www.doc.ic.ac.uk/lab/secondyear/cstyle/node5.html">http://www.doc.ic.ac.uk/lab/secondyear/cstyle/node5.html</a></p>

<p>and others that say it is controversial, can be done either way: <a
href="http://www.eskimo.com/~scs/C-faq/q10.7.html">http://www.eskimo.com/~scs/C-faq/q10.7.html</a></p>

<p>Am I just off base in relation to kernel coding style? Or would getting
rid of header file nesting be a useful objective.</p>

</quote>

<p>Stephen replied that "conventional wisdom" varied depending on who was
asked, but he did add, <quote who="Stephen Rothwell">I just find it a real
pain sometimes trying to figure out what other include files I need to when
all I really want is one or two definitions in one particular include file.
The same holds true when I am removing or moving stuff from one place to
another (especially when trying to clean up some of the current mess).</quote>
But Tim Schmielau also put in, <quote who="Tim Schmielau">Avoiding nested
headers certainly results in the smallest set of header files actually
#included.  However, I think it's just not feasible with the kernel: many
files would start with a list of some hundred includes, and I can't imagine
a reasonable way to document the dependencies between them.</quote> EOT.</p>

</section>

<section
  title="User-Mode Linux Security"
  subject="user-mode port 0.58-2.4.18-36"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.0/0734.html"
  posts="8"
  startdate="05 Jul 2002 14:50:17 -0800"
  enddate="09 Jul 2002 10:47:29 -0800"
>
<topic>Capabilities</topic>
<topic>FS</topic>
<topic>Security</topic>
<topic>Software Suspend</topic>
<topic>User-Mode Linux</topic>

<p>Jeff Dike announced:</p>

<quote who="Jeff Dike">

<p>This is the fourth release of the 2.4.18 UML.</p>

<p>The major changes in this release include:</p>

<blockquote>

<p>        It is now possible the to attach the UML gdb to sleeping threads.
        This is done by detaching gdb from the in-context thread and attaching
        it to the host pid of the sleeping UML process.  UML may be continued
        by reattaching to the in-context thread.  This feature was sponsored
        by Cluster File Systems, Inc.</p>

<p>        There is a /proc/exitcode, which allows a UML process to set the
        eventual UML exit code.</p>

<p>        Fixed some segfaults caused by calling openpty, which has an
unusually
        large stack frame, overflowing the UML kernel stack.</p>

<p>        The tty logging patch is integrated.  This allows UML honeypots to
        log all tty traffic to a host file.  This logging can't be detected
        or interfered with by root inside the UML.</p>

<p>        UML now has a "hardware" watchdog.</p>

<p>        The UML binary now lives in its own physical memory.  This makes it
        easier for the swsusp patch to be ported to UML.</p>

<p>        Fixed a bug with lots of zombies causing a UML panic.</p>

<p>        It is now possible to move backing files and update the COW
files with
        ubdx=cow-file,new-backing-file.  Note that you must preserve the
        modification time when moving a backing file with something like
        'cp -p' or 'tar p'.</p>

<p>        Added support for kernel watchpoints.  They can be mixed with
        watchpoints in gdb inside UML.</p>

<p>        Fixed the bug which was closing file descriptors which should have
        been left open.  This was most often seen as a panic during UML
        shutdown, although it also appeared in other places.</p>

<p>        The mconsole driver now sends panic notifications to mconsole
clients.</p>

<p>        A number of smaller bugs were fixed and features added.</p>

</blockquote>

<p>The project's home page is <a
href="http://user-mode-linux.sourceforge.net">http://user-mode-linux.sourceforge.net</a></p>

<p>Downloads are available at <a
href="http://user-mode-linux.sourceforge.net/dl-sf.html">http://user-mode-linux.sourceforge.net/dl-sf.html</a></p>

</quote>

<p>Pavel Machek asked, <quote who="Pavel Machek">what prevents uml root from
inserting rogue module (perhaps using /dev/kmem) and escape the jail?</quote>
Jeff explained, <quote who="Jeff Dike">That's prevented by the admin taking
basic precautions and turning on 'jail', which refuses to run if module support
is present and which also disables writing to /dev/kmem.</quote> Pavel pointed
out that Jeff had disabled /dev/kmem writes by turning off CAP_SYS_RAWIO,
and that this might interfere with operations that needed CAP_SYS_RAWIO. He
felt that UML should report CAP_SYS_RAWIO as an unplugged hole, instead
of simply disabling it. Jeff agreed that a user might be surprised to find
CAP_SYS_RAWIO disabled when they'd expected it to be available, but he added,
<quote who="Jeff Dike">I haven't seen anything that cares about CAP_SYS_RAWIO
being off.  That was the simplest way I could find to disable writing to
/dev/kmem.</quote> Pavel felt that disabling writes to /dev/kmem was a
strange way to architect the code, but Jeff pointed out that this, along
with disabling CAP_SYS_RAWIO, were only done when 'jail' was turned on.</p>

</section>

<section
  title="Linux 2.5.25 Announced"
  subject="linux 2.5.25"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.0/0741.html"
  posts="11"
  startdate="05 Jul 2002 15:54:20 -0800"
  enddate="08 Jul 2002 00:40:49 -0800"
>
<topic>Disk Arrays: EVMS</topic>
<topic>Disk Arrays: LVM</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS: driverfs</topic>
<topic>Kernel Build System</topic>
<topic>Kernel Release Announcement</topic>
<topic>USB</topic>

<mention>Heinz Mauelshagen</mention>
<mention>Patrick Caulfield</mention>

<p>Linus Torvalds announced 2.5.25, saying:</p>

<quote who="Linus Torvalds">

<p>More merges all over the map - ppc, scsi, USB, kbuild, input drivers
etc.</p>

<p>And both Al and Andrew have been busy again.</p>

<p>This also introduces the support for non-100 Hz internal kernel times
on x86, while still exporting the old interface to user space (ie anybody
who exported raw jiffies before should be exporting "clock_t", which on x86
continues to be a 100 Hz clock, regardless of whatever the internal kernel
frequency is).</p>

<p>Right now the x86 timer frequency is set to 1kHz, but that's just another
random number. It could be a config option if people really care, but I'd
rather just have people argue for or against specific internal frequencies
and we'll find something most people are happy with. It's easy to change
without user space even noticing now.</p>

<p>The other thing that we should sort out eventually is the unified naming
for disk devices, now that both IDE and SCSI are starting to have some support
for driverfs.  Let's make sure that we _can_ have sane ways of accessing a
disk, without having to care whether it is IDE or SCSI or anything else.</p>

</quote>

<p>Matthias Andree asked, <quote who="Matthias Andree">Did the LVM guys
(are you listening?) tell anything if they were about to go fix the current
2.5 LVM breakage? Or does EVMS work on 2.5 instead?</quote> And Joe Thornber
replied:</p>

<quote who="Joe Thornber">

<p>I'll say this yet again:</p>

<p>Heinz Mauelshagen is maintaining LVM1.0.x on 2.4 kernels.  This is for
bug fixes only, no new features will be added.</p>

<p>Alasdair Kergon, Patrick Caulfield and myself are working on the more
generic device-mapper driver for both 2.4/2.5.  Initially we have concentrated
on 2.4, this driver is now very stable IMO (I would certainly trust my data
to it in preference to LVM1).</p>

<p>I will post a URL to the 2.5 patch at some point this week.</p>

<p>There is no intention to maintain the broken design that is LVM1 in the
2.5 series - we do not have the spare resources to waste.</p>

</quote>

<p>Alexander Viro replied, <quote who="Alexander Viro">All right.  So how
about removing it from the tree?  It's broken; it won't be fixed; it's
abandoned by maintainers (and $DEITY witness, there is a lot of very good
reasons for that); there's nobody who would be able and willing to pick it.
What's the point of keeping the damn thing in the tree?  Could you (or Heinz)
submit the patch removing it from 2.5?</quote> There was no reply.</p>

</section>

<section
  title="New rmap Patch For The VM Subsystem"
  subject="[PATCH][RFT](2) minimal rmap for 2.5 - akpm tested"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.0/0746.html"
  posts="11"
  startdate="05 Jul 2002 21:31:38 -0800"
  enddate="11 Jul 2002 02:08:28 -0800"
>
<topic>Big Memory Support</topic>
<topic>SMP</topic>
<topic>Virtual Memory</topic>

<mention>Craig Kulesa</mention>
<mention>Linus Torvalds</mention>
<mention>Andrew Morton</mention>

<p>Rik van Riel linked to <a
href="http://surriel.com/patches/2.5/2.5.25-rmap-akpmtested">a patch</a>, and
said:</p>

<quote who="Rik van Riel">

<p>This patch is based on Craig Kulesa's minimal rmap patch for 2.5.24,
with a few changes:</p>

<p>

<ul>

<li>removed a few unrelated changes</li>

<li>updated armv/rmap.h for new pagetable layout of linux/arm</li>

<li>dropped per-zone pte_chain freelists, we want to make per-cpu ones for
SMP scalability</li>

<li>ported to 2.5.25 (PF_NOWARN instead of PF_RADIX_TREE)</li>

<li>drop spelling and whitespace fixes (should be merged separately)</li>

<li>fix truncate_complete_page race condition (akpm)</li>

</ul>

</p>

<p>It should be mostly ready for being integrated into the 2.5 tree, with
the note that pte-highmem support still needs to be implemented (some IBMers
have been volunteered for this task, this functionality can easily be added
afterwards).</p>

<p>Right now this patch needs testing and careful scrutiny.</p>

</quote>

<p>Andrew Morton and Linus Torvalds discussed a bug related to (though not
directly within) Rik's patch. Elsewhere, Sebastian Droege reported, <quote
who="Sebastian Droege">after running your patch some time I have to say that
the old VM implementation and the full rmap patch (by Craig Kulesa) was better.
The system becomes very slow and has to swap in too much after some uptime
(4 hours - 2 days) and memory intensive tasks...  Maybe this happens only
to me but it's fully reproducable</quote> Rik explained:</p>

<quote who="Rik van Riel">

<p>It's a known problem with use-once. Users of plain 2.4.18 are complaining
about it, too.</p>

<p>This is something to touch on after the rmap mechanism has been merged,
Linus has indicated that he wants to merge the thing in small bits so that's
what we'll be doing ;)</p>

</quote>

</section>

<section
  title="Status Of ATM/SONET Maintainership"
  subject="who is the ATM/SONET maintainer?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.1/0335.html"
  posts="4"
  startdate="09 Jul 2002 10:03:31 -0800"
  enddate="09 Jul 2002 11:28:57 -0800"
>
<topic>Maintainership</topic>
<topic>Networking</topic>
<topic>Version Control</topic>

<mention>Werner Almesberger</mention>
<mention>Mitchell Blank Jr</mention>
<mention>Jeff Garzik</mention>

<p>Chris Friesen wanted to contribute to the ATM and SONET drivers, but
couldn't find a maintainer. He asked where he should send his patches, and
Jeff Garzik replied that the drivers currently had no maintainer. He offered
Chris the job, but Chris said, <quote who="Chris Friesen">&lt;shudder&gt;
I don't think so...I've seen how much work it can be.  Although I suspect
ATM would be a lot less churn than, say, ethernet.</quote> Elsewhere, Joe
Perches also replied to the original question, saying:</p>

<quote who="Joe Perches">

<p>I believe Linux-ATM on sourceforge <a
href="http://linux-atm.sourceforge.net/">http://linux-atm.sourceforge.net/</a></p>

<p>I noticed you posted this same question there a month ago...</p>

<p>Developers of Linux-ATM on SourceForge</p>

<p>Werner Almesberger  almesber    almesber at users.sourceforge.net<br />
Mitchell Blank Jr   mblank      mblank at users.sourceforge.net<br />
Paul B. Schroeder   paulsch     paulsch at users.sourceforge.net</p>

<p>You could sign up as a developer to that project on sourceforge and make
CVS changes there.</p>

<p>Of course you could always send the patches to the lk list and/or you
could become the maintainer.</p>

</quote>

<p>End of thread.</p>

</section>

<section
  title="Preemption During Disabled Interrupts"
  subject="Q: preemptible kernel and interrupts consistency."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.1/0745.html"
  posts="5"
  startdate="11 Jul 2002 12:33:21 -0800"
  enddate="11 Jul 2002 14:07:27 -0800"
>
<topic>Real-Time</topic>
<topic>Scheduler</topic>

<p>Oleg Nesterov noticed that, according to Documentation/preempt-locking.txt,
disabling interrupts would prevent preemption, unless TIF_NEED_RESCHED were set
by the running process. Robert Love replied:</p>

<quote who="Robert Love">

<p>Yes, you are right, if need_resched is set under you, you will preempt
off the last unlock, even if interrupts are disabled.</p>

<p>However, the only places that set need_resched like that are the scheduler
and they do so also under lock so we are safe.</p>

<p>Also, in your example, being in an interrupt handler bumps the preempt_count
so even the scenario you give will not cause a preemption.  If we did not bump
the unlock, then your example would give a lot of "scheduling in interrupt"
BUGs so we would know it ;-)</p>

<p>All that said, there is a bug: the send_reschedule IPI can set need_resched
on another CPU.  If the other CPU happens to have interrupts disabled,
we can in fact preempt.  I have a patch for this I will submit shortly.</p>

</quote>

<p>Oleg did not agree that the code was safe. He said, <quote who="Oleg
Nesterov">if process does not hold any spinlock and interrupts disabled,
then any distant implicit call to resched_task() silently enables irqs. At
least, this must be documented.</quote> Robert said:</p>

<quote who="Robert Love">

<p>If interrupts are disabled, where is this distant implicit call from
resched_task() coming from?</p>

<p>That was my point, aside from interrupt handlers all the
need_resched-touching code is in sched.c and both Ingo and I verified
everything is locked.</p>

<p>If interrupts are disabled, there are no interrupts handlers.  And if
you are in an interrupt handler, preemption is already disabled.</p>

</quote>

</section>

</kc>

