<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="222" date="10 Jul 2003 00:00:00 -0800" />

<stats posts="2025" size="9923" contrib="525" multiples="285" lastweek="224">

<person posts="65" size="275" who="Larry McVoy" />
<person posts="62" size="255" who="Stephan von Krawczynski" />
<person posts="53" size="157" who="Alan Cox" />
<person posts="46" size="181" who="Greg KH" />
<person posts="28" size="99" who="Andrew Morton" />
<person posts="28" size="81" who="&quot;David S. Miller&quot;" />
<person posts="27" size="148" who="&quot;Martin J. Bligh&quot;" />
<person posts="27" size="131" who="Con Kolivas" />
<person posts="25" size="128" who="rmoser" />
<person posts="25" size="114" who="John Bradford" />
<person posts="23" size="43" who="(usenet)" />
<person posts="22" size="75" who="Andre Hedrick" />
<person posts="21" size="61" who="Jeff Garzik" />
<person posts="19" size="86" who="Rusty Russell" />
<person posts="19" size="78" who="Adrian Bunk" />
<person posts="19" size="68" who="(Valdis.Kletnieks)" />
<person posts="18" size="208" who="William Lee Irwin III" />
<person posts="18" size="67" who="Jesse Pollard" />
<person posts="16" size="60" who="Felipe Alfaro Solana" />
<person posts="16" size="52" who="Christoph Hellwig" />
<person posts="16" size="48" who="Davide Libenzi" />
<person posts="15" size="98" who="Lou Langholtz" />
<person posts="15" size="81" who="Vojtech Pavlik" />
<person posts="15" size="63" who="Daniel Phillips" />
<person posts="15" size="62" who="Timothy Miller" />
<person posts="15" size="59" who="&quot;Henning P. Schmiedehausen&quot;" />
<person posts="14" size="138" who="Martin Schwidefsky" />
<person posts="14" size="52" who="Werner Almesberger" />
<person posts="14" size="49" who="Mike Galbraith" />
<person posts="14" size="41" who="(viro)" />
<person posts="13" size="74" who="&quot;Robert White&quot;" />
<person posts="13" size="56" who="Helge Hafting" />
<person posts="13" size="45" who="Vojtech Pavlik" />
<person posts="13" size="43" who="&quot;David Schwartz&quot;" />
<person posts="13" size="41" who="Oleg Drokin" />
<person posts="12" size="43" who="&quot;H. Peter Anvin&quot;" />
<person posts="12" size="39" who="Willy Tarreau" />
<person posts="11" size="175" who="Trond Myklebust" />
<person posts="11" size="128" who="Joe Thornber" />
<person posts="11" size="57" who=" (Margit Schubert-While)" />
<person posts="11" size="39" who="Matthew Wilcox" />
<person posts="10" size="170" who="Andrey Panin" />
<person posts="10" size="70" who="Peter Osterlund" />
<person posts="10" size="42" who="Marcus Metzler" />
<person posts="10" size="37" who="Martin List-Petersen" />
<person posts="10" size="35" who="&quot;Richard B. Johnson&quot;" />
<person posts="10" size="31" who="Marc-Christian Petersen" />
<person posts="9" size="82" who="Steven Dake" />
<person posts="9" size="35" who="Chris Friesen" />
<person posts="9" size="34" who="Patrick Mochel" />
<person posts="9" size="29" who="Jamie Lokier" />
<person posts="9" size="29" who="Zwane Mwaikambo" />
<person posts="9" size="29" who="&quot;Leonard Milcin Jr.&quot;" />
<person posts="8" size="77" who="Chris Mason" />
<person posts="8" size="59" who="Mel Gorman" />
<person posts="8" size="42" who="Nick Piggin" />
<person posts="8" size="34" who="john stultz" />
<person posts="8" size="31" who="Bill Davidsen" />
<person posts="8" size="30" who="Scott Robert Ladd" />
<person posts="8" size="28" who="Marcelo Tosatti" />
<person posts="8" size="26" who="James Bottomley" />
<person posts="8" size="26" who="Arjan van de Ven" />
<person posts="8" size="25" who="Scott McDermott" />
<person posts="8" size="24" who="Jurgen Kramer" />
<person posts="8" size="21" who="Robert Love" />
<person posts="7" size="82" who="Diego Calleja =?ISO-8859-15?Q?Garc=EDa?=" />
<person posts="7" size="42" who="joe briggs" />
<person posts="7" size="31" who="Willy TARREAU" />
<person posts="7" size="30" who="CaT" />
<person posts="7" size="29" who="Michael Bellion and Thomas Heinz" />
<person posts="7" size="28" who="David Woodhouse" />
<person posts="7" size="25" who="Michael Frank" />
<person posts="7" size="25" who="Samphan Raruenrom" />
<person posts="7" size="23" who="Oliver Neukum" />
<person posts="7" size="23" who="Svein Ove Aas" />
<person posts="7" size="22" who="&quot;Walter Harms&quot;" />
<person posts="7" size="19" who="&quot;Paul Rolland&quot;" />
<person posts="7" size="19" who="&quot;Frederick, Fabian&quot;" />
<person posts="7" size="18" who="James Simmons" />
<person posts="6" size="63" who="(misty-)" />
<person posts="6" size="39" who="&quot;Justin T. Gibbs&quot;" />
<person posts="6" size="32" who="Neil Brown" />
<person posts="6" size="27" who="Samium Gromoff" />
<person posts="6" size="24" who="Konstantin Kletschke" />
<person posts="6" size="23" who="=?iso-8859-1?Q?J=F6rn?= Engel" />
<person posts="6" size="21" who="Horst von Brand" />
<person posts="6" size="19" who="Martin Schlemmer" />
<person posts="6" size="17" who="Miles T Lane" />
<person posts="5" size="92" who="Alan Cox" />
<person posts="5" size="42" who="Mark Peloquin" />
<person posts="5" size="41" who="&quot;Zeno R.R. Davatz&quot;" />
<person posts="5" size="32" who="Jeff Mock" />
<person posts="5" size="25" who="Manuel Estrada Sainz" />
<person posts="5" size="19" who="Paul Clements" />
<person posts="5" size="19" who="Hugh Dickins" />
<person posts="5" size="18" who="Russell King" />
<person posts="5" size="18" who="Bob Miller" />
<person posts="5" size="18" who="Stephen Hemminger" />
<person posts="5" size="17" who="Linus Torvalds" />
<person posts="5" size="17" who="Hans Reiser" />
<person posts="5" size="16" who="Peter Berg Larsen" />
<person posts="5" size="16" who="Thomas Molina" />
<person posts="5" size="16" who="Daniel Egger" />
<person posts="5" size="15" who="Zwane Mwaikambo" />
<person posts="5" size="15" who="Jens Axboe" />
<person posts="5" size="15" who="Marco Ferra" />
<person posts="5" size="14" who="Pavel Machek" />
<person posts="5" size="13" who="Paul Mackerras" />
<person posts="5" size="12" who="Mike Dresser" />
<person posts="4" size="52" who="Olivier NICOLAS" />
<person posts="4" size="38" who="Daniel Ritz" />
<person posts="4" size="28" who="&quot;Randy.Dunlap&quot;" />
<person posts="4" size="28" who="&quot;Chen, Kenneth W&quot;" />
<person posts="4" size="20" who="Dmitry Torokhov" />
<person posts="4" size="18" who="Manfred Spraul" />
<person posts="4" size="18" who="David Dillow" />
<person posts="4" size="17" who="Samuel Flory" />
<person posts="4" size="17" who="Edward Tandi" />
<person posts="4" size="17" who="Kevin Corry" />
<person posts="4" size="17" who="&quot;Mr. James W. Laferriere&quot;" />
<person posts="4" size="16" who="Jan-Benedict Glaw" />
<person posts="4" size="16" who="&quot;John Stoffel&quot;" />
<person posts="4" size="16" who="&quot;Robert L. Harris&quot;" />
<person posts="4" size="16" who="martin f krafft" />
<person posts="4" size="15" who="(P)" />
<person posts="4" size="15" who="Herbert Xu" />
<person posts="4" size="15" who="dean gaudet" />
<person posts="4" size="15" who="Martin Diehl" />
<person posts="4" size="14" who="Ben Greear" />
<person posts="4" size="14" who="Luis Miguel Garcia" />
<person posts="4" size="14" who="Matti Aarnio" />
<person posts="4" size="14" who="DervishD" />
<person posts="4" size="13" who="Mika Liljeberg" />
<person posts="4" size="13" who="David Weinehall" />
<person posts="4" size="12" who="&quot;David D. Hagood&quot;" />
<person posts="4" size="11" who="Stewart Smith" />
<person posts="4" size="10" who="Anton Blanchard" />
<person posts="3" size="107" who="John Shillinglaw" />
<person posts="3" size="83" who="Bruno Cornec" />
<person posts="3" size="60" who="&quot;Szonyi Calin&quot;" />
<person posts="3" size="47" who="Brian Jackson" />
<person posts="3" size="40" who="&quot;Joseph Fannin&quot;" />
<person posts="3" size="36" who="Jan Kratochvil" />
<person posts="3" size="25" who="Srihari Vijayaraghavan" />
<person posts="3" size="25" who="Peter Cordes" />
<person posts="3" size="19" who="David Lang" />
<person posts="3" size="19" who="Hugo Mills" />
<person posts="3" size="17" who="John Salmon" />
<person posts="3" size="15" who="Roberto Orenstein" />
<person posts="3" size="15" who="Pekka Savola" />
<person posts="3" size="14" who="Nick LeRoy" />
<person posts="3" size="14" who="Fluke" />
<person posts="3" size="14" who="Jan Rychter" />
<person posts="3" size="13" who="&quot;Girish Kale&quot;" />
<person posts="3" size="13" who="Tim McGrath" />
<person posts="3" size="13" who="(vlad)" />
<person posts="3" size="13" who="&quot;Breno&quot;" />
<person posts="3" size="12" who="Joel Jaeggli" />
<person posts="3" size="12" who="Geert Uytterhoeven" />
<person posts="3" size="12" who="Pavel Machek" />
<person posts="3" size="11" who="Maneesh Soni" />
<person posts="3" size="11" who="Miles Bader" />
<person posts="3" size="10" who="Wiktor Wodecki" />
<person posts="3" size="10" who="Mikael Pettersson" />
<person posts="3" size="10" who="Nikita Danilov" />
<person posts="3" size="10" who="jw schultz" />
<person posts="3" size="10" who="Andries Brouwer" />
<person posts="3" size="10" who="&quot;Kevin P. Fleming&quot;" />
<person posts="3" size="9" who="Pascal Schmidt" />
<person posts="3" size="9" who="Markus Plail" />
<person posts="3" size="9" who="Michael Hunold" />
<person posts="3" size="9" who="Guennadi Liakhovetski" />
<person posts="3" size="9" who="Dan Aloni" />
<person posts="3" size="9" who="Andy Pfiffer" />
<person posts="3" size="9" who="Joshua Kwan" />
<person posts="3" size="9" who="Muthian Sivathanu" />
<person posts="3" size="9" who="Jan Dittmer" />
<person posts="3" size="9" who="Fredrik Tolf" />
<person posts="3" size="8" who="Jonathan Hudson" />
<person posts="3" size="8" who="(ahorn)" />
<person posts="3" size="8" who="&quot;Trever L. Adams&quot;" />
<person posts="3" size="8" who="Jan-Hinnerk Reichert" />
<person posts="3" size="8" who="Raghava Raju" />
<person posts="3" size="7" who="=?ISO-8859-1?Q?C=E9dric?=" />
<person posts="3" size="7" who="Sam Ravnborg" />
<person posts="3" size="7" who="Marek Michalkiewicz" />
<person posts="3" size="7" who="&quot;Shawn Starr&quot;" />
<person posts="3" size="7" who="Flameeyes" />
<person posts="3" size="7" who="Ivan Kokshaysky" />
<person posts="3" size="7" who="&quot;Sumit Narayan&quot;" />
<person posts="2" size="115" who="chas williams" />
<person posts="2" size="70" who="(steven.newbury1)" />
<person posts="2" size="68" who="=?iso-8859-1?q?Steven=20Newbury?=" />
<person posts="2" size="51" who="Onur Kucuk" />
<person posts="2" size="43" who="&quot;Pallipadi, Venkatesh&quot;" />
<person posts="2" size="42" who="Ned Ren" />
<person posts="2" size="38" who="=?ISO-8859-1?Q?R=E9mi_Colinet?=" />
<person posts="2" size="35" who="Olivier Fauchon" />
<person posts="2" size="34" who="Peter Chubb" />
<person posts="2" size="30" who="Dave Bentham" />
<person posts="2" size="28" who="(federicobriata)" />
<person posts="2" size="25" who="Sven Geggus" />
<person posts="2" size="24" who="Wes Janzen" />
<person posts="2" size="24" who="Brandon Low" />
<person posts="2" size="23" who="Shane Shrybman" />
<person posts="2" size="21" who="Arne Brutschy" />
<person posts="2" size="19" who="&quot;Luca T.&quot;" />
<person posts="2" size="19" who="Mitch Sukalski" />
<person posts="2" size="16" who="&quot;Rick A. Hohensee&quot;" />
<person posts="2" size="16" who="Nicolas" />
<person posts="2" size="15" who="Matthias Andree" />
<person posts="2" size="11" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="2" size="11" who="Steven Cole" />
<person posts="2" size="10" who="Andrea Arcangeli" />
<person posts="2" size="10" who="Roberto Orenstein" />
<person posts="2" size="9" who="Michael Kalus" />
<person posts="2" size="9" who="=?ISO-8859-1?Q?Cornelius_K=F6lbel?=" />
<person posts="2" size="9" who="Ray Bryant" />
<person posts="2" size="8" who="Erik Andersen" />
<person posts="2" size="8" who="Justin A" />
<person posts="2" size="8" who="James Morris" />
<person posts="2" size="8" who="(nick)" />
<person posts="2" size="8" who="&quot;Watson, Craig&quot;" />
<person posts="2" size="8" who="Pavel Roskin" />
<person posts="2" size="8" who="Marc Zyngier" />
<person posts="2" size="8" who="Paul Jakma" />
<person posts="2" size="8" who="Nuno Silva" />
<person posts="2" size="8" who=" (Linus Torvalds)" />
<person posts="2" size="7" who="Michael Poole" />
<person posts="2" size="7" who="Patrick Mansfield" />
<person posts="2" size="7" who="&quot;Thomas Spatzier&quot;" />
<person posts="2" size="7" who="&quot;Adam Flizikowski&quot;" />
<person posts="2" size="7" who="&quot;jdow&quot;" />
<person posts="2" size="7" who="David Gibson" />
<person posts="2" size="7" who="Ronghua Zhang" />
<person posts="2" size="7" who="Adam Belay" />
<person posts="2" size="7" who="&quot;adamski&quot;" />
<person posts="2" size="7" who="Ralf Hoelzer" />
<person posts="2" size="7" who="Daniel Jacobowitz" />
<person posts="2" size="7" who="&quot;Dr. David Alan Gilbert&quot;" />
<person posts="2" size="7" who="John Alvord" />
<person posts="2" size="7" who="Frank Cusack" />
<person posts="2" size="6" who="Michael Buesch" />
<person posts="2" size="6" who="Raimundo Bilbao" />
<person posts="2" size="6" who="Ricardo Galli" />
<person posts="2" size="6" who="Kurt Wall" />
<person posts="2" size="6" who="&quot;Lauro, John&quot;" />
<person posts="2" size="6" who="Ben Collins" />
<person posts="2" size="6" who="Anders Karlsson" />
<person posts="2" size="6" who="Takashi Iwai" />
<person posts="2" size="6" who="Joshua Penix" />
<person posts="2" size="6" who="Thorsten =?iso-8859-1?q?K=F6rner?=" />
<person posts="2" size="6" who="Michael Kimberlin" />
<person posts="2" size="6" who="Thijs" />
<person posts="2" size="6" who="Harald Dunkel" />
<person posts="2" size="6" who="(root)" />
<person posts="2" size="6" who="Daniel Gryniewicz" />
<person posts="2" size="6" who="Matthias Schniedermeyer" />
<person posts="2" size="6" who="CarlosRomero" />
<person posts="2" size="6" who="&quot;P. Christeas&quot;" />
<person posts="2" size="6" who="Roman Zippel" />
<person posts="2" size="6" who="&quot;Srini&quot;" />
<person posts="2" size="6" who="David Mosberger" />
<person posts="2" size="6" who="Grzegorz Jaskiewicz" />
<person posts="2" size="6" who="David Woodhouse" />
<person posts="2" size="5" who="Max Krasnyansky" />
<person posts="2" size="5" who="=?iso-8859-1?q?Etienne=20Lorrain?=" />
<person posts="2" size="5" who="Ed L Cashin" />
<person posts="2" size="5" who="Kay Sievers" />
<person posts="2" size="5" who="Dave Jones" />
<person posts="2" size="5" who="Juan Quintela" />
<person posts="2" size="5" who=" (Miquel van Smoorenburg)" />
<person posts="2" size="5" who="Dave Kleikamp" />
<person posts="2" size="5" who="Paul Larson" />
<person posts="2" size="5" who="Geller Sandor" />
<person posts="2" size="5" who="Doug McNaught" />
<person posts="2" size="5" who="Dave Hansen" />
<person posts="2" size="5" who="Robert Olsson" />
<person posts="2" size="5" who="war" />
<person posts="2" size="5" who="&quot;Lars Unin&quot;" />
<person posts="2" size="5" who="&quot;Maciej W. Rozycki&quot;" />
<person posts="2" size="5" who="Olivier Galibert" />
<person posts="2" size="5" who="Magnus Solvang" />
<person posts="2" size="4" who="Linus Torvalds" />
<person posts="2" size="4" who="&quot;G. C.&quot;" />
<person posts="1" size="44" who="Arne Koewing" />
<person posts="1" size="38" who="kernel" />
<person posts="1" size="33" who="aiqbal" />
<person posts="1" size="26" who="Chad Talbott" />
<person posts="1" size="25" who="Brent Baccala" />
<person posts="1" size="23" who="Pasi Savolainen" />
<person posts="1" size="19" who="Jeff Mock" />
<person posts="1" size="17" who="&quot;Sam (Uli) Freed&quot;" />
<person posts="1" size="17" who="&quot;Larry Sendlosky&quot;" />
<person posts="1" size="16" who="Marcelo Penna Guerra" />
<person posts="1" size="14" who="Ryan White" />
<person posts="1" size="14" who="Jose Luis Domingo Lopez" />
<person posts="1" size="13" who="&quot;Ron Cohen&quot;" />
<person posts="1" size="13" who="Kronos" />
<person posts="1" size="11" who="Olaf Wendisch" />
<person posts="1" size="11" who="Dave Peterson" />
<person posts="1" size="10" who="Kianusch Sayah Karadji" />
<person posts="1" size="10" who="&quot;Clayton Weaver&quot;" />
<person posts="1" size="8" who="Artur Jasowicz" />
<person posts="1" size="7" who="Ville Herva" />
<person posts="1" size="7" who="Lukasz Trabinski" />
<person posts="1" size="7" who="=?iso-8859-1?Q?S=F6nke_Ruempler?=" />
<person posts="1" size="6" who="(summer)" />
<person posts="1" size="6" who="Tom Lord" />
<person posts="1" size="6" who="Alex Belits" />
<person posts="1" size="6" who="Johannes Stezenbach" />
<person posts="1" size="5" who="(ffrederick)" />
<person posts="1" size="5" who="&quot;Gerhard Schaden&quot;" />
<person posts="1" size="5" who=" (marcelo)" />
<person posts="1" size="5" who="Duncan Sands" />
<person posts="1" size="5" who="Bryan Whitehead" />
<person posts="1" size="5" who="&quot;Riley Williams&quot;" />
<person posts="1" size="5" who="Herbert Poetzl" />
<person posts="1" size="5" who="Christian Kujau" />
<person posts="1" size="5" who="Catalin BOIE" />
<person posts="1" size="4" who="Pete Zaitcev" />
<person posts="1" size="4" who="Keith Owens" />
<person posts="1" size="4" who="Alessandro Suardi" />
<person posts="1" size="4" who="Andreas Jellinghaus" />
<person posts="1" size="4" who="Hal Duston" />
<person posts="1" size="4" who="Jean Delvare" />
<person posts="1" size="4" who="&quot;Andreas U. Trottmann&quot;" />
<person posts="1" size="4" who="&quot;Brown, Len&quot;" />
<person posts="1" size="4" who="Hiroshi Inoue" />
<person posts="1" size="4" who="Arkadiusz Miskiewicz" />
<person posts="1" size="4" who="Alex Williamson" />
<person posts="1" size="4" who="Attila Kinali" />
<person posts="1" size="4" who="Kurt Roeckx" />
<person posts="1" size="4" who=" (Mel Gorman)" />
<person posts="1" size="4" who="Richard Curnow" />
<person posts="1" size="4" who="Manuel Estrada Sainz" />
<person posts="1" size="4" who="Zed Pobre" />
<person posts="1" size="4" who="(cb-lkml)" />
<person posts="1" size="4" who="Kelledin" />
<person posts="1" size="4" who="Eli Carter" />
<person posts="1" size="4" who="Greg Louis" />
<person posts="1" size="4" who="Arnd Bergmann" />
<person posts="1" size="4" who="Bob Gill" />
<person posts="1" size="4" who="Teemu Tervo" />
<person posts="1" size="4" who=" (Simon Fowler)" />
<person posts="1" size="4" who="Roger Larsson" />
<person posts="1" size="4" who="Jan Kara" />
<person posts="1" size="4" who="=?ISO-8859-1?Q?Xu=E2n_Baldauf?=" />
<person posts="1" size="4" who="Arvind Kandhare" />
<person posts="1" size="3" who="Krzysztof Halasa" />
<person posts="1" size="3" who="&quot;Feldman, Scott&quot;" />
<person posts="1" size="3" who="Ernie Petrides" />
<person posts="1" size="3" who="Ken Witherow" />
<person posts="1" size="3" who="Lawrence Walton" />
<person posts="1" size="3" who="(kwijibo)" />
<person posts="1" size="3" who="Vid Strpic" />
<person posts="1" size="3" who="Jan Rekorajski" />
<person posts="1" size="3" who="Jamal Hadi" />
<person posts="1" size="3" who="&quot;Jan de Groot&quot;" />
<person posts="1" size="3" who="&quot;Mudama, Eric&quot;" />
<person posts="1" size="3" who="Nicolas Mailhot" />
<person posts="1" size="3" who="Richard Braakman" />
<person posts="1" size="3" who="Michael Still" />
<person posts="1" size="3" who="Roberto Nibali" />
<person posts="1" size="3" who="&quot;Grover, Andrew&quot;" />
<person posts="1" size="3" who="Dave McCracken" />
<person posts="1" size="3" who="Miles Roper" />
<person posts="1" size="3" who="Jean Tourrilhes" />
<person posts="1" size="3" who="(dmeyer)" />
<person posts="1" size="3" who="Johan Braennlund" />
<person posts="1" size="3" who="Bruce Ferrell" />
<person posts="1" size="3" who="Ben Pfaff" />
<person posts="1" size="3" who="&quot;ismail (cartman) donmez&quot;" />
<person posts="1" size="3" who="Abramo Bagnara" />
<person posts="1" size="3" who="Jeff Sipek" />
<person posts="1" size="3" who="Justin Pryzby" />
<person posts="1" size="3" who="&quot;PATRICK LOUCO&quot;" />
<person posts="1" size="3" who="&quot;Stephen C. Tweedie&quot;" />
<person posts="1" size="3" who="Joakim Tjernlund" />
<person posts="1" size="3" who="&quot;Steve Dobbelstein&quot;" />
<person posts="1" size="3" who="Stan Bubrouski" />
<person posts="1" size="3" who="=?UTF-8?B?Q29ybmVsaXVzIEvDtmxiZWw=?=" />
<person posts="1" size="3" who=" (Kees Bakker)" />
<person posts="1" size="3" who="David Blomber" />
<person posts="1" size="3" who="Jan Harkes" />
<person posts="1" size="3" who="AlberT" />
<person posts="1" size="3" who="Jan De Luyck" />
<person posts="1" size="3" who="&quot;J.A. Magallon&quot;" />
<person posts="1" size="3" who="Tommi Virtanen" />
<person posts="1" size="3" who="David Brownell" />
<person posts="1" size="3" who="&quot;James H. Cloos Jr.&quot;" />
<person posts="1" size="3" who="Disconnect" />
<person posts="1" size="3" who="Matthew Hughes" />
<person posts="1" size="3" who="Corey Minyard" />
<person posts="1" size="3" who="Lionel Elie Mamane" />
<person posts="1" size="3" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="1" size="3" who="&quot;Bart SCHELSTRAETE&quot;" />
<person posts="1" size="3" who="Till Immanuel Patzschke" />
<person posts="1" size="3" who="Matthew Harrell" />
<person posts="1" size="3" who="Keith Owens" />
<person posts="1" size="3" who="&quot;Guillaume Boissiere&quot;" />
<person posts="1" size="3" who=" (Miklos Szeredi)" />
<person posts="1" size="3" who="Tom Diehl" />
<person posts="1" size="3" who="Bernd Petrovitsch" />
<person posts="1" size="3" who="(vanstadentenbrink)" />
<person posts="1" size="3" who="Grant Miner" />
<person posts="1" size="3" who="(linas)" />
<person posts="1" size="3" who="Piet Delaney" />
<person posts="1" size="3" who="Andrew Ryan" />
<person posts="1" size="3" who="Disconnect" />
<person posts="1" size="3" who="Robert Schwebel" />
<person posts="1" size="3" who="Nivedita Singhvi" />
<person posts="1" size="3" who="Stefan Smietanowski" />
<person posts="1" size="3" who="Denis Vlasenko" />
<person posts="1" size="3" who="Mark Mielke" />
<person posts="1" size="3" who="Rob Landley" />
<person posts="1" size="3" who="Mark Watts" />
<person posts="1" size="3" who="Joe Korty" />
<person posts="1" size="3" who="(yiding_wang)" />
<person posts="1" size="3" who="Ed Sweetman" />
<person posts="1" size="3" who="Tuukka Toivonen" />
<person posts="1" size="3" who="&quot;Heater, Daniel (IndSys, GEFanuc, VMIC)&quot;" />
<person posts="1" size="3" who="(brian)" />
<person posts="1" size="3" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="1" size="3" who="&quot;Peter Wong&quot;" />
<person posts="1" size="3" who="GOTO Masanori" />
<person posts="1" size="3" who="Dominik Kubla" />
<person posts="1" size="3" who="Folkert van Heusden" />
<person posts="1" size="3" who="&quot;M.L.PrasannaK.R.&quot;" />
<person posts="1" size="3" who="Scott James Remnant" />
<person posts="1" size="2" who="&quot;Wiran, Francis&quot;" />
<person posts="1" size="2" who="Mike Fedyk" />
<person posts="1" size="2" who="Nicolas Vollmar" />
<person posts="1" size="2" who="Greg Ungerer" />
<person posts="1" size="2" who="Andy Isaacson" />
<person posts="1" size="2" who="&quot;Peter J. Braam&quot;" />
<person posts="1" size="2" who="&quot;R.C&quot;" />
<person posts="1" size="2" who="Rick Franchuk" />
<person posts="1" size="2" who="Frank Gevaerts" />
<person posts="1" size="2" who="jjs" />
<person posts="1" size="2" who="Roland Mas" />
<person posts="1" size="2" who="pat erley" />
<person posts="1" size="2" who="Shawn Starr" />
<person posts="1" size="2" who="Peter Enderborg" />
<person posts="1" size="2" who="Dan Kegel" />
<person posts="1" size="2" who="Tomas Szepe" />
<person posts="1" size="2" who="&quot;Matt Reuther&quot;" />
<person posts="1" size="2" who="Andre Tomt" />
<person posts="1" size="2" who="Joachim B Haga" />
<person posts="1" size="2" who="Xavier Bestel" />
<person posts="1" size="2" who="Bernd Schubert" />
<person posts="1" size="2" who="Jonathan Lundell" />
<person posts="1" size="2" who="bert hubert" />
<person posts="1" size="2" who="Rudo Thomas" />
<person posts="1" size="2" who="Edward King" />
<person posts="1" size="2" who="ced2" />
<person posts="1" size="2" who="Thomas Heinz" />
<person posts="1" size="2" who="&quot;Hemmann, Volker Armin&quot;" />
<person posts="1" size="2" who="&quot;Peter C. Ndikuwera&quot;" />
<person posts="1" size="2" who="Andreas Tscharner" />
<person posts="1" size="2" who="Stephen Wille Padnos" />
<person posts="1" size="2" who="Ralf Baechle" />
<person posts="1" size="2" who="Xose Vazquez Perez" />
<person posts="1" size="2" who="Pekka Pietikainen" />
<person posts="1" size="2" who="Jan Hudec" />
<person posts="1" size="2" who="Ulrich Weigand" />
<person posts="1" size="2" who="Faye Pearson" />
<person posts="1" size="2" who="Kouichi ONO" />
<person posts="1" size="2" who="Gerald Stuhrberg" />
<person posts="1" size="2" who="Bernd Eckenfels" />
<person posts="1" size="2" who="Bernd Eckenfels" />
<person posts="1" size="2" who="Paladin" />
<person posts="1" size="2" who="John M Collins" />
<person posts="1" size="2" who="Stephanie Glass" />
<person posts="1" size="2" who="John Lapeyre" />
<person posts="1" size="2" who="&quot;Mikael Starvik&quot;" />
<person posts="1" size="2" who="Jonathan McDowell" />
<person posts="1" size="2" who="Vinesh Christopher" />
<person posts="1" size="2" who="Jan de Groot" />
<person posts="1" size="2" who="John Navil Joseph" />
<person posts="1" size="2" who="(uaca)" />
<person posts="1" size="2" who=" (Danny ter Haar)" />
<person posts="1" size="2" who="gilson r" />
<person posts="1" size="2" who="&quot;T. Weyergraf&quot;" />
<person posts="1" size="2" who="Holger Freyther" />
<person posts="1" size="2" who="Tom Vier" />
<person posts="1" size="2" who="Robin Rosenberg" />
<person posts="1" size="2" who="Florian Weimer" />
<person posts="1" size="2" who="Bartlomiej Zolnierkiewicz" />
<person posts="1" size="2" who="Luigi Rosa" />
<person posts="1" size="2" who="peter enderborg" />
<person posts="1" size="2" who="Fabrice Bellard" />
<person posts="1" size="2" who="Justin Rush" />
<person posts="1" size="2" who="Richard Henderson" />
<person posts="1" size="2" who="Dr William Bland" />
<person posts="1" size="2" who="Amazing Pranks" />
<person posts="1" size="2" who="Will Cohen" />
<person posts="1" size="2" who="walt" />
<person posts="1" size="2" who="Jon Masters" />
<person posts="1" size="2" who="Hakan Lennestal" />
<person posts="1" size="2" who="David =?iso-8859-15?Q?G=F3mez?=" />
<person posts="1" size="2" who="Diego Zuccato" />
<person posts="1" size="2" who="David Mansfield" />
<person posts="1" size="2" who="Bruce Harada" />
<person posts="1" size="2" who="Pau Aliagas" />
<person posts="1" size="2" who="&quot;Downing, Thomas&quot;" />
<person posts="1" size="2" who="Orion Poplawski" />
<person posts="1" size="2" who="Kai Germaschewski" />
<person posts="1" size="2" who=" &lt;burnt_2@ziplip.com&gt;" />
<person posts="1" size="2" who="Fridtjof Busse" />
<person posts="1" size="2" who="Bill Huey (Hui)" />
<person posts="1" size="2" who="Adarsh Daheriya" />
<person posts="1" size="2" who="Torsten Foertsch" />
<person posts="1" size="2" who="&quot;Edwin Jones&quot;" />
<person posts="1" size="2" who="Marc Giger" />
<person posts="1" size="2" who="(interscan)" />
<person posts="1" size="2" who="Mark Norman" />
<person posts="1" size="2" who="Flameeyes" />
<person posts="1" size="2" who="(pavel)" />
<person posts="1" size="2" who="tu guangxiu" />
<person posts="1" size="2" who="Ricky Beam" />
<person posts="1" size="1" who="(Andries.Brouwer)" />
<person posts="1" size="1" who="Ryan Dooley" />
<person posts="1" size="1" who="(war)" />

</stats>

<section
  title="Synaptics TouchPad Driver"
  subject="[PATCH] Synaptics TouchPad driver for 2.5.70"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.1/0843.html"
  posts="47"
  startdate="10 Jun 2003 14:52:06 -0800"
  enddate="26 Jun 2003 12:01:09 -0800"
>

<mention>Andrew Morton</mention>

<p>Joseph Fannin said:</p>

<quote who="Joseph Fannin">

<p>Here is a driver for the Synaptics TouchPad for 2.5.70. It is largely
based on the XFree86 driver. This driver operates the touchpad in
absolute mode and emulates a three button mouse with two scroll
wheels. Features include:</p>

<p>

<ul>

<li>Multi finger tapping.</li>

<li>Vertical and horizontal scrolling.</li>

<li>Edge scrolling during drag operations.</li>

<li>Palm detection.</li>

<li>Corner tapping.</li>

</ul>

</p>

<p>The only major missing feature is runtime configuration of driver
parameters. What is the best way to implement that? I was thinking of
sending EV_MSC events to the driver using the /dev/input/event*
interface and define my own codes for the different driver parameters.</p>

</quote>

<p>In a later post, he added, <quote who="Joseph Fannin">Please note that I
did not write this driver -- Peter Osterlund &lt;petero2@telia.com&gt; did.
I meant only to forward this here, since the original sender seems to have
problems getting through to the list.</quote></p>

<p>Andrew Morton really liked the patch, and gave some small technical
suggestions. Vojtech Pavlik also said to Joseph (or whoever was the right
person):</p>

<quote who="Vojtech Pavlik">

<p>you may want to put these nice features into the mousedev.c driver for
now, so that the touchpad works with standard XFree without the event based
driver.</p>

<p>Also, I'm attaching Jens Taprogge synaptics work, which you may want to
integrate ...</p>

<p>To Jens: Sorry for me not using your driver. It's very good, too.
Hopefully you'll be able to work together with Peter to bring the best out
of the two to the kernel.</p>

</quote>

<p>Peter Osterlund replied that there was no need
to include anything in the mousedev.c driver, as <quote
who="Peter Osterlund">There is now a working XFree86 driver here: <a
href="http://w1.894.telia.com/~u89404340/touchpad/index.html">http://w1.894.telia.com/~u89404340/touchpad/index.html</a>.</quote>
He posted an incremental patch to get it fully working. Vojtech was very
happy with this, and they went over some implementation details.</p>

</section>

<section
  title="Some Memory Management Enhancements Planned For 2.7"
  subject="[RFC] My research agenda for 2.7"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/0226.html"
  posts="30"
  startdate="24 Jun 2003 15:11:01 -0800"
  enddate="02 Jul 2003 18:20:47 -0800"
>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>

<p>Daniel Phillips said:</p>

<quote who="Daniel Phillips">

<p>This note describes several items on my research agenda for the 2.7 kernel
development timeframe.  First a little history.</p>

<p>In 2.3/2.4, the dominant change to Linux's memory management subsystem was the
unification of the page and buffer cache, in the sense that most double
storage was eliminated and copying from the buffer to page cache was no
longer required on each file write.  In 2.5, the dominant change was the
addition of reverse page mapping.  I participated actively in the latter,
being motivated by the belief that with reverse mapping in place, a number of
significant evolutionary improvements to the memory management subsystem
would become possible, or indeed, easy.  Here, I list the three main projects   
I hope to complete in the 2.7 timeframe, for comment:</p>

<p>

<ol>

<li>Active memory defragmentation</li>
<li>Variable sized page cache objects</li>
<li>Physical block cache</li>

</ol>

</p>

<p>These are ordered from least to most controversial.  I believe all three will
prove to be worthwhile improvements to the Linux's memory management
subsystem, and hopefully, I support that belief adequately in the text below.
Of course, working code and benchmarks are the final arbiter of goodness, and
will appear in due course.</p>

<p>

<ol>

<li>

<p>Active memory defragmentation</p>

<p>I doubt anyone will deny that this is desirable.  Active defragmentation will
eliminate higher order allocation failures for non-atomic allocations, and I
hope, generally improve the efficiency and transparency of the kernel memory
allocator.</p>

<p>The purpose of active memory defragmentation is to catch corner cases, rather
than to be a complete replacement for the current allocation system.  The
most obvious and problematic corner case is the one where all physical memory
units of a given order are used up, in which case the allocator only has two
options: wait or fail.  Active defragmentation introduces a third option,
which should eliminate nearly all instances of the former and all of the
latter, except when physical memory is genuinely exhausted for some reason
(i.e., bona fide OOM).</p>

<p>The idea is to run a defragmentation daemon that kicks in whenever
availability of some allocation order falls below a threshold.  The defrag
daemon first scans memory for easily movable pages that can form new, free
units of the needed order.  If this pass fails, the daemon could go as far as
quiescing the system (a technique already used in RCU locking) and move some
not-so-easy-to-move pages.</p>

<p>In order to move a page of physical memory, we need to know what is pointing
at it.  This is often easy, for example in the common case when the only
pointer to a page is held by the page cache and the page is not under IO.  We
only need to hold the page cache lock and the page table lock to move such a
page.</p>

<p>Moving anonymous memory is pretty easy as well, with the help of reverse page
mapping.  We need to hold the appropriate locks, then walk a page's reverse
map list, updating pointers to a new copy of the page.  (If we encounter
nasty corner cases here, we could possibly fall back to a quiescing
strategy.)</p>

<p>Some difficult situations may be dealt with by creating a new internal kernel
API that provides a way of notifying some subsystem that page ownership
information is wanted, or that certain pages should be reallocated according
to the wishes of the defragmentation daemon.  Obviously, there is plenty of
opportunity for over-engineering in this area, but equally, there is
opportunity for clever design work that derives much benefit while avoiding
most of the potential complexity.</p>

<p>Physical memory defragmentation is an enabler for variable-sized pages, next
on my list.</p>

</li>

<li>

<p>Variable sized page objects</p>

<p>This item will no doubt seem as controversial as the first is uncontroversial.
It may help to know that my prototype code, done under 2.4, indicates that
the complete system actually gets smaller with this feature, and possibly
slightly faster as well.  Essentially, if we have variable sized pages then
we can eliminate the messy buffer lists that are (sometimes) attached to
pages, and indeed, eliminate buffers themselves.  Traditional buffer IO and
data operations can be trivially reexpressed in terms of pages, provided page
objects can take on the same range of sizes as buffers currently do.  The
block IO library also gets shorter, since much looping and state handling
becomes redundant.</p>

<p>For my purpose, "variable sized" means that each struct page object can
reference a data frame of any binary size, including smaller than a physical
page.  To keep the implementation sane, all pages of a given address_space
are the same size.  Also, page objects smaller than a physical page are only
allowed for file-backed memory, not anonymous memory.  Rules for large pages
remain to be determined, however since there is already considerable work
being done in this area, I will not dwell on it further.</p>

<p>The most interesting aspect of variable sized pages is how subpages are
handled.  This could get messy, but fortunately a simple approach is possible.
Subpage page structs do not need to reside in the mem_map; instead they can
be dynamically allocated from slab cache.  The extra bookkeeping needed inside
the page cache operations to keep track of this is not much, and particularly,
does not add more than a sub-cycle penalty to the case where subpages are
not used (even so, I expect this penalty to be more than made up by shorter,
straighter paths in the block IO library).</p>

<p>One benefit of subpages that may not be immediately obvious is the opportunity
to save some space in the mem_map array: with subpages it becomes quite
attractive to use a larger PAGE_CACHE_SIZE, i.e., a filesystem that must use
a small block size for some reason won't cause a lot of additional internal
fragmentation.</p>

<p>But to my mind, the biggest benefit to subpages is the opportunity to
eliminate some redundant state information that is currently shared between
pages and buffer_heads.  To be sure, I've been less than successful to date
at communicating the importance of this simplification, but in this case, the
code should be the proof.</p>

<p>Variable-size pages will deliver immediate benefits to filesystems such as
Ext2 and Ext3, in the form of larger volume size limits and more efficient
transfers.  As a side effect, we will probably need to implement tail merging
in Ext2/3 to control the resulting increased internal fragmentation, but that
is another story, for another mailing list.</p>

<p>Variable size pages should fit together nicely with the current work being
done on large (2 and 4 MB) page handling, and especially, it will be nice for
architectures like MIPS that can optimize variable sized pages in
hardware.</p>

<p>Some bullet points:</p>

<p>

<ul>

<li>Rationalize state info: state represented only in struct page, not struct
page + list of struct buffer_head</li>

<li>1K filesystems aren't a special case any more</li>

<li>More efficient IO path, esp for 1K fs</li>

<li>Net removal of code by simplifying the vfs block IO library (new code
is added to page cache access functions).</li>

<li>Makes the page locking unit match the filesystem locking unit for most
filesystems</li>

<li>Generalizes to superpages</li>

<li>Performance.  It's a little more efficient.  Eliminates one class of
objects, allowing us to concentrate more on the remaining class.</li>

<li>Large file blocks (multiple physical pages)</li>

<li>Eliminate buffer heads.  Final use of buffer heads is as data handle for
filesystem metadata (IO function of buffer heads will be taken over by BIO).
Basically, we can just substitute struct page for struct buffer_head.  Can make
this transition gradual, after establishing one buffer head per page.</li>

<li>Memory pressure now acts on only one class of object, making balancing
more even.</li>

</ul>

</p>

<p>Relies on:</p>

<p>

<ul>

<li>Active defragmentation</li>

</ul>

</p>

<p>How it works:</p>

<p>

<ul>

<li>Page size is represented on a per-address space basis with a shift count.
In practice, the smallest is 9 (512 byte sector), could imagine 7 (each
ext2 inode is separate page) or 8 (actual hardsect size on some drives).
12 will be the most common size.  13 gives 8K blocksize for, e.g., alpha.
21 and 22 give 2M and 4M page size, matching hardware capabilities of
x86, and other sizes are possible on machines like MIPS, where page size
is software controllable</li>

<li>Implemented only for file-backed memory (page cache)</li>

<li>Special case these ops in page cache access layer instead of having the
messy code in the block IO library</li>

<li>Subpage struct pages are dynamically allocated.  But buffer_heads are gone
so this is a lateral change.</li>

</ul>

</p>

</li>

<li>

<p>Physical block cache</p>

<p>This item is not strictly concerned with memory management, but as it impacts
the same subsystems, I have included it in this note.</p>

<p>In brief, a physical block cache lets the vfs efficiently answer the question:
"given a physical data block, tell me if and where it is mapped into any
address_space on the same volume".  This need not be a big change to the
existing strategy: the normal lookup and other operations remain available.
However, the vfs gets the additional responsibility of maintaining a special
per-volume address_space coherently with the multiple file-backed
address_spaces on the volume.</p>

<p>In fact, we already have such per-volume address spaces, and there really
isn't that much work to do here, in order to test the effects of making the
two types of address_space coherent with one another.  One way of looking at
this is, full coherence in this area would complete the work of unifying the
page and buffer caches, started some years ago.</p>

<p>Having discussed this idea with a few developers, I've been warned that
difficult issues will arise with some of the more complex filesystems, such
as Ext3.  Fortunately, a prototype physical block cache can be adequately
tested with Ext2 alone, which doesn't have a lot of issues.  If this proves
to deliver the performance benefits I expect, further work would be justified
to extend the functionality to other filesystems.</p>

<p>So what are the anticpated performance benefits?  I've identified two so
far:</p>

<p>

<ol>

<li>Physical readahead.  That is, we can load a block into the page cache
    before we know which address_space, if any, it actually belongs to.
    Later, when we do know, additionally entering it into its proper
    address space is efficient.  This will help with the traversal of
    many small files case, which Linux currently handles poorly.</li>

<li>Raid 5.  The biggest performance problem with Raid 5 stems from the
    fact that for small, isolated writes it is forced to read a few blocks
    to compute every new parity block, and in the process suffers large
    amounts of rotational latency.  A big cache helps with this a great,
    however, the size of cache we could expect to find in, e.g., a high
    end scsi drive, is not adequate to eliminate the bad effects, and in
    any event, bus saturation becomes a very real problem.  We could also
    have a separate, physical block cache, but this wastes memory and
    causes unnecessary copying.  Being able to implement the big cache
    directly in the page cache is thus a big advantage in terms of memory
    savings, and reduced data copying.  There is also a latency advantage,</li>

</ol>

</p>

</li>

</ol>

</p>

<p>Summary</p>

<p>Please note that all of the above is unofficial, experimental work.  However,
I do believe that all three of these items have the potential to deliver
substantial improvements in terms of reliability, efficiency and obvious
correctness.</p>

<p>Thankyou for your indulgence in reading all the way down to here.  The
timeframe for this work is:</p>

<p>

<ul>

<li>Starts as soon as 2.5 closes</li>

<li>Prototypes to be posted shortly thereafter</li>

</ul>

</p>

</quote>

</section>

<section
  title="nf-hipac Packet Filtering"
  subject="[ANNOUNCE] nf-hipac v0.8 released"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/0491.html"
  posts="17"
  startdate="25 Jun 2003 12:48:44 -0800"
  enddate="02 Jul 2003 08:57:32 -0800"
>
<topic>BSD: OpenBSD</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>SMP</topic>

<mention>Folkert van Heusden</mention>

<p>Michael Bellion and Thomas Heinz announced:</p>

<quote who="Michael Bellion">

<p>We have released a new version of nf-hipac. We rewrote most of the code
and added a bunch of new features. The main enhancements are user-defined
chains, generic support for iptables targets and matches and 64 bit atomic
counters.</p>

<p>For all of you who don't know nf-hipac yet, here is a short overview:</p>

<p>nf-hipac is a drop-in replacement for the iptables packet filtering
module.  It implements a novel framework for packet classification which
uses an advanced algorithm to reduce the number of memory lookups per packet.
The module is ideal for environments where large rulesets and/or high bandwidth
networks are involved. Its userspace tool, which is also called 'nf-hipac',
is designed to be as compatible as possible to 'iptables -t filter'.</p>

<p>The official project web page is:    <a href="http://www.hipac.org">http://www.hipac.org</a><br />
The releases can be downloaded from:    <a href="http://sourceforge.net/projects/nf-hipac">http://sourceforge.net/projects/nf-hipac</a></p>

<p>Features:</p>

<p>

<ul>

<li>optimized for high performance packet classification with moderate
       memory usage</li>
<li>completely dynamic: data structure isn't rebuild from scratch when
       inserting or deleting rules, so fast updates are possible</li>
<li>very short locking times during rule updates: packet matching is
       not blocked</li>
<li>support for 64 bit architectures</li>
<li>optimized kernel-user protocol (netlink): improved rule listing
       speed</li>
<li>libnfhipac: netlink library for kernel-user communication</li>

<li>

<p>native match support for:</p>

<p>

<ul>

<li>source/destination ip</li>

<li>in/out interface</li>

<li>protocol (udp, tcp, icmp)</li>

<li>fragments</li>

<li>source/destination ports (udp, tcp)  </li>

<li>tcp flags</li>

<li>icmp type</li>

<li>connection state</li>

<li>ttl</li>

</ul>

</p>

</li>

<li>match negation (!)</li>
<li>iptables compatibility: syntax and semantics of the userspace tool
       are very similar to iptables</li>
<li>coexistence of nf-hipac and iptables: both facilities can be used
       at the same time</li>
<li>generic support for iptables targets and matches (binary
       compatibility)</li>
<li>integration into the netfilter connection tracking facility</li>
<li>user-defined chains support</li>
<li>64 bit atomic counters</li>
<li>kernel module autoloading</li>
<li>

<p>/proc/net/nf-hipac/info:</p>

<p>

<ul>

<li>dynamically limit the maximum memory usage</li>

<li>change invokation order of nf-hipac and iptables</li>

</ul>

</p>

</li>

<li>extended statistics via /proc/net/nf-hipac/statistics/*</li>

</ul>

</p>

<p>We are currently working on extending the hipac algorithm to
do classification with several stages. The hipac algorithm will then be
capable of combining several classification problems in one data structure,
e.g. it will be possible to solve routing and firewalling with one hipac
lookup. The idea is to shorten the packet forwarding path by combining
fib_lookup and iptables filter lookup into one hipac query. To further
improve the performance in this scenario the upcoming flow cache could be
used to cache recent hipac results.</p>

</quote>

<p>Folkert van Heusden was very happy to see this, and asked if there were
any chance of a 2.5 port. Thomas replied, <quote who="Thomas Heinz">It should
not be that hard to port nf-hipac to 2.5 since most of the code (the whole
hipac core) is not "kernel specific".  But since we are busy planning the
next hipac extension we don't have the time to do this ourselves.  Maybe some
volunteer is willing to implement the port.</quote></p>

<p>Elsewhere, Daniel Egger asked, <quote who="Daniel Egger">Is this library
actually usable for applications which need to control the firewall or is
it equally braindead to libiptables?</quote> And Michael said:</p>

<quote who="Michael Bellion">

<p>The library _is_ intended to be used by other applications than the nf-hipac
userspace tool, too. It hides the netlink communication from the user who
is only required to construct the command data structure sent to the kernel
which contains at most one single nf-hipac rule. This is very straightforward
and the kernel returns detailed errors if the packet is misconstructed.</p>

<p>Taking a look at nfhp_com.h and evt. nf-hipac.c gives you some clue on
how to build valid command packets.</p>

</quote>

<p>Elsewhere, Pekka Savola asked for some performance statistics, and Michael
replied:</p>

<quote who="Michael Bellion">

<p>We have done some performance tests with an older
release of nf-hipac.  The results are available on <a
href="http://www.hipac.org/">http://www.hipac.org/</a></p>

<p>Apart from that Roberto Nibali did some preliminary testing
on nf-hipac.  You can find his posting to linux-kernel here: <a
href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103358029605079&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=103358029605079&amp;w=2</a></p>

<p>Since there are currently no performance tests available for the new
release we want to encourage people interested in firewall performance
evaluation to include nf-hipac in their tests.</p>

</quote>

<p>Pekka asked, <quote who="Pekka Savola">One obvious thing that's missing in
your performance and Roberto's figures is what *exactly* are the non-matching
rules.  Ie. do they only match IP address, a TCP port, or what? (TCP port
matching is about a degree of complexity more expensive with iptables,
I recall.)</quote> Roberto Nibali replied:</p>

<quote who="Roberto Nibali">

<p>When I did the tests I used a variant of following simple script (<a
href="http://www.drugphish.ch/~ratz/genrules.sh">http://www.drugphish.ch/~ratz/genrules.sh</a>).</p>

<p>There you can see that I only used a src port
range. In an original paper I wrote for my company (announced here: <a
href="http://www.ussg.iu.edu/hypermail/linux/kernel/0203.3/0847.html">http://www.ussg.iu.edu/hypermail/linux/kernel/0203.3/0847.html</a>)
I did create rules that only matched IP addresses, the results were bad
enough ;).</p>

<p>Meanwhile I should revise the paper as quite a few things have been
addressed since then: For example the performance issues with OpenBSD packet
filtering have mostly been squashed. I didn't continue on that matter because
I fell severely ill last autumn and first had to take care of that.</p>

</quote>

<p>Close by, Pekka said:</p>

<quote who="Pekka Savola">

<p>We've also conducted some tests with
bridging firewall functionality, and we're very pleased with nf-hipac's
performance!  Results below.</p>

<p>In the measurements, tests were run through a bridging Linux firewall,
with a netperf UDP stream of 1450 byte packets (launched from a different
computer connected with gigabit ethernet), with a varying amount of
filtering rules checks for each packet.</p>

<p>I don't have the specs of the Linux PC hardware handy, but I recall
they're *very* highend dual-P4's, like 2.4Ghz, very fast PCI bus, etc.
Shouldn't be a factor here.</p>

<pre>1. Filtering based on source address only, for example:
   $fwcmd -A $MAIN -p udp -s 10.0.0.1   -j DROP
   ...
   $fwcmd -A $MAIN -p udp -s 10.0.3.255 -j DROP
   $fwcmd -A $MAIN -p udp               -j ACCEPT

  Results:
  rules     | plain NF               | NF-HIPAC
            | sent       | got thru  | sent       | got thru  |
      (n.o) |   (Mbit/s) |  (Mbit/s) |   (Mbit/s) |  (Mbit/s) |
  -------------------------------------------------------------
          0 |     956,00 |    953,24 |     956,00 |    953,24 |
        512 |     956,00 |    800,68 |     956,46 |    952,81 |
       1024 |     956,00 |    472,78 |     956,46 |    952,81 |
       2048 |     955,99 |    170,52 |     956,46 |    952,86 |
       3072 |     956,00 |     51,97 |     956,46 |    952,85 |

2. Filtering based on UDP protocol's source port, for example:
   $fwcmd -A $MAIN -p udp --source-port 1    -j DROP
   ...
   $fwcmd -A $MAIN -p udp --source-port 1024 -j DROP
   $fwcmd -A $MAIN -p udp                    -j ACCEPT

  Results:
  rules     | plain NF               | NF-HIPAC
            | sent       | got thru  | sent       | got thru  |
      (n.o) |   (Mbit/s) |  (Mbit/s) |   (Mbit/s) |  (Mbit/s) |
  -------------------------------------------------------------
          0 |     955,37 |    954,33 |     956,46 |    952,85 |
        512 |     980,68 |    261,41 |     956,46 |    951,92 |
       1024 |        N/A |       N/A |     956,47 |    952,86 |
       2048 |        N/A |       N/A |     956,46 |    952,85 |
       3072 |        N/A |       N/A |     956,46 |    952,85 |</pre>

<p>N/A = Netfilter bridging can't handle this at all, no traffic can pass the
bridge.</p>

<p>So, plain Netfilter can tolerate about a couple of hundred rules
checking for addresses and/or ports on a gigabit line.</p>

<p>With HIPAC Netfilter, packet loss is very low, less than 0.5%, even with the
maximum number (of tested) rules, the same amount as without filtering at
all.</p>

</quote>

<p>Michael said, <quote who="Michael Bellion">Great, thanks a lot. Your
tests are very interesting for us as we haven't done any gigabit or SMP
tests yet.</quote> He and Pekka went over more ideas for benchmarks to run.</p>

</section>

<section
  title="Explanations Of Various Kernel Trees"
  subject="Is their an explanation of various kernel versions/brances/patches/? (-mm, -ck, ..)"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/0520.html"
  posts="6"
  startdate="25 Jun 2003 14:02:15 -0800"
  enddate="28 Jun 2003 02:38:11 -0800"
>
<topic>Clustering</topic>
<topic>Forward Port</topic>
<topic>Virtual Memory</topic>

<mention>Hugh Dickins</mention>
<mention>Stephen Hemminger</mention>
<mention>Con Kolivas</mention>
<mention>Rik van Riel</mention>
<mention>Alan Cox</mention>
<mention>Andrea Arcangeli</mention>
<mention>Chris Wright</mention>
<mention>Dave Jones</mention>
<mention>Andrew Morton</mention>

<p>Orion Poplawski noticed that a lot of people had their own kernel trees,
ranging from Alan Cox's -ac tree, to Andrew Morton's -mm tree. Orion asked
if there was any information about what all these different trees were for.</p>

<p>Peter C. Ndikuwera said, <quote who="Peter C.  Ndikuwera"><a
href="http://kernelnewbies.org/faq/index.php3#trees">http://kernelnewbies.org/faq/index.php3#trees</a>
has a few of them.  Maybe you could alert the web maintainers to the entries
in this thread?  :-)</quote></p>

<p>Brian Jackson also replied to Orion, saying:</p>

<quote who="Brian Jackson">

<p>here goes my knowledge of the different patchsets:</p>

<p>for the most part all of them are testing grounds for patches that someday
hope to be in the vanilla kernel</p>

<p>

<ul>

<li>mm - Andrew Morton - vm related testing ground for dev tree</li>

<li>ck - Con Kolivas - desktop/interactivity patches</li>

<li>kj - Kernel Janitors - testing ground for kernel cleanups on development
trees</li>

<li>mjb - Martin J Bligh - scalability stuff</li>

<li>wli - William Lee Irwin - other vm related stuff for dev tree that Andrew
Morton may not have time for</li>

<li>ac - Alan Cox - lately it's been a testing ground for new ide</li>

<li>lsm - Chris Wright - Linux Security Modules, provides a lightweight,
general purpose framework for access control</li>

<li>osdl - Stephen Hemminger, ? maybe enterprise stuff</li>

<li>laptop - Hanno B?ck - unproven laptop type patches</li>

<li>aa - Andrea Arcangeli - stable series vm stuff</li>

<li>dj - Dave Jones - cleanups/AGP</li>

<li>rmap - Rik van Riel - reverse mapping vm for 2.4</li>

<li>pgcl - William Lee Irwin - ?</li>

</ul>

</p>

<p>Others? Oh yes. Maybe this is something that should be tracked on a
webpage somewhere.</p>

</quote>

<p>Samuel Flory pointed out that Alan's -ac tree <quote who="Samuel Flory">is
often the test ground for new 2.4 fixes, and features.</quote> And William
Lee Irwin III said that his pgcl tree was for <quote who="William Lee Irwin
III">Page clustering. A vague attempt at a forward port of Hugh Dickins'
2.4.7 patch for the same purpose, WIP. I'd say it's more of one patch than a
patch set.</quote> And someone else also pointed out the existence of -dis,
for laptop-related patches, and -jp, for security and performance issues.</p>

</section>

<section
  title="Status Of Serial ATA In 2.4"
  subject="Serial ATA driver for 2.4.18."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/0618.html"
  posts="3"
  startdate="26 Jun 2003 00:15:41 -0800"
  enddate="28 Jun 2003 19:25:43 -0800"
>
<topic>Disks: IDE</topic>
<topic>Serial ATA</topic>

<p>Adarsh Daheriya asked where to find <quote who="Adarsh Daheriya">the
siimage SATA driver for 2.4.18 kernel,</quote> and Alan Cox said, <quote
who="Alan Cox">The current one depends on the 2.4.20/2.4.21 IDE rework. I
have no plans to backport it although if you desperately need it you could
I guess pay someone.</quote> And Andre Hedrick put in, <quote who="Andre
Hedrick">I have one for sale buy you will pay a price for my time and work
in the past to get it.  Nothing is free in this economy today.</quote></p>

</section>

<section
  title="Checklist For Submitting Patches"
  subject="Kernel patch release checklist available"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/0637.html"
  posts="3"
  startdate="26 Jun 2003 03:01:02 -0800"
  enddate="26 Jun 2003 11:24:50 -0800"
>

<mention>David Mosberger</mention>
<mention>Willy Tarreau</mention>

<p>Peter Chubb announced:</p>

<quote who="Peter Chubb">

<p>After being burnt a few times in forgetting something that I should have
done when releasing a patch against the kernel, I've created a Kernel Patch
Release Checklist at</p>

<p><a
href="http://www.gelato.unsw.edu.au/IA64wiki/PatchReleaseChecklist">http://www.gelato.unsw.edu.au/IA64wiki/PatchReleaseChecklist</a></p>

<p>If you want to you can add new stuff I haven't thought of to this list:
but you need to register on the Wiki to do so.</p>

</quote>

<p>David Mosberger was very happy to see this, and suggested some additional
information to add to the document. And Willy Tarreau also suggested it go
in the Documentation directory of the kernel sources.</p>

</section>

<section
  title="QEMU 0.4 Released"
  subject="[ANNOUNCE] QEMU 0.4 release"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/0656.html"
  posts="1"
  startdate="26 Jun 2003 05:19:35 -0800"
>

<p>Fabrice Bellard announced:</p>

<quote who="Fabrice Bellard">

<p>The QEMU x86 CPU emulator version 0.4 is available at <a
href="http://bellard.org/qemu">http://bellard.org/qemu</a>. QEMU can now
launch an unpatched(*) Linux kernel and give correct execution performances
by using dynamic compilation.</p>

<p>QEMU requires no host kernel patches and no special priviledge in order
to run a Linux kernel. QEMU simulates a serial console and a NE2000 network
adapter. X11 applications such as xterm have been launched.</p>

<p>QEMU can be used for example for faster kernel testing/debuging and
virtual hosting.</p>

</quote>

</section>

<section
  title="New SnoopyPro Logfile Dumper"
  subject="[Announce] Linux command line Snoopy Pro logfile dumper"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/1062.html"
  posts="1"
  startdate="27 Jun 2003 18:39:08 -0800"
>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Michael Still said:</p>

<quote who="Michael Still">

<p>I had two maths exams last week. This of course means that I had to find
something to distract me. That thing was whipping up a SnoopyPro logfile
dumper for the command line. This was motivated by generalised frustration
with the SnoopyPro user interface.</p>

<p>For those wondering, SnoopyPro is a Source Force hosted USB traffic dumper
for Windows. It's useful when reverse engineering USB device drivers.</p>

<p>This version of the dumper only implements the URB types which I immediately
needed. Adding additional URBs isn't hard, but I didn't have any samples. Feel
free to mail me usblogs, and I'll add them to the decoder.</p>

<p>The only really cool feature in this version is that it implements
"repeated URB sequence suppression", so if the Windows driver says to the
USB device "hey, you still there" every second for 60 seconds, and there
is no other traffic between the machine and that device, then the output
will only show one of those interactions, and let you know it hid 59 more.
This feature can be turned on and off with the -r command line option.</p>

<p>You can get the GPL'ed CVS version of the source code from: <br />
<a href="http://www.stillhq.com/extracted/usblogdump.tgz">http://www.stillhq.com/extracted/usblogdump.tgz</a></p>

<p>There is sample output et cetera at:<br />
<a href="http://www.stillhq.com/cgi-bin/getpage?area=usblogdump">http://www.stillhq.com/cgi-bin/getpage?area=usblogdump</a></p>

<p>The next step is to modify the display of the URBs so that they're closer
to the Linux data structures.</p>

</quote>

</section>

<section
  title="ATA-Over-SCSI Driver Update"
  subject="ata-scsi driver update"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0306.3/1637.html"
  posts="7"
  startdate="30 Jun 2003 15:59:24 -0800"
  enddate="02 Jul 2003 10:20:56 -0800"
>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>PCI</topic>
<topic>Serial ATA</topic>
<topic>Version Control</topic>

<p>Jeff Garzik announced:</p>

<quote who="Jeff Garzik">

<p>maintenance update, nothing terribly new or exciting.  mostly error
handling improvements and cleanups (and some bug fixes just for fun).</p>

<p>GNU diff, versus 2.4.21 release:
<a href="ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.4/2.4.21-atascsi1.patch.bz2">ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.4/2.4.21-atascsi1.patch.bz2</a></p>

<p>BK repos:
bk://kernel.bkbits.net/jgarzik/atascsi-2.[45]</p>

<p>The 2.5 repo is a bit out of date WRT the latest scsi api, but the
ata-scsi driver itself is 100% in sync with its 2.4 counterpart.  (due
to the large number of changes in 2.5 scsi, the 2.5 driver is a fork of
the 2.4 driver)</p>

<p>detailed changes:</p>

<p>

<ul>

<li>add autogenerated docbook docs</li>
<li>add atapi (ifdef'd out, due to lack of err handling)</li>
<li>better ata probing, including better err handling during probe</li>
<li>more piix pci ids.  bump up ich5 sata max speed to udma6.</li>
<li>beginnings of SYNCHRONIZE CACHE support for ATA drives</li>
<li>better SCSI emulation for ATA drives</li>
<li>cleanups, simplifications, minor bug fixes</li>
<li>a huge search-n-replace job, s/ata_host/ata_port/</li>

</ul>

</p>

<p>A couple new host drivers coming next, along with atapi error handling...</p>

</quote>

<p>Jurgen Kramer tried it out and (after a few twists) got it working. But he
said, <quote who="Jurgen Kramer">my DVD-ROM doesn't show here. It should be on
scsi1 (or is ATAPI support not in yet?) What also shows is that ata1 is not
being configured for maximum possible speed. Ata1 should be set to UDMA/100.
The SATA drive is configured properly though.</quote> Jeff replied, <quote
who="Jeff Garzik">Correct, ATAPI isn't supported yet.</quote> And he added,
<quote who="Jeff Garzik">Both ATAPI and PATA cable detection should be
working in the next release (a week or two from now).</quote></p>

</section>

<section
  title="Preferred GCC Version For Kernel Compilation"
  subject="gcc 2.95.4 vs gcc 3.3 ?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.0/0334.html"
  posts="3"
  startdate="02 Jul 2003 06:13:45 -0800"
  enddate="02 Jul 2003 12:47:25 -0800"
>

<mention>Robert L. Harris</mention>

<p>Robert L. Harris asked if it was OK to use GCC 3.3 for kernel compilation,
and Adrian Bunk replied:</p>

<quote who="Adrian Bunk">

<p>gcc 3.3 is relatively new and _much_ less tested than 2.95. A new gcc
might either contain bugs or it might unleash bugs in the kernel that weren't
visible before (e.g. via better optimizations).</p>

<p>Usually gcc 3.3 works fine (and my PC at home runs a 2.4.21 compiled
with 3.3) but if you want stability in production envvironments 2.95 (or
the unofficial 2.96 &gt;= 2.96-74) is the recommended compiler.</p>

</quote>

<p>Alan Cox also told Robert that GCC 3.3 would probably successfully compile
the kernel itself, but <quote who="Alan Cox">some drivers still don't build
with it.</quote></p>

</section>

<section
  title="Linux In Film-Making"
  subject="Linus goes to Hollywood!"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.0/0384.html"
  posts="2"
  startdate="02 Jul 2003 09:46:39 -0800"
  enddate="02 Jul 2003 16:02:56 -0800"
>

<mention>Andre Hedrick</mention>

<p>Andre Hedrick gave a link to an <a
href="http://www.eweek.com/article2/0,3959,1159212,00.asp">eWeek article</a>
telling how <a href="http://us.imdb.com/Title?0165982">Sinbad: The Legend Of
The Seven Seas</a> was the first film ever created using only Linux. Bill Huey
remarked, <quote who="Bill Huey">Yeah, it's a pretty neat thing that movies
are being produced by Linux clusters/workstations these days.</quote></p>

</section>

<section
  title="Benchmarks Comparing ext2 And ext3"
  subject="ext2 vs ext3"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.0/0460.html"
  posts="1"
  startdate="02 Jul 2003 14:48:35 -0800"
>
<topic>Big Memory Support</topic>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>
<topic>Virtual Memory</topic>

<p>Martin J. Bligh reported:</p>

<quote who="Martin J. Bligh">

<p>Andrew asked for updated numbers ... is about the same on kernbench,
still significantly slower on SDET (about 1/4 of the speed of ext2),
though much better than it was.</p>

<p>Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)</p>

<pre>                              Elapsed      System        User         CPU
               2.5.73-mm3       45.36      111.71      565.71     1493.75
          2.5.73-mm3-ext3       45.59      114.12      565.72     1489.50

       853     5.2% total
       570    11.4% default_idle
        72     3.6% page_remove_rmap
        58   580.0% fd_install
        38   292.3% __blk_queue_bounce
        24     1.7% do_anonymous_page
        23     4.5% __copy_to_user_ll
        20    13.1% __wake_up
        14   700.0% __find_get_block_slow
        13     6.6% do_page_fault
        13     9.2% __down
        12     8.6% kmem_cache_free
        12     0.0% journal_add_journal_head
        11    26.8% __fput
        10     0.0% find_next_usable_block
        10     0.0% do_get_write_access
...
       -12   -21.8% copy_page_range
       -21    -6.0% __copy_from_user_ll
       -28   -68.3% may_open
       -58  -100.0% generic_file_open</pre>

<p>DISCLAIMER: SPEC(tm) and the benchmark name SDET(tm) are registered
trademarks of the Standard Performance Evaluation Corporation. This
benchmarking was performed for research purposes only, and the run results
are non-compliant and not-comparable with any published results.</p>

<p>SDET 128  (see disclaimer)</p>

<pre>                           Throughput    Std. Dev
               2.5.73-mm3       100.0%         0.1%
          2.5.73-mm3-ext3        23.1%         4.4%

    168834   222.4% total
    142610   375.4% default_idle
     10901     0.0% .text.lock.transaction
      3674     0.0% do_get_write_access
      3345     0.0% journal_dirty_metadata
      3227  5867.3% __down
      1548   710.1% schedule
      1514  1916.5% __wake_up
      1306     0.0% start_this_handle
      1268     0.0% journal_stop
       831     0.0% journal_add_journal_head
       627  2985.7% __blk_queue_bounce
       522     0.0% journal_dirty_data
       441     0.0% ext3_get_inode_loc
       305  30500.0% prepare_to_wait_exclusive
       277   513.0% __find_get_block_slow
       265     0.0% ext3_journal_start
       238     0.0% find_next_usable_block
       213   116.4% __find_get_block
       209     0.0% ext3_do_update_inode
       157  15700.0% unlock_buffer
       147     0.0% journal_cancel_revoke
       141     0.0% ext3_orphan_del
       136     0.0% ext3_orphan_add
       130     0.0% ext3_reserve_inode_write
       128   209.8% generic_file_aio_write_nolock
       126     0.0% journal_unmap_buffer
       123  12300.0% blk_run_queues
       120    94.5% __brelse
       108     0.0% ext3_new_inode
...
      -102   -22.1% remove_shared_vm_struct
      -104    -8.1% copy_page_range
      -108  -100.0% generic_file_open
      -110   -31.9% free_pages_and_swap_cache
      -113   -92.6% .text.lock.highmem
      -115   -49.8% follow_mount
      -151   -69.6% .text.lock.dcache
      -182   -59.3% .text.lock.dec_and_lock
      -182  -100.0% ext2_new_inode
      -194   -11.6% zap_pte_range
      -196   -32.8% path_lookup
      -223   -34.7% atomic_dec_and_lock
      -237  -100.0% grab_block
      -262   -22.9% __d_lookup
      -283   -27.5% release_pages
      -843   -21.6% page_add_rmap
     -2259   -26.3% page_remove_rmap</pre>

</quote>

</section>

<section
  title="kexec For 2.5.74 Released"
  subject="[KEXEC][ANNOUNCE] kexec for 2.5.74 available"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0307.0/0481.html"
  posts="1"
  startdate="02 Jul 2003 16:17:29 -0800"
>
<topic>Kexec</topic>

<p>Andy Pfiffer announced:</p>

<quote who="Andy Pfiffer">

<p>An UNTESTED patch for kexec for 2.5.74 is now available.  This patch is
based upon the stable 2.5.{6[789],7*} versions.</p>

<p>I will be away fragging for a few days at http://www.pdxlan.com/ and not
responding to email.</p>

<p>More info here:<br />
<a href="http://developer.osdl.org/~andyp/bloom/Code/Linux/Kexec/">http://developer.osdl.org/~andyp/bloom/Code/Linux/Kexec/</a></p>

<p>Unified full kexec patch for 2.5.74 is here:<br />
<a href="http://developer.osdl.org/~andyp/kexec/2.5.74/kexec2-2.5.74-full.patch">http://developer.osdl.org/~andyp/kexec/2.5.74/kexec2-2.5.74-full.patch</a></p>

<p>Source tarball of the matching user-mode utility for kexec 2.5.74:<br />
<a href="http://developer.osdl.org/~andyp/kexec/2.5.74/kexec-tools-1.8-2.5.74.tgz">http://developer.osdl.org/~andyp/kexec/2.5.74/kexec-tools-1.8-2.5.74.tgz</a></p>

<p>Unstable 2.5.69 kexec patches from Eric Biederman are available here:<br />
<a href="http://www.xmission.com/~ebiederm/files/kexec/">http://www.xmission.com/~ebiederm/files/kexec/</a></p>

</quote>

</section>

</kc>

