<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="7" date="24 Feb 1999 00:00:00 -0800" />

<stats posts="1120" size="4378" contrib="457" multiples="205" lastweek="154">
  <person posts="54" size="160" who="alan@lxorguk.ukuu.org.uk (Alan Cox)" />
  <person posts="34" size="121" who="Alexander Viro &lt;viro@math.psu.edu&gt;" />
  <person posts="20" size="85" who="&quot;Richard B. Johnson&quot; &lt;root@chaos.analogic.com&gt;" />
  <person posts="19" size="75" who="Linus Torvalds &lt;torvalds@transmeta.com&gt;" />
  <person posts="17" size="47" who="Dan Hollis &lt;goemon@sasami.anime.net&gt;" />
  <person posts="13" size="68" who="David Woodhouse &lt;David.Woodhouse@mvhi.com&gt;" />
  <person posts="12" size="63" who="Andrea Arcangeli &lt;andrea@e-mind.com&gt;" />
  <person posts="12" size="53" who="uixjjji1@umail.furryterror.org (Zygo Blaxell)" />
  <person posts="11" size="35" who="Steve Dodd &lt;dirk@loth.demon.co.uk&gt;" />
  <person posts="10" size="34" who="&quot;Stephen C. Tweedie&quot; &lt;sct@redhat.com&gt;" />
  <person posts="9" size="37" who="&quot;Theodore Y. Ts'o&quot; &lt;tytso@MIT.EDU&gt;" />
  <person posts="9" size="33" who="Rik van Riel &lt;riel@nl.linux.org&gt;" />
  <person posts="8" size="36" who="&quot;Terry Katz&quot; &lt;katz@advanced.org&gt;" />
  <person posts="8" size="36" who="Kurt Garloff &lt;K.Garloff@ping.de&gt;" />
  <person posts="8" size="32" who="Jamie Lokier &lt;lkd@tantalophile.demon.co.uk&gt;" />
  <person posts="8" size="29" who="&quot;Albert D. Cahalan&quot; &lt;acahalan@cs.uml.edu&gt;" />
  <person posts="8" size="28" who="Tim Waugh &lt;tim@cyberelk.demon.co.uk&gt;" />
  <person posts="8" size="27" who="Ingo Molnar &lt;mingo@chiara.csoma.elte.hu&gt;" />
  <person posts="8" size="22" who="dwguest@win.tue.nl (Guest section DW)" />
  <person posts="8" size="22" who="kuznet@ms2.inr.ac.ru" />
  <person posts="7" size="38" who="o.r.c@p.e.l.l.p.o.r.t.l.a.n.d.o.r.u.s (david parsons)" />
  <person posts="7" size="35" who="&quot;G. Allen Morris III&quot; &lt;gam3@harpo.ixlabs.com&gt;" />
  <person posts="7" size="31" who="Simon Kirby &lt;sim@netnation.com&gt;" />
  <person posts="7" size="27" who="Dominik Kubla &lt;dominik.kubla@uni-mainz.de&gt;" />
  <person posts="7" size="27" who="Raphael Becker &lt;beckerra@rumms.uni-mannheim.de&gt;" />
  <person posts="7" size="23" who="&quot;Khimenko Victor&quot; &lt;khim@sch57.msk.ru&gt;" />
  <person posts="7" size="23" who="smurf@noris.de (Matthias Urlichs)" />
  <person posts="7" size="23" who="Keith Owens &lt;kaos@ocs.com.au&gt;" />
  <person posts="7" size="19" who="Gregory Maxwell &lt;linker@z.ml.org&gt;" />
  <person posts="7" size="19" who="&quot;Alexandre Hautequest&quot; &lt;hquest@linuxbr.com.br&gt;" />
  <person posts="7" size="18" who="Greg &lt;damin@cleveland.lug.net&gt;" />
  <person posts="6" size="53" who="&quot;Daniel J. Frasnelli&quot; &lt;dfrasnel@csee.wvu.edu&gt;" />
  <person posts="6" size="26" who="&quot;Ulrich Windl&quot; &lt;ulrich.windl@rz.uni-regensburg.de&gt;" />
  <person posts="6" size="24" who="Andi Kleen &lt;ak@muc.de&gt;" />
  <person posts="6" size="23" who="Alexander Kjeldaas &lt;astor@fast.no&gt;" />
  <person posts="6" size="23" who="hpa@transmeta.com (H. Peter Anvin)" />
  <person posts="6" size="21" who="Matthew Kirkwood &lt;weejock@ferret.lmh.ox.ac.uk&gt;" />
  <person posts="6" size="19" who="Tuomas Heino &lt;iheino@cc.hut.fi&gt;" />
  <person posts="6" size="18" who="Alex Buell &lt;alex.buell@tahallah.demon.co.uk&gt;" />
  <person posts="6" size="16" who="Aaron Tiensivu &lt;tiensivu@pilot.msu.edu&gt;" />
  <person posts="6" size="15" who="G Jalaja Devi &lt;jalaja@teil.soft.net&gt;" />
  <person posts="5" size="65" who="Claude Gamache &lt;cgamache@cae.ca&gt;" />
  <person posts="5" size="49" who="Hans Reiser &lt;reiser@idiom.com&gt;" />
  <person posts="5" size="33" who="Mark Montague &lt;monty@gg.caltech.edu&gt;" />
  <person posts="5" size="24" who="&quot;Jon P. deOng&quot; &lt;jdeong@cnmnetwork.com&gt;" />
  <person posts="5" size="20" who="Neil Conway &lt;nconway.list@ukaea.org.uk&gt;" />
  <person posts="5" size="18" who="Raul Miller &lt;rdm@test.legislate.com&gt;" />
  <person posts="5" size="17" who="lm@bitmover.com (Larry McVoy)" />
  <person posts="5" size="16" who="&quot;Mike A. Harris&quot; &lt;mharris@ican.net&gt;" />
  <person posts="5" size="15" who="Mike Kennedy &lt;mkennedy@cs.ucr.edu&gt;" />
  <person posts="5" size="15" who="&quot;Alan Curry&quot; &lt;pacman-kernel@cqc.com&gt;" />
  <person posts="5" size="14" who="Arvind Sankar &lt;arvinds@mit.edu&gt;" />
  <person posts="5" size="14" who="David Miller &lt;davem@twiddle.net&gt;" />
  <person posts="5" size="13" who="Kevin Strong &lt;lztsz0@clc.gmeds.com&gt;" />
  <person posts="4" size="28" who="jens@pinguin.conetix.de" />
  <person posts="4" size="26" who="Gerard Roudier &lt;groudier@club-internet.fr&gt;" />
  <person posts="4" size="21" who="dmartin@clifton-labs.com (Dale E. Martin)" />
  <person posts="4" size="21" who="David Wragg &lt;dpw@doc.ic.ac.uk&gt;" />
  <person posts="4" size="21" who="Omachonu Ogali &lt;omachonu.ogali@softhome.net&gt;" />
  <person posts="4" size="21" who="&quot;Michael H. Warfield&quot; &lt;mhw@wittsend.com&gt;" />
  <person posts="4" size="19" who="Jordan Mendelson &lt;jordy@wserv.com&gt;" />
  <person posts="4" size="19" who="&quot;Brian Macy&quot; &lt;bmacy@sunshinecomputing.com&gt;" />
  <person posts="4" size="15" who="Pavel Machek &lt;pavel@bug.ucw.cz&gt;" />
  <person posts="4" size="14" who="&quot;Mr. James W. Laferriere&quot; &lt;babydr@baby-dragons.com&gt;" />
  <person posts="4" size="14" who="Catalin BOIE &lt;util@deuroconsult.ro&gt;" />
  <person posts="4" size="14" who="Stephen.Rothwell@canb.auug.org.au" />
  <person posts="4" size="13" who="&quot;Eloy A. Paris&quot; &lt;eparis@ven.ra.rockwell.com&gt;" />
  <person posts="4" size="13" who="Paul Slootman &lt;paul@wau.mis.ah.nl&gt;" />
  <person posts="4" size="13" who="Tom Eastep &lt;eastep@loc1.tandem.com&gt;" />
  <person posts="4" size="12" who="Vojtech Pavlik &lt;vojtech-lists@twilight.ucw.cz&gt;" />
  <person posts="4" size="11" who="Philip Blundell &lt;philb@gnu.org&gt;" />
  <person posts="4" size="11" who="Bernd Eckenfels &lt;ecki@lina.inka.de&gt;" />
  <person posts="4" size="11" who="Oliver Xymoron &lt;oxymoron@waste.org&gt;" />
  <person posts="4" size="11" who="Philip Blundell &lt;pb@nexus.co.uk&gt;" />
  <person posts="4" size="10" who="Tom Holroyd &lt;tomh@nibh.go.jp&gt;" />
  <person posts="4" size="10" who="Chris Wedgwood &lt;cw@ix.net.nz&gt;" />
  <person posts="3" size="34" who="Peter Green &lt;pcg@gospelcom.net&gt;" />
  <person posts="3" size="20" who="&quot;Bradley M. Kuhn&quot; &lt;bkuhn@ebb.org&gt;" />
  <person posts="3" size="15" who="&quot;Andre M. Hedrick&quot; &lt;hedrick@Astro.Dyer.Vanderbilt.Edu&gt;" />
  <person posts="3" size="13" who="Romano Giannetti &lt;romano@dea.icai.upco.es&gt;" />
  <person posts="3" size="13" who="John Fulmer &lt;jfulmer@secnetgroup.com&gt;" />
  <person posts="3" size="13" who="Harald Koenig &lt;koenig@tat.physik.uni-tuebingen.de&gt;" />
  <person posts="3" size="13" who="=?ISO-8859-1?Q?Andr=E9_Dahlqvist?= &lt;andre@beta.telenordia.se&gt;" />
  <person posts="3" size="12" who="CaT &lt;cat@zip.com.au&gt;" />
  <person posts="3" size="10" who="Francois Desarmenien &lt;desar@club-internet.fr&gt;" />
  <person posts="3" size="10" who="&quot;Robert B. Hamilton&quot; &lt;rbh041a@unix.tamu.edu&gt;" />
  <person posts="3" size="10" who="&quot;Sean Hunter&quot; &lt;sean@uncarved.co.uk&gt;" />
  <person posts="3" size="10" who="Conde Martinez Rodolfo &lt;rconde@ada.fciencias.unam.mx&gt;" />
  <person posts="3" size="10" who="Jens Axboe &lt;axboe@image.dk&gt;" />
  <person posts="3" size="10" who="Nathan Hand &lt;nathanh@wookie.chirp.com.au&gt;" />
  <person posts="3" size="10" who="Jakub Jelinek &lt;jj@sunsite.ms.mff.cuni.cz&gt;" />
  <person posts="3" size="10" who="&quot;Mark H. Wood&quot; &lt;mwood@IUPUI.Edu&gt;" />
  <person posts="3" size="10" who="Juan Carlos Castro y Castro &lt;jcastro@pcshop.com.br&gt;" />
  <person posts="3" size="10" who="ralf@uni-koblenz.de" />
  <person posts="3" size="10" who="Myrdraal &lt;myrdraal@jackalz.dyndns.org&gt;" />
  <person posts="3" size="10" who="torvalds@transmeta.com (Linus Torvalds)" />
  <person posts="3" size="10" who="Wayne Schlitt &lt;wayne@midwestcs.com&gt;" />
  <person posts="3" size="9" who="Gerd Knorr &lt;kraxel@goldbach.in-berlin.de&gt;" />
  <person posts="3" size="9" who="Stefan Laudat &lt;stefan@ns.asit.ro&gt;" />
  <person posts="3" size="9" who="Jim Woodward &lt;jim@jim.southcom.com.au&gt;" />
  <person posts="3" size="8" who="Matthew Jacob &lt;mjacob@feral.com&gt;" />
  <person posts="3" size="8" who="&quot;J. S. Connell&quot; &lt;ankh@canuck.gen.nz&gt;" />
  <person posts="3" size="8" who="Bob McElrath &lt;mcelrath@draal.physics.wisc.edu&gt;" />
  <person posts="3" size="8" who="&quot;William F. Maton&quot; &lt;wmaton@enterprise.ic.gc.ca&gt;" />
  <person posts="3" size="8" who="Trever Adams &lt;remadm@cybertours.com&gt;" />
  <person posts="3" size="8" who="Richard Gooch &lt;rgooch@atnf.csiro.au&gt;" />
  <person posts="3" size="7" who="Olaf Titz &lt;olaf@bigred.inka.de&gt;" />
  <person posts="3" size="7" who="Bjorn Ekwall &lt;bj0rn@blox.se&gt;" />
  <person posts="3" size="7" who="Michal Jaegermann &lt;michal@ellpspace.math.ualberta.ca&gt;" />
  <person posts="3" size="7" who="Dan Egli &lt;dan@mudhosts.net&gt;" />
  <person posts="3" size="7" who="&quot;Manuel J. Galan&quot; &lt;manolow@step.es&gt;" />
  <person posts="3" size="6" who="Michael Elizabeth Chastain &lt;mec@shout.net&gt;" />
  <person posts="2" size="63" who="Jeffrey Jones &lt;jeffreyj@ami.com&gt;" />
  <person posts="2" size="13" who="kanoj@kulten.engr.sgi.com (Kanoj Sarcar)" />
  <person posts="2" size="13" who="&quot;Rene Herman&quot; &lt;rene@rene.demon.nl&gt;" />
  <person posts="2" size="11" who="Volker Dormeyer &lt;Volker.Dormeyer@lrp.de&gt;" />
  <person posts="2" size="10" who="Ville Herva &lt;vherva@niksula.hut.fi&gt;" />
  <person posts="2" size="9" who="Nicholas Henke &lt;henken@seas.upenn.edu&gt;" />
  <person posts="2" size="9" who="&lt;pmonta@halibut.imedia.com&gt;" />
  <person posts="2" size="9" who="Chuck Campbell &lt;campbell@neosoft.com&gt;" />
  <person posts="2" size="9" who="Andrzej Krzysztofowicz &lt;ankry@green.mif.pg.gda.pl&gt;" />
  <person posts="2" size="9" who="Sergio Brandano &lt;sb@dcs.qmw.ac.uk&gt;" />
  <person posts="2" size="8" who="kaih@khms.westfalen.de (Kai Henningsen)" />
  <person posts="2" size="8" who="&quot;Alan Olsen&quot; &lt;alano@adams.pcx.ncd.com&gt;" />
  <person posts="2" size="8" who="&quot;Eric D. Seppanen&quot; &lt;sepp@primenet.com&gt;" />
  <person posts="2" size="8" who="David Mansfield &lt;david@cobite.com&gt;" />
  <person posts="2" size="8" who="Mike Jagdis &lt;mike@roan.co.uk&gt;" />
  <person posts="2" size="7" who="Matti Aarnio &lt;matti.aarnio@sonera.fi&gt;" />
  <person posts="2" size="7" who="R.E.Wolff@BitWizard.nl (Rogier Wolff)" />
  <person posts="2" size="7" who="&quot;D. Feuer&quot; &lt;dfeuer@mail.his.com&gt;" />
  <person posts="2" size="7" who="Treverm Adams &lt;remadm@cybertours.com&gt;" />
  <person posts="2" size="7" who="Kalle Andersson &lt;kalle@sslug.dk&gt;" />
  <person posts="2" size="7" who="danis@sagem.fr (Thierry Danis)" />
  <person posts="2" size="7" who="abel@bfr.co.il (Alexander L. Belikoff)" />
  <person posts="2" size="7" who="Matt Busigin &lt;jediknight@xwing.org&gt;" />
  <person posts="2" size="7" who="Richard Jones &lt;rich@bibliotech.co.uk&gt;" />
  <person posts="2" size="7" who="&quot;Anthony Barbachan&quot; &lt;barbacha@Hinako.AMBusiness.com&gt;" />
  <person posts="2" size="7" who="Nomad the Wanderer &lt;nomad@orci.com&gt;" />
  <person posts="2" size="7" who="&quot;Mike Black&quot; &lt;mblack@picard.csihq.com&gt;" />
  <person posts="2" size="7" who="&quot;H. Peter Anvin&quot; &lt;hpa@transmeta.com&gt;" />
  <person posts="2" size="7" who="David Luyer &lt;luyer@ucs.uwa.edu.au&gt;" />
  <person posts="2" size="7" who="Mike Galbraith &lt;mikeg@weiden.de&gt;" />
  <person posts="2" size="7" who="Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt;" />
  <person posts="2" size="7" who="Geert Uytterhoeven &lt;Geert.Uytterhoeven@cs.kuleuven.ac.be&gt;" />
  <person posts="2" size="6" who="Martin Mares &lt;mj@ucw.cz&gt;" />
  <person posts="2" size="6" who="Zlatko Calusic &lt;Zlatko.Calusic@CARNet.hr&gt;" />
  <person posts="2" size="6" who="Ted Garrett &lt;teddygee@visi.net&gt;" />
  <person posts="2" size="6" who="Ben Ross &lt;ben@proximity.com.au&gt;" />
  <person posts="2" size="6" who="Brian Gerst &lt;bgerst@quark.vpplus.com&gt;" />
  <person posts="2" size="6" who="Trevor Johnson &lt;trevor@jpj.net&gt;" />
  <person posts="2" size="6" who="Larry Ayers &lt;layers@marktwain.net&gt;" />
  <person posts="2" size="6" who="=?iso-8859-1?Q?Gr=E9goire?= FAVRE &lt;gregoire.favre@urbanet.ch&gt;" />
  <person posts="2" size="6" who="Mark Harburn &lt;marcus@dappy.com&gt;" />
  <person posts="2" size="6" who="&quot;Pat St. Jean&quot; &lt;psj@cgmlarson.com&gt;" />
  <person posts="2" size="6" who="Andreas Schwab &lt;schwab@issan.informatik.uni-dortmund.de&gt;" />
  <person posts="2" size="6" who="Martijn van Oosterhout &lt;v3100411@student.anu.edu.au&gt;" />
  <person posts="2" size="6" who="Damien Miller &lt;dmiller@ilogic.com.au&gt;" />
  <person posts="2" size="6" who="Steven Roberts &lt;strobert@ata-sd.com&gt;" />
  <person posts="2" size="6" who="Makoto Kato &lt;m_kato@ga2.so-net.ne.jp&gt;" />
  <person posts="2" size="6" who="John Lapeyre &lt;lapeyre@physics.arizona.edu&gt;" />
  <person posts="2" size="6" who="David Feuer &lt;david@feuer.his.com&gt;" />
  <person posts="2" size="6" who="Matthew A Brodycz &lt;maxcomp4u@juno.com&gt;" />
  <person posts="2" size="6" who="Alexander S A Kjeldaas &lt;astor@fast.no&gt;" />
  <person posts="2" size="6" who="Jim Nance &lt;jlnance@avanticorp.com&gt;" />
  <person posts="2" size="6" who="Michael Nelson &lt;nelson@seahunt.imat.com&gt;" />
  <person posts="2" size="6" who="&quot;Joseph W. Breu&quot; &lt;breu@cfu.net&gt;" />
  <person posts="2" size="6" who="Shawn Leas &lt;sleas@ixion.honeywell.com&gt;" />
  <person posts="2" size="6" who="Krzysztof Halasa &lt;khc@intrepid.pm.waw.pl&gt;" />
  <person posts="2" size="6" who="kwrohrer@ce.mediaone.net" />
  <person posts="2" size="6" who="Brian Geisel &lt;briang@microlite.com&gt;" />
  <person posts="2" size="6" who="Tim Hockin &lt;tphocki@www.orl.ilstu.edu&gt;" />
  <person posts="2" size="6" who="Matt Stocum &lt;mstocum@adelphia.net&gt;" />
  <person posts="2" size="5" who="Paul Rusty Russell &lt;Paul.Russell@rustcorp.com.au&gt;" />
  <person posts="2" size="5" who="Helge Hafting &lt;helge.hafting@c2i.net&gt;" />
  <person posts="2" size="5" who="Colin Plumb &lt;colin@nyx.net&gt;" />
  <person posts="2" size="5" who="Mark Lord &lt;mlord@pobox.com&gt;" />
  <person posts="2" size="5" who="Riley Williams &lt;rhw@BigFoot.Com&gt;" />
  <person posts="2" size="5" who="Billy Harvey &lt;info@RhinoEngineering.com&gt;" />
  <person posts="2" size="5" who="Philippe Troin &lt;phil@fifi.org&gt;" />
  <person posts="2" size="5" who="&quot;James H. Cloos Jr.&quot; &lt;cloos@jhcloos.com&gt;" />
  <person posts="2" size="5" who="&quot;Casero, Juan&quot; &lt;jcasero@microsemi.com&gt;" />
  <person posts="2" size="5" who="Igmar Palsenberg &lt;igmar@jdi.jdimedia.nl&gt;" />
  <person posts="2" size="5" who="Brian Ristuccia &lt;brianr@osiris.978.org&gt;" />
  <person posts="2" size="5" who="Andries.Brouwer@cwi.nl" />
  <person posts="2" size="5" who="Simon Weijgers &lt;simon@mbit.doa.org&gt;" />
  <person posts="2" size="5" who="&quot;Ph. Marek&quot; &lt;marek@bmlv.gv.at&gt;" />
  <person posts="2" size="5" who="rani@easynet.fr (Rani Assaf)" />
  <person posts="2" size="5" who="Jeff Epler &lt;jepler@inetnebr.com&gt;" />
  <person posts="2" size="5" who="Steve Hsieh &lt;steveh@eecs.umich.edu&gt;" />
  <person posts="2" size="5" who="Robert Gash &lt;gashalot@cybermax.net&gt;" />
  <person posts="2" size="5" who="otel@ce.chalmers.se" />
  <person posts="2" size="5" who="Jan Kara &lt;jack@atrey.karlin.mff.cuni.cz&gt;" />
  <person posts="2" size="5" who="Andrew Morton &lt;andrewm@uow.edu.au&gt;" />
  <person posts="2" size="5" who="&quot;John Haggerty&quot; &lt;jhaggert@hotmail.com&gt;" />
  <person posts="2" size="5" who="Andrzej Krzysztofowicz &lt;ankry@pg.gda.pl&gt;" />
  <person posts="2" size="5" who="&lt;kuko@calvo.teleco.ulpgc.es&gt;" />
  <person posts="2" size="5" who="George Bonser &lt;grep@shorelink.com&gt;" />
  <person posts="2" size="5" who="Jan Varga &lt;varga@frru.utcru.sk&gt;" />
  <person posts="2" size="5" who="Taral &lt;taral@cyberjunkie.com&gt;" />
  <person posts="2" size="5" who="Meelis Roos &lt;mroos@tartu.cyber.ee&gt;" />
  <person posts="2" size="5" who="Greg Whalin &lt;gwhalin@numerix.com&gt;" />
  <person posts="2" size="5" who="Simon Kenyon &lt;simon@koala.ie&gt;" />
  <person posts="2" size="5" who="Matthew Harrell &lt;mharrell@sito.saic.com&gt;" />
  <person posts="2" size="4" who="Alexandre Soares &lt;soares@easynet.com.br&gt;" />
  <person posts="2" size="4" who="Robert Kiesling &lt;kiesling@ix.netcom.com&gt;" />
  <person posts="1" size="29" who="James Bottomley &lt;James.Bottomley@columbiasc.ncr.com&gt;" />
  <person posts="1" size="19" who="Truxton Fulton &lt;trux@truxton.com&gt;" />
  <person posts="1" size="16" who="Bastian Kleineidam &lt;calvin@cs.uni-sb.de&gt;" />
  <person posts="1" size="15" who="Thomas Rydl &lt;5rydl@informatik.uni-hamburg.de&gt;" />
  <person posts="1" size="14" who="Per-Arne Hellarvik &lt;PerAH@softinn.no&gt;" />
  <person posts="1" size="13" who="&quot;Mr. Smith&quot; &lt;smithmr@gmx.net&gt;" />
  <person posts="1" size="12" who="&quot;Charles R. Anderson&quot; &lt;cra@angus.ind.WPI.EDU&gt;" />
  <person posts="1" size="11" who="Paul Wouters &lt;paul@xtdnet.nl&gt;" />
  <person posts="1" size="10" who="Cole Tuininga &lt;egon@tradeservices.com&gt;" />
  <person posts="1" size="9" who="R Dicaire &lt;ardy@novaone.dynip.com&gt;" />
  <person posts="1" size="8" who="James Bottomley &lt;James.Bottomley@ColumbiaSC.NCR.com&gt;" />
  <person posts="1" size="8" who="&quot;Jensen Allan AJE&quot; &lt;aje@arcodan.dk&gt;" />
  <person posts="1" size="8" who="Aaron Lehmann &lt;aaronl@vitelus.com&gt;" />
  <person posts="1" size="8" who="Niall Richard Murphy &lt;niallrm@vortex.earlsfort.iol.ie&gt;" />
  <person posts="1" size="8" who="Matthias Moeller &lt;mattes@ice.robin.de&gt;" />
  <person posts="1" size="7" who="&quot;Daniel C. Nurmi&quot; &lt;nurmi@mcs.anl.gov&gt;" />
  <person posts="1" size="7" who="Daniel SILVERSTONE &lt;D.Silverstone@cs.ucl.ac.uk&gt;" />
  <person posts="1" size="7" who="Serguei Koubouchine &lt;ksi@ksi-linux.com&gt;" />
  <person posts="1" size="6" who="Douglas Gilbert &lt;dgilbert@interlog.com&gt;" />
  <person posts="1" size="6" who="Robert Bowles &lt;rbowles@op.net&gt;" />
  <person posts="1" size="6" who="Vladimir Dergachev &lt;vdergach@sas.upenn.edu&gt;" />
  <person posts="1" size="6" who="Monty &lt;xiphmont@MIT.EDU&gt;" />
  <person posts="1" size="6" who="Marc Espie &lt;Marc.Espie@liafa.jussieu.fr&gt;" />
  <person posts="1" size="6" who="Olle Segerdahl &lt;olle@nxs.se&gt;" />
  <person posts="1" size="6" who="Petri Kaukasoina &lt;kaukasoi@elektroni.ee.tut.fi&gt;" />
  <person posts="1" size="6" who="Jonathan Woithe &lt;jwoithe@physics.adelaide.edu.au&gt;" />
  <person posts="1" size="5" who="Matthias Schniedermeyer &lt;ms@citd.owl.de&gt;" />
  <person posts="1" size="5" who="=?ISO-8859-1?Q?Peter_M=FCnster?= &lt;Peter.Munster@univ-rennes1.fr&gt;" />
  <person posts="1" size="5" who="Ralf Sauther &lt;rhs@castle.kram.inka.de&gt;" />
  <person posts="1" size="5" who="Bruce Elliott &lt;bde@nwlink.com&gt;" />
  <person posts="1" size="5" who="Goofy McGoon &lt;root@cool.bioeng.washington.edu&gt;" />
  <person posts="1" size="5" who="David Zanetti &lt;dave2@earthling.net&gt;" />
  <person posts="1" size="5" who="Jeffrey Hutzelman &lt;jhutz+@cmu.edu&gt;" />
  <person posts="1" size="5" who="&quot;James Puckett&quot; &lt;jpuckett@optilinkcomm.net&gt;" />
  <person posts="1" size="5" who="&lt;hquest@linuxbr.com.br&gt;" />
  <person posts="1" size="5" who="Mike Goldman &lt;whig@by.net&gt;" />
  <person posts="1" size="5" who="Uwe Schmeling &lt;uschmeli@csa.de&gt;" />
  <person posts="1" size="5" who="Michael Marxmeier &lt;mike@msede.com&gt;" />
  <person posts="1" size="5" who="V.Dormeyer@t-online.de (Volker Dormeyer)" />
  <person posts="1" size="4" who="Frank de Lange &lt;frank@animalhouse.ml.org&gt;" />
  <person posts="1" size="4" who="Bernhard Erdmann &lt;Bernhard.Erdmann@gmx.de&gt;" />
  <person posts="1" size="4" who="Lenart Gabor &lt;lgb@oxygene.terra.vein.hu&gt;" />
  <person posts="1" size="4" who="Michael Kyed &lt;Michael@Kyed.dk&gt;" />
  <person posts="1" size="4" who="KOEHLEKR@UCRWCU.RWC.UC.EDU" />
  <person posts="1" size="4" who="Sangohn Christian &lt;Christian.Sangohn@b19.rwth-aachen.de&gt;" />
  <person posts="1" size="4" who="&quot;Yaron J.G. Bandell&quot; &lt;bandell-nfo@I-MaSs.nl&gt;" />
  <person posts="1" size="4" who="Ilya Tsindlekht &lt;ilyat@internet-zahav.net&gt;" />
  <person posts="1" size="4" who="Ion Badulescu &lt;ionut@moisil.cs.columbia.edu&gt;" />
  <person posts="1" size="4" who="greg@wind.enjellic.com (G.W. Wettstein)" />
  <person posts="1" size="4" who="&quot;geisj&quot; &lt;geisj@pagestation.com&gt;" />
  <person posts="1" size="4" who="Mitch Adair &lt;mitch@acan.net&gt;" />
  <person posts="1" size="4" who="Thomas Drillich &lt;drillich@uniserve.de&gt;" />
  <person posts="1" size="4" who="mike mangino &lt;mangino@cis.ohio-state.edu&gt;" />
  <person posts="1" size="4" who="Richard Guenther &lt;zxmpm11@student.uni-tuebingen.de&gt;" />
  <person posts="1" size="4" who="Gadi Oxman &lt;gadio@netvision.net.il&gt;" />
  <person posts="1" size="4" who="Brandon Black &lt;brandon.black@wcom.com&gt;" />
  <person posts="1" size="4" who="Michel Mauny &lt;Michel.Mauny@inria.fr&gt;" />
  <person posts="1" size="4" who="Anonymous &lt;nobody@anon.olymp.org&gt;" />
  <person posts="1" size="4" who="Allen Bolderoff &lt;allen@gist.net.au&gt;" />
  <person posts="1" size="4" who="Rinat Samitov &lt;goldfinger@mtu-net.ru&gt;" />
  <person posts="1" size="4" who="jerry@linewise.se (=?ISO-8859-1?Q?Jerry_Lundstr=F6m?=)" />
  <person posts="1" size="4" who="Andrew Kieschnick &lt;andrewk@ccwf.cc.utexas.edu&gt;" />
  <person posts="1" size="4" who="Robert Wuest &lt;rwuest@ix.netcom.com&gt;" />
  <person posts="1" size="4" who="joerg@schily.isdn.cs.tu-berlin.de (Joerg Schilling)" />
  <person posts="1" size="4" who="Steve VanDevender &lt;stevev@efn.org&gt;" />
  <person posts="1" size="4" who="Rafal Wierzbicki &lt;rafal@mcss.cas.mcmaster.ca&gt;" />
  <person posts="1" size="4" who="&quot;Scott R. Every&quot; &lt;scott@emji.net&gt;" />
  <person posts="1" size="4" who="Aaron Wrasman &lt;awrasman@enchanted.net&gt;" />
  <person posts="1" size="3" who="Jeff Wiegley &lt;jwiegley@worldnet.att.net&gt;" />
  <person posts="1" size="3" who="Alan Jones &lt;billiejoe@home.net&gt;" />
  <person posts="1" size="3" who="Richard Ketchersid &lt;ketchers@math.berkeley.edu&gt;" />
  <person posts="1" size="3" who="Thorsten Westheider &lt;twesthei@phya1.physik.uni-bielefeld.de&gt;" />
  <person posts="1" size="3" who="Bruce Guenter &lt;bruce.guenter@qcc.sk.ca&gt;" />
  <person posts="1" size="3" who="el mono &lt;mono@andromeda.utp.edu.co&gt;" />
  <person posts="1" size="3" who="thomas lakofski &lt;tommy@88.net&gt;" />
  <person posts="1" size="3" who="Daniel Quinlan &lt;quinlan@transmeta.com&gt;" />
  <person posts="1" size="3" who="Frodo Looijaard &lt;frodol@dds.nl&gt;" />
  <person posts="1" size="3" who="SMajer@advance-bank.de" />
  <person posts="1" size="3" who="&quot;Mattthew D. Pitts&quot; &lt;mpitts@suite224.net&gt;" />
  <person posts="1" size="3" who="Edgar Toernig &lt;froese@gmx.de&gt;" />
  <person posts="1" size="3" who="thoth@purplefrog.com" />
  <person posts="1" size="3" who="&quot;Tim (Pass the Prozac) Sailer&quot; &lt;sailer@sailer.rhic.bnl.gov&gt;" />
  <person posts="1" size="3" who="Davide Rossetti &lt;davide.rossetti@roma1.infn.it&gt;" />
  <person posts="1" size="3" who="Alexander.vanLuijpen@nym.sc.philips.com" />
  <person posts="1" size="3" who="Ben Hutchings &lt;womble@zzumbouk.demon.co.uk&gt;" />
  <person posts="1" size="3" who="Tuan Hoang &lt;tuan@optimus.mitre.org&gt;" />
  <person posts="1" size="3" who="Nick Urbanik &lt;nicku@iohk.com&gt;" />
  <person posts="1" size="3" who="Matthew Bernstein &lt;mas01mb@mcs.gold.ac.uk&gt;" />
  <person posts="1" size="3" who="guillaume.girard@supelec.fr" />
  <person posts="1" size="3" who="William Schweder &lt;pathway@mediaone.net&gt;" />
  <person posts="1" size="3" who="&quot;Matthew G. Marsh&quot; &lt;mgm@paktronix.com&gt;" />
  <person posts="1" size="3" who="David Poythress &lt;dp@qni.com&gt;" />
  <person posts="1" size="3" who="Jelle Foks &lt;jelle@flying.demon.nl&gt;" />
  <person posts="1" size="3" who="Marc Lehmann &lt;pcg@goof.com&gt;" />
  <person posts="1" size="3" who="&quot;Michael Loftis&quot; &lt;zop12@mindless.com&gt;" />
  <person posts="1" size="3" who="Alon Ziv &lt;alonz@cs.Technion.AC.IL&gt;" />
  <person posts="1" size="3" who="root &lt;root@alfa.col.psi.br&gt;" />
  <person posts="1" size="3" who="Mitchell Blank Jr &lt;mitch@execpc.com&gt;" />
  <person posts="1" size="3" who="&quot;Packrat's lists&quot; &lt;packlist@civil.uwa.edu.au&gt;" />
  <person posts="1" size="3" who="Ragnar Hojland Espinosa &lt;ragnar@redestb.es&gt;" />
  <person posts="1" size="3" who="Benjamin Close &lt;linux@senet.com.au&gt;" />
  <person posts="1" size="3" who="Bill Ries-Knight &lt;brk@slip.net&gt;" />
  <person posts="1" size="3" who="Shannon Aldinger &lt;god@yinyang.hjsoft.com&gt;" />
  <person posts="1" size="3" who="Ernst Jan Plugge &lt;rmc@dds.nl&gt;" />
  <person posts="1" size="3" who="Eric Werme USG &lt;werme@wasted.zk3.dec.com&gt;" />
  <person posts="1" size="3" who="marcel@mesa.nl (Marcel J.E. Mol)" />
  <person posts="1" size="3" who="Paul &lt;PELaufer@csupomona.edu&gt;" />
  <person posts="1" size="3" who="Marc Bechler &lt;mbechler@telematik.informatik.uni-karlsruhe.de&gt;" />
  <person posts="1" size="3" who="Stanislav Meduna &lt;stano@trillian.eunet.sk&gt;" />
  <person posts="1" size="3" who="Albert Cranford &lt;AlbertC@millennium.net&gt;" />
  <person posts="1" size="3" who="&quot;Paul W. Abrahams&quot; &lt;abrahams@valinet.com&gt;" />
  <person posts="1" size="3" who="Ian Eure &lt;ieure@crosssound.narrows.com&gt;" />
  <person posts="1" size="3" who="Barry Hughes &lt;bazza@dreamhaven.net&gt;" />
  <person posts="1" size="3" who="Greg Siekas &lt;siekas@mailhost.tcs.tulane.edu&gt;" />
  <person posts="1" size="3" who="&quot;I. Harold Oga&quot; &lt;ogah@home.com&gt;" />
  <person posts="1" size="3" who="Vince Lo Faso &lt;vincel@ns2.americandigital.com&gt;" />
  <person posts="1" size="3" who="&quot;Brandon S. Allbery KF8NH&quot; &lt;allbery@kf8nh.apk.net&gt;" />
  <person posts="1" size="3" who="&lt;kernel@larry.msl.net&gt;" />
  <person posts="1" size="3" who="Juergen Schmidt &lt;ju@ct.heise.de&gt;" />
  <person posts="1" size="3" who="Michael Riepe &lt;Michael.Riepe@stud.uni-hannover.de&gt;" />
  <person posts="1" size="3" who="Henrik Olsen &lt;henrik@iaeste.dk&gt;" />
  <person posts="1" size="3" who="Matthew Harrell &lt;mharrell@std.saic.com&gt;" />
  <person posts="1" size="3" who="&quot;Daniel Davis&quot; &lt;ddavis@carolina.rr.com&gt;" />
  <person posts="1" size="3" who="&quot;Andrew J. Scott&quot; &lt;A.J.Scott@casdn.neu.edu&gt;" />
  <person posts="1" size="3" who="&quot;Dr. Werner Fink&quot; &lt;werner@suse.de&gt;" />
  <person posts="1" size="3" who="Skip Collins &lt;collibf1@jhuapl.edu&gt;" />
  <person posts="1" size="3" who="Andreas Jaeger &lt;aj@arthur.rhein-neckar.de&gt;" />
  <person posts="1" size="3" who="Thomas Sailer &lt;sailer@ife.ee.ethz.ch&gt;" />
  <person posts="1" size="3" who="Ralf.Sieger@gmx.net" />
  <person posts="1" size="3" who="Stefan Ziegenbalg &lt;stefan.ziegenbalg@mailbox.tu-dresden.de&gt;" />
  <person posts="1" size="3" who="List &lt;kernel@farm.ecs.umass.edu&gt;" />
  <person posts="1" size="3" who="A Guy Called Tyketto &lt;tyketto@omnilinx.net&gt;" />
  <person posts="1" size="3" who="Jeremy Fitzhardinge &lt;jeremy@goop.org&gt;" />
  <person posts="1" size="3" who="Fizz &lt;tescande@easynet.fr&gt;" />
  <person posts="1" size="3" who="Raj Dutt &lt;raj@voxel.net&gt;" />
  <person posts="1" size="3" who="Arjan Opmeer &lt;a.d.opmeer@student.utwente.nl&gt;" />
  <person posts="1" size="3" who="Stephen Williams &lt;steve@icarus.com&gt;" />
  <person posts="1" size="3" who="Mike Shaver &lt;shaver@netscape.com&gt;" />
  <person posts="1" size="3" who="Jeff 9360431 &lt;aatheus@redshift.com&gt;" />
  <person posts="1" size="3" who="Horst von Brand &lt;vonbrand@inf.utfsm.cl&gt;" />
  <person posts="1" size="3" who="Chris Frantz &lt;frantzc@insync.net&gt;" />
  <person posts="1" size="3" who="Ulf Carlsson &lt;ulfc@bun.falkenberg.se&gt;" />
  <person posts="1" size="3" who="Klaus-Georg Adams &lt;Klaus-Georg.Adams@chemie.uni-karlsruhe.de&gt;" />
  <person posts="1" size="3" who="yocum@fnal.gov" />
  <person posts="1" size="3" who="Daniel Drotos &lt;drdani@mazsola.iit.uni-miskolc.hu&gt;" />
  <person posts="1" size="3" who="&quot;John P . Looney&quot; &lt;valen@redbrick.dcu.ie&gt;" />
  <person posts="1" size="3" who="Tim Fletcher &lt;tim@night-shade.demon.co.uk&gt;" />
  <person posts="1" size="3" who="Ricky Beam &lt;root@defiant.interpath.net&gt;" />
  <person posts="1" size="3" who="Robberrrtttoooo &lt;robbie@o2.paly.palo-alto.ca.us&gt;" />
  <person posts="1" size="3" who="Rainer Clasen &lt;bj@ncc.cicely.de&gt;" />
  <person posts="1" size="3" who="&quot;Nicholas J. Leon&quot; &lt;nicholas@binary9.net&gt;" />
  <person posts="1" size="3" who="&quot;Antonio M. Trindade&quot; &lt;trindade@student.dei.uc.pt&gt;" />
  <person posts="1" size="3" who="crosser@average.org (Eugene Crosser)" />
  <person posts="1" size="3" who="&quot;Michael Wm. Gilbert&quot; &lt;mgilbert@oit.umass.edu&gt;" />
  <person posts="1" size="3" who="Erland Lewin &lt;erl@stacken.kth.se&gt;" />
  <person posts="1" size="3" who="Heinz Mauelshagen &lt;mauelsha@ez-darmstadt.telekom.de&gt;" />
  <person posts="1" size="3" who="&quot;Jeremy D. Impson&quot; &lt;jdimpson@source.syr.edu&gt;" />
  <person posts="1" size="3" who="hsmith@dockside.co.za" />
  <person posts="1" size="3" who="Michael ledford &lt;mledford@mindspring.com&gt;" />
  <person posts="1" size="3" who="Andreas Steinmetz &lt;ast@domdv.de&gt;" />
  <person posts="1" size="3" who="Shaw Carruthers &lt;shaw@shawc.demon.co.uk&gt;" />
  <person posts="1" size="3" who="hans@grumbeer.inka.de (Hans-Joachim Baader)" />
  <person posts="1" size="3" who="Dan Christian &lt;robodan@netscape.com&gt;" />
  <person posts="1" size="2" who="Chris Chiappa &lt;griffon@snurgle.org&gt;" />
  <person posts="1" size="2" who="Andrew McGregor &lt;andrew@indranet.co.nz&gt;" />
  <person posts="1" size="2" who="Douglas Ridgway &lt;ridgway@winehq.com&gt;" />
  <person posts="1" size="2" who="Jiann-Ming Su &lt;js1@microwave.ph.msstate.edu&gt;" />
  <person posts="1" size="2" who="David Hinds &lt;dhinds@zen.stanford.edu&gt;" />
  <person posts="1" size="2" who="&quot;Gero Kuhlmann&quot; &lt;gero@gkminix.han.de&gt;" />
  <person posts="1" size="2" who="Regis Duchesne &lt;regis@via.ecp.fr&gt;" />
  <person posts="1" size="2" who="&quot;Terry L. Ridder&quot; &lt;terrylr@blauedonau.com&gt;" />
  <person posts="1" size="2" who="Paul Bunyk &lt;paul@pbunyk.physics.sunysb.edu&gt;" />
  <person posts="1" size="2" who="Paul.Gammans@brunel.ac.uk" />
  <person posts="1" size="2" who="Tom Gallagher &lt;tgallagh@madge.com&gt;" />
  <person posts="1" size="2" who="Evan Van Dyke &lt;e-van@nwu.edu&gt;" />
  <person posts="1" size="2" who="Craig Milo Rogers &lt;rogers@ISI.EDU&gt;" />
  <person posts="1" size="2" who="Pavel Ravits &lt;br2@netvision.net.il&gt;" />
  <person posts="1" size="2" who="&quot;Major'Trips'&quot; &lt;major@jimco-fwt.com&gt;" />
  <person posts="1" size="2" who="Fredrick Meunier &lt;fme@fmsc.co.uk&gt;" />
  <person posts="1" size="2" who="Horst von Brand &lt;vonbrand@sleipnir.valparaiso.cl&gt;" />
  <person posts="1" size="2" who="marc_news@merlins.org (Marc MERLIN)" />
  <person posts="1" size="2" who="Hugo Varotto &lt;hvarotto@cs.pitt.edu&gt;" />
  <person posts="1" size="2" who="Andrew Logan &lt;aml@bsl.co.uk&gt;" />
  <person posts="1" size="2" who="Dustin Marquess &lt;jailbird@alcatraz.fdf.net&gt;" />
  <person posts="1" size="2" who="Michael K Vance &lt;mkv102@psu.edu&gt;" />
  <person posts="1" size="2" who="Justin Hahn &lt;jehahn@raven.bu.edu&gt;" />
  <person posts="1" size="2" who="=?iso-8859-1?Q?Proto_P=E1l_my_PROTO_user?= &lt;proto@oxygene.terra.vein.hu&gt;" />
  <person posts="1" size="2" who="&quot;Robert G. Werner&quot; &lt;rwerner@lx1.microbsys.com&gt;" />
  <person posts="1" size="2" who="Mike Miller &lt;mtm@clover.c2d.fedex.com&gt;" />
  <person posts="1" size="2" who="Alain Toussaint &lt;alaint@cgocable.ca&gt;" />
  <person posts="1" size="2" who="Daniel.Egger@t-online.de (Daniel Egger)" />
  <person posts="1" size="2" who="adb@onramp.ca (Anthony DeBoer)" />
  <person posts="1" size="2" who="Fuzzy Fox &lt;fox@dallas.net&gt;" />
  <person posts="1" size="2" who="Wakko Warner &lt;wakko@animx.eu.org&gt;" />
  <person posts="1" size="2" who="Jens-Uwe Rumstich &lt;rumstich@informatik.hu-berlin.de&gt;" />
  <person posts="1" size="2" who="Jim Meyering &lt;meyering@ascend.com&gt;" />
  <person posts="1" size="2" who="Vasili Goutas &lt;vgo@ratio.de&gt;" />
  <person posts="1" size="2" who="Gerhard Mack &lt;gmack@imag.net&gt;" />
  <person posts="1" size="2" who="Ted Lemon &lt;mellon@isc.org&gt;" />
  <person posts="1" size="2" who="Shaw Terwilliger &lt;sterwill@postman.abisource.com&gt;" />
  <person posts="1" size="2" who="German Jose Gomez Garcia &lt;german@pinon.ccu.uniovi.es&gt;" />
  <person posts="1" size="2" who="Volker Dormeyer &lt;V.Dormeyer@t-online.de&gt;" />
  <person posts="1" size="2" who="hamster@lspace.org" />
  <person posts="1" size="2" who="Geoff R Deasey &lt;kd4wvf@server1.netpath.net&gt;" />
  <person posts="1" size="2" who="Steve Linton &lt;sal@dcs.st-and.ac.uk&gt;" />
  <person posts="1" size="2" who="dulaney &lt;dulaney@pyro.net&gt;" />
  <person posts="1" size="2" who="Terry Hardie &lt;terryh@orcas.net&gt;" />
  <person posts="1" size="2" who="Peter Svensson &lt;petersv@psv.nu&gt;" />
  <person posts="1" size="2" who="gw &lt;mwyborny@sdcoe.k12.ca.us&gt;" />
  <person posts="1" size="2" who="&quot;Igmar Palsenberg&quot; &lt;igmar@jdimedia.nl&gt;" />
  <person posts="1" size="2" who="Jes Sorensen &lt;Jes.Sorensen@cern.ch&gt;" />
  <person posts="1" size="2" who="Greg Franks &lt;greg@sce.carleton.ca&gt;" />
  <person posts="1" size="2" who="Marlon Anthony Abao &lt;Marlon.Abao@Infodyne.Net&gt;" />
  <person posts="1" size="2" who="Adam Scislowicz &lt;core@triron.net&gt;" />
  <person posts="1" size="2" who="DAVID BALAZIC &lt;david.balazic@uni-mb.si&gt;" />
  <person posts="1" size="2" who="Y2K &lt;y2k@y2ker.com&gt;" />
  <person posts="1" size="2" who="linux-kernel@janhh.shnet.org (Jan Willamowius)" />
  <person posts="1" size="2" who="Matthias Andree &lt;mandree@sx1.HRZ.Uni-Dortmund.DE&gt;" />
  <person posts="1" size="2" who="Andrew Kieschnick &lt;andrewk@mail.utexas.edu&gt;" />
  <person posts="1" size="2" who="&quot;Jon 'tex' Boone&quot; &lt;tex@isc.upenn.edu&gt;" />
  <person posts="1" size="2" who="Dragan Stancevic &lt;dragan@redshift.com&gt;" />
  <person posts="1" size="2" who="juergen@quotus.com (Juergen Fiedler)" />
  <person posts="1" size="2" who="&quot;Marc G. Glade&quot; &lt;marcg@unforgettable.com&gt;" />
  <person posts="1" size="2" who="&quot;B. James Phillippe&quot; &lt;bryan@terran.org&gt;" />
  <person posts="1" size="2" who="Bernhard Rosenkraenzer &lt;linux-kernel@gmx.de&gt;" />
  <person posts="1" size="2" who="Chuck Lever &lt;cel@monkey.org&gt;" />
  <person posts="1" size="2" who="Bernd Broermann &lt;info@broermann.com&gt;" />
  <person posts="1" size="2" who="Denis Chapligin &lt;chollya@yantar.ru&gt;" />
  <person posts="1" size="2" who="&quot;ljp&quot; &lt;llornkcor@llornkcor.com&gt;" />
  <person posts="1" size="2" who="Alex Riedel &lt;riedel@taraz.kz&gt;" />
  <person posts="1" size="2" who="Eduard Soriano &lt;eduard@dapsys.ch&gt;" />
  <person posts="1" size="2" who="John Rood &lt;johnrood@dds.nl&gt;" />
  <person posts="1" size="2" who="John Kodis &lt;kodis@jagunet.com&gt;" />
  <person posts="1" size="2" who="&quot;Sergio Orsatti&quot; &lt;orsatti@uninet.com.br&gt;" />
  <person posts="1" size="2" who="&quot;Fabien Klein&quot; &lt;fabklein@hotmail.com&gt;" />
  <person posts="1" size="2" who="&quot;Mike Stubblefield&quot; &lt;mike_st@iah.com&gt;" />
  <person posts="1" size="2" who="wnoise@ugcs.caltech.edu (Aaron Denney)" />
  <person posts="1" size="2" who="Chris Wedgwood &lt;chris@cybernet.co.nz&gt;" />
  <person posts="1" size="2" who="Thomas Pornin &lt;pornin@bolet.ens.fr&gt;" />
  <person posts="1" size="2" who="Elmer Joandi &lt;elmer@ylenurme.ee&gt;" />
  <person posts="1" size="2" who="&lt;kernel@soia.erols.com&gt;" />
  <person posts="1" size="2" who="Katlun Yong &lt;katlun@home.com&gt;" />
  <person posts="1" size="2" who="&quot;Chris Johnson&quot; &lt;&gt;" />
  <person posts="1" size="2" who="David Howells &lt;David.Howells@nexor.co.uk&gt;" />
  <person posts="1" size="2" who="Britton Kerin &lt;bkerin@best.com&gt;" />
  <person posts="1" size="2" who="Micha &lt;schulzmi@gfz-potsdam.de&gt;" />
  <person posts="1" size="2" who="corbet@eklektix.com (Jonathan Corbet)" />
  <person posts="1" size="2" who="lenton@hal.famaf.unc.edu.ar" />
  <person posts="1" size="2" who="ljp &lt;root@llornkcor.com&gt;" />
  <person posts="1" size="2" who="Peter Steiner &lt;p.steiner@t-online.de&gt;" />
  <person posts="1" size="1" who="&lt;lenton@hal.famaf.unc.edu.ar&gt;" />
</stats>

<section
  title="More Spam From uu.net"
  subject="I found a misspelled word on your website..."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.2/0470.html"
  posts="7"
  startdate="18 Feb 1999 00:00:00 -0800"
  enddate="18 Feb 1999 00:00:00 -0800"
>
<topic>Mailing List Administration</topic>
<topic>Sound: ALSA</topic>
<topic>Spam</topic>
<notopic>Sound</notopic>

<p>A post under the name of Chris Johnson (and with no return address) hit
linux-kernel this week:</p>

<quote who="Chris Johnson">

<p>I happened upon your web site and noticed that "receive" is
misspelled (you have it as "recieve").  The URL of the page is: <a
href="http://www.wcug.wwu.edu/lists/netdev/199708/msg00039.html">http://www.wcug.wwu.edu/lists/netdev/199708/msg00039.html</a></p>

<p>Sorry for making such a big deal of a simple misspelling; my therapist
says I have an obsessive-compulsive personality&lt;g&gt;. But these web
pages seem to live forever and this could be embarrassing.</p>

<p>When I find something like this on my website, I use a free utility that
helps me correct typos and make quick edits right in my browser. It's called
JustEdit and you can get a free copy from www.download.com.</p>

</quote>

<p>Alain Toussaint replied, <quote who="Alain Toussaint">wonder if it's not
a troll,i received the exact same e-mail on the berlin list,as indicated in
the second paragraph,i suspect he's both obsessive and the developpers of
that particular apps (want to get some pub),i think there's better way to
advertise a software.</quote></p>

<p>Shaw Terwilliger added, <quote who="Shaw Terwilliger">This guy is out to
spam every mailing list in existance to sell his (shareware?) software. He
hit the ALSA lists this morning, with the same "misspelling" but with a
different mechanically generated URL. It seems he's harvesting list archives
and sending messages to the list addresses.</quote></p>

<p>Matt Busigin said, <quote who="Matt Busigin">Its an obvious bot. It probably
recursively searches webpages and finds fairly close spelling errors, and
most likely with some sort of percentage chance, finds an email address on
the page, and mails a randomly picked message like the above.</quote></p>

<p>Henrik Olsen analyzed the headers and said:</p>

<quote who="Henrik Olsen">

<p>Another *.uu.net originated spam, currently it seems like 60% of the spam
I see is posted from these guys.</p>

<p>I've never gotten any response from them either, not even when I was trying
to track down who it was who had cracked one of our servers. I managed to
get the connecting ip by a combination luck in being 5 minutes from a
connected machine when named died letting him in and good monitoring
software paging me because of that death, but that didn't help since noone
answered my mail.</p>

<p>My personal reaction with uunet has been to mail them, then block mail from
that subdomain once they don't answer.</p>

</quote>

</section>

<section
  title="The Bubble Bursts For BIOS Backward Compatibility"
  subject="New new enhanced memory detection patch; testers wanted"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.2/0724.html"
  posts="11"
  startdate="20 Feb 1999 00:00:00 -0800"
  enddate="23 Feb 1999 00:00:00 -0800"
>
<topic>Backward Compatibility</topic>

<p>Would someone in the know care to comment on this in more detail?</p>

<p>david parsons wrote in, looking for testers. He said, <quote who="David
Parsons">The memory detect scheme I wrote for Linux 1.2.13 and 2.0.x has
become obsolete. Since I wrote it, many many bioses have stopped supporting
int 15h, 0e801h for extended memory detection and instead gone over to int
15h, 0e820h. So, I've tweaked my memory detect patch to use 0e820 as well
as 0e801 and 088.</quote> He added that the patch was only good for 2.0.x,
but he'd produce one for 2.2.x on demand.</p>

<p>A stunned H. Peter Anvin replied, <quote who="H. Peter Anvin">Which BIOSes
would that be?? That seems quite odd -- you don't just discontinue something
like that.</quote></p>

<p>David answered, <quote who="David Parsons">Well, I know that the bios
on the HP Omnibook 5700 doesn't support e801 (it says it does, but e801
only returns 10mb on my 128mb home machine) and that the bios on the FIC
601(V?) motherboard doesn't either.</quote> He went on to explain, <quote
who="David Parsons">apparently e820 is the recommended Windows way of detecting
memory, because you can map around memory holes with it. And since nobody
in the computing world gives a damn about backwards compatability unless
it's forced on them at gunpoint, e801 becomes simply an inconvenient entry
point which you can either ignore or return garbage in.</quote></p>

<p>Scary.</p>

</section>

<section
  title="A Sad Rejection"
  subject="[patch] required signals"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.2/0563.html"
  posts="6"
  startdate="18 Feb 1999 00:00:00 -0800"
  enddate="20 Feb 1999 00:00:00 -0800"
>

<p>Albert D. Cahalan submitted a patch that got rejected. He said, <quote
who="Albert D. Cahalan">four Linux ports violate standards: i386, ppc, m68k,
and arm. We must have SIGSYS to meet the Single UNIX specification v2. Those
four ports are also the only ones that lack SIGEMT,</quote> and added, <quote
who="Albert D. Cahalan">this patch documents the non-standard signals and,
when possible, defines non-standard signals in terms of standard signals
rather than the reverse.</quote></p>

<p>Alan Cox said, <quote who="Alan Cox">this isnt a kernel issue at all,
</quote> and went on, <quote who="Alan Cox">and it makes no odds - glibc
doesnt even use the kernel header file for signal numbers.</quote></p>

<p>Albert disagreed that it wasn't a kernel issue, saying, <quote
who="Albert D. Cahalan">the kernel has code that is signal-specific, so
it must define the numbering. The kernel itself uses the numbers in many
places. Disagreement over allocation would be terrible.</quote> He added
that <quote who="Albert D. Cahalan">apparently glibc follows the kernel
numbering -- a wise choice. (perhaps it _is_ the kernel numbering, after a
trip through perl)</quote></p>

<p>Linus Torvalds put in, <quote who="Linus Torvalds">there is no disagreement:
the kernel specifies the numbers, and user space lives with them,</quote>
and added, <quote who="Linus Torvalds">the numbers the kernel doesn't care
about might as well be defined by the library.</quote></p>

<p>Albert insisted, <quote who="Albert D. Cahalan">unfortunately the kernel
_does_ care about them. Every signal has a default behavior determined by
the kernel, and that behavior matters.</quote> He finished with, <quote
who="Albert D. Cahalan">so you don't think the patch is important... but is
is bad?  Proper default behavior can not be defined without defining what
each signal maps to.</quote></p>

<p>End of thread.</p>

</section>

<section
  title="An Attempted Fix"
  subject="[RFC] inode generation numbers."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.2/1056.html"
  posts="5"
  startdate="22 Feb 1999 00:00:00 -0800"
  enddate="24 Feb 1999 00:00:00 -0800"
>
<topic>FS: NFS</topic>

<p>G. Allen Morris III wanted to add a field to 'struct inode' because <quote
who="G. Allen Morris III">NFS is in need of an inode generation number for
correctness and possibly some added security,</quote> and asked if there
would be any adverse effects. Linus Torvalds replied, <quote who="Linus
Torvalds">In the long run, no. But I'm not accepting test-patches with it,
simply because it breaks module compatibility, so I'd like to have a really
strong release candidate before I do that. And I'd prefer to try to avoid it
for 2.2.x at all.</quote></p>

</section>

<section
  title="A Double Fix"
  subject="[Patch] Couple of races on MIPS."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.2/0383.html"
  posts="2"
  startdate="18 Feb 1999 00:00:00 -0800"
  enddate="19 Feb 1999 00:00:00 -0800"
>

<mention>Alexander Viro</mention>

<p>This was a two post thread in which Alexander Viro posted a patch to fix
some exploitable races. Ralf responded that he had already fixed the
problem. End of thread.</p>

</section>

<section
  title="fsync(); syslogd; Ext2 Extensions; Linus Chastized"
  subject="fsync on large files"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.1/0663.html"
  posts="135"
  startdate="12 Feb 1999 00:00:00 -0800"
  enddate="24 Feb 1999 00:00:00 -0800"
>
<topic>BSD</topic>
<topic>Disks: SCSI</topic>
<topic>FS: FAT32</topic>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>
<topic>Raw IO</topic>
<topic>Scheduler</topic>
<topic>Security</topic>

<p align="center">

<a name="intro6"></a>

                          <b>Intro: The Problem</b>

</p>

<p>This thread was discussed last week in the <a
href="http://lwn.net/1999/0218/kernel.phtml">Linux Weekly News</a>, and KT
gave a <kcref subject="Re: fsync on large files" startdate="12 Feb 1999 00:00:00 -0800">brief quote</kcref> from Linus Torvalds; This week the
discussion continued, and so far takes up over 130 posts, although it looks
like it's just about dead by now. It all started when Alan Curry figured out
that <quote who="Alan Curry">syslogd's fsyncs have been the cause of some
major performance problems on an ISP's central server. Load averages have
been unreasonably high and gradually getting worse. Today we realized that
there is a weekly cycle to it, and it matches the cycle of the log rotation of
/var/log/messages. As this log file grows (currently 36 megs with 2 days left
before rotation) and beyond, with syslogd fsync'ing every line it writes,
syslogd hangs for long periods of time, and when syslogd is hung, lots of
other stuff hangs.</quote></p>

<p align="center">

<a name="part6_1"></a>

<b>Part 1: Some Suggestions</b>

</p>

<p>There followed a five day debugging subthread. There were some suggestions
that Alan Curry rotate the log files daily instead of weekly, but Peter
Svensson pointed out, <quote who="Peter Svensson">I
suppose this performance problem may show up in other places too where this
simple workaround is not possible. Is there any non-negotiable deep reason
why fsync on large fils must be slow? Once 2.2 has stabilazed I suppose
performance tuning in the 2.2 and 2.3 trees will be interesting to many
developers.</quote></p>

<p>Simon Kirby said, <quote who="Simon Kirby">There's no way in hell I'd run
syslogd with fsync() enabled on a machine that logs anything more than 1 line
per minute. Disable fsync()ing in syslogd by prepending "-" to each log file
you want to turn it off for.</quote> But Alan Curry replied, <quote who="Alan
Curry">I know that, and I've already done that as a temporary solution. But
syslogd syncs every line written for a good reason, namely that if the machine
crashes you don't want to lose the last few lines that were logged. They are
the most likely place to look for suspicious happenings. So I want a proper
fix, not a "disable the safety feature" kludge.</quote></p>

<p>There were several replies to this. Riley Williams suggested, <quote
who="Riley Williams">it sounds like what's needed is a facility to sync
just a particular file, combined with more frequent rotation of the
logs...</quote></p>

<p>Oliver Xymoron suggested, <quote who="Oliver Xymoron">A _real_ fix, which
also deals with log security issues nicely, is to log across a serial port
to a secure (possibly non-networked) host.</quote></p>

<p>Simon suggested, <quote who="Simon Kirby">I don't see disabling fsync() as
a kludge, though. Perhaps you should try remote logging and disabling fsync()
on the remote machine? If the logging server goes down for whatever reason,
you can enable fsync() again if you want to see if you can get a better trace
of it (it could just be spat to the console anyhow), but if any other server
goes down it should be logged there.</quote></p>

<p>Simon's post also grew a number of branches.</p>

<p align="center">

<a name="part6_2"></a>

<b>Part 2: The Original Poster's Solution And The End Of That Branch Of The Thread</b>

</p>

<p>Alan Curry replied to Simon's suggestion of remote logging while disabling
fsync(), <quote who="Alan Curry">Someone wiser than
me puts a safety feature into a critical daemon, and I take it out because
it's inconvenient? That's a kludge.</quote> He added, <quote who="Alan
Curry">here's the really weird part: we already
have a secondary logging machine, which is by all measurements less powerful
than the main machine, but it handles all the same log data, with the same
syslogd configuration, with hardly any cpu load at all,</quote> and went on,
<quote who="Alan Curry">here's what I think the real
problem is. On the main machine, there are lots of things trying to talk to
syslogd. But syslogd can't accept their connections because it is contantly
fsync'ing, so the other daemons block trying to connect.</quote> He
continued, <quote who="Alan Curry">Then when an
fsync finishes, syslogd accepts another connection, and 40 processes
suddenly become runnable, causing the scheduler to freak out and eat a bunch
of cpu time that does not show up as used by any particular process. On the
other machine, syslogd is the only process that ever runs, so there isn't a
scheduling problem. The fsync'ing is not a killer by itself.</quote></p>

<p>He finished with this bit of advice to himself, and that was the last we
heard from him on the subject: <quote who="Alan Curry">I think I'll just start trusting the log server to do its
job, and leave the syncing turned off on the main box. Anyone who doesn't
have a dedicated log server, I guess the lesson is rotate your logs before
they get too big.</quote></p>

<p>Zygo Blaxell responded to Alan Curry's <quote who="Alan Curry">Someone
wiser than me...</quote> comment, with the following historical/technical
explanation (quoted in full):</p>

<quote who="Zygo Blaxell">

<p>It's only a kludge if you assume that the people who wrote syslogd are
in fact smarter than you. I have reason to disagree.</p>

<p>The people who wrote syslogd with that "safety" feature were university
grad students who have consistently demonstrated a lack of understanding of
real-world computer issues including performance, security, and administration
over the last decade. Their coding was atrocious and they failed to do some
basic research on the API's they were using in a few notorious cases.</p>

<p>In fact, I think the wiser people are the ones who implemented the feature
to _disable_ the fsync() mode, which actually occurred after the source code
had been bouncing around the Linux world for a few years.</p>

<p>I've found syslogd in fsync() mode next to useless for crash analysis. For
me Linux systems crash three ways:</p>

<p><ol>

<li>They crash over a period of several hours, days, weeks, or months. I've
had Linux systems that ran for six months after part of the networking
subsystem died a horrible death.</li>

<li>They crash by going into a kernel panic instantly, and sometimes crash
before even that.</li>

<li>The SCSI subsystem (or a device on it) fails.  Really. This happens to
me more often than power failures.</li>

</ol></p>

<p>In case #1, there's plenty of time for the normal filesystem to sync.</p>

<p>In case #2, there's not enough time for syslogd to record the messages-- the
kernel stops running any processes at all, so syslogd is irrelevant. The
serial console doesn't have this problem. If you want to log crash messages,
use that.</p>

<p>In case #3, sync() on syslogd only exacerbates the problem (that is,
although it doesn't cause the problem in and of itself, it provides extra
opportunities for the problem to occur). Quiz: What's the worst thing you
can do if one of your SCSI disks has bad firmware and can't handle the load?
Send it _more_ I/O requests.</p>

<p>The cost in I/O performance for the unlikely event that syslog without
fsync() will lose a message that syslog with fsync() would _not_ lose (and
there's a window of only a few seconds here) is incredibly high. There are
cases where fsync() still won't help you: it's likely that anything that can
_deliberately_ bring down your system can be turned into something that can
destroy the log files too.</p>

<p>If you have really an entire disk spindle to spend on syslog messages, put
that spindle into a separate dedicated log server (on a separate UPS) and
store your log messages there.</p>

</quote>

<p align="center">

<a name="part6_3"></a>

<b>Part 3: Ted Ts'o Submits A Patch</b>

</p>

<p>Meanwhile, Theodore Y. Ts'o responded to Alan Curry's original post with a
patch he'd written, intended to deal with syslog calling fsync() all the
time: <quote who="Theodore Y. Ts'o">What the patch
does is keep an array of the last four blocks which were modified since the
last fsync(). If there have been no more than four blocks modified, then the
ext2 filesystem can do a "fast fsync", which just flushes those four (or
fewer) blocks to disk, without having to walk all of the indirect blocks
looking for modified blocks. This should be extremely effective for programs
like syslog which are doing frequent fsync()'s with minimal amounts of data
written between calls to fsync().</quote></p>

<p>Andi Kleen also responded with, <quote who="Andi Kleen">this is a very important patch, because fsync() is needed in
some transaction oriented databases (they have to call fsync() or
fdatasync() on the log frequently to commit operations). For some of them 4
blocks could be not enough though, perhaps a more generic version of your
patch that handles more than 4 blocks could be found - like keeping the
dirty blocks per inode on a special list.</quote></p>

<p>Linus said he'd prefer a patch that <quote who="Linus Torvalds">just made the dirty lists a per-inode thing.</quote> Ted
came up with an alternative that he felt fit Linus' idea: <quote who="Theodore Y. Ts'o">Most files never have fsync()
called upon them, so a way we can make things efficient is to only create
the dirty list after the first call to fsync() on an inode.</quote>. Linus
didn't like it, and said, <quote who="Linus Torvalds">I'd
much rather just always add it to the "inode dirty list",</quote> adding,
<quote who="Linus Torvalds">It's just a few pointer
operations, and the advantage of having a clean and simple design probably
results in better performance anyway.</quote></p>

<p>But Ted objected, <quote who="Theodore Y. Ts'o">This
works for ext2, but it doesn't work with filesystems (most notably FAT
filesystems, and possibly some B-tree based filesystems) where metadata
might be shared by multiple files, so a block might have to be on multiple
inode dirty lists.</quote></p>

<p>Alan Cox suggested, <quote who="Alan Cox">As a
percentage the number of 'shared blocks' is low. So just keep a single
'might be shared list' and write that list out too,</quote> and Alexander
Viro put in, <quote who="Alexander Viro">That really
starts to resemble *BSD buffer cache architecture - they just index buffer
cache by inode + offset instead of device + offset, assign negative offsets
to metadata (on normal filesystems) and for FAT they keep metadata assigned
to the device itself.</quote></p>

<p>Meanwhile Linus also replied to Ted, continuing his push for simplicity. At
one point he said, <quote who="Linus Torvalds">A filesystem
that has lots of shared dirty blocks is going to have a slow and complex
fsync(), but I think it's fairly simple to just consider the exclusive
blocks a separate issue, and then just accept the fact that there are shared
data structures that have to be maintained separately by the
filesystem,</quote> and added, <quote who="Linus Torvalds">just having an exclusive dirty list would make 99% of all
fsync() issues just go away. The remaining 1% is not likely to be a real
problem, imho, and is very obviously not something that the VFS layer can
really help with anyway.</quote></p>

<p align="center">

<a name="part6_4"></a>

<b>Part 4: Linus Puts His Foot Down And Get's Chastised</b>

</p>

<p>In response to this, Stephen C. Tweedie and Alexander Viro had a four-post,
one-day staircase in which it came out that Stephen was extending ext2.</p>

<p>Linus came out with, <quote who="Linus Torvalds">Stephen, I'v
etold you before: I will not accept these kinds of extensions to ext2. Make
a new filesystem, and if you want, re-use the code (and the layout) of
ext2.</quote>, He went on, <quote who="Linus Torvalds">There's not a chance in hell that I will ever release a
kernel with these kinds of major fs modifications - call it "ext3" and after
a year or so of in-production use we can drop ext2.</quote></p>

<p>Alan Cox rebuked Linus, with, <quote who="Alan Cox">Linus before sounding off why not have a look at the patches
concerned. Its bad when you go around pronouncing on things before looking
hard,</quote> and added, <quote who="Alan Cox">And
funnily enough the instructions for applying his patch start "copy fs/ext2
to fs/ext3 then..."</quote></p>

<p>Linus shot back, <quote who="Linus Torvalds">Good. Then don't go around
calling it ext2 any more. I don't want to have people even _wondering_
about the stability of the central Linux filesystem.</quote> He went on,
<quote who="Linus Torvalds">I would also suggest that Stephen actually drop
ext2 altogether. There's just too much historical stuff in most filesystems -
things like having "." and ".." in directories, even though Linux doesn't need
them and they only complicate renaming and loopback mounting a lot. There's
also a lot of code to handle concurrent writes etc, which can't happen
any more,</quote> and added, <quote who="Linus Torvalds">This is why I'm
so upset at even the notion of extending ext2 - not only do I dislike the
fact that Stephen was going to do it in-place (and I'm happy to hear he no
longer considers that), I think that if people are doing a new filesystem,
it should be done like "ext2" was originally done: by designing a new one,
rather than building more scaffolding on top of an old one.</quote></p>

<p>Stephen came back with, <quote who="Stephen C. Tweedie">it _isn't_
called ext2. It is called ext3.</quote> He added, <quote who="Stephen
C. Tweedie">there is an _urgent_ need for a journaled filesystem for
Linux, and there is an urgent need for a solution which is of production
quality. Implementing a new filesystem from scratch is hardly the way to
achieve that.</quote> He continued, <quote who="Stephen C. Tweedie">please
check what I'm actually trying to do. I am explicitly _not_ designing a new
filesystem,</quote> and, <quote who="Stephen C. Tweedie">The ext3 code is
nothing more than a set of calls to demarkate the start and end of complete,
consistent filesystem operations.</quote></p>

<p>Linus explained himself:</p>

<quote who="Linus Torvalds">

<p>I certainly see your argument about "make something work quickly - base
it on ext2". However, while _you_ may consider this a stop-gap measure, _I_
know that we may end up being red in the face over some bad design when it
turns out three years later that people are still using the stop-gap measure,
and the stop-gap measure was good enough that nobody ever bothered to design
something nice.</p>

<p>FAT32 was a "stop-gap measure". Sure, it made sense to just extend FAT
from a "we need to have something that can handle larger filesystems NOW"
standpoint. But stop-gap measures have a way of staying around. Forever.</p>

<p>I would hope that Linux development is not guided by those kinds of
constraints. If we have to wait an extra year for a journaling filesystem,
I don't think it's a bad tradeoff to discuss the possibility of just starting
from a clean slate.</p>

</quote>

<p>Meanwhile, Alan Cox responded to Linus' <quote who="Linus
Torvalds">Good. Then don't go around calling it ext2 any more</quote>
post, in particular where he said, <quote who="Linus Torvalds">I think
that if people are doing a new filesystem, it should be done like "ext2"
was originally done: by designing a new one, rather than building more
scaffolding on top of an old one.</quote></p>

<p>Alan Cox's reply was, <quote who="Alan Cox">Linux has a lot of cruft in
it maybe while doing journalling we should throw the OS away and rewrite
that too ? - I hope Im misunderstanding your argument.</quote></p>

<p>Linus responded (as quoted last week in KT):</p>

<quote who="Linus Torvalds">

<p>No, you're not misunderstanding the argument. Eventually some hungry
programmer will decide that Linux has too much cruft, and he'll want
to take over the world, and he'll come up with a system called Davix or
something. That's how these things go, and that's how things _should_ work.</p>

<p>The only thing I can aim at is to minimize the amount of cruft, and pushing
out the inevitable as far into the future as humanly possible. That's what
"maintenance" means, Alan.</p>

<p>Alan, the _only_ beef I ever have about you as a developer is that you're
looking about a year into the future - not ten.</p>

<p>Start thinking ten years down the road, and think "how do I avoid the
complexity issue"? Then, after you've given that some serious thouhgt, come
back to me about this all.</p>

</quote>

<p>Alan Cox replied:</p>

<quote who="Alan Cox">

<p>I have. A lot of what is going on now is right. The problem is there is
a Linus tendancy to go "No way ever" not "I can't see how we can do this
cleanly". Linus Torvalds is not god, and pronouncing blindly from on high
is a bad idea.</p>

<p>You could much more productively have said</p>

<p>"Stephen please call it ext3 because ....."</p>

<p>"I can't see a way to use all 4Gig of memory so for now I'm working on the
basis its not likely to occur"</p>

<p>Free Software works a darn sight better when the response to something is
not "No, go away" but "I don't believe you can do it, show me.."</p>

<p>Im sure the latter is what you really mean in mosty cases, but it doesn't
come across that way.</p>

<p>Personally I'm pretty sure that in 5 years time Linux will support very
large amounts of RAM, a lot of processors, direct DMA I/O on file systems
concurrent writes to a file and journalling.</p>

</quote>

<p>Linus Replied, <quote who="Linus Torvalds">Almost certainly.
But it's not going to be done badly.</quote></p>

<p>Stephen counted to ten, and wrote:</p>

<quote who="Stephen C. Tweedie">

<p>Great.</p>

<p>Linus, this is one of the most frustrating things about trying to actually
implement some of this stuff: you get so bogged down in the "don't do it
badly" that you never get around to talking about "do it well".</p>

<p>When the flames about raw IO errupted, the _only_ thing I was able to
get out of you was "raw device IO is evil".  It seemed to be impossible
to get you to turn the discussion around to the requirements for file IO,
because every pronouncement you made about the whole subject ended up with
"raw device IO is evil".</p>

<p>Again with journaling, it's a case of "don't you *dare* touch ext2, ext2
is inviolate" rather than "yes, go ahead but keep the existing code intact".
See the difference?</p>

</quote>

<p align="center">

<a name="6part5"></a>

<b>Part 5: The Smoke Clears</b>

</p>

<p>Alan Cox replied to Linus on a more technical level, and Linus replied back,
also on only technical terms.</p>

<p>Chris Wedgwood also had a technical reply to Linus regarding the '.' and
'..' directories, which had come up previously. He said, <quote who="Chris
Wedgwood">Surely ".." is of some value (perhaps not now, but maybe in the
future) to e2fsck is the disk gets corrupted?</quote> To which Linus replied,
<quote who="Linus Torvalds">Not really. You can use it as an extra sanity-check
(and as far as I know fsck does), but that's true of just about any redundant
information - that doesn't necessarily make it actually useful. It's less so
if you journal your metadata anyway,</quote> and added, <quote who="Linus
Torvalds">So yes, you can use ".." to check that both the parent and the
child agree about each other, but even if they don't there's not all that
much you can do with the information.</quote></p>

<p>Ted replied with:</p>

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

<p>Actually, there is
something that can be done with the information; if part of the parent's
directory blocks have been corrupted, the child directory will be
disconnected from the directory tree. The '..' link will tell you where in
the directory tree the child should be reconnected, although not what the
name of that child should be.</p>

<p>This information shows up in the fsck transcript, and can be used as a hint
by the system administrator about how to restore the disconnected directory
from the lost+found directory to the correct place in the directory tree.</p>

<p>I've considered automating this to make it a little easier for system
administrators to actually fix things. (For example: reconnecting the
directory to the parent directory if possible, and putting a symbolic link
in lost+found so the administrator knows where to find the child directory
so he/she can rename it to the correct name.)</p>

<p>Even better would be to store the name of the child directory in the child's
directory block; this additional amount of redundant information would allow
for a completely automated recovery procedure in many cases, which would be
a big win.</p>

</quote>

<p>To which Alexander Viro objected, <quote who="Alexander
Viro">Erm... rename() will become a living horror that way. Either you'll
have to reshuffle the stuff in first block or you've got another block to
write on rename(). I.e. one more way to screw up.</quote></p>

<p>Oliver Xymoron also replied to Chris Wedgwood's <quote who="Chris
Wedgwood">Surely '..' is of some value ... to e2fsck is the disk gets
corrupted?</quote>, with, <quote who="Chris Wedgwood">Yes, definitely. I've
certainly found it useful in reconstructing damage by hand. Doesn't mean
the kernel has to use it, it just has to maintain it. I can see how having
the kernel not rely on them (already the case) is a win, but I can't see why
saving the couple dozen bytes per directory and the overhead at mkdir time
is a big deal.  Redundancy, if done right, can increase robustness.</quote></p>

<p>Linus responded:</p>

<quote who="Linus Torvalds">

<p>Redundancy, if done wrong, can also screw you quite badly. So it cuts
both ways.</p>

<p>For example, a directory structure that is actually fairly powerful is a
special case of hardlinked directories: not something you want to allow most
people to do, but what I have actually been asked about a few times is a way to
have the same directory show up in multiple places. That implies that ".." is
actually dependent not on the directory itself, but on how you got there.</p>

<p>The standard answer to this in unix is symlinks, but I bet I'm not the only
person who has ever cursed about "ls subdir/.." being very different from
"ls .". And there are actually filesystems out there that can do it, it's
just that they cannot have ".." entries in their directories.</p>

<p>Loopback mounts do this right, but they tend to be higher overhead. Nobody
does loopback mounts of /usr/X11 -&gt; /usr/X11R6, people use symlinks and
live with the confusion of ".." because they are used to it.</p>

<p>Now, as it is, the linux dentry cache would be confused by having
potentially multiple aliases for the same path, but that's something that I
consider to be a misfeature - but one that wasn't worth fixing considering
that we didn't have any serious filesystems that could take advantage of it
anyway (I think the only two filesystems we support right now that can do it
at all are AFFS and iso9660, and for the latter I don't actuall yknow of
anybody who does that kind of disks).</p>

<p>But being able to handle hardlinked directories would actually be really
nice: if you avoid loops (which is easy to do), it goes from being a
dangerous feature to a really nice one.</p>

<p>Basically, I used to think that hardlinked directories are evil, and
horrible. What changed my opinion was that (a) I found a few cases where I
really wanted to use them and (b) I noticed that most of the reason for
hating them was because they were hard to do right rather than anything
fundamentally wrong with the concept.</p>

<p>We can't do them right as is, but getting rid of ".." in the on-disk
directory structure would be one step, and I think I can handle the dentry
aliasing issue too.</p>

<p>Imagine, for example, a directory tree with a shared component. Wouldn't it
be nice to just link it into the tree at multiple points? Imagine a chroot()
environment, for a moment - symlinks don't work to the outside, but
hardlinking does.</p>

<p>Maybe it's not worth it, but it _is_ an example of redundancy that just
screws you.</p>

</quote>

<p>Alexander Viro responded to Linus' <quote who="Linus Torvalds">if you
avoid loops (which is easy to do)</quote> with:</p>

<quote who="Alexander Viro">

<p>mkdir a<br />
mkdir b<br />
mkdir a/c<br />
ln a/c b/c<br />
mkdir a/c/d<br />
mv b a/c/d</p>

<p>If you have a way to deal with that... BTW, I strongly suspect that any
solution involving scanning potential ancestors is *not* good - you can
construct very unpleasant DoS that way.</p>

</quote>

<p>And to Linus' <quote who="Linus Torvalds">getting rid of '..'  in the
on-disk directory structure would be one step, and I think I can handle the
dentry aliasing issue too,</quote> Alexander said, <quote who="Alexander
Viro">Could you elaborate? I am trying to figure out the way to do that
and for the case of multiple links *from the same directory* I have a
kinda-sorta solution. For generic thing... I would really like to hear your
variant.</quote></p>

<p>To Alexander's hardlink loop, Linus replied, <quote who="Linus
Torvalds">Ayee. Good spotting. Nasty. I was wrong, it's not all that easy
at all.</quote> At the end of the post, Linus concluded, <quote who="Linus
Torvalds">I'd still like to allow hard links too, but my mind isn't quite
as twisted as yours is, judging by your nasty example ;)</quote></p>

<p>At this point the thread seems pretty much over. It's strange to see the
top developers getting annoyed at each other, although it's not uncommon. More
interesting is how quickly (and the way in which) the discussion returned
to a peaceful state. But the problems raised may not go away so easily.</p>

</section>

</kc>
