<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="216" date="20 May 2003 00:00:00 -0800" />

<stats posts="1675" size="7514" contrib="440" multiples="234" lastweek="226">

<person posts="88" size="422" who="Greg KH" />
<person posts="61" size="172" who="&quot;David S. Miller&quot;" />
<person posts="48" size="188" who="Andrew Morton" />
<person posts="43" size="126" who="Alan Cox" />
<person posts="38" size="152" who="&quot;Martin J. Bligh&quot;" />
<person posts="29" size="85" who="Christoph Hellwig" />
<person posts="21" size="80" who="William Lee Irwin III" />
<person posts="21" size="68" who="Chuck Ebbert" />
<person posts="19" size="86" who="Christoph Hellwig" />
<person posts="18" size="92" who="&quot;Richard B. Johnson&quot;" />
<person posts="17" size="210" who="Michael Hunold" />
<person posts="17" size="98" who="Michael Buesch" />
<person posts="17" size="42" who="Vinay K Nallamothu" />
<person posts="16" size="65" who="&quot;Randy.Dunlap&quot;" />
<person posts="16" size="53" who="Carl-Daniel Hailfinger" />
<person posts="15" size="101" who="Anders Karlsson" />
<person posts="15" size="42" who="Andi Kleen" />
<person posts="14" size="57" who="Thomas Horsten" />
<person posts="14" size="54" who="Steven Cole" />
<person posts="13" size="75" who="Grzegorz Jaskiewicz" />
<person posts="13" size="69" who="Linus Torvalds" />
<person posts="13" size="43" who="Trond Myklebust" />
<person posts="12" size="64" who="David van Hoose" />
<person posts="11" size="61" who="Rusty Russell" />
<person posts="11" size="55" who="Adrian Bunk" />
<person posts="11" size="45" who="Jens Axboe" />
<person posts="11" size="36" who="Mark Grosberg" />
<person posts="11" size="29" who="(viro)" />
<person posts="10" size="47" who="Ben Collins" />
<person posts="10" size="38" who="george anzinger" />
<person posts="10" size="37" who="Benjamin Herrenschmidt" />
<person posts="9" size="71" who=" (Miles Bader)" />
<person posts="9" size="37" who="Willy Tarreau" />
<person posts="9" size="33" who="Arnaldo Carvalho de Melo" />
<person posts="9" size="31" who="Mike Fedyk" />
<person posts="9" size="30" who="Daniel Phillips" />
<person posts="8" size="79" who="Steven Whitehouse" />
<person posts="8" size="51" who="Stephen Smalley" />
<person posts="8" size="43" who="John Levon" />
<person posts="8" size="36" who="Dipankar Sarma" />
<person posts="8" size="36" who="Bartlomiej Zolnierkiewicz" />
<person posts="8" size="35" who="James Simmons" />
<person posts="8" size="35" who="Willy TARREAU" />
<person posts="8" size="33" who="James Bottomley" />
<person posts="8" size="32" who="Ingo Molnar" />
<person posts="8" size="29" who="&quot;Sumit Narayan&quot;" />
<person posts="8" size="29" who="Ulrich Drepper" />
<person posts="8" size="27" who="Davide Libenzi" />
<person posts="8" size="26" who=" (Eric W. Biederman)" />
<person posts="8" size="26" who="(Valdis.Kletnieks)" />
<person posts="8" size="26" who="&quot;H. Peter Anvin&quot;" />
<person posts="8" size="25" who="=?iso-8859-1?Q?J=F6rn?= Engel" />
<person posts="8" size="23" who="Falk Hueffner" />
<person posts="8" size="22" who="Gabriel Devenyi" />
<person posts="8" size="21" who="John Bradford" />
<person posts="7" size="53" who="Keith Mannthey" />
<person posts="7" size="46" who="Jeff Muizelaar" />
<person posts="7" size="44" who="Brett" />
<person posts="7" size="36" who="hugang" />
<person posts="7" size="34" who="rmoser" />
<person posts="7" size="30" who="Mark Mielke" />
<person posts="7" size="28" who="=?iso-8859-1?Q?P=E5l_Halvorsen?=" />
<person posts="7" size="28" who="Thomas Backlund" />
<person posts="7" size="26" who="&quot;Perez-Gonzalez, Inaky&quot;" />
<person posts="7" size="26" who="Arjan van de Ven" />
<person posts="7" size="26" who="Chris Friesen" />
<person posts="7" size="22" who="Balram Adlakha" />
<person posts="7" size="20" who="Andi Kleen" />
<person posts="7" size="19" who="Jeff Garzik" />
<person posts="6" size="37" who="Felipe Alfaro Solana" />
<person posts="6" size="28" who="Richard Henderson" />
<person posts="6" size="22" who="David Ford" />
<person posts="6" size="21" who="Martin Schlemmer" />
<person posts="6" size="19" who="Timothy Miller" />
<person posts="6" size="16" who="Mikhail Kruk" />
<person posts="6" size="16" who="Ivan Kokshaysky" />
<person posts="5" size="73" who="Jean Tourrilhes" />
<person posts="5" size="54" who="Yoshinori Sato" />
<person posts="5" size="32" who="Pavel Machek" />
<person posts="5" size="31" who="Marc Zyngier" />
<person posts="5" size="30" who="Kimmo Sundqvist" />
<person posts="5" size="28" who="Paul Mackerras" />
<person posts="5" size="25" who="Zwane Mwaikambo" />
<person posts="5" size="24" who="Andrei Ivanov" />
<person posts="5" size="21" who="&quot;Justin T. Gibbs&quot;" />
<person posts="5" size="21" who="Nick Piggin" />
<person posts="5" size="18" who="Martin List-Petersen" />
<person posts="5" size="17" who="Scott Robert Ladd" />
<person posts="5" size="16" who="Bob Miller" />
<person posts="5" size="16" who="DevilKin" />
<person posts="5" size="15" who="Bill Davidsen" />
<person posts="5" size="14" who="Daniel Pittman" />
<person posts="5" size="13" who="Sam Ravnborg" />
<person posts="4" size="43" who="Martin Schwidefsky" />
<person posts="4" size="40" who="Jurriaan" />
<person posts="4" size="33" who="Art Haas" />
<person posts="4" size="33" who="(rwhron)" />
<person posts="4" size="33" who="Hans Reiser" />
<person posts="4" size="23" who="Arnd Bergmann" />
<person posts="4" size="22" who="Mike Galbraith" />
<person posts="4" size="22" who="&quot;O.Sezer&quot;" />
<person posts="4" size="17" who="Karsten Keil" />
<person posts="4" size="17" who="Joel Becker" />
<person posts="4" size="17" who="Stian Jordet" />
<person posts="4" size="16" who="Larry McVoy" />
<person posts="4" size="16" who="Paul Fulghum" />
<person posts="4" size="16" who="jw schultz" />
<person posts="4" size="15" who="Ed Sweetman" />
<person posts="4" size="15" who="john stultz" />
<person posts="4" size="15" who="Alex Riesen" />
<person posts="4" size="15" who="Peder Stray" />
<person posts="4" size="14" who="&quot;Calin A. Culianu&quot;" />
<person posts="4" size="14" who="Stephan von Krawczynski" />
<person posts="4" size="13" who="Miles Bader" />
<person posts="4" size="13" who="Matt Bernstein" />
<person posts="4" size="13" who="Robert Love" />
<person posts="4" size="12" who="Russell King" />
<person posts="4" size="12" who="dean gaudet" />
<person posts="4" size="12" who="Pavel Machek" />
<person posts="4" size="12" who="(bas.mevissen)" />
<person posts="4" size="12" who="Maciej Soltysiak" />
<person posts="4" size="11" who="Francois Romieu" />
<person posts="4" size="11" who=" (David Mosberger-Tang)" />
<person posts="4" size="11" who="Dave Jones" />
<person posts="4" size="10" who="Daniel Taylor" />
<person posts="4" size="10" who="Florian Weimer" />
<person posts="4" size="9" who="Wichert Akkerman" />
<person posts="3" size="78" who="Monchi Abbad" />
<person posts="3" size="43" who="chas williams" />
<person posts="3" size="38" who="Alan Cox" />
<person posts="3" size="27" who="Felix von Leitner" />
<person posts="3" size="23" who="Xose Vazquez Perez" />
<person posts="3" size="14" who="Thomas Schlichter" />
<person posts="3" size="13" who="Jochen Hein" />
<person posts="3" size="13" who="Christian =?iso-8859-1?q?Borntr=E4ger?=" />
<person posts="3" size="12" who="Shane Shrybman" />
<person posts="3" size="11" who="Eric Piel" />
<person posts="3" size="11" who=" (Florin Iucha)" />
<person posts="3" size="11" who="Hanna Linder" />
<person posts="3" size="11" who="&quot;Lee, Shuyu&quot;" />
<person posts="3" size="11" who="David Woodhouse" />
<person posts="3" size="10" who="(linux)" />
<person posts="3" size="10" who="CaT" />
<person posts="3" size="10" who="Diego Calleja =?ISO-8859-15?Q?Garc=EDa?=" />
<person posts="3" size="10" who="David Mosberger" />
<person posts="3" size="10" who="Lucas Correia Villa Real" />
<person posts="3" size="10" who="&quot;Riley Williams&quot;" />
<person posts="3" size="10" who="chas williams" />
<person posts="3" size="9" who="Douglas Gilbert" />
<person posts="3" size="9" who="Andreas Schwab" />
<person posts="3" size="9" who="Ezra Nugroho" />
<person posts="3" size="9" who="&quot;Downing, Thomas&quot;" />
<person posts="3" size="8" who="Ricardo Galli" />
<person posts="3" size="8" who="Nicolas Pitre" />
<person posts="3" size="8" who="Ken Witherow" />
<person posts="3" size="8" who="Werner Almesberger" />
<person posts="3" size="8" who="Rafael Costa dos Santos" />
<person posts="3" size="8" who="jjs" />
<person posts="3" size="8" who="Bojan Smojver" />
<person posts="3" size="7" who="Aaron Lehmann" />
<person posts="3" size="6" who="Halil Demirezen" />
<person posts="2" size="65" who=" &lt;vlad@geekizoid.com&gt;" />
<person posts="2" size="38" who="Alexander Hoogerhuis" />
<person posts="2" size="36" who="Nicolas" />
<person posts="2" size="26" who="Roland McGrath" />
<person posts="2" size="26" who="Manuel Estrada Sainz" />
<person posts="2" size="19" who="Robert Murray" />
<person posts="2" size="17" who="&quot;Sowmya Adiga&quot;" />
<person posts="2" size="15" who="Matthew Dobson" />
<person posts="2" size="13" who=" (Dominik Strasser)" />
<person posts="2" size="13" who="Eric Buddington" />
<person posts="2" size="13" who="&quot;Paolo Ciarrocchi&quot;" />
<person posts="2" size="11" who="Jacek Kawa" />
<person posts="2" size="11" who="Andre Hedrick" />
<person posts="2" size="11" who="Urs Thuermann" />
<person posts="2" size="11" who="David Ford" />
<person posts="2" size="10" who="Hans-Georg Thien" />
<person posts="2" size="10" who="Jim Keniston" />
<person posts="2" size="10" who="Manfred Spraul" />
<person posts="2" size="10" who="Torrey Hoffman" />
<person posts="2" size="8" who="Rene Rebe" />
<person posts="2" size="8" who="Thomas Duffy" />
<person posts="2" size="8" who="&quot;David Schwartz&quot;" />
<person posts="2" size="8" who="Stuffed Crust" />
<person posts="2" size="7" who="Tigran Aivazian" />
<person posts="2" size="7" who="Bodo Rzany" />
<person posts="2" size="7" who="Andreas Haumer" />
<person posts="2" size="7" who="=?ISO-8859-2?Q?Pawe=B3_Go=B3aszewski?=" />
<person posts="2" size="7" who="Reid Hekman" />
<person posts="2" size="7" who="Dave Hansen" />
<person posts="2" size="7" who="John Cherry" />
<person posts="2" size="7" who="Kevin Corry" />
<person posts="2" size="7" who="&quot;Grover, Andrew&quot;" />
<person posts="2" size="7" who="Brian Dushaw" />
<person posts="2" size="6" who="Gerrit Huizenga" />
<person posts="2" size="6" who="Matthew Harrell" />
<person posts="2" size="6" who="Heinz Ulrich Stille" />
<person posts="2" size="6" who="OGAWA Hirofumi" />
<person posts="2" size="6" who="Rusty Trivial Russell" />
<person posts="2" size="6" who="(mikpe)" />
<person posts="2" size="6" who="Kmt Sundqvist" />
<person posts="2" size="6" who="Ville Voutilainen" />
<person posts="2" size="6" who="&quot;Jamie Harris&quot;" />
<person posts="2" size="6" who="Bongani Hlope" />
<person posts="2" size="6" who="Matti Aarnio" />
<person posts="2" size="6" who="&quot;Beat Bolli (privat)&quot;" />
<person posts="2" size="6" who="Geert Uytterhoeven" />
<person posts="2" size="6" who="Paul van Gool" />
<person posts="2" size="6" who="&quot;Dr. David Alan Gilbert&quot;" />
<person posts="2" size="6" who="Yoav Weiss" />
<person posts="2" size="6" who="Daniele Pala" />
<person posts="2" size="5" who="Voluspa" />
<person posts="2" size="5" who="Hugh Dickins" />
<person posts="2" size="5" who="Ronald Bultje" />
<person posts="2" size="5" who="Matthias Andree" />
<person posts="2" size="5" who="&quot;Andre Tomt&quot;" />
<person posts="2" size="5" who="John Jasen" />
<person posts="2" size="5" who="walt" />
<person posts="2" size="5" who="bert hubert" />
<person posts="2" size="5" who="&quot;Michael Swift&quot;" />
<person posts="2" size="5" who="Ed Tomlinson" />
<person posts="2" size="5" who="Mike Dresser" />
<person posts="2" size="5" who="Geller Sandor" />
<person posts="2" size="5" who=" (Miquel van Smoorenburg)" />
<person posts="2" size="5" who="Jamie Lokier" />
<person posts="2" size="5" who="Andy Pfiffer" />
<person posts="2" size="5" who="Jan Kara" />
<person posts="2" size="4" who="Tomas Szepe" />
<person posts="2" size="4" who="&quot;Maciej W. Rozycki&quot;" />
<person posts="2" size="4" who="Pete Zaitcev" />
<person posts="2" size="4" who="Nigel Cunningham" />
<person posts="2" size="4" who="Gabe Foobar" />
<person posts="2" size="4" who="Zhihui Zhang" />
<person posts="2" size="4" who="&quot;ALYAKOUBI CORP.&quot;" />
<person posts="1" size="79" who="Mohammed Sameer" />
<person posts="1" size="26" who="Michael Dreher" />
<person posts="1" size="25" who="Jonathan Brassow" />
<person posts="1" size="23" who="Robert Kulagowski" />
<person posts="1" size="23" who="&quot;Jim Keniston[UNIX]&quot;" />
<person posts="1" size="19" who="Roger Luethi" />
<person posts="1" size="14" who="Pavel Roskin" />
<person posts="1" size="13" who="&quot;Guillaume Boissiere&quot;" />
<person posts="1" size="10" who="&quot;Justin T. Gibbs&quot;" />
<person posts="1" size="10" who="(bame)" />
<person posts="1" size="10" who="&quot;Zephaniah E. Hull&quot;" />
<person posts="1" size="9" who="Vojtech Pavlik" />
<person posts="1" size="9" who="Soeren Sonnenburg" />
<person posts="1" size="8" who="Petr Baudis" />
<person posts="1" size="8" who="(root)" />
<person posts="1" size="8" who="&quot;Botha, Francois&quot;" />
<person posts="1" size="8" who="Brian Gerst" />
<person posts="1" size="7" who="Matt Bernstein" />
<person posts="1" size="7" who="Wiktor Wodecki" />
<person posts="1" size="7" who="Hubertus Franke" />
<person posts="1" size="6" who="Keith Owens" />
<person posts="1" size="6" who="Martin Zwickel" />
<person posts="1" size="6" who="Kristian Koehntopp" />
<person posts="1" size="6" who="Dmitry Torokhov" />
<person posts="1" size="6" who="Daniele Bellucci  (by way of Daniele Bellucci" />
<person posts="1" size="6" who="Ernie Petrides" />
<person posts="1" size="5" who="&quot;Joseph Malicki&quot;" />
<person posts="1" size="5" who="Lionel Bouton" />
<person posts="1" size="5" who="Will Dinkel" />
<person posts="1" size="5" who="Con Kolivas" />
<person posts="1" size="5" who="&quot;David J. M. Karlsen&quot;" />
<person posts="1" size="5" who="Andrey Borzenkov" />
<person posts="1" size="4" who="Jan-Benedict Glaw" />
<person posts="1" size="4" who="&quot;Hua Zhong&quot;" />
<person posts="1" size="4" who="&quot;Aniruddha M Marathe&quot;" />
<person posts="1" size="4" who="Godswill Zabina" />
<person posts="1" size="4" who="(venom)" />
<person posts="1" size="4" who="&quot;Frederic Trudeau&quot;" />
<person posts="1" size="4" who="(Nicolae_Popovici)" />
<person posts="1" size="4" who="Muli Ben-Yehuda" />
<person posts="1" size="4" who="Wolfgang Fritz" />
<person posts="1" size="4" who="&quot;Udo A. Steinberg&quot;" />
<person posts="1" size="4" who="Mikael Starvik" />
<person posts="1" size="4" who="Nat Ersoz" />
<person posts="1" size="4" who="Thunder Anklin" />
<person posts="1" size="4" who="Peter Breitenlohner" />
<person posts="1" size="4" who="James Cleverdon" />
<person posts="1" size="4" who="Jesse Pollard" />
<person posts="1" size="4" who="Zeev Fisher" />
<person posts="1" size="4" who="Chris" />
<person posts="1" size="4" who="Gabriel Paubert" />
<person posts="1" size="4" who="steven roemen" />
<person posts="1" size="3" who=" (Linus Torvalds)" />
<person posts="1" size="3" who="Benson Chow" />
<person posts="1" size="3" who="&quot;Michael J. Accetta&quot;" />
<person posts="1" size="3" who="(courtesan3)" />
<person posts="1" size="3" who="Mike Anderson" />
<person posts="1" size="3" who="Miquel van Smoorenburg" />
<person posts="1" size="3" who="Neil Brown" />
<person posts="1" size="3" who="Adam Mercer" />
<person posts="1" size="3" who="&quot;Randy.Dunlap&quot;" />
<person posts="1" size="3" who="Yann COLLETTE" />
<person posts="1" size="3" who="&quot;Neulinger, Nathan&quot;" />
<person posts="1" size="3" who="&quot;Walter Harms&quot;" />
<person posts="1" size="3" who="Paul P Komkoff Jr" />
<person posts="1" size="3" who="Mike Waychison" />
<person posts="1" size="3" who="Tony Spinillo" />
<person posts="1" size="3" who="(cb-lkml)" />
<person posts="1" size="3" who="&quot;Mr. James W. Laferriere&quot;" />
<person posts="1" size="3" who="&quot;J.A. Magallon&quot;" />
<person posts="1" size="3" who="Philipp Matthias Hahn" />
<person posts="1" size="3" who="Jakob Oestergaard" />
<person posts="1" size="3" who="David Brownell" />
<person posts="1" size="3" who="Mark Kettenis" />
<person posts="1" size="3" who="&quot;Michael D. Harnois&quot;" />
<person posts="1" size="3" who="Michel =?ISO-8859-1?Q?D=E4nzer?=" />
<person posts="1" size="3" who="&quot;Carlos E. Gorges&quot;" />
<person posts="1" size="3" who="&quot;Venkatesan, Ganesh&quot;" />
<person posts="1" size="3" who="Rick Lindsley" />
<person posts="1" size="3" who="Lukasz Trabinski" />
<person posts="1" size="3" who="=?ISO-8859-1?Q?Ren=E9?= Scharfe" />
<person posts="1" size="3" who=" (Joseph Fannin)" />
<person posts="1" size="3" who="John M Flinchbaugh" />
<person posts="1" size="3" who="Bill Huey (Hui)" />
<person posts="1" size="3" who="Rafael Santos" />
<person posts="1" size="3" who="Adam Sulmicki" />
<person posts="1" size="3" who="Hiroshi Inoue" />
<person posts="1" size="3" who="ragnar sjoberg" />
<person posts="1" size="3" who="Antonio Vargas" />
<person posts="1" size="3" who="Peter Riocreux" />
<person posts="1" size="3" who="&quot;Wojciech Sobczak&quot;" />
<person posts="1" size="3" who="Bryan O'Sullivan" />
<person posts="1" size="3" who="Sean Neakums" />
<person posts="1" size="3" who=" (Danny ter Haar)" />
<person posts="1" size="3" who="Ben Greear" />
<person posts="1" size="3" who="&quot;John van V.&quot;" />
<person posts="1" size="3" who="Wakko Warner" />
<person posts="1" size="3" who="Christian Hammers" />
<person posts="1" size="3" who="Jens Ansorg" />
<person posts="1" size="3" who="Guido Guenther" />
<person posts="1" size="3" who="Greg Ungerer" />
<person posts="1" size="3" who="Manu Prasad" />
<person posts="1" size="3" who="Arjan van de Ven" />
<person posts="1" size="3" who="Nomen Nescio" />
<person posts="1" size="3" who="Dave Maietta" />
<person posts="1" size="3" who="Clemens Schwaighofer" />
<person posts="1" size="3" who="Tommy Wu" />
<person posts="1" size="3" who="Jeffrey Baker" />
<person posts="1" size="3" who="Shawn" />
<person posts="1" size="3" who="Amol P Dharmadhikari" />
<person posts="1" size="3" who="&quot;James H. Cloos Jr.&quot;" />
<person posts="1" size="3" who="The Spirit of Open Source" />
<person posts="1" size="3" who=" (Walter Harms)" />
<person posts="1" size="3" who=" &lt;info@a-traduire.com&gt;" />
<person posts="1" size="3" who="Roland McGrath" />
<person posts="1" size="3" who="Marcel Holtmann" />
<person posts="1" size="3" who="Andreas Boman" />
<person posts="1" size="3" who="Andreas Dilger" />
<person posts="1" size="2" who="Lincoln Dale" />
<person posts="1" size="2" who="Dave Jones" />
<person posts="1" size="2" who="Denis Oliver Kropp" />
<person posts="1" size="2" who="Jesse Barnes" />
<person posts="1" size="2" who="Walt H" />
<person posts="1" size="2" who="Unai Garro Arrazola" />
<person posts="1" size="2" who="Andrey Panin" />
<person posts="1" size="2" who="Bernd Schubert" />
<person posts="1" size="2" who="Mirar" />
<person posts="1" size="2" who="(S-n-e-a-k-e-r)" />
<person posts="1" size="2" who="hv-it" />
<person posts="1" size="2" who="Peter Osterlund" />
<person posts="1" size="2" who="Chris Heath" />
<person posts="1" size="2" who="&quot;Lever, Charles&quot;" />
<person posts="1" size="2" who="Kevin Puetz" />
<person posts="1" size="2" who="Nicolas Couture" />
<person posts="1" size="2" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="1" size="2" who="Ingo Oeser" />
<person posts="1" size="2" who="&quot;ismail (cartman) donmez&quot;" />
<person posts="1" size="2" who="Nico Schottelius" />
<person posts="1" size="2" who="Orion Poplawski" />
<person posts="1" size="2" who="Terje Eggestad" />
<person posts="1" size="2" who="Wade" />
<person posts="1" size="2" who="Paul Mundt" />
<person posts="1" size="2" who="Stephen Hemminger" />
<person posts="1" size="2" who="Daniel Phillips" />
<person posts="1" size="2" who="Daniele Bellucci" />
<person posts="1" size="2" who="Marcel Holtmann" />
<person posts="1" size="2" who=" (Kai Henningsen)" />
<person posts="1" size="2" who="Andrew Miklas" />
<person posts="1" size="2" who="Frank Davis" />
<person posts="1" size="2" who="Ketil Froyn" />
<person posts="1" size="2" who="Marcus Meissner" />
<person posts="1" size="2" who="Oliver Neukum" />
<person posts="1" size="2" who="Geert Uytterhoeven" />
<person posts="1" size="2" who="Thomas Heinz" />
<person posts="1" size="2" who="Peter Chubb" />
<person posts="1" size="2" who="Kai Germaschewski" />
<person posts="1" size="2" who="Jonathan Lundell" />
<person posts="1" size="2" who="Amit Shah" />
<person posts="1" size="2" who="(P)" />
<person posts="1" size="2" who="Marc-Christian Petersen" />
<person posts="1" size="2" who="Bernd Eckenfels" />
<person posts="1" size="2" who="(nmala)" />
<person posts="1" size="2" who="=?ISO-8859-15?Q?Christer_B=E4ckstr=F6m?=" />
<person posts="1" size="2" who="Zack Gilburd" />
<person posts="1" size="2" who="Brad Laue" />
<person posts="1" size="2" who="Gerd Knorr" />
<person posts="1" size="2" who="Folkert van Heusden" />
<person posts="1" size="2" who="Herbert Xu" />
<person posts="1" size="2" who="Kasper Dupont" />
<person posts="1" size="2" who="&quot;Bryan M Logan&quot;" />
<person posts="1" size="2" who="Pau Aliagas" />
<person posts="1" size="2" who="Martin Mares" />
<person posts="1" size="2" who="Jeff Muizelaar" />
<person posts="1" size="2" who="Colin Paul Adams" />
<person posts="1" size="2" who="jeff gerard" />
<person posts="1" size="2" who="Craig Ruff" />
<person posts="1" size="2" who="Hao Zhuang" />
<person posts="1" size="2" who="&quot;Martin J. Bligh&quot;" />
<person posts="1" size="2" who="&quot;Nicholas Berry&quot;" />
<person posts="1" size="2" who="Anton Blanchard" />
<person posts="1" size="2" who="harry" />
<person posts="1" size="2" who="(jlnance)" />
<person posts="1" size="2" who="Patrick Mansfield" />
<person posts="1" size="2" who="Kurt Wall" />
<person posts="1" size="2" who="Karim Yaghmour" />
<person posts="1" size="2" who="David Mosberger-Tang" />
<person posts="1" size="2" who="Adrian McMenamin" />
<person posts="1" size="2" who="James Morris" />
<person posts="1" size="2" who="(crypt)" />
<person posts="1" size="2" who="Cliff White" />
<person posts="1" size="2" who="shaheed" />
<person posts="1" size="2" who="Patrick Mau" />
<person posts="1" size="2" who="Jae-Young Kim" />
<person posts="1" size="2" who="Paul B Schroeder" />
<person posts="1" size="2" who="&quot;jds&quot;" />
<person posts="1" size="2" who="(folkert)" />
<person posts="1" size="2" who="&quot;J. Hidding&quot;" />
<person posts="1" size="2" who="&quot;Stephen M. Kenton&quot;" />
<person posts="1" size="2" who="Florian Zimmermann" />
<person posts="1" size="2" who="(erlJulie)" />
<person posts="1" size="2" who="&quot;anil  vijarnia&quot;" />
<person posts="1" size="1" who="(bsillyasd)" />
<person posts="1" size="1" who="(erdJulie)" />
<person posts="1" size="1" who="(eerJulie)" />
<person posts="1" size="1" who="Steve Spencer" />

</stats>

<section
  title="Proposed System Call To Speed Process Creation"
  subject="[RFD] Combined fork-exec syscall."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0304.3/0869.html"
  posts="48"
  startdate="27 Apr 2003 16:57:12 -0800"
  enddate="05 May 2003 18:48:57 -0800"
>

<mention>Davide Libenzi</mention>
<mention>Larry McVoy</mention>

<p>Mark Grosberg proposed:</p>

<quote who="Mark Grosberg">

<p>Is there any interest in a single system call that will perform both a
fork() and exec()? Could this save some extra work of doing a
copy_mm(), copy_signals(), etc?</p>

<p>I would think on large, multi-user systems that are spawning processes all
day, this might improve performance if the shells on such a system were
patched.</p>

<p>Perhaps a system call like:</p>

<pre>   pid_t spawn(const char *p_path,
               const char *argv[],
               const char *envp[],
               const int   filp[]);</pre>

<p>The filp array would allow file descriptors to be redirected. It could be
terminated by a -1 and reference the file descriptors of the current
process (this could also potentially save some dup() syscalls).</p>

<p>If any of these parameters (exclusing p_path) are NULL, then the
appropriate values are taken from the current process.</p>

<p>I originally was thinking of a name of fexec() for such a syscall, but
since there are already "f" variant syscalls (fchmod, fstat, ...) that an
fexec() would make more sense about executing an already open file, so the
name spawn() came to mind.</p>

<p>I know almost all of my fork()-exec() code does almost the same thing. I
guess vfork() was a potential solution, but this somehow seems cleaner
(and still may be more efficient than having to issue two syscalls)...
the downside is, of course, another syscall.</p>

</quote>

<p>There was not much enthusiasm. Only Rafael Costa dos Santos showed any
interest, offering to help code the thing up. Elsewhere, Larry McVoy, while not
outright against the idea, felt there were significant compatibility issues. In
particular, he suggested ensuring compatibility with Windows NT. Elsewhere,
Matthias Andree took a somewhat dimmer view of the compatibility issue. He
said adding a new system call was <quote who="Matthias Andree">a major
showstopper, because it'd only be useful to non-portable, Unix-specific
applications (thus it wouldn't be put to much use).</quote></p>

<p>Other folks pointed out that the small amount of time saved by avoiding an
extra system call during process creation would be completely overwhelemed by
the time it took to actually execute the program that would run in that process.
On the other hand, Davide Libenzi suggested doing this as part of the C library,
in user space. A new system call would be overkill for such small gains, but it
might be worth adding a library call.</p>

</section>

<section
  title="Some WLAN Chip Specs Secret To Protect Military Communications"
  subject="Broadcom BCM4306/BCM2050  support"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0304.3/0981.html"
  posts="21"
  startdate="28 Apr 2003 07:53:25 -0800"
  enddate="01 May 2003 05:35:06 -0800"
>
<topic>Legal Issues</topic>
<topic>Networking</topic>

<mention>Bas Mevissen</mention>
<mention>Zack Brown</mention>

<p>Bas Mevissen asked if Linux had any support for Broadcom's BCM4306 or
BCM2050 WLAN chips. He saw that the BCM4401 ethernet chip had a Linux
driver, and was hopeful that maybe the WLAN chips did as well. Martin
List-Petersen replied, <quote who="Martin List-Petersen">It seems, that
the specs haven't been released yet. There are quite a few Wlan cards out
there based on the Broadcom chips (nearly all cards, that support 802.11g),
so it's quite a shame. (Actually this fits the the TrueMobile 1180, 1300
and 1400, speaking of Dell wireless lan cards).</quote> He added, <quote
who="Martin List-Petersen">The same problem is with the Intel Prowireless 2100
(Centrino) WLan card. No Linux support available yet, which is another choice
for the Dell notebooks at the moment.</quote> But he also said there was a <a
href="http://www.petitiononline.com/BCM4301/petition.html">Petition</a> folks
could sign, regarding this very issue. Martin concluded, <quote who="Martin
List-Petersen">I've tried to contact Broadcom directly, but they are just
ignoring mails containing the word "Linux", so it seems.</quote> David S. Miller
also said:</p>

<quote who="David S. Miller">

<p>Don't expect specs or opensource drivers for any of these pieces
of hardware until these vendors figure out a way to hide the frequency
programming interface.</p>

<p>Ie. these cards can be programmed to transmit at any frequency, and
various government agencies don't like it when f.e. users can transmit on
military frequencies and stuff like that.</p>

<p>The only halfway plausible idea I've seen is to not document the frequency
programming registers, and users get a "region" key file that has opaque
register values to program into the appropriate registers.  The file is
per-region (one for US, Germany, etc.)and the wireless kernel driver reads
in this file to do the frequency programming.</p>

<p>So don't blame the vendors on this one, several of them would love to
publish drivers public for their cards, but simply cannot with upsetting
federal regulators.</p>

</quote>

<p>Alan Cox remarked that folks were already cracking the Windows interface
on those cards, and that non-US governments cared about this issue as well. He
said, <quote who="Alan Cox">The fact people are already abusing the technology
suggests that they will be forced to go the crypted settings route for next
generation hardware anyway.</quote> And added, <quote who="Alan Cox">I talked
to one vendor about this stuff and fingers crossed we will see open drivers
except for the radio module. In the longer term I suspect vendors will move
to signed register sets, so you can load "US 802.11g" but you can't load
"police frequency, full power"</quote></p>

<p>At some point Bas suggested that if these vendors were really willing to
release their specs, but were only holding back to satisfy government agencies,
then maybe they could release some binary drivers in the interim. Martin
replied to this, <quote who="Martin List-Petersen">I totally agree on this. A
binary driver could better than nothing at this point. Another thing that
wonders me, is why companies like Broadcom, if they are so open to releasing
the drivers at some point, where they can make the regulation agencies
somewhat happy, are so ignorant then. I've heard of serveral people, that
tried to get a statement on the possibilty for Linux drivers from then and the
return is nothing. I've actually tried myself. No response at all.</quote></p>

<p>Elsewhere, Carl-Daniel Hailfinger's eyes lit up at the prospect of
transmitting on military frequencies. He said he <quote who="Carl-Daniel
Hailfinger">wants binary only driver for these cards to build opensource
driver with ability to set "interesting" frequency range.</quote> Martin
said, <quote who="Martin List-Petersen">It's there for Windows.</quote>
And at some point, Richard B. Johnson said:</p>

<quote who="Richard B. Johnson">

<p>Contrary to popular opinion, there is no FCC regulation prohibiting
one from receiving some particular frequency. There is, however, a federal
law prohibiting the disclosure of a radio message by a third party. This
means that the media, or even law enforcement can't listen to a private
radio (cell phone) conversation and then disclose its content. At one time,
cell phones used FM at 960 MHz. This could be readily received by receivers
designed for Amateur Radio use. For a time, the FCC refused to Type Approve
receivers that cover these frequencies. However, most Hams know how to fix
their receivers so they can receive whatever they want and Type Approval
was only required for receivers that were designed to be sold. You could
build anything you want for yourself. This refusal to Type Approve receivers
was a trick to make the usual receiver owner think that there was some dumb
regulation when, in fact, under the Communications Act of 1934 (as amended),
there can't be such a regulation without creating a new public law, which
hasn't happened and probably will not.</p>

<p>Recently, some broadcast satellite companies have tried to get the FCC
to declare that their transmissions are private and unauthorized reception
should be unlawful. The FCC has continually postponed any such declaration
because, if once broadcast, a radio signal doesn't become public, then
anybody could sue every radio transmitter operator to prevent the trespass
of "their" signals onto private property.  You can't have it both ways,
either radio signals are public and, therefore cannot commit a trespass,
or they are private and can.</p>

<p>But, unlike some other countries regulators, the FCC has steadfastly
refused to allow broadcasters, even satellite broadcasters, to pursue such
extortion. Basically, once a signal leaves an antenna, it becomes public
property.</p>

<p>The same is not true for cable and "guided waves". Satellite broadcasters
have not been able to convince the FCC that their transmissions are "guided
waves". However, some private RF link companies signals, including some that
use satellites, are considered "guided waves" and cannot be used without
permission.</p>

<p>Various commercial interests have convinced governments of many other
countries that they "own" their radio signals and therefore different
regulations exist in many other countries.  In the UK, for instance, one has to
purchase a license to use a receiver (you know, some Sony Walkman). This is,
in my opinion, extremely repressive. It would be nice for somebody to start
suing the BBC (and others) to recover damages for the criminal trespass of
"their" radio signals onto private property. After a few such lawsuits,
the ownership of such broadcast signals would revert to the public, just
like in the US.</p>

</quote>

<p>Carl-Daniel replied, <quote who="Carl-Daniel Hailfinger">Here in Germany,
receiving some particular frequencies (e.g. those used by the police)
was prohibited a few years ago (I don't know exactly if they changed the
law). The argument was that some receiver types emitted a weak signal on the
frequency they were listening to (and could be tuned to become a private radio
station) which could interfere with the low-power police devices. However,
it was simply not sensible to prohibit all radios, so they were constained
to a specific frequency range.</quote></p>

<p>Close by, Alan took exception to Richard's statement that people needed
a license for things like a Sony Walkman in England. Alan said, <quote
who="Alan Cox">You need a license to receive terrestrial TV but that is
rather different and relates to both cultural and historical tax differences
in philosophy between the US and UK.  The big problem with 'soft' radios
is transmit. You can hotwire your centrino. People in the UK are already
trying to use US drivers in Windows XP because "they go further". If you
listen to police transmissions then its ultimately poor police security,
if you transmit on their frequency then its a lot more serious because you
might interfere with emergency services.</quote></p>

<correction who="Zack Brown" date="05 Aug 2003 00:00:00 -0800">Several
months later, in August, Ed Weinberg sent me an email saying that Richard's
"description of The Communications Act of 1934, as amended, is close. A few
years ago (less than 10, anyway) Congress passed a law forbidding radio's to
receive signals in the bands used by mobile phones. Unauthorised listening
to satellite transmissions seems to also be prevented by new laws. Recent
reports I have read say that the satellite broadcasters are getting people
under the DMCA."</correction>

</section>

<section
  title="'Must-Fix' Bug List For 2.6 (Or 3.0)"
  subject="must-fix list for 2.6.0"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0304.3/1247.html"
  posts="47"
  startdate="29 Apr 2003 14:57:31 -0800"
  enddate="02 May 2003 13:14:15 -0800"
>
<topic>Big Memory Support</topic>
<topic>Big O Notation</topic>
<topic>Bug Tracking</topic>
<topic>Device Mapper</topic>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>Executable File Format</topic>
<topic>FS: NFS</topic>
<topic>FS: ReiserFS</topic>
<topic>FS: devfs</topic>
<topic>FS: ext3</topic>
<topic>FS: sysfs</topic>
<topic>Hot-Plugging</topic>
<topic>Ioctls</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>Power Management: ACPI</topic>
<topic>Scheduler</topic>
<topic>Software Suspend</topic>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>

<mention>Chris Mason</mention>
<mention>Peter Braam</mention>
<mention>Pavel Machek</mention>
<mention>Mike Galbraith</mention>

<p>Andrew Morton said:</p>

<quote who="Andrew Morton">

<p>Below is a first cut at tracking the major work items which should be
completed for a 2.6 release.</p>

<p>When considering these items it would be useful to have a clear idea of
what a 2.6.0 release is actually _for_.  Obviously, 2.6.0 doesn't mean
"it's finished, ship it".</p>

<p>I'd propose that 2.6.0 means that users can migrate from 2.4.x with a good
expectation that everything which they were using in 2.4 will continue to
work, and that the kernel doesn't crash, doesn't munch their data and
doesn't run like a dog.  Other definitions are welcome.</p>

<p>I shall be maintaining list this so we can understand where we are with
respect to 2.6 readiness.  And so we can look at features and say "no".
And so we can look at bugs and say "not gating 2.6.0".  </p>

<p>Things we should not track here are:</p>

<p>

<ul>

<li>Regular old bugs.  Please use bugzilla.</li>

<li>Wishlist items.  This list is not a route for getting commitment for
inclusion of $FAVEFEATURE.  In fact it's probably a good way of getting the
feature shot down ;)</li>

<li>Driver problems.  Most important drivers mostly work OK now.  Please use
bugzilla.</li>

</ul>

</p>

<p>Things which we should track here are significantly-sized outstanding
development activities which resolve big bugs or which address missing
features &amp; speedups.</p>

<p>I've organised it into three main sections:   </p>

<p>

<ol>

<li>must-fix bugs which require significant amounts of work/restructuring
   to fix.</li>

<li>late features and speedups.</li>

<li>Important driver bugs.  This wasn't supposed to be here, but various
   contributors sent me a lot of details, and it would be sad to lose them.</li>

</ol>

</p>

<p>The list is already very long, and very incomplete.  Additions (and
removals!!!) are sought.   Thanks.</p>

<p>And thanks to the various contributors who helped pull this together.</p>

<h2>Must-fix bugs</h2>

<p><i>drivers/char/</i></p>

<p>

<ul>

<li>

<p>TTY locking is broken (see FIXME in do_tty_hangup())</p>

<p>  "One bug that was found is that the dropping of lock_kernel from do_exit
   caused races in the exit tty cleanup.  There was a patch for that, but I'm
   not sure it was merged."</p>

</li>

</ul>

</p>

<p><i>drivers/block/</i></p>

<p>

<ul>

<li>

<p>RAID0 dies on strangely aligned BIOs</p>

<p>  - Need to hoist BIO-split code out of device mapper, use that.</p>

<p> (neilb)</p>

<p> 1/ RAID5 should work fine.  It accepts any sort of bio and always
    submits a 1-page bio to the underlying device, and if my
    understanding is correct, every device must be able to handle a
    single page bio, no matter what the alignment (which is why raid0
    has a problem - it doesn't).</p>

<p> 2/ RAID1 works pretty well.  The only improvement needed is to define
    a merge_bvec_fn function which passes the question down to lower
    layers.  This should be easy except for the small fact that it is
    impossible :-)  There is no enforced pairing between calls to
    merge_bvec_fn and submit_bh, so it is possible that a hot spare
    with different restrictions could get swapped in between the one
    and the other and could confuse things.  I suspect that can be
    worked around somehow though...</p>

<p>       Someone sent me a patch that is sorely needed - it allows you
       to simply call blk_queue_stack() (or somethink like that), and it will
       get your stacked limits set appropriately.</p>

<p> 3/ I just realised that raid0 is easier than I had previously
    thought.  We don't need the completely functional bio splitting
    that dm has.  We only need to be able to split a bio that has just
    one page as the use of merge_bvec_fn will ensure that we never get
    a larger bio that we cannot handle.  And splitting a bio with only
    one page is a lot easier.  I now have code in my tree that
    implements this quite cleanly and will probably post a patch
    during the week.</p>

</li>

<li>ideraid hasn't been ported to 2.5 at all yet.</li>

<li>

<p>CD burning.  There are still a few quirks to solve wrt SG_IO and ide-cd.</p>

<p>  Jens: The basic hang has been solved (double fault in ide-cd), there still
  seems to be some cases that don't work too well.  Don't really have a
  handle on those :/</p>

</li>

<li>IDE tcq. Either kill it or fix it. Not a "big todo", as such.</li>

</ul>

</p>

<p><i>drivers/video/</i></p>

<p>

<ul>

<li>Lots of drivers don't compile, others do but don't work.</li>

</ul>

</p>

<p><i>fs/</i></p>

<p>

<ul>

<li>

<p>NFS client gets an OOM deadlock.</p>

<p>  - Some fixes exist in -mm.  Seem to mostly work.</p>

</li>

<li>

<p>NFS client runs very slowly consuming 100% CPU under heavy writeout.</p>

<p>  - Unsubtle fix exists in -mm.  (Looks like it's fixed anyway).</p>

</li>

<li>ext3 data=journal mode is bust.</li>

<li>ext3/htree doesn't play right with NFS server.  90% fixed in -mm.</li>

<li>

<p>AIO/direct-IO writes can race with truncate and wreck filesystems.</p>

<p>  - Easy fix is to only allow the feature for S_ISBLK files.</p>

</li>

<li>davej: NFS seems to have a really bad time for some people.  (Including
  myself on one testbox).  The common factor seems to be a high spec client
  torturing an underpowered NFS server with lots of IO.  (fsx/fsstress etc
  show this up).  Lots of "NFS server cheating" messages get dumped, and a
  whole lot of bogus packets start appearing.  They look severely corrupted,
  (they even crashed ethereal once 8-)</li>

</ul>

</p>

<p><i>kernel/</i></p>

<p>

<ul>

<li>

<p>O(1) scheduler starvation, poor behaviour seems unresolved.</p>

<p>  Jens: "I've been running 2.5.67-mm3 on my workstation for two days, and
  it still doesn't feel as good as 2.4.  It's not a disaster like some
  revisisons ago, but it still has occasional CPU "stalls" where it feels
  like a process waits for half a second of so for CPU time.  That's is very
  noticable."</p>

<p>   Also see Mike Galbraith's work.</p>

</li>

<li>

<p>Alan: 32bit uid support is *still* broken for process accounting.</p>

<p>  (Test case?)</p>

</li>

</ul>

</p>

<p><i>mm/</i></p>

<p>

<ul>

<li>

<p>Overcommit accounting gets wrong answers</p>

<p>  - underestimates reclaimable slab, gives bogus failures when
    dcache&amp;icache are large.</p>

<p>  - gets confused by reclaimable-but-not-freed truncated ext3 pages.
    Lame fix exists in -mm.</p>

</li>

<li>Proper user level no overcommit also requires a root margin adding</li>

</ul>

</p>

<p><i>modules</i></p>

<p>  (Rusty)</p>

<p>

<ul>

<li>The .modinfo patch needs to go in.  It's trivial, but it's the major
  missing functionality vs. 2.4.  Keeps bouncing off Linus.</li>

<li>__module_get(): "I know I have a refcount already and I don't care
  if they're doing rmmod --wait, gimme.".  Keeps bouncing off Linus.</li>

<li>Per-cpu support inside modules (have patch, in testing).</li>

<li>driver class code is getting redone.  I have this now working, and will
  send it out in a few days.</li>

</ul>

</p>

<p><i>net/</i></p>

<p>  (davem)</p>

<p>

<ul>

<li>

<p>UDP apps can in theory deadlock, because the ip_append_data path can end
  up sleeping while the socket lock is held.</p>

<p>  It is OK to sleep with the socket held held, normally.  But in this case
  the sleep happens while waiting for socket memory/space to become
  available, if another context needs to take the socket lock to free up the
  space we could hang.</p>

<p>  I sent a rough patch on how to fix this to Alexey, and he is analyzing
  the situation.  I expect a final fix from him next week or so.</p>

</li>

<li>

<p>Semantics for IPSEC during operations such as TCP connect suck currently.</p>

<p>  When we first try to connect to a destination, we may need to ask the
  IPSEC key management daemon to resolve the IPSEC routes for us.  For the
  purposes of what the kernel needs to do, you can think of it like ARP.  We
  can't send the packet out properly until we resolve the path.</p>

<p>  What happens now for IPSEC is basically this:</p>

<p>  O_NONBLOCK: returns -EAGAIN over and over until route is resolved</p>

<p>  !O_NONBLOCK: Sleeps until route is resolved</p>

<p>  These semantics are total crap.  The solution, which Alexey is working
  on, is to allow incomplete routes to exist.  These "incomplete" routes
  merely put the packet onto a "resolution queue", and once the key manager
  does it's thing we finish the output of the packet.  This is precisely how
  ARP works.</p>

<p>  I don't know when Alexey will be done with this.</p>

</li>

<li>There are those mysterious TCP hangs of established state sockets.
  Someone has to get a good log in order for us to effectively debug this.</li>

</ul>

</p>

<p><i>net/*/netfilter/</i></p>

<p>  (Rusty)</p>

<p>

<ul>

<li>Handle non-linear skbs everywhere.  This is going in via Dave now.</li>

<li>Rework conntrack hashing.</li>

<li>Module relationship bogosity fix (trivial, have patch).</li>

</ul>

</p>

<p><i>global</i></p>

<p>

<ul>

<li>Lots of 2.4 fixes including some security are not in 2.5</li>

<li>There are about 60 or 70 security related checks that need doing
  (copy_user etc) from Stanford tools</li>

<li>A couple of hundred real looking bugzilla bugs</li>

</ul>

</p>

<h2>Not-ready features and speedups</h2>

<p><i>drivers/block/</i></p>

<p>

<ul>

<li>Framework for selecting IO schedulers.  This is the main one really.
Once this is in place we can drop in new schedulers any old time, no
risk.</li>

<li>Dynamic disk request allocation.  Patch exists.</li>

<li>Runtime-selectable disk scheduler framework.</li>

<li>Anticipatory scheduler.  Working OK now, still has problems with seeky
  OLTP-style loads.</li>

<li>CFQ scheduler.  Seems to work but Jens planning significant rework.</li>

<li>The feral.com qlogic driver: needs work.</li>

</ul>

</p>

<p><i>fs/</i></p>

<p>

<ul>

<li>reiserfs_file_write() speedup.  There are concerns that some applications
  do the wrong thing with large stat.st_blksize.</li>

<li>ext3 lock_kernel() removal: that part works OK and is mergeable.  But
  we'll also need to make lock_journal() a spinlock, and that's deep
surgery.</li>

<li>32bit quota needs a lot more testing but may work now</li>

<li>Integrate Chris Mason's 2.4 reiserfs ordered data and data journaling
  patches.  They make reiserfs a lot safer.</li>

<li>

<p>(Trond:) Yes: I'm still working on an atomic "open()", i.e.  one
           where we short-circuit the usual VFS path_walk() + lookup() +
           permission() + create() + ....  bullsh*t...</p>

<p>           I have several reasons for wanting to do this (all of
           them related to NFS of course, but much of the reasoning applies
           to *all* networked file systems).</p>

<p>   1) The above sequence is simply not atomic on *any* networked
      filesystem.</p>

<p>   2) It introduces a sh*tload of completely unnecessary RPC calls (why
      do a 'permission' RPC call when the server is in *any* case going to
      tell you whether or not this operations is allowed.  Why do a
      'lookup()' when the 'create()' call can be made to tell you whether or
      not a file already exists).</p>

<p>   3) It is incompatible with some operations: the current create()
      doesn't pass an 'EXCLUSIVE' flag down to the filesystems.</p>

<p>   4) (NFS specific?) open() has very different cache consistency
      requirements when compared to most other VFS operations.</p>

<p>   I'd very much like for something like Peter Braam's 'lookup with
   intent' or (better yet) for a proper dentry->open() to be integrated with
   path_walk()/open_namei().  I'm still working on the latter (Peter has
   already completed the lookup with intent stuff).</p>

</li>

</ul>

</p>

<p><i>kernel/</i></p>

<p>  (Rusty)</p>

<p>

<ul>

<li>Zippel's Reference count simplification.  Tricky code, but cuts about 120
  lines from module.c.  Patch exists, needs stressing.</li>

<li>/proc/kallsyms.  What most people really wanted from /proc/ksyms.  Patch
  exists.</li>

<li>Fix module-failed-init races by starting module "disabled".  Patch
  exists, requires some subsystems (ie.  add_partition) to explicitly say
  "make module live now".  Without patch we are no worse off than 2.4 etc.</li>

<li>Integrate userspace irq balancing daemon.</li>

</ul>

</p>

<p><i>mm/</i></p>

<p>

<ul>

<li>objrmap: concerns over page reclaim performance at high sharing levels,
  and interoperation with nonlinear mappings is hairy.</li>

<li>Readd and make /proc/sys/vm/freepages writable again so that boxes can be
  tuned for heavy interrupt load.</li>

</ul>

</p>

<p><i>net/</i></p>

<p>  (davem)</p>

<p>

<ul>

<li>

<p>Real serious use of IPSEC is hampered by lack of MPLS support.  MPLS is a
  switching technology that works by switching based upon fixed length labels
  prepended to packets.  Many people use this and IPSEC to implement VPNs
  over public networks, it is also used for things like traffic engineering.</p>

<p>  A good reference site is:</p>

<p>        <a href="http://www.mplsrc.com/">http://www.mplsrc.com/</a></p>

<p>  Anyways, an existing (crappy) implementation exists.  I've almost
  completed a rewrite, I should have something in the tree next week.</p>

</li>

<li>

<p>Sometimes we generate IP fragments when it truly isn't necessary.</p>

<p>  The way IP fragmentation is specified, each fragment must be modulo 8
  bytes in length.  So suppose the device has an MTU that is not 0 modulo 8,
  ethernet even classifies in this way.  1500 == (8 * 187) + 4</p>

<p>  Our IP fragmenting engine can fragment on packets that are sized within
  the last modulo 8 bytes of the MTU.  This happens in obscure cases, but it
  does happen.</p>

<p>  I've proposed a fix to Alexey, whereby very late in the output path we
  check the packet, if we fragmented but the data length would fit into the
  MTU we unfragment the packet.</p>

<p>  This is low priority, because technically it creates suboptimal behavior
  rather than mis-operation.</p>

</li>

<li>

<p>IPV4 output engine changes for IPSEC need to be moved over to IPV6.</p>

<p>  IPV6 ipsec works but gravely suboptimally in some cases.  It is also for
  this reason that the zerocopy UDP stuff isn't functional on the ipv6 side.</p>

<p>  The USAGI project (www.linux-ipv6.org) is working with Alexey on this
  work.</p>

</li>

</ul>

</p>

<p><i>net/*/netfilter/</i></p>

<p>

<ul>

<li>Lots of misc. cleanups, which are happening slowly.</li>

<li>

<p>davem: Netfilter needs to stop linearizing packets as much as possible.</p>

<p>  Zerocopy output packets are basically undone by netfilter becuase all of
  it assumed it was working with linear socket buffers.</p>

<p>  Rusty is fixing this piece by piece.  He is nearly done with this work.</p>

</li>

</ul>

</p>

<p><i>power management</i></p>

<p>  (Pat) There is some preliminary work at bk://ldm.bkbits.net/linux-2.5-power,
  though I'm currently in the process of reworking it.</p>

<p>  It includes:</p>

<p>

<ul>

<li>New device power management core code, both for individual devices,
  and for global state transitions.</li>

<li>A generic user interface for triggering system power state transitions.</li>

<li>Arch-independent code for performing state transitions, that calls
  platform-specific methods along the way.</li>

<li>

<p>A better suspend-to-disk mechanism that swsusp.</p>

<p>  There are various other details to be worked out, which are the real fun
  part.  And of course, driver support, but that is something that can happen
  at any time.</p>

<p>  (Alan)</p>

</li>

<li>PCI locking</li>

<li>Frame buffer restore codepaths (that requires some deep PCI magic)</li>

<li>XFree86 hooks</li>

<li>AGP restoration</li>

<li>DRI restoration</li>

<li>IDE suspend/resume without races (Ben is looking at this a little)</li>

<li>How to deal with devices that babble (some stuff we have to global IRQ
  off to save, and global IRQ on -after- we recover with APM)</li>

<li>Pat's swsusp rework?</li>

</ul>

</p>

<p><i>arch/i386/</i></p>

<p>

<ul>

<li>Andi: i386 sub architectures for common boxes (in particular bigsmp and
  summit) need to be runtime probed options, not compile time.  Vendors
  cannot ship an own kernel rpm for all these cases.  (patch is in -mm, works
  OK).</li>

<li>Also PC9800 merge needs finishing to the point we want for 2.6 (not
all).</li>

<li>ES7000 wants merging (now we are all happy with it).  That shouldn't be a
  big problem.</li>

</ul>

</p>

<p><i>global</i></p>

<p>

<ul>

<li>64-bit dev_t.  Seems almost ready, but it's not really known how much
  work is still to do.  Patches exist in -mm but with the recent rise of the
  neo-viro I'm not sure where things are at.</li>

<li>

<p>We need a kernel side API for reporting error events to userspace (could
  be async to 2.6 itself)</p>

<p>  (Prototype core based on netlink exists)</p>

</li>

<li>Kai: Introduce a sane, easy and standard way to build external modules</li>

<li>Kai: Allow separate src/objdir</li>

</ul>

</p>

<p><i>drivers</i></p>

<p>

<ul>

<li>Alan: PCI random reordering from 2.4 to 2.5 isnt understood yet (might be
  fixed now?)</li>

<li>Alan: We have multiple drivers walking the pci device lists and also
  using things like pci_find_device in unsafe ways with no refcounting.  I
  think we have to make pci_find_device etc refcount somewhere and add
  pci_device_put as was done with networking.</li>

<li>Lots of network drivers don't even build</li>

<li>Alan: PCI hotplug is unsafe (locking is totally screwed)</li>

<li>Ditto cardbus</li>

<li>Alan: Cardbus/PCMCIA requires all Russell's stuff is merged to do
  multiheader right and so on</li>

</ul>

</p>

<p><i>drivers/acpi/</i></p>

<p>

<ul>

<li>davej: ACPI has a number of failures right now.  There are a number of
  entries in bugzilla which could all be the same bug.  It manifests as a
  "network card doesn't recieve packets" booting with 'acpi=off noapic' fixes
  it.</li>

<li>davej: There's also another nasty 'doesnt boot' bug which quite a few
  people (myself included) are seeing on some boxes (especially laptops).</li>

</ul>

</p>

<p><i>drivers/block/</i></p>

<p>

<ul>

<li>Alan: Partition handling is hosed for DM users.  (I have some partly
  debugged patches in the -ac tree, but Andries objects to them and I think
  his user knows magic options hack is unacceptable too.  Mostly this is
  figuring out the right answer)</li>

<li>Floppy is almost unusably buggy still</li>

</ul>

</p>

<p><i>drivers/char/</i></p>

<p>

<ul>

<li>Alan: Multiple serious bugs in the DRI drivers (most now with patches
  thankfully).  "The badness I know about is almost entirely IRQ mishandling.
   DRI failing to mask PCI irqs on exit paths."</li>

<li>Various suspect things in AGP.</li>

</ul>

</p>

<p><i>drivers/ide/</i></p>

<p>  (Alan)</p>

<p>

<ul>

<li>IDE requires bio walking</li>

<li>IDE PIO has occasional unexplained PIO disk eating reports</li>

<li>IDE has multiple zillions of races/hangs in 2.5 still</li>

<li>IDE eats disks with HPT372N on 2.5.x</li>

<li>IDE scsi needs rewriting</li>

<li>IDE needs significant reworking to handle Simplex right</li>

<li>IDE hotplug handling for 2.5 is completely broken still</li>

</ul>

</p>

<p><i>drivers/isdn/</i></p>

<p>  (Kai, rmk)</p>

<p>

<ul>

<li>isdn_tty locking is completely broken (cli() and friends)</li>

<li>fix lots of remaining bugs in the isdn link layer / hisax protocol layer
  / hisax subdrivers, so that at least 99% of the users have a usable ISDN
  subsystem</li>

<li>fix other drivers</li>

<li>lots more cleanups, adaption to recent APIs etc</li>

<li>

<p>fixup tty-based ISDN drivers which provide TIOCM* ioctls (see my recent
  3-set patch for serial stuff)</p>

<p>  Alternatively, we could re-introduce the fallback to driver ioctl parsing
  for these if not enough drivers get updated.</p>

</li>

<li>fixup the usb-serial core and drivers to provide support for this
  patch.</li>

</ul>

</p>

<p><i>drivers/net/</i></p>

<p>

<ul>

<li>davej: Either Wireless network drivers or PCMCIA broke somewhen.  A
  configuration that worked fine under 2.4 doesn't receive any packets.  Need
  to look into this more to make sure I don't have any misconfiguration that
  just 'happened to work' under 2.4</li>

</ul>

</p>

<p><i>drivers/scsi/</i></p>

<p>

<ul>

<li>Half of SCSI doesn't compile</li>

</ul>

</p>

<p><i>arch/i386/</i></p>

<p>

<ul>

<li>2.5.x won't boot on some 440GX</li>

<li>2.5.x doesn't handle VIA APIC right yet - dont know why</li>

<li>ACPI needs the relax patches merging to work on lots of laptops</li>

<li>ECC driver questions are not yet sorted (DaveJ is working on this)</li>

</ul>

</p>

<p><i>arch/x86_64/</i></p>

<p>  (Andi)</p>

<p>

<ul>

<li>time handling is broken. Need to move up 2.4 time.c code.</li>

<li>memory corruption with IOMMU pci_free_consistent - often causes crashes
  at shutdown.  This is rather mysterious, the code is basically identical to
  2.4 which works fine.  Can only be seen on systems with >4GB of memory or
  with iommu=force</li>

<li>Another report of a crash at shutdown on Simics with no iommu when all
  memory was used.  Could be related to the one above.</li>

<li>change_page_attr corrupts memory/crashes. Breaks some AGP users.</li>

<li>NMI watchdog seems to tick too fast</li>

<li>some fixes from 2.4 still need to be merged</li>

<li>not very well tested. probably more bugs lurking.</li>

</ul>

</p>

</quote>

<p>Andi Kleen replied:</p>

<quote who="Andi Kleen">

<p>I found a new bad class of bugs (slowly working on fixing them, also
present in 2.4)</p>

<p>Machine Check handlers use printk in an NMI like (ignoring cli) situation.
This can deadlock on the console or low level character driver (serial, vga)
locks. Not all MCEs are fatal (e.g. corrected ECC errors) and the kernel
should be safely able to continue.</p>

<p>Need to buffer the printk in an atomic fashion (e.g. in a ring buffer managed
with cmpxchg) and cause an self IPI that triggers an interrupt after
the next sti. This is easy with x86/APIC mode, but difficult with PIC
(the 8259 supports it in theory, but it's not clear that all clones in various
chipsets do; also changing the programming may be risky). Fallback: pick it
up with the next timer interrupt by adding a check there.</p>

<p>New entries for the x86-64 list
(actually I'm not sure they are all x86-64 specific, just that the
bug has been seen there)</p>

<p>

<ul>

<li>32bit core dumps do not dump 32bit SSE data currently. they should</li>

<li>AT_GID/AT_UID ELF environment vector contains crap currently
This breaks debugging of the shared linker for suid programs because
ld.so always thinks it is suid/not called by root and ignores environment
variables.</li>

<li>NIS/ypbind breaks with an abort() in glibc. Only happens on 2.5, 2.4
is fine.</li>

<li>

<p>need /proc/kcore access for kernel mappings that are outside vmalloc
(in particular the kernel and the modules are special mappings on x86-64;
other architectures have the same problem)</p>

<p>Best would be to put them in the vmalloc mappings list, but that requires
some more fixes in other code that uses it. Also /proc/kcore seems to have
some 64bit signedness bugs (patch for 2.4 exists)</p>

</li>

</ul>

</p>

<p>Generic item:</p>

<p>

<ul>

<li>need to share the ioctl 32bit emulation handlers between ports.
Pavel has a patch, but he's running into difficulties with merging it.</li>

</ul>

</p>

</quote>

<p>To the generic item, Pavel Machek replied that his patch had been accepted.
Andi replied that things were still quite broken; and Pavel said a new patch was
on his way to Linus.</p>

<p>Elsewhere, regarding Andrew's item regarding IDE suspend/resume without
races, Benjamin Herrenschmidt said, <quote who="Benjamin Herrenschmidt">I
have something that work not too badly for PPC already but that need some
cleanup, to be tested/adapted to Pat's new work (especially tested against
his swsusp, and we shall still verify if it fits x86 needs)</quote>.</p>

<p>Elsewhere, Christoph Hellwig added his own items to Andrew's list:</p>

<quote who="Christoph Hellwig">

<p><i>drivers/scsi/</i></p>

<p>

<ul>

<li>

<p>large parts of the locking are hosed or not existant</p>

<p>

<ul>

<li>shost-&gt;my_devices isn't locked down at all</li>

<li>the host list ist locked but not refcounted, mess can
         happen when the spinlock is dropped</li>

<li>there are lots of members of struct Scsi_Host/scsi_device/scsi_cmnd
        with very unclear locking, many of them probably want to become
        atomic_t's or bitmaps (for the 1bit bitfields).</li>

<li>there's lots of volatile abuse in the scsi code that needs to
        be thought about.</li>

<li>there's some global variables incremented without any locks</li>

</ul>

</p>

</li>

</ul>

</p>

<p><i>fs/devfs/</i></p>

<p>

<ul>

<li>there's a fundamental lookup vs devfsd race that's only fixable
   by introducing a lookup vs devfs deadlock.  I can't see how this
   is fixable without getting rid of the current devfsd design.
   Mandrake seems to have a workaround for this so this is at least
   not triggered so easily, but that's not what I'd considere a fix..</li>

</ul>

</p>

</quote>

</section>

<section
  title="OSS Support For ICH5 Sound"
  subject="OSS support for ICH5 sound"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/0166.html"
  posts="3"
  startdate="01 May 2003 13:14:47 -0800"
  enddate="02 May 2003 00:48:18 -0800"
>
<topic>Sound: OSS</topic>

<p>Martin Schlemmer got sound working on his ICH5, by simply adding the ICH5
IDs to the list. That worked for his system, but Jeff Garzik replied, <quote
who="Jeff Garzik">Unfortunately this doesn't work on all ICH5s out there.
At the very minimum, for now, it would be nice to match up ich5 and codec
pairs, as codec differentiation seems to be what stops this patch from
working on all ICH5.</quote> And Martin replied:</p>

<quote who="Martin Schlemmer">

<p>Hmm, right.</p>

<p>Anybody working on getting support for the 875 Chipset into 2.5?  Can I
send a 'lspci -vv' to help ?  I have a Asus P4C800 here (Intel 875p), so I
can do some testing if need be.</p>

</quote>

<p>But there was no reply.</p>

</section>

<section
  title="Aic7xxx And Aic79xx Driver Updates"
  subject="Aic7xxx and Aic79xx Driver Updates"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/0176.html"
  posts="12"
  startdate="01 May 2003 14:28:12 -0800"
  enddate="07 May 2003 00:31:45 -0800"
>
<topic>BSD: FreeBSD</topic>
<topic>Version Control</topic>

<p>Justin T. Gibbs announced:</p>

<quote who="Justin T. Gibbs">

<p>I've just uploaded version 1.3.8 of the aic79xx driver and version
6.2.33 of the aic7xxx driver.  Both are available for 2.4.X and
2.5.X kernels in either bk send format or as a tarball from here:</p>

<p><a href="http://people.FreeBSD.org/~gibbs/linux/SRC/">http://people.FreeBSD.org/~gibbs/linux/SRC/</a></p>

<p>RPMs and DUDs for various distributions are also available:</p>

<p>

<a href="http://people.FreeBSD.org/~gibbs/linux/DUD/aic7xxx/">http://people.FreeBSD.org/~gibbs/linux/DUD/aic7xxx/</a><br />
<a href="http://people.FreeBSD.org/~gibbs/linux/DUD/aic79xx/">http://people.FreeBSD.org/~gibbs/linux/DUD/aic79xx/</a><br />
<a href="http://people.FreeBSD.org/~gibbs/linux/RPM/aic7xxx/">http://people.FreeBSD.org/~gibbs/linux/RPM/aic7xxx/</a><br />
<a href="http://people.FreeBSD.org/~gibbs/linux/RPM/aic79xx/">http://people.FreeBSD.org/~gibbs/linux/RPM/aic79xx/</a><br />

</p>

</quote>

</section>

<p>Willy Tarreau replied, <quote who="Willy Tarreau">I've just tested it
and I still have the deadlock on SMP. I also tried with noapic, but it didn't
change. I have reduced the TCQ from 253 to 32, and I had the impression that it
was more difficult to trigger, although I cannot be certain. With 32, I could
boot and go to about half the 'make -j 8 dep', while it hanged during init
script with 253. I may retest by the week-end, but now I'm going to sleep. Now
I'm back to 6.2.28 and everything's OK.</quote> Justin posted another patch
and asked him to try it out. He said, <quote who="Justin T. Gibbs">It seems
I forgot to pull part of a change from the aic79xx driver into the aic7xxx
driver.  This could easily cause a lock order reversal. &lt;sigh&gt;</quote>
Willy said the new patch worked for him; and crawled off to bed.</p>

<section
  title="Possible License Violations Within The Kernel Source"
  subject="Did the SCO Group plant UnixWare source in the Linux kernel?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/0226.html"
  posts="19"
  startdate="01 May 2003 19:21:36 -0800"
  enddate="02 May 2003 20:26:36 -0800"
>

<p>Someone gave a link to a <a
href="http://msnbc-cnet.com.com/2100-1016_3-999371.html">CNet article</a> which
said that the SCO group claimed to have found instances of copyrighted UnixWare
code in the Linux kernel sources. Chris Friesen replied:</p>

<quote who="Chris Friesen">

<p>According to an article here:</p>

<p><a
href="http://slashdot.org/articles/03/05/01/2332226.shtml?tid=167&amp;tid=99">http://slashdot.org/articles/03/05/01/2332226.shtml?tid=167&amp;tid=99</a></p>

<p>SCO-Caldera Senior Vice President Chris Sontag explicitly says that the
kernel.org kernel is *not* tainted, but that that other stuff that Red Hat
and SuSE are including *is*.</p>

<p>Quote from the interview:</p>

<p>"Chris Sontag: We're not talking about the Linux kernel that Linus and
others have helped develop. We're talking about what's on the periphery of
the Linux kernel."</p>

<p>He doesn't specify exactly what he's talking about, but he makes an
interesting claim:</p>

<p>"Chris Sontag: We are using objective third parties to do comparisons of
our UNIX System V [SCO-owned Unix] source code and Red Hat as an example. We
are coming across many instances where our proprietary software has simply
been copied and pasted or changed in order to hide the origin of our System
V code in Red Hat. This is the kind of thing that we will need to address
with many Linux distribution companies at some point."</p>

</quote>

<p>But Nomen Nescio said:</p>

<quote who="Nomen Nescio">

<p>Hmm.  SCO Group Chief Executive Darl
McBride says _exactly_ the opposite according to <a
href="http://msnbc-cnet.com.com/2100-1016_3-999371.html">http://msnbc-cnet.com.com/2100-1016_3-999371.html</a>
:</p>

<p>"We're finding ... cases where there is line-by-line code in the Linux
kernel that is matching up to our UnixWare code.</p>

<p>We're finding code that looks likes it's been obfuscated to make it look
like it wasn't UnixWare code -- but it was."</p>

<p>Chris Sontag should get his story straight with his boss before he opens
his mouth to the press.</p>

</quote>

<p>Elsewhere, Christoph Hellwig replied to the original post as well,
saying:</p>

<quote who="Christoph Hellwig">

<p>As somone who walked for SCO (or rather Caldera how it was called at that
time) I can tell you this is utter crap.  There were very people actually
doing Linux kernel work then (and when the German office was closed down
all those left the company) and we really had better things to do then
trying to retrofit UnixWare code into the linux kenrel.  Especially given
that the kernel internals are so different that you'd need a big glue
layer to actually make it work and you can guess how that would be
ripped apart in a usual lkml review :)</p>

<p>It might be more interesting to look for stolen Linux code in Unixware,
I'd suggest with the support for a very well known Linux fileystem in
the Linux compat addon product for UnixWare..</p>

</quote>

<p>Jim Nance said, <quote who="Jim Nance">Wouldnt it be halirous if whatever
code SCO is talking about when they say there is Unix code in Linux turns out
to be code some SCO employee ripped out of some GPL program and stuck it into
Unixware.  That is actually far more likely than what they alledge.</quote></p>

<p>There were a few more quips, and the thread petered out inconclusively.</p>

</section>

<section
  title="New Release Of Hotplugging Scripts"
  subject="[ANNOUNCE] 2003-05-01 release of hotplug scripts"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/0246.html"
  posts="1"
  startdate="01 May 2003 22:22:46 -0800"
>
<topic>Hot-Plugging</topic>

<p>Greg KH announced:</p>

<quote who="Greg KH">

<p>I've just packaged up the latest Linux hotplug scripts into a release,
which can be found at:</p>

<p><a
href="http://sourceforge.net/project/showfiles.php?group_id=17679">http://sourceforge.net/project/showfiles.php?group_id=17679</a></p>

<p>Or from your favorite kernel.org mirror at:  </p>

<p><a href="http://kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01.tar.gz">kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01.tar.gz</a></p>

<p>or for those who like bz2 packages:</p>

<p><a href="http://kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01.tar.bz2">kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01.tar.bz2</a></p>

<p>I've also packaged up some pre-built (and signed) Red Hat 7.3 based rpms:</p>

<p><a href="http://kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01-1.noarch.rpm">kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01-1.noarch.rpm</a></p>

<p><a href="http://kernel.org/pub/linux/utils/kernel/hotplug/hotplug-base-2003_05_01-1.noarch.rpm">kernel.org/pub/linux/utils/kernel/hotplug/hotplug-base-2003_05_01-1.noarch.rpm</a></p>

<p>The source rpm is available if you want to rebuild it for other distros
or versions of Red Hat at:</p>

<p><a href="http://kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01-1.src.rpm">kernel.org/pub/linux/utils/kernel/hotplug/hotplug-2003_05_01-1.src.rpm</a></p>

<p>The main web site for the linux-hotplug project can be found at:</p>

<p><a href="http://linux-hotplug.sf.net/">http://linux-hotplug.sf.net/</a></p>

<p>which contains lots of documentation on the whole linux-hotplug
process.</p>

<p>There are lots of changes in this release from the last one (which was
almost 8 months ago), most of them make things work better for systems
running 2.5, but some of them fix problems that 2.4 users will see.</p>

<p>Some of the major changes in this release are:</p>

<p>

<ul>

<li>fix for the lack of a drivers file in usbfs in 2.5.</li>
<li>initial scsi.agent for 2.5, modprobes sd_mod or sr_mod</li>
<li>call devlabel if it's present</li>
<li>made /sbin/hotplug a tiny multiplexer program, moving the original
          /sbin/hotplug program to /etc/hotplug.d/default/default.hotplug</li>

</ul>

</p>

<p>The full ChangeLog extract since the last release is included below for
those who want to know everything that's been changed, and who to blame
for them :)</p>

</quote>

</section>

<section
  title="kdb 4.2 Released"
  subject="Announce: kdb v4.2 is available for kernel 2.4.20, i386 and ia64"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/0252.html"
  posts="3"
  startdate="01 May 2003 23:14:56 -0800"
  enddate="05 May 2003 13:10:02 -0800"
>
<topic>Big O Notation</topic>
<topic>FS: XFS</topic>
<topic>Forward Port</topic>
<topic>Scheduler</topic>
<topic>USB</topic>

<mention>Steven Dake</mention>
<mention>Vamsi Krishna S.</mention>

<p>Keith Owens announced <a
href="ftp://oss.sgi.com/projects/kdb/download/v4.2/">kdb</a> kernel debugger
4.2 for the 2.4.20 kernel on i386 and ia64 systems. He said:</p>

<quote who="Keith Owens">

<p>Changelog extracts since v4.1.</p>

<p>2003-05-02 Keith Owens &lt;kaos@sgi.com&gt;</p>

<p>

<ul>

<li>Some architectures have problems with the initial empty kallsyms
          section so revert to three kallsyms passes. </li>
<li>Flush buffered input at startup and at 'more' prompt.</li>
<li>Only print 'more' prompt when longjmp data is available.</li>
<li>Print more data for buffers and inodes.</li>
<li>Disable kill command when O(1) scheduler is installed, the code
          needs to be redone for O(1).</li>
<li>The kernel has an undocumented assumption that enable_bh() is
          always called with interrupts enabled, make it so.</li>
<li>Print trailing punctuation even for symbols that are not in kernel.</li>
<li>Add read/write access to user pages.  Vamsi Krishna S., IBM</li>
<li>Rename cpu_is_online to cpu_online, as in 2.5.</li>
<li>O(1) scheduler removes init_task so kdb maintains its own list of
          active tasks.</li>
<li>Delete btp 0 &lt;cpuid&gt; option, it needed init_tasks.</li>
<li>Clean up USB keyboard support.  Steven Dake.</li>
<li>Sync with XFS 2.4.20 tree.</li>
<li>kdb v4.2-2.4.20-common-1.</li>

</ul>

</p>

<p>2.4.20-i386-1</p>

<p>2003-05-02 Keith Owens &lt;kaos@sgi.com&gt;</p>

<p>

<ul>

<li>Add kdba_fp_value().</li>
<li>Limit backtrace size to catch loops.</li>
<li>Add read/write access to user pages.  Vamsi Krishna S., IBM</li>
<li>Clean up USB keyboard support.  Steven Dake.</li>
<li>kdb v4.2-2.4.20-i386-1.</li>

</ul>

</p>

<p>2.4.20-ia64-020821-1</p>

<p>2003-05-02 Keith Owens  &lt;kaos@sgi.com&gt;</p>

<p>

<ul>

<li>Add kdba_fp_value().</li>
<li>Limit backtrace size to catch loops.</li>
<li>Print spinlock name in ia64_spinlock_contention.</li>
<li>Tweak INIT slave stack lock and handler.</li>
<li>Add read/write access to user pages.  Vamsi Krishna S., IBM</li>
<li>Rename cpu_is_online to cpu_online, as in 2.5.</li>
<li>Clean up USB keyboard support.</li>
<li>Clean up serial console support.</li>
<li>kdb v4.2-2.4.20-ia64-020821-1.</li>

</ul>

</p>

</quote>

<p>And Thomas Duffy replied:</p>

<quote who="Thomas Duffy">

<p>Attached is a (link to a) forward port of the sparc64 kdb patch to v4.2
of kdb.  It is still rough around the edges, but it at least builds and
boots and is somewhat usable.</p>

<p>You must apply the kdb common patch and the patch to kdb common I sent
earlier to get it to build properly.</p>

<p>Enjoy!</p>

<p><a
href="http://www.dslextreme.com/users/tomduffy/kdb-v4.2-2.4.20-sparc64-1.bz2">http://www.dslextreme.com/users/tomduffy/kdb-v4.2-2.4.20-sparc64-1.bz2</a></p>

</quote>

</section>

<section
  title="New 'Exec Shield' Security Feature"
  subject="[Announcement] &quot;Exec Shield&quot;, new Linux security feature"
  posts="49"
  startdate="02 May 2003 08:37:23 -0800"
  enddate="05 May 2003 05:35:02 -0800"
>
<topic>Executable File Format</topic>
<topic>FS: sysfs</topic>
<topic>Virtual Memory</topic>

<mention>Johannes</mention>

<p>Ingo Molnar announced:</p>

<quote who="Ingo Molnar">

<p>We are pleased to announce the first publically available source code
release of a new kernel-based security feature called the "Exec Shield",
for Linux/x86. The kernel patch (against 2.4.21-rc1, released under the
GPL/OSL) can be downloaded from:</p>

<p><a href="http://redhat.com/~mingo/exec-shield/">http://redhat.com/~mingo/exec-shield/</a></p>

<p>The exec-shield feature provides protection against stack, buffer or
function pointer overflows, and against other types of exploits that rely
on overwriting data structures and/or putting code into those structures.
The patch also makes it harder to pass in and execute the so-called
'shell-code' of exploits. The patch works transparently, ie. no
application recompilation is necessary.</p>

<p>Background:<br />
-----------</p>

<p>It is commonly known that x86 pagetables do not support the so-called
executable bit in the pagetable entries - PROT_EXEC and PROT_READ are
merged into a single 'read or execute' flag. This means that even if an
application marks a certain memory area non-executable (by not providing
the PROT_EXEC flag upon mapping it) under x86, that area is still
executable, if the area is PROT_READ.</p>

<p>Furthermore, the x86 ELF ABI marks the process stack executable, which
requires that the stack is marked executable even on CPUs that support an
executable bit in the pagetables.</p>

<p>This problem has been addressed in the past by various kernel patches,
such as Solar Designer's excellent "non-exec stack patch". These patches
mostly operate by using the x86 segmentation feature to set the code
segment 'limit' value to a certain fixed value that points right below the
stack frame. The exec-shield tries to cover as much virtual memory via the
code segment limit as possible - not just the stack.</p>

<p>Implementation:<br />
---------------</p>

<p>The exec-shield feature works via the kernel transparently tracking
executable mappings an application specifies, and maintains a 'maximum
executable address' value. This is called the 'exec-limit'. The scheduler
uses the exec-limit to update the code segment descriptor upon each
context-switch. Since each process (or thread) in the system can have a
different exec-limit, the scheduler sets the user code segment dynamically
so that always the correct code-segment limit is used.</p>

<p>the kernel caches the user segment descriptor value, so the overhead in
the context-switch path is a very cheap, unconditional 6-byte write to the
GDT, costing 2-3 cycles at most.</p>

<p>Furthermore, the kernel also remaps all PROT_EXEC mappings to the
so-called ASCII-armor area, which on x86 is the addresses 0-16MB. These
addresses are special because they cannot be jumped to via ASCII-based
overflows. E.g. if a buggy application can be overflown via a long URL:</p>

<p>  http://somehost/buggy.app?realyloooooooooooooooooooong.123489719875</p>

<p>then only ASCII (ie. value 1-255) characters can be used by attackers. If
all executable addresses are in the ASCII-armor, then no attack URL can be
used to jump into the executable code - ie. the attack cannot be
successful. (because no URL string can contain the \0 character.) E.g. the
recent sendmail remote root attack was an ASCII-based overflow as well.</p>

<p>With the exec-shield activated, and the 'cat' binary relinked into the the
ASCII-armor, the following layout is created:</p>

<pre>  $ ./cat-lowaddr /proc/self/maps
  00101000-00116000 r-xp 00000000 03:01 319365     /lib/ld-2.3.2.so
  00116000-00117000 rw-p 00014000 03:01 319365     /lib/ld-2.3.2.so
  00117000-0024a000 r-xp 00000000 03:01 319439     /lib/libc-2.3.2.so
  0024a000-0024e000 rw-p 00132000 03:01 319439     /lib/libc-2.3.2.so
  0024e000-00250000 rw-p 00000000 00:00 0
  01000000-01004000 r-xp 00000000 16:01 2036120    /home/mingo/cat-lowaddr
  01004000-01005000 rw-p 00003000 16:01 2036120    /home/mingo/cat-lowaddr
  01005000-01006000 rw-p 00000000 00:00 0
  40000000-40001000 rw-p 00000000 00:00 0
  40001000-40201000 r--p 00000000 03:01 464809     locale-archive
  40201000-40207000 r--p 00915000 03:01 464809     locale-archive
  40207000-40234000 r--p 0091f000 03:01 464809     locale-archive
  40234000-40235000 r--p 00955000 03:01 464809     locale-archive
  bfffe000-c0000000 rw-p fffff000 00:00 0</pre>

<p>In the above layout, the highest executable address is 0x01003fff, ie.
every executable address is in the ASCII-armor.</p>

<p>this means that not only the stack is non-executable, but lots of
mmap()-ed data areas and the malloc() heap is non-executable as well.
(some data areas are still executable, but most of them are not.)</p>

<p>the first 1MB of the ASCII-armor is left unused to provide NULL pointer
dereference protection and leave space for 16-bit emulation mappings used
by XFree86 and others.</p>

<p>Compare this with the memory layout without exec-shield:</p>

<pre>  08048000-0804b000 r-xp 00000000 16:01 3367       /bin/cat
  0804b000-0804c000 rw-p 00003000 16:01 3367       /bin/cat
  0804c000-0804e000 rwxp 00000000 00:00 0
  40000000-40012000 r-xp 00000000 16:01 3759       /lib/ld-2.2.5.so
  40012000-40013000 rw-p 00011000 16:01 3759       /lib/ld-2.2.5.so
  40013000-40014000 rw-p 00000000 00:00 0
  40018000-40129000 r-xp 00000000 16:01 4058       /lib/libc-2.2.5.so
  40129000-4012f000 rw-p 00111000 16:01 4058       /lib/libc-2.2.5.so
  4012f000-40133000 rw-p 00000000 00:00 0
  bffff000-c0000000 rwxp 00000000 00:00 0</pre>

<p>In this layout none of the executable areas are in the ASCII-armor, plus
the exec-limit is 0xbfffffff (3GB) - ie. including all userspace mappings.</p>

<p>Note that the kernel will relocate every shared-library to the
ASCII-armor, but the binary address is determined at link-time. To ease
the relinking of applications to the ASCII-armor, Arjan Van de Ven has
written a binutils patch (binutils-2.13.90.0.18-elf-small.patch), which
adds a new 'ld' flag "ld -melf_i386_small" (or "gcc -Wl,-melf_i386_small")
to relink applications into the ASCII-armor. (The patch can be found at
the exec-shield URL as well.)</p>

<p>Overhead:<br />
---------</p>

<p>the patch was designed to be as efficient as possible. There's a very
minimal (couple of cycles) tracking overhead for every PROT_MMAP
system-call, plus there's the 2-3 cycles cost per context-switch.</p>

<p>Limitations:<br />
------------</p>

<p>This feature will not protect against every type of attack.</p>

<p>E.g. if an overflow can be used to overwrite a local variable which
changes the flow of control in a way that compromises the system. But we
do believe that this feature will stop every attack that is purely
operating by overflowing the return address on the stack, or overflowing a
function pointer in the heap. Furthermore, exec-shield makes it quite hard
to mount a successful attack even in the other cases, because it inhibits
the execution of exploit shell-code, in most cases.</p>

<p>also, if the overflow is within the exec-shield itself (e.g. within the
data section of one of the shared library objects in the ASCII-armor) then
the overflow might be possible to exploit.</p>

<p>All in one, exec-shield is one barrier against attacks, not blanket 100%
protection in any way. The most efficient security can be provided by
installing as many layers as possible.</p>

<p>To provide as good protection as possible, there's no trampoline
workaround in the exec-shield code - ie. exec-limit violations in the
trampoline case are never let through. Applications that need to rely on
gcc trampolines will have to use the per-binary ELF flag to make the stack
executable again. (The ELF flag is the same as used by Solar Designer's
non-exec stack patch, to provide as much compatibility with existing
non-exec-stack installations as possible.)</p>

<p>The exec-shield feature will uncover applications that incorrectly assumed
that PROT_READ allows execution on x86. One such example is the XFree86
module loader. The latest XFree86 on rawhide.redhat.com fixes this
problem. For those who cannot install the XFree86 bugfix at the moment
there's a workaround added by the patch, which can be activated via:</p>

<p>    echo 1 &gt; /proc/sys/kernel/X-workaround</p>

<p>This will make every iopl() using application (such as X) have the
exec-shield disabled. Other applications (sendmail, etc.) will still have
the exec-shield enabled. This workaround is default-off. We strongly
encourage to solve this problem by upgrading X, or by using the 'chkstk'
utility to make X's stack forced-executable.</p>

<p>Using it:<br />
---------</p>

<p>Apply the exec-shield-2.4.21-rc1-B6 kernel patch to the 2.4.21-rc1 kernel,
recompile &amp; install the kernel and reboot into it, that's all.</p>

<p>There is a new boot-time kernel command line option called exec-shield=,
which has 4 values. Each value represents a different level of security:</p>

<pre> exec-shield=0    - always-disabled
 exec-shield=1    - default disabled, except binaries that enable it
 exec-shield=2    - default enabled, except binaries that disable it
 exec-shield=3    - always-enabled</pre>

<p>the current patch defaults to 'exec-shield=2'. The security level can also
be changed runtime, by writing the level into /proc:</p>

<p>  echo 0 &gt; /proc/sys/kernel/exec-shield</p>

<p>IMPORTANT: security-relevant applications that were started while the
exec-shield was disabled, will have an executable stack and will thus have
to be restarted if the exec-shield is enabled again.</p>

<p>I've also uploaded a modified version of Solar Designer's chstk.c code,
which adds the options necessary to change the 'enable non-exec stack' ELF
flag:</p>

<pre>  $ ./chstk
  Usage: ./chstk OPTION FILE...
  Manage stack area executability flag for binaries

    -e    enable execution permission
    -E    enable non-execution permission
    -d    disable execution permission
    -D    disable non-execution permission
    -v    view current flag state</pre>

<p>ie. there are two distinct flags, one for forcing an executable stack, one
for forcing a non-executable stack. If both flags are zero then the binary
will follow the system default.</p>

<p>ie. it's possible to use an exec-shield level of 1, and enable the
non-exec stack on a per binary basis, by using the 'exec-shield=1' boot
option and changing binaries one at a time:</p>

<p>   ./chstk -E /usr/sbin/sendmail</p>

<p>(People migrating production environments to an exec-shield kernel might
prefer this variant.)</p>

<p>anyway, comments, suggestions and test feedback is welcome.</p>

</quote>

<p>Later, he posted an update:</p>

<quote who="Ingo Molnar">

<p>a new (-C5) release of the exec-shield patch can be found at:</p>

<p><a
href="http://redhat.com/~mingo/exec-shield/exec-shield-2.4.21-rc1-C5">http://redhat.com/~mingo/exec-shield/exec-shield-2.4.21-rc1-C5</a></p>

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

<p>

<ul>

<li>removed the X_workaround - chstk can be used for equivalent
   functionality. (issue raised by Yoav Weiss)</li>

<li>increase SHLIB_BASE from 1MB to 1MB + 64KB, suggested by Alexandre
   Julliard, to fix DOS loaders.</li>

<li>fix Pentium/i386 compilation failure in fault.c. (reported by Johannes
   Walch)</li>

<li>fix signal return bug, found by pageexec@freemail.hu.</li>

<li>shared library address randomization, both within and outside the
   ASCII-shield. This should make remote attacks a little bit more
   difficult.</li>

<li>process stack randomization. A number of other patches did this as
   well, it generally helps. (There's no memory wasted because the stack
   area left out will simply not be paged in.)</li>

<li>turn off shlib relocation if the stack is executable. This is needed
   for Wine, qemu and other apps that need the low memory range.</li>

<li>do not show the wchan field of non-owned processes, and do not show the
   maps file either. This should make it a little bit harder to guess
   library locations for local attackers.</li>

</ul>

</p>

<p>most of the new stuff in this patch (randomization, information filtering)
has been done in other patches as well (such as PaX, grsecurity, non-exec
stack patch, etc.) - i tried to filter out and add the ones that matter
most, do not introduce constraints and are thus uncontroversial.</p>

</quote>

<p>Various folks were very happy to see this work, and a bunch of people started
discussing the implementation and various security issues.</p>

</section>

<section
  title="Status Of 'make xconfig'"
  subject="make xconfig &amp; qt"
  posts="5"
  startdate="03 May 2003 11:44:40 -0800"
  enddate="03 May 2003 22:42:46 -0800"
>

<mention>Sam Ravnborg</mention>
<mention>Diego Calleja Garcia</mention>

<p>Daniele Pala asked, <quote who="Daniele Pala">Trying to run 'make xconfig'
i got into the message 'you don't have installed qt!'...so the xconfig is
now dependant from qt? why? what about us poor guy who only use twm and
not kde? isn't qt pretty big and fat?</quote> Diego Calleja Garcia replied
that 'make gconfig' would use the gtk library; Balram Adlakha said, <quote
who="Balram Adlakha">I think xconfig should be the "X" based one, qconfig
should be the qt based one and gconfig should be the gtk one.</quote> Sam
Ravnborg invited him to contribute a generic X-based config program.</p>

</section>

<section
  title="Linux 2.5.69 Released; Approaching 2.6"
  subject="Linux 2.5.69"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/0675.html"
  posts="32"
  startdate="04 May 2003 16:48:53 -0800"
  enddate="07 May 2003 14:07:34 -0800"
>
<topic>FS: devfs</topic>

<mention>Christoph Hellwig</mention>

<p>Linus Torvalds announced <a href="">2.5.69</a> and said:</p>

<quote who="Linus Torvalds">

<p>Ok, I finally found the reason for why some of my machines had trouble
with restarting the X server, and it turns out that it's been around since
very early February. I bet others must have seen it too, with random crashes
on X server restart when the server used AGP (which means that it mainly
hit either hw-accelerated 3D setups or the intel integrated graphics which
use a UMA model with AGP as the backing store).</p>

<p>That's a big relief for me, as it was the major thing I personally worried
about for 2.6.x.</p>

<p>Anyway, that's fixed here, along with a lot of other updates. Much of
2.5.69 is small one-liners to drivers to handle the new IRQ semantics, but
there's a lot of other cleanups in there too (Christoph Hellwig continued
on his devfs rampage, for example).</p>

<p>NOTE! As of this release I think I'll want to have patches either
be _really_ obvious, or they should go through one of more people for
approval. In particular, I'm hoping that the paperwork stuff with Andrew
should be getting closer to finalized, and that we could start moving over
towards a 2.6.x release schedule..</p>

</quote>

</section>

<section
  title="Status Of DVB In 2.5"
  subject="[PATCH[[2.5][3-11] update dvb subsystem core"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/1274.html"
  posts="14"
  startdate="06 May 2003 08:04:00 -0800"
  enddate="07 May 2003 10:30:26 -0800"
>
<topic>Digital Video Broadcasting</topic>
<topic>FS: devfs</topic>
<topic>I2C</topic>
<topic>Version Control</topic>

<mention>Gerd Knorr</mention>
<mention>Alan Cox</mention>

<p>Michael Hunold announced:</p>

<quote who="Michael Hunold">

<p>this patch updates the dvb subsystem core.</p>

<p>Fixed problems:</p>

<p>

<ul>

<li>partly reintroduced the DVB_DEVFS_ONLY switch, which was previously
wiped out by Alan Cox: if enabled, some really obscure code is not
compiled into the kernel that is necessary to xxx</li>

<li>switched from user-land types like __u8 to u8 and uint16_t to u16
this makes the patch rather large.</li>

<li>updated the dvr (digital videorecording) facility</li>

<li>renamed some structures, like "struct dmxdev_s" to "struct dmxdev"</li>

<li>introduced dvb_functions.[ch], where some linux-kernel specific
functions are encapsulated. by this, the dvb subsystem stays quite
independent from deeper linux kernel functions.</li>

<li>moved dvb_usercopy() to dvb_functions.c -- this is essentially
video_usercopy() which should be generic_usercopy() instead... ;-)</li>

<li>Made the dvb-core in dvbdev.c work with devfs again. I had to
introduce some #if KERNELVERSION magic again here, sorry. I'll fix it up
with the next patchset.</li>

</ul>

</p>

</quote>

<p>Christoph Hellwig had some criticism of the code, and gave Michael some
suggestions. He also said, <quote who="Christoph Hellwig">your devfs stuff is
a mess.  I already told one of the DVB folks (it wasn't you IIRC) that I'll
publish a 2.5 devfs API on 2.4 header.  But first I have to fix the devfs API
on 2.5 and randomly bringing back old crap and lots of ifdefs in those changing
areas won't help.  What the problem with 2.5, dvb and devfs?</quote> Michael
replied:</p>

<quote who="Michael Hunold">

<p>The main problem is that our development "dvb-kernel" CVS tree *should*
compile under 2.4 aswell, because most of the dvb-users don't want to
participate in kernel development in general, but only on the development
of the dvb subsystem. So work is done on the "dvb-kernel" tree, which should
be synced with the 2.5 kernel frequently.</p>

<p>So, regarding devfs, I introduced #ifdefs around the functions that have
changed recently. That's not nice, I know. But in my eyes it's important to
keep the CVS and the kernel version more in sync.</p>

<p>IIRC Gerd Knorr has the same problems with his driver packages (regarding
the i2c subsystem mainly), but he has written some perl scripts to remove
the #ifdef stuff before submitting his patches...</p>

</quote>

<p>Christoph felt that it would be best to delay the dvb updates, because
<quote who="Christoph Hellwig">you don't just add ifdefs (which give me lots
of rejects and you much uglier code than just using the compat header I'll
send to lkml once I'm done with the API changes) but you also change the
code that's ifdefed for 2.5 to reverse change I did.  There is a reason why I
removed every occurance of devfs_handle_t from all drivers and the particular
reason is that it will go away in the next series of patches.</quote> Michael
asked how best to proceed, and after a little wrangling, it was agreed that
Michael should continue to send updates to either Christoph or Alan Cox,
bearing in mind that 2.5 features shouldn't be broken by Michael's updates.</p>

</section>

<section
  title="TTY Updates"
  subject="[BK PATCH] TTY changes for 2.5.69"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0305.0/1816.html"
  posts="29"
  startdate="07 May 2003 15:15:19 -0800"
  enddate="07 May 2003 15:16:28 -0800"
>
<topic>FS: sysfs</topic>

<mention>Hanna Linder</mention>

<p>Greg KH announced:</p>

<quote who="Greg KH">

<p>Here are some TTY changesets that do two different things TTY related
things:</p>

<p>

<ul>

<li>fix the MOD_DEC/MOD_INC warnings for a number of tty drivers.  These
patches were previously sent to the Trivial Patch Monkey, but seem to have
disappeared in its bowels somewhere, never to be seen again.  These are
the majority of the changes (25 different patches), and were all written by
Hanna Linder.</li>

<li>Make the tty class code actually work.  With these changes, the
/sys/class/tty directory shows all current tty devices, along with their
device numbers, and a link to their device in the sysfs tree, if it has a
physical location in that tree.  Yeah, the implementation of yet another
list of devices within the tty core isn't the nicest, but until the tty
layer switches over to having tty devices in memory before they are opened
(like all other device subsystems), this is necessary.  For 2.7, this extra
list will go away.</li>

</ul>

</p>

</quote>

</section>

</kc>

