<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="194" date="02 Dec 2002 00:00:00 -0800" />

<intro>

<p>Well, the <a href="topics.html">Topic Index</a> is a bit more complete now,
though it definitely needs some refinement. The index is essentially generated
by a script using many perl regular expressions, but a lot of hand-tuning
is also part of the process. I've been going over everything bit by bit,
crafting new regexes, fixing topic tags by hand, but it is slow going on my
own. I'd appreciate feedback, particularly in the following areas:</p>

<p>
<ul>
<li>Issue sections that are incorrectly listed in a given topic</li>
<li>Issue sections that should be listed in a given topic and are not</li>
<li>Topics that should be included in the index and are not</li>
<li>Topics that should be split into subtopics (see the <a
href="topics.html#FS">FS</a> series</li>
</ul>
</p>

<p>Please send me <i>all</i> your corrections, no matter how small. The full
page is well over 400K, and I do plan to split it up in a future incarnation,
so no need to ask for that. I'm aware.</p>

</intro>

<stats posts="1525" size="8713" contrib="446" multiples="232" lastweek="193">

<person posts="54" size="152" who="Alan Cox" />
<person posts="39" size="186" who="Davide Libenzi" />
<person posts="27" size="97" who="Rusty Russell" />
<person posts="26" size="142" who="Andre Hedrick" />
<person posts="25" size="79" who="Zwane Mwaikambo" />
<person posts="24" size="106" who="Dave Jones" />
<person posts="24" size="88" who="Adrian Bunk" />
<person posts="23" size="107" who="Andrew Morton" />
<person posts="22" size="73" who="Jamie Lokier" />
<person posts="20" size="111" who="Ingo Molnar" />
<person posts="19" size="87" who="Pavel Machek" />
<person posts="18" size="629" who="george anzinger" />
<person posts="18" size="67" who="Mark Mielke" />
<person posts="17" size="87" who="Roman Zippel" />
<person posts="17" size="73" who="Linus Torvalds" />
<person posts="17" size="47" who="Jeff Garzik" />
<person posts="16" size="103" who="Manish Lachwani" />
<person posts="16" size="82" who="Marc-Christian Petersen" />
<person posts="16" size="67" who="Ulrich Drepper" />
<person posts="16" size="60" who="Luca Barbieri" />
<person posts="15" size="92" who="Greg KH" />
<person posts="15" size="52" who="Rik van Riel" />
<person posts="14" size="122" who="Arnaldo Carvalho de Melo" />
<person posts="14" size="44" who="William Lee Irwin III" />
<person posts="13" size="66" who="Sam Ravnborg" />
<person posts="12" size="123" who="&quot;Adam J. Richter&quot;" />
<person posts="12" size="37" who="&quot;Murray J. Root&quot;" />
<person posts="11" size="50" who="Denis Vlasenko" />
<person posts="11" size="43" who="Ed Tomlinson" />
<person posts="10" size="176" who="Bill Davidsen" />
<person posts="10" size="72" who="Patrick Mochel" />
<person posts="10" size="58" who="Miles Bader" />
<person posts="10" size="47" who="Con Kolivas" />
<person posts="10" size="32" who="Keith Owens" />
<person posts="10" size="31" who="&quot;H. Peter Anvin&quot;" />
<person posts="10" size="24" who="&quot;David S. Miller&quot;" />
<person posts="9" size="42" who="Neil Brown" />
<person posts="9" size="36" who="Joel Becker" />
<person posts="9" size="27" who="Russell King" />
<person posts="9" size="24" who="John Bradford" />
<person posts="8" size="130" who="john stultz" />
<person posts="8" size="62" who="Ian Morgan" />
<person posts="8" size="53" who="Chuck Lever" />
<person posts="8" size="37" who="Doug Ledford" />
<person posts="8" size="29" who="Alex Riesen" />
<person posts="8" size="24" who="Jeff Dike" />
<person posts="7" size="57" who="&quot;Rusty Lynch&quot;" />
<person posts="7" size="37" who="Steven Dake" />
<person posts="7" size="28" who="Tomas Szepe" />
<person posts="7" size="26" who="&quot;Jeff V. Merkey&quot;" />
<person posts="7" size="24" who="Werner Almesberger" />
<person posts="7" size="21" who="Dan Kegel" />
<person posts="7" size="19" who="Christoph Hellwig" />
<person posts="7" size="18" who="&quot;Randy.Dunlap&quot;" />
<person posts="6" size="129" who="Petr Baudis" />
<person posts="6" size="99" who="Dave Hansen" />
<person posts="6" size="61" who="Steffen Persvold" />
<person posts="6" size="55" who="&quot;J.E.J. Bottomley&quot;" />
<person posts="6" size="40" who="Emiliano Gabrielli" />
<person posts="6" size="23" who="(Andries.Brouwer)" />
<person posts="6" size="22" who="&quot;Martin J. Bligh&quot;" />
<person posts="6" size="19" who="Nero" />
<person posts="6" size="17" who="Robert Love" />
<person posts="6" size="16" who="Frank Davis" />
<person posts="6" size="15" who="Bob Miller" />
<person posts="6" size="15" who="Arjan van de Ven" />
<person posts="6" size="15" who="David Woodhouse" />
<person posts="6" size="15" who="Andi Kleen" />
<person posts="5" size="19" who=" (Pavel =?iso-8859-2?q?Jan=EDk?=)" />
<person posts="5" size="17" who="Chris Friesen" />
<person posts="5" size="16" who="&quot;Richard B. Johnson&quot;" />
<person posts="5" size="16" who="Larry McVoy" />
<person posts="5" size="15" who="Alexander Viro" />
<person posts="5" size="15" who="&quot;Petr Vandrovec&quot;" />
<person posts="5" size="15" who="Stian Jordet" />
<person posts="5" size="15" who="&quot;arun4linux&quot;" />
<person posts="5" size="15" who="Willy Tarreau" />
<person posts="5" size="14" who="John Levon" />
<person posts="5" size="14" who="Margit Schubert-While" />
<person posts="5" size="13" who="Jens Axboe" />
<person posts="4" size="75" who="Alan Cox" />
<person posts="4" size="50" who="Lee Leahu" />
<person posts="4" size="29" who="&quot;Paolo Ciarrocchi&quot;" />
<person posts="4" size="27" who="Andrea Arcangeli" />
<person posts="4" size="26" who="&quot;sanket rathi&quot;" />
<person posts="4" size="19" who="Jesse Pollard" />
<person posts="4" size="16" who="Petr Vandrovec" />
<person posts="4" size="15" who="&quot;dan carpenter&quot;" />
<person posts="4" size="14" who="Mike Galbraith" />
<person posts="4" size="14" who="(fuzk)" />
<person posts="4" size="13" who="Geert Uytterhoeven" />
<person posts="4" size="13" who="&quot;Grover, Andrew&quot;" />
<person posts="4" size="13" who="Rasmus Andersen" />
<person posts="4" size="13" who="Andrey Panin" />
<person posts="4" size="12" who="David Schwartz" />
<person posts="4" size="12" who="Tom Rini" />
<person posts="4" size="11" who="Nikita Danilov" />
<person posts="4" size="11" who="Robert Olsson" />
<person posts="4" size="11" who="&quot;Albert D. Cahalan&quot;" />
<person posts="4" size="9" who="Helge Hafting" />
<person posts="4" size="9" who=" (Margit Schubert-While)" />
<person posts="3" size="152" who="Paul P Komkoff Jr" />
<person posts="3" size="117" who="Matthias Andree" />
<person posts="3" size="65" who="Peter Waechtler" />
<person posts="3" size="57" who="Adam Belay" />
<person posts="3" size="53" who="Antonino Daplas" />
<person posts="3" size="40" who="Mark Fasheh" />
<person posts="3" size="37" who="Brian Murphy" />
<person posts="3" size="32" who="Rusty Lynch" />
<person posts="3" size="19" who="Emmanuel Fuste" />
<person posts="3" size="17" who="&quot;Dennis Grant&quot;" />
<person posts="3" size="14" who="Tupshin Harper" />
<person posts="3" size="14" who="Manuel Serrano" />
<person posts="3" size="13" who="Mike Eldridge" />
<person posts="3" size="12" who="Stephen Rothwell" />
<person posts="3" size="11" who="&quot;David McIlwraith&quot;" />
<person posts="3" size="11" who="Rashmi Agrawal" />
<person posts="3" size="11" who="Stelian Pop" />
<person posts="3" size="11" who="Joshua Kwan" />
<person posts="3" size="11" who="Matt Porter" />
<person posts="3" size="11" who="Stephan von Krawczynski" />
<person posts="3" size="11" who="Daniel Jacobowitz" />
<person posts="3" size="11" who="&quot;Mike Galbraith&quot;" />
<person posts="3" size="10" who="David Zaffiro" />
<person posts="3" size="10" who="Ingo Oeser" />
<person posts="3" size="10" who="=?iso-8859-1?Q?Ragnar_Kj=F8rstad?=" />
<person posts="3" size="10" who="Loic Jaquemet" />
<person posts="3" size="10" who="Cort Dougan" />
<person posts="3" size="10" who="Marcelo Tosatti" />
<person posts="3" size="9" who="Matthew Dobson" />
<person posts="3" size="9" who="Adam Kropelin" />
<person posts="3" size="9" who="=?ISO-8859-2?Q?=C9rsek_L=E1szl=F3?=" />
<person posts="3" size="9" who="Kevin Brosius" />
<person posts="3" size="9" who="David =?iso-8859-15?q?Mart=EDnez=20Moreno?=" />
<person posts="3" size="9" who="Tim Connors" />
<person posts="3" size="9" who="jan" />
<person posts="3" size="8" who="Ed Sweetman" />
<person posts="3" size="8" who="Josh Myer" />
<person posts="3" size="7" who="Kent Borg" />
<person posts="3" size="7" who="Terje Malmedal" />
<person posts="3" size="7" who="Patrick Finnegan" />
<person posts="2" size="86" who="Richard Henderson" />
<person posts="2" size="43" who="&quot;Dhammika Pathirana&quot;" />
<person posts="2" size="42" who="Stelian Pop" />
<person posts="2" size="39" who="James Bottomley" />
<person posts="2" size="39" who="Thomas Molina" />
<person posts="2" size="36" who="Torben Mathiasen" />
<person posts="2" size="32" who="=?ISO-8859-2?Q?Micha=B3_Piotrowski?=" />
<person posts="2" size="31" who="Bill Gardner" />
<person posts="2" size="28" who="&quot;Grega Fajdiga&quot;" />
<person posts="2" size="26" who="Max Valdez" />
<person posts="2" size="25" who="Richard Mueller" />
<person posts="2" size="24" who="Andrew Burgess" />
<person posts="2" size="23" who="Rusty Lynch" />
<person posts="2" size="19" who="Brian Murphy" />
<person posts="2" size="18" who="Muli Ben-Yehuda" />
<person posts="2" size="18" who="Srihari Vijayaraghavan" />
<person posts="2" size="16" who="Andi Kleen" />
<person posts="2" size="15" who="&quot;Joakim Tjernlund&quot;" />
<person posts="2" size="13" who="Kristof Sardemann" />
<person posts="2" size="13" who="Nicolas Mailhot" />
<person posts="2" size="11" who="OGAWA Hirofumi" />
<person posts="2" size="11" who="A Guy Called Tyketto" />
<person posts="2" size="10" who="Stig Brautaset" />
<person posts="2" size="10" who="Michael Clark" />
<person posts="2" size="9" who="Jochen Hein" />
<person posts="2" size="9" who="=?iso-8859-2?Q?Martin_MOKREJ=A9?=" />
<person posts="2" size="9" who="Ivan Pulleyn" />
<person posts="2" size="8" who="Lars Marowsky-Bree" />
<person posts="2" size="8" who="Nicolas Mailhot" />
<person posts="2" size="8" who="Ricky Beam" />
<person posts="2" size="8" who="Paul" />
<person posts="2" size="8" who="Justin Pryzby" />
<person posts="2" size="8" who="&quot;Henning P. Schmiedehausen&quot;" />
<person posts="2" size="8" who="Eric Buddington" />
<person posts="2" size="8" who="Edgar Toernig" />
<person posts="2" size="8" who="Shawn Starr" />
<person posts="2" size="8" who="&quot;Seth, Rohit&quot;" />
<person posts="2" size="8" who="&quot;Dino Klein&quot;" />
<person posts="2" size="7" who="Steven Timm" />
<person posts="2" size="7" who="GertJan Spoelman" />
<person posts="2" size="7" who="(nick)" />
<person posts="2" size="7" who="Marc" />
<person posts="2" size="7" who="Kevin Corry" />
<person posts="2" size="7" who="Hugh Dickins" />
<person posts="2" size="7" who="John W Fort" />
<person posts="2" size="7" who="Justin Hibbits" />
<person posts="2" size="7" who="SL Baur" />
<person posts="2" size="6" who="Dieter =?iso-8859-15?q?N=FCtzel?=" />
<person posts="2" size="6" who="Dax Kelson" />
<person posts="2" size="6" who="Bruce Lowekamp" />
<person posts="2" size="6" who="Luca Berra" />
<person posts="2" size="6" who="Matthew Wilcox" />
<person posts="2" size="6" who="Rudmer van Dijk" />
<person posts="2" size="6" who="Kai Germaschewski" />
<person posts="2" size="6" who="Oleg Drokin" />
<person posts="2" size="6" who="&quot;L P&quot;" />
<person posts="2" size="6" who=" (Eric W. Biederman)" />
<person posts="2" size="6" who="Gunther Mayer" />
<person posts="2" size="6" who="Gianni Tedesco" />
<person posts="2" size="6" who="(paul_wu)" />
<person posts="2" size="6" who="&quot;Folkert van Heusden&quot;" />
<person posts="2" size="6" who="Greg Ungerer" />
<person posts="2" size="6" who="Jeremy Fitzhardinge" />
<person posts="2" size="5" who="Giacomo Catenazzi" />
<person posts="2" size="5" who="Ben Greear" />
<person posts="2" size="5" who="Matt Reppert" />
<person posts="2" size="5" who="&quot;J.E.J. Bottomley&quot;" />
<person posts="2" size="5" who="Ducrot Bruno" />
<person posts="2" size="5" who="Kees Bakker" />
<person posts="2" size="5" who="Andries Brouwer" />
<person posts="2" size="5" who="Jakub Jelinek" />
<person posts="2" size="5" who="Felix Seeger" />
<person posts="2" size="5" who="Linux Geek" />
<person posts="2" size="5" who="&quot;Roland Schwarz&quot;" />
<person posts="2" size="5" who="&quot;Joakim Tjernlund&quot;" />
<person posts="2" size="5" who="David Balazic" />
<person posts="2" size="5" who="Mikael Pettersson" />
<person posts="2" size="5" who="&quot;Richard B. Tilley &quot; &quot;(Brad)&quot;" />
<person posts="2" size="5" who="&quot;Mr. James W. Laferriere&quot;" />
<person posts="2" size="4" who="&quot;Universo Online&quot;" />
<person posts="2" size="4" who="Neil Cafferkey" />
<person posts="2" size="4" who="&quot;sean darcy&quot;" />
<person posts="2" size="4" who=" (John Myers)" />
<person posts="2" size="4" who="Ulrich Wiederhold" />
<person posts="2" size="4" who="Geller Sandor" />
<person posts="2" size="4" who="=?iso-8859-1?q?bastien=20roucaries?=" />
<person posts="2" size="4" who="&quot;Roeland Th. Jansen&quot;" />
<person posts="2" size="4" who="David Chow" />
<person posts="2" size="4" who="James Simmons" />
<person posts="2" size="4" who="Mike Dresser" />
<person posts="2" size="4" who="Michal Wronski" />
<person posts="1" size="68" who="Peter Kjellstroem" />
<person posts="1" size="53" who="Bryan Whitehead" />
<person posts="1" size="51" who="Jan Kara" />
<person posts="1" size="49" who="Charles Bibber" />
<person posts="1" size="48" who="mr luminex" />
<person posts="1" size="43" who="edurenne" />
<person posts="1" size="37" who="Dominik Brodowski" />
<person posts="1" size="36" who="abslucio" />
<person posts="1" size="33" who="Rus Foster" />
<person posts="1" size="19" who="hugang" />
<person posts="1" size="19" who="&quot;Vamsi Krishna S .&quot;" />
<person posts="1" size="18" who="Stephane Harnois" />
<person posts="1" size="17" who="Luming" />
<person posts="1" size="16" who="Dmitry Kudryavtsev" />
<person posts="1" size="13" who="&quot;Jordan Breeding&quot;" />
<person posts="1" size="13" who="Stephan Austermuehle" />
<person posts="1" size="12" who="anomaly" />
<person posts="1" size="12" who="Wim Van Sebroeck" />
<person posts="1" size="11" who="Mark Bryant" />
<person posts="1" size="10" who="Rohit Seth" />
<person posts="1" size="10" who="&quot;Kenneth D. Merry&quot;" />
<person posts="1" size="10" who="Martin Pool" />
<person posts="1" size="10" who="&quot;=?iso-8859-1?Q?Nicolas_Mailhot?=&quot;" />
<person posts="1" size="9" who="walt" />
<person posts="1" size="9" who="Miquel van Smoorenburg" />
<person posts="1" size="8" who="Andy Grover" />
<person posts="1" size="8" who="Support" />
<person posts="1" size="8" who="David =?iso-8859-1?q?Mart=EDnez=20Moreno?=" />
<person posts="1" size="8" who="Christoph Hellwig" />
<person posts="1" size="8" who="&quot;Rob Mueller&quot;" />
<person posts="1" size="8" who="Juan Gomez" />
<person posts="1" size="7" who="Adam Radford" />
<person posts="1" size="7" who="Mikael Olenfalk" />
<person posts="1" size="7" who="&quot;Guillaume Boissiere&quot;" />
<person posts="1" size="7" who="Helmut Apfelholz" />
<person posts="1" size="7" who="Patrick Mau" />
<person posts="1" size="7" who="&quot;Randy.Dunlap&quot;" />
<person posts="1" size="7" who="Mingming Cao" />
<person posts="1" size="6" who="Piet/Pete Delaney" />
<person posts="1" size="6" who="&quot;Bill Beebe&quot;" />
<person posts="1" size="6" who="(Rod.VanMeter)" />
<person posts="1" size="6" who="Mark Wong" />
<person posts="1" size="5" who="Vojtech Pavlik" />
<person posts="1" size="5" who="Patrick Mansfield" />
<person posts="1" size="5" who="(ksardem)" />
<person posts="1" size="5" who="Martin Waitz" />
<person posts="1" size="5" who="Daniel Egger" />
<person posts="1" size="5" who="Olaf Dietsche" />
<person posts="1" size="5" who="Leszek Matok" />
<person posts="1" size="4" who="Grant Taylor" />
<person posts="1" size="4" who="Leif Delgass" />
<person posts="1" size="4" who="Andy Chou" />
<person posts="1" size="4" who="Herman Oosthuysen" />
<person posts="1" size="4" who="Paul Mackerras" />
<person posts="1" size="4" who="Lucio Maciel" />
<person posts="1" size="4" who=" (Linus Torvalds)" />
<person posts="1" size="4" who="&quot;Patrick R. McManus&quot;" />
<person posts="1" size="4" who="Eric Altendorf" />
<person posts="1" size="4" who="&quot;kinsley Eze&quot;" />
<person posts="1" size="4" who="Kent Yoder" />
<person posts="1" size="4" who="(Valdis.Kletnieks)" />
<person posts="1" size="4" who="Young-Ho Cha" />
<person posts="1" size="4" who="Romain Lievin" />
<person posts="1" size="4" who="Grant Taylor" />
<person posts="1" size="4" who="Kai Germaschewski" />
<person posts="1" size="4" who="(chrisl)" />
<person posts="1" size="4" who="Andreas Steinmetz" />
<person posts="1" size="4" who="Paul Laufer" />
<person posts="1" size="4" who="&quot;archaios&quot;" />
<person posts="1" size="4" who="(erich)" />
<person posts="1" size="4" who="Seiichi Nakashima" />
<person posts="1" size="4" who="&quot;Benoit GRANGE&quot;" />
<person posts="1" size="4" who="(mark.hodge)" />
<person posts="1" size="4" who="Martin Loschwitz" />
<person posts="1" size="4" who="Joe Thornber" />
<person posts="1" size="3" who="&quot;Mike Black&quot;" />
<person posts="1" size="3" who="Robert Read" />
<person posts="1" size="3" who="bert hubert" />
<person posts="1" size="3" who="(tmrbill)" />
<person posts="1" size="3" who="Brad Hards" />
<person posts="1" size="3" who="&quot;Steve Pratt&quot;" />
<person posts="1" size="3" who="Matthew Hawkins" />
<person posts="1" size="3" who="&quot;Daniela Engert&quot;" />
<person posts="1" size="3" who="Brian Gerst" />
<person posts="1" size="3" who="&quot;Scott Kilau&quot;" />
<person posts="1" size="3" who="&quot;Mark H. Wood&quot;" />
<person posts="1" size="3" who="(Matt_Domsch)" />
<person posts="1" size="3" who="=?iso-8859-1?q?K=E5re=20S=E4rs?=" />
<person posts="1" size="3" who="Eyal Lebedinsky" />
<person posts="1" size="3" who="Meelis Roos" />
<person posts="1" size="3" who="&quot;Filipau, Ihar&quot;" />
<person posts="1" size="3" who="Sean Neakums" />
<person posts="1" size="3" who=" (Simon Fowler)" />
<person posts="1" size="3" who="&quot;Steve Lee&quot;" />
<person posts="1" size="3" who="&quot;John Stoffel&quot;" />
<person posts="1" size="3" who="Shawn Starr" />
<person posts="1" size="3" who="&quot;Fleischer, Julie N&quot;" />
<person posts="1" size="3" who="&quot;Matthew D. Hall&quot;" />
<person posts="1" size="3" who="Zac Hansen" />
<person posts="1" size="3" who="Martin Dahl" />
<person posts="1" size="3" who="Hugo Mills" />
<person posts="1" size="3" who="Theodore Ts'o" />
<person posts="1" size="3" who="davidsen" />
<person posts="1" size="3" who="Tommy Reynolds" />
<person posts="1" size="3" who="Grant Taylor" />
<person posts="1" size="3" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="1" size="3" who="Lars Knudsen" />
<person posts="1" size="3" who="Grant Taylor" />
<person posts="1" size="3" who="Anton Altaparmakov" />
<person posts="1" size="3" who="Christian Guggenberger" />
<person posts="1" size="3" who="Ross Vandegrift" />
<person posts="1" size="3" who="&quot;Miquel van Smoorenburg&quot;" />
<person posts="1" size="3" who="&quot;Justin T. Gibbs&quot;" />
<person posts="1" size="3" who="Eli Carter" />
<person posts="1" size="3" who="Roger Luethi" />
<person posts="1" size="3" who="Philippe Troin" />
<person posts="1" size="3" who="Andreas Dilger" />
<person posts="1" size="3" who="&quot;Udo A. Steinberg&quot;" />
<person posts="1" size="3" who="mst" />
<person posts="1" size="3" who="&quot;Roy Sigurd Karlsbakk&quot;" />
<person posts="1" size="3" who="Eric Buddington" />
<person posts="1" size="3" who="&quot;Brian Jackson&quot;" />
<person posts="1" size="3" who="Grant Taylor" />
<person posts="1" size="3" who="Adam K Kirchhoff" />
<person posts="1" size="3" who="&quot;Joao Alberto M. dos Reis (Listas de discucao)&quot;" />
<person posts="1" size="3" who="Ivan Kokshaysky" />
<person posts="1" size="3" who="&quot;Joseph Fannin&quot;" />
<person posts="1" size="3" who="Chris Wright" />
<person posts="1" size="3" who="David Zaffiro" />
<person posts="1" size="3" who="Keith Owens" />
<person posts="1" size="3" who="Thomas =?iso-8859-1?Q?Lang=E5s?=" />
<person posts="1" size="3" who="Tom Diehl" />
<person posts="1" size="3" who="Anton Blanchard" />
<person posts="1" size="3" who="Pete Zaitcev" />
<person posts="1" size="3" who="Ronghua Zhang" />
<person posts="1" size="3" who="Christer Weinigel" />
<person posts="1" size="3" who="Christian Axelsson" />
<person posts="1" size="3" who="Andreas Oberritter" />
<person posts="1" size="3" who="&quot;Robert L. Harris&quot;" />
<person posts="1" size="2" who="&quot;Feldman, Scott&quot;" />
<person posts="1" size="2" who="Xavier Bestel" />
<person posts="1" size="2" who="=?iso-8859-1?B?RnLpZOlyaWMgTC4gVy4=?= Meunier" />
<person posts="1" size="2" who="Kronos" />
<person posts="1" size="2" who="Jon Portnoy" />
<person posts="1" size="2" who="=?iso-8859-2?Q?Jaros=B3aw?= Bekas" />
<person posts="1" size="2" who="Michael Dreher" />
<person posts="1" size="2" who="John M Flinchbaugh" />
<person posts="1" size="2" who="Janos Farkas" />
<person posts="1" size="2" who="Pavel Machek" />
<person posts="1" size="2" who="Bryan O'Sullivan" />
<person posts="1" size="2" who="PlasmaJohn" />
<person posts="1" size="2" who="devik" />
<person posts="1" size="2" who="Harald Arnesen" />
<person posts="1" size="2" who="Roland Dreier" />
<person posts="1" size="2" who="Jim Houston" />
<person posts="1" size="2" who="Russ Allbery" />
<person posts="1" size="2" who="&quot;J.A. Magallon&quot;" />
<person posts="1" size="2" who="&quot;Helge Hafting&quot;" />
<person posts="1" size="2" who="Krzysztof Halasa" />
<person posts="1" size="2" who="Manfred Spraul" />
<person posts="1" size="2" who="Craig Thomas" />
<person posts="1" size="2" who="&quot;Peter T. Breuer&quot;" />
<person posts="1" size="2" who="Felix von Leitner" />
<person posts="1" size="2" who="=?iso-8859-1?q?szonyi=20calin?=" />
<person posts="1" size="2" who="Marcus Sundberg" />
<person posts="1" size="2" who="Michael Kaufman" />
<person posts="1" size="2" who="John Jasen" />
<person posts="1" size="2" who="David Dillow" />
<person posts="1" size="2" who="&quot;Samium Gromoff&quot;" />
<person posts="1" size="2" who="(m)" />
<person posts="1" size="2" who="Jerry McBride" />
<person posts="1" size="2" who="(yodaiken)" />
<person posts="1" size="2" who="Dana Lacoste" />
<person posts="1" size="2" who="&quot;Kristofer T. Karas&quot;" />
<person posts="1" size="2" who="Markus Plail" />
<person posts="1" size="2" who="Ralf Baechle" />
<person posts="1" size="2" who="&quot;Bill Rugolsky Jr.&quot;" />
<person posts="1" size="2" who="Amol Kumar Lad" />
<person posts="1" size="2" who="Jan Niehusmann" />
<person posts="1" size="2" who="David Brownell" />
<person posts="1" size="2" who="Tom Vier" />
<person posts="1" size="2" who="&quot;Nicholas Berry&quot;" />
<person posts="1" size="2" who="Nivedita Singhvi" />
<person posts="1" size="2" who="Justin A" />
<person posts="1" size="2" who="Mihai RUSU" />
<person posts="1" size="2" who="Filip djMedrzec Zyzniewski" />
<person posts="1" size="2" who="Andrew Park" />
<person posts="1" size="2" who="&quot;Sathyanarayana.A.N - 01cs6002&quot;" />
<person posts="1" size="2" who="Arnd Bergmann" />
<person posts="1" size="2" who="Milton Miller" />
<person posts="1" size="2" who="Nick Piggin" />
<person posts="1" size="2" who="Bryan B Whitehead" />
<person posts="1" size="2" who="Oliver Neukum" />
<person posts="1" size="2" who="Boris Stevenson" />
<person posts="1" size="2" who="(jlnance)" />
<person posts="1" size="2" who="(Majordomo)" />
<person posts="1" size="2" who="Matt Young" />
<person posts="1" size="2" who="Melkor Ainur" />
<person posts="1" size="2" who="SLion" />
<person posts="1" size="2" who="Dan Kegel" />
<person posts="1" size="2" who="Mohamed El Ayouty" />
<person posts="1" size="2" who="&quot;Shawn Starr&quot;" />
<person posts="1" size="2" who=" (khromy)" />
<person posts="1" size="2" who="Joakim Tjernlund" />
<person posts="1" size="2" who="Florenz Kley" />
<person posts="1" size="2" who="Martin Mares" />
<person posts="1" size="2" who="&quot;Halil Demirezen&quot;" />
<person posts="1" size="2" who="Joao &quot;Alberto M. dos Reis &quot; &quot;(listas de discucao)&quot;" />
<person posts="1" size="2" who="&quot;Vitezslav Samel&quot;" />
<person posts="1" size="2" who="&quot;Javed  Shakeel&quot;" />
<person posts="1" size="2" who="(kuznet)" />
<person posts="1" size="1" who="Rolf Eike Beer" />
<person posts="1" size="1" who="(Rebecca.Callan)" />

</stats>

<section
  title="Linux 2.4.20-rc2 Released"
  subject="Linux 2.4.20-rc2"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.1/1805.html"
  posts="11"
  startdate="15 Nov 2002 07:10:07 -0800"
  enddate="21 Nov 2002 20:05:45 -0800"
>
<topic>Backward Compatibility</topic>
<topic>Framebuffer</topic>
<topic>Ioctls</topic>
<topic>Networking</topic>
<topic>Security</topic>
<topic>Version Control</topic>

<mention>Trond Myklebust</mention>
<mention>Tom Rini</mention>
<mention>David S. Miller</mention>
<mention>Petr Vandrovec</mention>
<mention>Pete Zaitcev</mention>
<mention>Alan Cox</mention>
<mention>Vojtech Pavlik</mention>
<mention>Joshua Uziel</mention>
<mention>Keith Owens</mention>
<mention>Ben Collins</mention>

<p>Marcelo Tosatti announced 2.4.20-rc2 and listed the summary of changes
from rc-1:</p>

<quote who="Marcelo Tosatti">

<pre>

&lt;cel@citi.umich.edu&gt;:
  o sock_writable not appropriate for TCP sockets

&lt;hch@sgi.com&gt;:
  o fix file system corruption under load   

&lt;jgarzik@redhat.com&gt;:
  o Use dev_kfree_skb_any not dev_kfree_skb in tg3 net driver function
tg3_free_rings.

&lt;marcelo@freak.distro.conectiva&gt;:
  o Undo latest hid-input fixes: they are broken
  o Reverse order of BK config checkout entries
  o Changed EXTRAVERSION to -rc2

&lt;mkp@mkp.net&gt;:
  o Update credits

&lt;rth@are.twiddle.net&gt;:
  o Fix carry ripple in 3 and 4 word addition and subtraction macros

&lt;tytso@think.thunk.org&gt;:
  o HTREE backwards compatibility patch

Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;:
  o Enable the merged AMD pm driver

Andries E. Brouwer &lt;Andries.Brouwer@cwi.nl&gt;:
  o [TCP] Do not update rcv_nxt until ts_recent is updated

Ben Collins &lt;bcollins@debian.org&gt;:
  o [TG3]: TG3_HW_STATUS_SIZE should be 0x50 not 0x80

c-d.hailfinger.kernel.2002-q4@gmx.net &lt;c-d.hailfinger.kernel.2002-Q4@gmx.net&gt;:
  o restore framebuffer console after suspend

David S. Miller &lt;davem@nuts.ninka.net&gt;:
  o [SPARC64]: Translate SO_{SND,RCV}TIMEO socket options
  o [SPARC64]: Handle kernel integer divide by zero properly
  o [SPARC64]: Check DRM_NEW not DRM in ioctl32.c
  o [SPARC64]: Fix accidental clobbering of register on cheetahplus

David S. Miller &lt;davem@redhat.com&gt;:
  o Fix tg3 net driver to properly disable interrupts during some TX operations

Edward Peng &lt;edward_peng@dlink.com.tw&gt;:
  o sundance net driver updates

Joshua Uziel &lt;uzi@uzix.org&gt;:
  o [SPARC64]: 0x22/0x10 is Ultra-I/spitfire

Pete Zaitcev &lt;zaitcev@redhat.com&gt;:
  o [sparc] Fix off-by-one in s/g handling

Petr Vandrovec &lt;VANDROVE@vc.cvut.cz&gt;:
  o Fix ncpfs file creation issue

Petr Vandrovec &lt;vandrove@vc.cvut.cz&gt;:
  o Fix lcall DoS

r.e.wolff@bitwizard.nl &lt;R.E.Wolff@BitWizard.nl&gt;:
  o Fix SX driver detection

Tom Rini &lt;trini@kernel.crashing.org&gt;:
  o Fix a thinko in arch/ppc/kernel/ppc_ksyms.c

Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt;:
  o another kmap imbalance in 2.4.x/2.5.x RPC

Vojtech Pavlik &lt;vojtech@suse.cz&gt;:
  o Add vt8235 support</pre>

</quote>

<p>Keith Owens pointed out that none of these changes had any obvious impact
on the kdb kernel debugger, so folks could use kdb-v2.5-2.4.20-rc1 with the
-rc2 kernel.</p>

</section>

<section
  title="Linux 2.5.48-mm1 Released"
  subject="2.5.48-mm1"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/0816.html"
  posts="5"
  startdate="19 Nov 2002 01:16:03 -0800"
  enddate="21 Nov 2002 17:08:53 -0800"
>
<topic>FS: ext2</topic>
<topic>Real-Time</topic>

<p>Andrew Morton announced:</p>

<quote who="Andrew Morton">

<p>url: <a
href="http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.48/2.5.48-mm1/">http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.48/2.5.48-mm1/</a></p>

<p>Lots of little bits and pieces here.  Most notably I've started to look
at the scheduling latency of the uniprocessor preemptible kernel.  It was
actually pretty awful.  Most everything in the MM/VFS area has been fixed
here, and it is now achieving 500 microseconds max latency at 500MHz.</p>

<p>With the notable exception of the case where a task exits while holding a
large amount of mmapped memory.  300 milliseconds for a 700 megabyte mapping,
and a couple of milliseconds while just running cvs.  This will take quite
some fixing.</p>

<p>Only ext2 has been done.  Other filesystems will need attention.</p>

</quote>

</section>

<section
  title="subarch Cleanup; Header File Organization"
  subject="[RFC] [PATCH] subarch cleanup"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1064.html"
  posts="14"
  startdate="19 Nov 2002 16:00:29 -0800"
  enddate="22 Nov 2002 09:55:49 -0800"
>
<topic>Disks: SCSI</topic>
<topic>Source Tree</topic>
<topic>User-Mode Linux</topic>

<mention>Sam Ravnborg</mention>

<p>John Stultz posted a patch and said:</p>

<quote who="John Stultz">

<p>This is a small patch to try to somewhat cleanup the subarch code.
First it moves all the subarch .h files out of arch/i386/mach-xyz into
include/asm-i386/mach-xyz, then it changes the include patch to include
include/asm-i386/mach-xyz and include/asm-i386/mach-generic when
compiling. This allows the compiler to use the arch specific .h files
when needed, and then falls back to the generic .h files if no subarch
specific changes are needed.</p>

<p>Obviously this doesn't work with .c files, so I've split up the Makefile
MACHINE variable into MACHINE_H and MACHINE_C, so subarchs like summit
which does not need any subarch specific .c files can just use the
generic files.</p>

</quote>

<p>Sam Ravnborg asked why John had moved all the .h files, and Martin J. Bligh
replied, <quote who="Martin J. Bligh">Because they're in a silly place
now. They should be whereever all the other include files are</quote> [...]
<quote who="Martin J. Bligh">Header files go under include ....</quote></p>

<p>A couple of folks disagreed with this principle. Russell King said:</p>

<quote who="Russell King">

<p>Think about UML.  UML has:</p>

<p>        include/asm-um/*.h<br />
        include/asm-um/arch -&gt; include/asm-i386</p>

<p>When building for UML, what happens if you need to get to a machine
specific file for something, and the i386 include files do:</p>

<p>        #include &lt;asm/mach-generic/foo.h&gt;</p>

<p>Yep, it fails.</p>

<p>Now guess why we in the ARM community haven't even bothered to look at
UML yet?  There's over 1MB of include files that would need to be moved,  
along with countless #include statements needing to be fixed up.</p>

<p>For something that would be nice to have, and probably run quite well on
the ARM architecture (due to some nice features ARM has, especially for
UML's jail mode) there isn't enough interest in it to warrant such a
painful reorganisation.</p>

<p>I'd therefore strongly recommend NOT going down the path of adding 
subdirectories to include/asm-*.</p>

</quote>

<p>Martin came back with, <quote who="Martin J. Bligh">I don't understand what
UML is trying to do here, but if it wants the architecture specific stuff, it
has to do it in the same way as the arch itself. That's UML's problem ... it
sounds like it's just making invalid assumptions. Maybe the include paths
need to be in a seperate makefile to avoid maintainance problems.</quote></p>

<p>There was no reply to that, but elsewhere, James Bottomley also replied to
Martin's assertion that headers should go under the include directory. James
said:</p>

<quote who="James Bottomley">

<p>Externally useful header files go in include.
Header files only used internally to the subsystem go in local directories.</p>

<p>The reason I put them under arch/i386 is because I didn't want the guts of the
subarch splitup spilling into the kernel core.</p>

<p>While the subarch is local to i386, I think the headers should stay there.  If
you want to make the subarch a global framework (and thus get agreement with
Russel and ARM to use it) then putting them under the global include
directories would probably make sense.</p>

</quote>

<p>This didn't sit well with Martin. He pointed out that there were plenty
of header files under include/ that were not externally useful; and that
all the other headers were still in the include path. <quote who="Martin
J. Bligh">putting them all mixed in with C files is just making a mess,</quote>
he said. James admitted that not everyone followed the proper custom, but
said that keeping only externally useful headers in the include directory
was a custom nonetheless. He gave the SCSI code as an example. He said,
<quote who="James Bottomley">We have a scsi.h file in drivers/scsi which
defines subsystem specific things that we only use within SCSI.  We have
include/scsi/scsi.h which defines things other subsystems can use.</quote></p>

<p>Martin didn't consider that such a hot model to follow, and Christoph
Hellwig also thought it was not the smartest idea. Christoph said, <quote
who="Christoph Hellwig">There are more than enough scsi HBA drivers or
emulation drivers outside drivers/scsi.  I have a longstanding plan to
rationalize the scsi headers (the current state is really really messy),
and that includes moving everything but the truly midlayer-specific parts
like non-exported function to headers in include/scsi/.</quote></p>

</section>

<section
  title="Current Work On Disk-Array Support"
  subject="RFC - new raid superblock layout for md driver"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1108.html"
  posts="41"
  startdate="19 Nov 2002 20:09:18 -0800"
  enddate="22 Nov 2002 02:13:01 -0800"
>
<topic>Device Mapper</topic>
<topic>Disk Arrays: EVMS</topic>
<topic>Disk Arrays: LVM</topic>
<topic>Disk Arrays: MD</topic>
<topic>Disk Arrays: RAID</topic>
<topic>Virtual Memory</topic>

<p>Neil Brown said:</p>

<quote who="Neil Brown">

<p>The md driver in linux uses a 'superblock' written to all devices in a
RAID to record the current state and geometry of a RAID and to allow
the various parts to be re-assembled reliably.</p>

<p>The current superblock layout is sub-optimal.  It contains a lot of
redundancy and wastes space.  In 4K it can only fit 27 component
devices.  It has other limitations.</p>

<p>I (and others) would like to define a new (version 1) format that
resolves the problems in the current (0.90.0) format.</p>

<p>The code in 2.5.lastest has all the superblock handling factored out so
that defining a new format is very straight forward.</p>

<p>I would like to propose a new layout, and to receive comment on it..</p>

</quote>

<p>He posted his design, and various folks discussed it. At one point
Joel Becker asked, <quote who="Joel Becker">Hmm, what is the intended
future interaction of DM and MD?  Two ways at the same problem?
Just curious.</quote> Neil replied:</p>

<quote who="Neil Brown">

<p>I see MD and DM as quite different, though I haven't looked much as DM
so I could be wrong.</p>

<p>I see raid1 and raid5 as being the key elements of MD.  i.e. handling
redundancy, rebuilding hot spares, stuff like that.  raid0 and linear
are almost optional frills.</p>

<p>DM on the other hand doesn't do redundancy (I don't think) but helps
to chop devices up into little bits and put them back together into
other devices.... a bit like a filesystem really, but it provided block
devices instead of files.</p>

<p>So raid0 and linear are more the domain of DM than MD in my mind.
But they are currently supported by MD and there is no real need to
change that.</p>

</quote>

<p>Doug Ledford said:</p>

<quote who="Doug Ledford">

<p>I haven't yet played with the new dm code, but if it's like I expect it
to be, then I predict that in a few years, or maybe much less, md and dm
will be two parts of the same whole.  The purpose of md is to map from a
single logical device to all the underlying physical devices.  The purpose
of :VM code in general is to handle the creation, orginization, and mapping
of multiple physical devices into a single logical device.  LVM code is
usually shy on advanced mapping routines like RAID5, relying instead on
underlying hardware to handle things like that while the LVM code itself
just concentrates on physical volumes in the logical volume similar to how
linear would do things.  But, the things LVM does do that are very handy,
are things like adding a new disk to a volume group and having the volume
group automatically expand to fill the additional space, making it possible
to increase the size of a logical volume on the fly.</p>

<p>When you get right down to it, MD is 95% advanced mapping of physical
disks with different possibilities for redundancy and performance.  DM is
95% advanced handling of logical volumes including snapshot support,
shrink/grow on the fly support, labelling, sharing, etc.  The best of both
worlds would be to make all of the MD modules be plug-ins in the DM code
so that anyone creating a logical volume from a group of physical disks
could pick which mapping they want used; linear, raid0, raid1, raid5, etc.
You would also want all the md modules inside the DM/LVM core to support the
advanced features of LVM, with the online resizing being the primary one
that the md modules would need to implement and export an interface for.
I would think that the snapshot support would be done at the LVM/DM level
instead of in the individual md modules.</p>

<p>Anyway, that's my take on how the two *should* go over the next year or
so, who knows if that's what will actually happen.</p>

</quote>

<p>Joel pointed out:</p>

<quote who="Joel Becker">

<p>        Most LVMs support mirroring as an essential function.  They
don't usually support RAID5, leaving that to hardware.</p>

<p>        I certainly don't want to have to deal with two disparate
systems to get my code up and running.  I don't want to be limited in my  
mirroring options at the block device level.</p>

<p>        DM supports mirroring.  It's a simple 1:2 map.  Imagine this LVM
volume layout, where volume 1 is data and mirrored, and volume 2 is some
scratch space crossing both disks.</p>

<pre>          [Disk 1]        [Disk 2]
          [volume 1]      [volume 1 copy]
          [        volume 2             ]</pre>

<p>        If DM handles the mirroring, this works great.  Disk 1 and disk
2 are handled either as the whole disk (sd[ab]) or one big partition on
each disk (sd[ab]1), with DM handling the sizing and layout, even
dynamically.</p>

<p>        If MD is handling this, then the disks have to be partitioned.   
sd[ab]1 contain the portions of md0, and sd[ab]2 are managed by DM.  I
can't resize the partitions on the fly, I can't break the mirror to add
space to volume 2 quickly, etc.</p>

</quote>

<p>Doug replied, <quote who="Doug Ledford">Not at all.  That was the point
of me entire email, that the LVM code should handle these types of shuffles
of space and simply use md modules as the underlying mapper technology.
Then, you go to one place to both specify how things are laid out and what
mapping is used in those laid out spaces.  Basically, I'm saying how I think
things *should* be, and you're telling me how they *are*.  I know this, and
I'm saying how things *are* is wrong.  There *should* be no md superblocks,
there should only be dm superblocks on LVM physical devices and those DM
superblocks should include the data needed to fire up the proper md module on
the proper physical extents based upon what mapper technology is specified in
the DM superblock and what layout is specified in the DM superblock.  In my
opinion, the existence of both an MD and DM driver is wrong because they are
inherently two sides of the same coin, logical device mapping support, with
one being better at putting physical disks into intelligent arrays and one
being better at mapping different logical volumes onto one or more physical
volume groups.</quote> Steven Dake replied:</p>

<quote who="Steven Dake">

<p>EVMS integrates all of this stuff together into one cohesive peice of
technology.</p>

<p>But I agree, LVM should be modified to support RAID 1 and RAID 5, or MD
should be modified to support volume management.  Since RAID 1 and RAID 5 are
easier to implement, LVM is probably the best place to put all this stuff.</p>

</quote>

<p>Doug said, <quote who="Doug Ledford">Yep.  I tend to agree there.  A little
work to make device mapping modular in LVM, and a little work to make the md
modules plug into LVM, and you could be done.  All that would be left then
is adding the right stuff into the user space tools.  Basically, what irks
me about the current situation is that right now in the Red Hat installer,
if I want LVM features I have to create one type of object with a disk,
and if I want reasonable software RAID I have to create another type of
object with partitions.  That shouldn't be the case, I should just create
an LVM logical volume, assign physical disks to it, and then additionally
assign the redundancy or performance layout I want (IMNSHO) :-)</quote>
And Steven replied:</p>

<quote who="Steven Dake">

<p>Yup this would be ideal and I think this is what EVMS tries to do,
although I haven't tried it.</p>

<p>The advantage of doing such a thing would also be that MD could be made
to work with shared LVM VGs for shared storage environments.</p>

<p>now to write the code...</p>

</quote>

<p>And Kevin Corry put in:</p>

<quote who="Kevin Corry">

<p>This is indeed what EVMS's new design does. It has user-space plugins that
understand a variety of on-disk-metadata formats. There are plugins for LVM
volumes, for MD RAID devices, for partitions, as well as others. The plugins
communicate with the MD driver to activate MD devices, and with the
device-mapper driver to activate other devices.</p>

<p>As for whether DM and MD kernel drivers should be merged: I imagine it could
be done, since DM already has support for easily adding new modules, but I
don't see any overwhelming reason to merge them right now. I'm sure it will
be discussed more when 2.7 comes out. For now they seem to work fine as
separate drivers doing what each specializes in. All the integration issues
that have been brought up can usually be dealt with in user-space.</p>

</quote>

</section>

<section
  title="Module Problems In 2.5"
  subject="2.5.48 QM_MODULES: Function not implemented"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1301.html"
  posts="5"
  startdate="20 Nov 2002 11:04:20 -0800"
  enddate="21 Nov 2002 08:23:59 -0800"
>

<mention>Rusty Russell</mention>

<p>Felix Seeger complained:</p>

<quote who="Felix Seeger">

<p>I compiled 2.5.48 and now all the files like modules.dep in /lib/modules are
away.</p>

<p>I can't load a module, I get this:
modprobe: Can't open dependencies file /lib/modules/2.5.48/modules.dep ...</p>

<p>depmod: QM_MODULES: Function not implemented</p>

<p>I enabled all option in the module config.</p>

</quote>

<p>Someone explained that it was necessary to get Rusty Russell's <a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/module-init-tools-0.7.tar.bz2">modutils</a>
package, and also to <a
href="http://groups.google.com/groups?dq=&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=20021120125211.GA446%40apocalipsis">patch
kernel/module.c</a> to avoid the "Cannot Allocate Memory" message. Chris
Friesen added, <quote who="Chris Friesen">Rusty's stuff will let you load,
but you'll still get the depmod error.  It would have been nice to have a
version of depmod that does nothing normally but calls the old version on
an older kernel.</quote> Felix downloaded Rusty's work and gave it a try,
and agreed, <quote who="Felix Seeger">this doesn't fix the depmod problem
even with the new kernel, I have modprobe, rmod and so back but the package
doesn't include depmod.</quote> And Chris said, <quote who="Chris Friesen">Yep.
Tnere is no depmod.  Bang on Rusty to fix things.</quote></p>

</section>

<section
  title="Massive SMP Slowdown In 2.4.17"
  subject="2.4.17 SMP hangs .."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1496.html"
  posts="7"
  startdate="20 Nov 2002 21:28:06 -0800"
  enddate="26 Nov 2002 08:13:27 -0800"
>
<topic>SMP</topic>
<topic>Virtual Memory</topic>

<p>Manish Lachwani reported, <quote who="Manish Lachwani">I am seeing
system hangs with 2.4.17 SMP kernel when doing mke2fs accros 12 drives in
parallel. However, the hangs only occur when the I/O rate from vmstat is
high.</quote> Andrew Morton suggested, <quote who="Andrew Morton">Quite
possibly it has not hung.  You just need to wait half an hour or so.
The algorithm isn't very good.</quote> And Theodore Y. Ts'o said:</p>

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

<p>Try setting the environment variable "MKE2FS_SYNC" to a value such as 10.
This will cause mke2fs to force a sync after writing out every 10 block
groups worth of inode tables.</p>

<p>If this fixes the problem, then it means that the kernel isn't handling
write throttling correctly, and the system is thrashing itself to death.
Write thottleing is one of these kernel bugs which gets fixed and broken in
the kernel multiple times.  I've considered making MKE2FS_SYNC the default,
but I haven't, mainly because current behaviour is a great way of pointing out
this write throttling bugs in the VM.  (Stephen has fixed this bug multiple
times over the years, and he suggested that having a good test case for
noticing when someone has broken write throttling would be a Good Thing ---
and it seems to get broken fairly often, as people try to make improvements
to the VM layer.....)</p>

</quote>

<p>Andrew agreed that setting MKE2FS_SYNC would solve the problem.</p>

</section>

<section
  title="Status Of Sound Support For VIA VT8233A"
  subject="PROBLEM: Sound VIA VT8233 on K7VTA3 motherboard"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1542.html"
  posts="2"
  startdate="21 Nov 2002 04:25:44 -0800"
  enddate="21 Nov 2002 07:51:08 -0800"
>
<topic>Sound: ALSA</topic>

<p>Dmitry Kudryavtsev encountered problems getting sound to work with his
VIA VT8233A on a K7VTA3 motherboard. Jeff Garzik replied, <quote who="Jeff
Garzik">Kernel 2.4.x does not support your audio chip.  I hope to add
support soon.  ALSA 2.4.x or the in-kernel ALSA in 2.5.x does support your
audio.</quote></p>

</section>

<section
  title="RTLinuxFree 3.2 Released"
  subject="ANNOUNCE RTLinuxFree 3.2"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1584.html"
  posts="2"
  startdate="21 Nov 2002 07:55:48 -0800"
  enddate="25 Nov 2002 13:33:37 -0800"
>
<topic>Real-Time: RTLinux</topic>

<p>Victor Yodaiken announced:</p>

<quote who="Victor Yodaiken">

<p>RTLinuxFree 3.2-pre1 released.  This release is a pre-release for
RTLinuxFree 3.2. but is considered stable. It contains more than a year
worth of contributions from us and others.</p>

<p> RTLinuxFree 3.2 is available at <a
href="http://www2.fsmlabs.com/3.2-free.html">http://www2.fsmlabs.com/3.2-free.html</a></p>

<p>Timings with Linux 2.4.18 on a P4 are about 16 microseconds worst case
error for a 1 millisecond periodic task.  K7s are really good too.  You can
expect 30-40 microseconds on earlier machines.</p>

</quote>

<p>Some days later, Pavel Machek asked, <quote who="Pavel Machek">What is
difference between RTLinux and RTLinuxFree?</quote> But there was no reply.</p>

</section>

<section
  title="Tightening Up The inode Structure"
  subject="[PATCH] kill i_dev"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1719.html"
  posts="5"
  startdate="21 Nov 2002 15:46:40 -0800"
  enddate="21 Nov 2002 17:34:35 -0800"
>
<topic>BSD: FreeBSD</topic>

<p>Andries Brouwer posted a patch and said:</p>

<quote who="Andries Brouwer">

<p>This serves to decrease the size of struct inode a bit,
and makes sure that a later increase of sizeof(dev_t)
does not make struct inode bigger than it used to be.</p>

<p>The i_dev field is deleted and the few uses are replaced
by i_sb->s_dev.</p>

<p>There is a single side effect: a stat on a socket now sees
a nonzero st_dev. There is nothing against that - FreeBSD
has a nonzero value as well - but there is at least one
utility (fuser) that will need an update.</p>

</quote>

<p>Linus Torvalds applied the patch, and said:</p>

<quote who="Linus Torvalds">

<p>Looking at the patch (not testing it), as far as I can tell we'll return a
basically random number that is just whatever the anonymous super-block
was allocated, right?</p>

<p>I'm not convinced that returning random numbers to user space is
necessarily a great idea.. That said, I think we already do it for unnamed
pipes anyway, so I'm more wondering if we should have some way to map
these numbews (in user space) to a valid thing, so that they wouldn't just
be random numbers.</p>

<p>(In other words: I like the patch, and I'm not really complaining about
this new behavour at all. It's just the "randomness" as far as user space
goes that bothers me a bit, since it seems to imply bad interface design).</p>

</quote>

<p>Andries confirmed Linus' interpretation of the return value, but as
for his suggestions about mapping the numbers to anything valid, he said,
<quote who="Andries Brouwer">I don't know. We can try in-kernel to give these
well-known services well-known numbers. Or we can give them essentially random
numbers like today but publish these somewhere, e.g. under /sys.  Both are
easy, but seem too heavy for a value used by nobody.  We have process IDs
and anonymous fs IDs, and both are just what they happen to be.</quote></p>

</section>

<section
  title="Compatibility Layer Between 32- And 64-Bit Architectures"
  subject="[PATCH] Beginnings of conpat 32 code cleanups"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1776.html"
  posts="10"
  startdate="21 Nov 2002 21:23:12 -0800"
  enddate="26 Nov 2002 05:53:01 -0800"
>
<topic>POSIX</topic>

<mention>David S. Miller</mention>
<mention>Anton Blanchard</mention>
<mention>Pavel Machek</mention>
<mention>Andi Kleen</mention>

<p>Stephen Rothwell said:</p>

<quote who="Stephen Rothwell">

<p>There is a lot of duplicated code among the 32 compatibility layers
in our 64 bit architectures.  I am proposing to considate this as much as
possible. To that end, I first need to tidy up the relevant header files and
make them as common as possible.  Discussions with Dave Miller, Andi Kleen,
and Anton Blanchard has led to the creation of compat32.h to contain all
the 32 compatibility data types.</p>

<p>This patch merely adds include/asm-generic/compat32.h which is the header
information that is common to all the 32 bit compatibility code across all the
architectures (except parisc as I don't pretend to understand that :-)).</p>

<p>I will follow this up with patches for each architecture that I can. I also
intend to intruduce a CONFIG_COMPAT32 define that will be used to wrap generic
implementations of some of the 32 bit compatibility code in our architecture
independent code.  The idea is to share as much of the non compatibility code
and where that is not possible, to keep the 32 bit versions of code near their
"normal" (i.e.64 bit) counterparts in order to minimise the number of bugs
introduced and maximise the number of bugs fixed.</p>

</quote>

<p>Pavel Machek offered to test anything Stephen had on x86-64. But Linus
Torvalds said testily:</p>

<quote who="Linus Torvalds">

<p>What kind of strange _crap_ is this?</p>

<pre>        +typedef unsigned int           __kernel_size_t32;   
        +typedef int                    __kernel_ssize_t32;
        +typedef int                    __kernel_time_t32;
        +typedef int                    __kernel_clock_t32;
        +typedef int                    __kernel_pid_t32;
        +typedef unsigned int           __kernel_ino_t32;
        +typedef int                    __kernel_daddr_t32;
        +typedef int                    __kernel_off_t32;
        +typedef unsigned int           __kernel_caddr_t32;
        +typedef long                   __kernel_loff_t32;</pre>

<p>You're doing a compat layer, and then you're using various undefined types
that can be random sizes, and calling them xxx_t32.</p>

<p>For christ sake, somebody is on drugs here.</p>

<p>If they are called "xxx_t32", then that means that you _know_ the size
already statically, and you should use "u32" or "s32" which are shorter
and clearer anyway. You should sure as hell not use some random C type
that can be different depending on compiler options etc, and then calling
it a "compat" library.</p>

<p>Quite frankly, I don't see the point of this AT ALL. You're introducing
new types that cannot be sanely used directly anyway. What's the point?</p>

<p>Make your compat stuff use u32/s32/u64 directly, instead of making up ugly
new types that make no sense.</p>

</quote>

<p>Anton Blanchard pointed out that Stephen was only merging what Anton,
David S. Miller, and Andi Kleen had coded. And Stephen said to Linus, <quote
who="Stephen Rothwell">If you had bothered to look, you would have noticed
that these are taken straight from the compatibility code that already exists
in all the 64 bit architectures that have 32 bit compatibility layers.  I am
into doing incremental changes that people can see easily are not harmful
and then doing better cleanups later.</quote> He added, <quote who="Stephen
Rothwell">Thanks for abusing me in public - its just what I needed after
having my attempts at reducing the mess in the arch dependent code ignored
for so long!</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>It's _still_ crap.</p>

<p>The fact is, that a</p>

<p>        unsigned int xxxx</p>

<p>in a &lt;asm-i386/xxxxx.h&gt; file is fine. On asm-i386, "unsigned int" has
well-defined behaviour, and is a well-defined type within that world.   </p>

<p>However, if you consolidate different files from different architectures,
what is acceptable in some random architecture header file is _not_ any
more acceptable in a "consolidated" entry. Suddenly, "unsigned int" has no
well-defined meaning any more, and certainly not something like "long"
which will sometimes change even on the same architecture depending on
compiler options etc.</p>

<p>THAT is what I'm complaining about. Code sharing without thinking is BAD.</p>

<p>Get rid of made-up types and clean them up to use well-defined types. The
whole point of your patch was to clan stuff up, no?</p>

<p>In other words: for something like this, don't even bother with strange
types like "__kernel_loffset_t32". The type simply does not make sense.
The only reason we have __kernel_xxxx types is to export architecture-  
specific stuff to user space through "types.h", without polluting the 
POSIX- mandated namespaces.</p>

<p>For the 32-bit compatibility stuff, that simply doesn't make sense:</p>

<p>

<ul>

<li>

<p>the types should never be exposed to user space at all on a source
   level. It's a ABI compatibility thing, not an API compatibility.</p>

<p>   So the "__kernel_xxx" stuff makes no sense, and only shows that
   somebody was lazy and did some cut-and-paste followed by adding crud
   instead of doing it right (and yeah, that crap was there from before,
   but don't sell it as a cleanup)</p>

</li>

<li>the types aren't even architechure-specific any more, since the whole
   _point_ of your cleanups is to make the compat32 layer generic. So they
   shouldn't be things like "loff_t" at _all_ (never mind the __kernel_
   prefix), they should just be the architecture-independent "u32" or
   "s64" or whatever the compat code uses.</li>

</ul>

</p>

<p>This is why I think the whole file makes zero sense. Yes, people have
copied crap before. But that doesn't make it any better.</p>

</quote>

</section>

<section
  title="Linux v2.5.49 Released"
  subject="Linux v2.5.49"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1909.html"
  posts="10"
  startdate="22 Nov 2002 13:55:08 -0800"
  enddate="26 Nov 2002 10:08:42 -0800"
>

<p>Linus Torvalds announced <a
href="http://www.kernel.org/pub/linux/kernel/v2.5/ChangeLog-2.5.49">2.5.49</a>
and said:</p>

<quote who="Linus Torvalds">

<p>Ok, I appear to be without network connectivity at home at least over the
weekend, and master.kernel.org is going down for some maintenance this
afternoon, so here's my current tree.</p>

<p>Architecture updates, threading improvements, shm fix (the cause of
the Oracle problems), networking, scsi, modules, you name it, it's here.</p>

<p>Due to my lacking network connection over the weekend, I'd suggest
discussing issues on linux-kernel, since emailing them to me won't much
help ;/</p>

<p>The joys of switching ISPs..</p>

</quote>

</section>

<section
  title="Trouble With Module Code In 2.5"
  subject="New module loader makes kernel debugging much harder"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.2/1961.html"
  posts="10"
  startdate="22 Nov 2002 18:20:10 -0800"
  enddate="24 Nov 2002 17:26:58 -0800"
>

<p>Keith Owens complained:</p>

<quote who="Keith Owens">

<p>The new module loader makes kernel debugging much harder.</p>

<p>There is no section information available, which means ...</p>

<p>

<ul>

<li>ksymoops cannot decode oops in modules.  Without section data, there  
  is no way to reliably determine where module symbols were loaded.  </li>

<li>kgdb cannot debug modules.  gdb needs to know which modules are
  loaded and where each section of each module starts.</li>

<li>kdb cannot display the section for a symbol.  Which means the user
  cannot do<br />
    objdump -j &lt;section_name&gt; --adjust-vma=&lt;start_address&gt; module<br />
  to map the code to the original object and source.</li>

</ul>

</p>

<p>The complete lack of kernel and module symbols (no /proc/ksyms) means
that ksymoops is now useless on 2.5 kernels.  If you get an oops in a
kernel built without kksymoops, there is no way to decode the oops.</p>

</quote>

<p>Jamie Lokier added, <quote who="Jamie Lokier">Also "depmod" is now broken,
so even with Rusty's replacement modutils a system won't demand load modules
properly.</quote></p>

<p>John Levon said, <quote who="John Levon">Somebody (this includes Rusty
himself) needs to come up with a workable solution. For my own needs, the start
address of the mapped module is good enough, but it seems you need more than
that. I'd be quite happy with the re-introduction of /proc/ksyms as it would
mean no userspace code changes for me :)</quote> At one point Rusty Russell
said, <quote who="Rusty Russell">The patch to restore /proc/ksyms is trivial.
As is the addition of a start entry /proc/modules.  When combined with rth's
simplified loader, it should be sufficient for both ksymoops and oprofile.
kgdb needs a patch to work, anyway: you might want to restore /proc/ksyms in
that patch?  (I don't use kgdb, so my ignorance here is complete).</quote></p>

</section>

<section
  title="syscalltrack 0.80 Released"
  subject="ANN: syscalltrack 0.80 &#34;Tanned Otter&#34; released"
  posts="4"
  startdate="23 Nov 2002 12:10:15 -0800"
  enddate="27 Nov 2002 05:29:07 -0800"
>
<topic>Debugging</topic>

<mention>Pavel Machek</mention>
<mention>Muli</mention>

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

<quote who="Muli Ben-Yehuda">

<p>syscalltrack-0.80, the 12th alpha release of the Linux kernel system
call tracker, is now available. syscalltrack supports version 2.4.x of
the Linux kernel on the i386 platform.</p>

<p>This release containes many bug fixes and logging improvements.</p>

<p>* What is syscalltrack?</p>

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

<p>* Where can I get it?</p>

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

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

<p>* Call for developers:</p>

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

<p>* License and NO Warrany</p>

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

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

<p>* PGP Signature</p>

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

<p>Happy syscalltracking!</p>

<p>New in version 0.80, "Tanned Otter":</p>

<p>

<ul>

<li>This release contains support for multiple readers of the log
  device. It is now possible to have two (or more) different log
  device readers, e.g. one running in a terminal ('sctlog'), and the
  other being a daemon reading directly from the log device and
  parsing its output to warn about anomalities. Each log device reader
  can set its own log device parameter, such as the log format and the
  log buffer size. See sct_logctrl(1) and sctlog(1) for further
  details.</li>

<li>Log output now goes to the log device by default, not to syslog. use
  sctlog(1) (or 'cat /dev/sct_log') to see it.</li>

<li>The user can now configure the 'max record length' of records
  printed to the log device file. 'max record length' is useful when
  logging the parameters for read() or write(), for example, because
  the 'buffer' parameter could be very large and filled with garbage,
  thus flooding the log device. This patch allows you to set the max
  record length to something sane, so only the first bytes of the
  buffer are printed, followed by '...'. Setting it to 0 disables it.</li>

<li>This release disables support for the 'shmat', 'semctl' and
  'msgrecv' system calls (muxed functions of the sys_ipc system call,
  to be precise). It will be fixed and included in the next release.</li>

<li>Make rules printed by 'sct_config download' look nicer.</li>

</ul>

</p>

</quote>

<p>Pavel Machek asked what this could do that ptrace couldn't, and Muli
replied:</p>

<quote who="Muli Ben-Yehuda">

<p>Everything that stems from being 1) kernel based and 2) system wide. ptrace
is inherently process based - "show me what this process did". syscalltrack is
system wide - "show me *which* process did this or that." (You can probably
emulate syscalltrack's system wide behaviour by ptracing init and all of its
forked children, but your system will slow to a crawl. With syscalltrack,
you'll barely feel anything.)</p>

<p>syscalltrack also has better filtering than strace, and supports actions
- fail the system call if it passed that filter, suspend the process if it
passed that filter, etc.</p>

<p>Basically, there are things which strace is good for, and there are
things subterfuge is good for, and there are things syscalltrack is good
for. Use the right tool for the job. You can see more about syscalltrack's
capabilities on the website.</p>

</quote>

<p>Pavel agreed that the speed difference was huge.</p>

</section>

<section
  title="IDE Update"
  subject="[PATCH-2.5.47-ac6] More IDE updates (BIOS, simplex, etc)"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0170.html"
  posts="4"
  startdate="25 Nov 2002 05:41:58 -0800"
  enddate="27 Nov 2002 05:54:56 -0800"
>
<topic>Disks: IDE</topic>
<topic>Hot-Plugging</topic>

<mention>Alan Cox</mention>
<mention>Andre Hedrick</mention>

<p>Torben Mathiasen posted a patch and explained to Alan Cox:</p>

<quote who="Torben Mathiasen">

<p>Please apply the attached patch. Its an update on my previos patch with a
rewrite of the simplex code. The patch now does the following:</p>

<p>

<ul>

<li>Make simplex detection on a per drive basis and dynamic for use with
hotplug.</li>

<li>Make sure we also enforce simplex rules when using hdparm.</li>

<li>Make sure we also enforce simplex rules when using BIOS timings.</li>

<li>Moves BIOS timings IDE detection into chipset drivers (by providing a
library function).</li>

<li>Provide the above library function that sets default values for tune
parameters. It also handles the special case where user has requested to
use BIOS IDE timings. Caller is assumed to support DMA on/off probe using
the dma_status register unless a dma_check funtion is provided (note, the
tekram driver is somewhat different from all the others, and haven't been
updated yet).</li>

<li>Makes BIOS IDE timings work for both IDE0 and IDE1 at the same time.</li>

</ul>

</p>

<p>I'm not sure whether you already applied my previous patch, so let me
know if you want this on top of that one.</p>

</quote>

<p>Andre Hedrick was thrilled with this.</p>

</section>

<section
  title="perfctr 2.4.2 Released"
  subject="perfctr-2.4.2 released"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0179.html"
  posts="1"
  startdate="25 Nov 2002 06:55:08 -0800"
>
<topic>Profiling</topic>
<topic>Real-Time</topic>

<p>Mikael Pettersson announced:</p>

<quote who="Mikael Pettersson">

<p>perfctr-2.4.2 is now available at the usual place: <a
href="http://www.csd.uu.se/~mikpe/linux/perfctr/">http://www.csd.uu.se/~mikpe/linux/perfctr/</a></p>

<p>The perfctr-2.4 branch is again the main branch. The perfctr-3.1 branch
is suspended since (a) it's only purpose was to be a cleaned up version for
the 2.5 kernel, (b) it was ignored w/o comment, and (c) it removed too many
features (module support, old kernels support) in its attempt to be as clean
as possible.</p>

<p>Proper support for hyper-threaded P4s is next on my TODO list. </p>

<p>Version 2.4.2, 2002-11-25</p>

<p>

<ul>

<li>Fixed a driver bug where it could fail to prevent simultaneous use of
global-mode and per-process performance counters.</li>

<li>Made the driver safe for preemptible 2.5 kernels.</li>

<li>New patches for RedHat update kernels 2.2.22-6.2.2, 2.2.22-7.0.2,
2.4.18-18.7.x, and 2.4.18-18.8.0.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Direction Of User-Mode Linux"
  subject="uml-patch-2.5.49-1"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0310.html"
  posts="16"
  startdate="25 Nov 2002 21:17:07 -0800"
  enddate="26 Nov 2002 21:08:40 -0800"
>
<topic>FS: devfs</topic>
<topic>SMP</topic>
<topic>User-Mode Linux</topic>

<mention>Jim Nance</mention>

<p>Jeff Dike announced:</p>

<quote who="Jeff Dike">

<p>This patch merges the rework that has been in my 2.4 pool for the last month
or so.  I'm going to describe what happened in some detail since it hasn't
been discussed on lkml at all, and there are some generic kernel changes
involved which may be of wider interest.</p>

<p>The design of UML has had as its main points:</p>

<p>

<ul>

<li>every UML process has a corresponding host process</li>
<li>the UML kernel is mapped into the top .5G of each process' address space</li>
<li>there is a special thread, the tracing thread, which ptraces all the other
threads, managing their transitions between the kernel and userspace.</li>

</ul>

</p>

<p>This is insecure, because protecting UML kernel data from its processes is
hard to do right, and impossible to do quickly.  UML does have a 'jail' mode
which implements this, which is many times slower than non-jail.</p>

<p>It's also slow, because entry to userspace involves a signal delivery to
the process entering the kernel and a signal return when leaving the kernel.</p>

<p>To fix these problems, I followed up an observation by Ingo a few months ago
that a full process context switch is several times faster than an in-process
signal delivery.</p>

<p>I implemented a new mode which puts the UML kernel into a completely separate
address space from its processes.  skas (== "separate kernel address space" -
the traditional mode is now called tt (== "tracing thread")) mode has these
main points:</p>

<p>

<ul>

<li>the kernel is in a separate process and address space from its
processes</li>
<li>UML processes share a single host process</li>
<li>each UML process has its own host address space</li>
<li>thus, the "userspace" process hops between address spaces on each UML
context switch</li>

</ul>

</p>

<p>skas mode has a number of advantages over the traditional tt mode:</p>

<p>

<ul>

<li>better security - since the kernel is in a different address space, processes
can't even see, let alone modify, kernel data, since they can't form a kernel
address.</li>

<li>better performance - it is significantly faster.  Kernel builds in skas mode
approach twice the speed of tt mode, and ~30% slower than the host (compared
to ~100% slower with tt mode).</li>

<li>better debuggability - it is now possible to 'gdb linux' and have it do what
you expect.  Tools like gprof, gcov, and ddd should now just work, without
needing special support inside UML (although gprof currently needs the removal
of some of that support in order to work).  It is possible to build UML as
a normal dynamically linked binary, which will make it possible to valgrind
the kernel (although valgrind is currently bothered by UML's use of clone).</li>

<li>cleaner code - process creation, switching, and destruction are far simpler,
cleaner, and faster in the skas code than in the tt code.</li>

<li>miscellaneous - UML process address spaces are now identical to those on the
host - this is advantageous for applications such as honeypots, as well as
possibly for applications which use the full 3G address space.  The kernel
now has a full 3G of virtual address space.</li>

</ul>

</p>

<p>There is one major disadvantage to skas mode - it can't be implemented given
the support currently in the stock kernel.</p>

<p>I've added some stuff into the generic and i386 code to make skas mode
possible.  This support includes:</p>

<p>

<ul>

<li>/proc/mm, which allows address spaces to be created independently of
processes</li>
<li>a number of ptrace extensions</li>

</ul>

</p>

<p>/proc/mm has the following semantics -</p>

<p>

<ul>

<li>open creates a new, empty address space - the file descriptor returned
is used as a handle to that address space</li>

<li>write modifies the address space according to the structure that is
passed in as the buffer argument.  The possible operations are map, unmap,
protect, and copy segments.  The first three are identical to mmap, munmap,
and mprotect.  The last is used to copy the arch-specific data associated
with the mm_struct as part of cloning the address space.</li>

<li>close drops the reference count of the address space, which normally
frees it since UML will not have any processes running in it</li>

</ul>

</p>

<p>The ptrace extensions are:</p>

<p>

<ul>

<li>PTRACE_FAULTINFO - returns the information assoicated with the child's
most recent segfault</li>

<li>PTRACE_SIGPENDING - returns the child's pending signal mask</li>

<li>PTRACE_LDT - performs a modify_ldt on the child - this is really an
address space operation and will be moved to /proc/mm at some point</li>

<li>PTRACE_SWITCH_MM - switches the child from its current address space
to the one associated with the file descriptor pass in with this call</li>

</ul>

</p>

<p>The host support patch is available with all the other UML downloads at<br />
        <a href="http://user-mode-linux.sf.net/dl-sf.html">http://user-mode-linux.sf.net/dl-sf.html</a></p>

<p>I welcome any comments on it.  The /proc/mm write semantics are less than
ideal - I especially would like suggestions for improvements.</p>

<p>The 2.5.49 UML patch is available at<br />
        <a href="http://uml-pub.ists.dartmouth.edu/uml/uml-patch-2.5.49-1.bz2">http://uml-pub.ists.dartmouth.edu/uml/uml-patch-2.5.49-1.bz2</a></p>

<p>For the other UML mirrors and other downloads, see
        <a href="http://user-mode-linux.sourceforge.net/dl-sf.html">http://user-mode-linux.sourceforge.net/dl-sf.html</a></p>

<p>Other links of interest:</p>

<p>        The UML project home page : <a href="http://user-mode-linux.sourceforge.net">http://user-mode-linux.sourceforge.net</a><br />
        The UML Community site : <a href="http://usermodelinux.org">http://usermodelinux.org</a></p>

</quote>

<p>Jim Nance really liked Jeff's UML work, but suggested using /dev/mm
instead of /proc/mm. Jeff didn't see anything to gain from that, but
H. Peter Anvin explained, <quote who="H. Peter Anvin">Access control,
ability to work in a chroot, ...</quote> Jeff said he'd make the switch if
H. Peter really thought it would be an improvement, and H. Peter replied,
<quote who="H. Peter Anvin">Absolutely.  I think /proc is heavily overused
as a really bad devfs.</quote></p>

<p>Elsewhere, Andi Kleen asked, <quote who="Andi Kleen">Can you quickly
describe why you didn't use one host process per uml process ?  That would
have avoided the need for a /proc/mm extension too I guess.</quote> Jeff
explained:</p>

<quote who="Jeff Dike">

<p>Yes, it would have.  And it was done that way during an intermediate stage
of the skas work.</p>

<p>There were a few reasons for /proc/mm -</p>

<p>

<ul>

<li>reduce host resource consumption - we still have the mm_struct and
page tables, but we do eliminate the kernel stack, task struct, and associated
data</li>

<li>design cleanliness - a UP UML is inherently single-threaded, so it's
pointless to have many host processes when only one of them can be running.
A host process maps much more cleanly onto a UML processor than a UML process,
and a UML process maps much more cleanly onto a host address space than a
host process.</li>

<li>code cleanliness - before /proc/mm, UML manipulated address spaces
through ptrace (PTRACE_M{MAP,UNMAP,PROTECT}).  This meant that a process needed
to be used as a handle for the address space.  Since there's no way of knowing 
what process in an address space is still going to exist when you want to swap
it out, the UML mm_context was a list of task_structs.  This made for some
nasty-looking code to keep that list up-to-date.  It also made for some   
nasty-looking locking against races between swapout and a thread exiting.  Now,
the UML mm_context is an int which holds a /proc/mm file descriptor.  No lists,
no races, it doesn't get any simpler.</li>

</ul>

</p>

<p>Some smaller reasons -</p>

<p>

<ul>

<li>With the address space manipulations in /proc/mm rather than ptrace,
it is possible that a cleaner interface can be found for it.  The current
/proc/mm write semantics are morally equivalent to the previous ptrace
interface, but there is hope that something better can be found.  With ptrace,
there is no hope.</li>

<li>scheduling fairness - when you have a single-threaded app (in the sense
that there is only one active thread at any given time) that's spreading its
work over many threads, the thread that wants to run will compete unfairly
in the scheduler with another single-threaded app that is honestly doing all
of its work in one thread.  The thread in the first app will have accumulated
much less time than the second app's thread, and so will have higher priority,
even though the two apps may have used the same amount of CPU.  With /proc/mm,
UML gets much closer to one host process per processor, but doesn't quite
make it.  There are two host processes, one running the kernel, one running
userspace.  I'm trying to think of a way of merging them.</li>

<li>It's much nicer to look at ps or top on the host and see a few
(currently four) processes per UML rather than, say, 100.</li>

</ul>

</p>

<p>An unexpected benefit - UML is noticably faster with /proc/mm.  That knocked
~10% off its kernel build time.  With it doing a build about 40% slower than
the host, the 10% reduction in overall run time represents ~25% reduction in
UML's virtualization overhead.</p>

</quote>

<p>Andreas Dilger asked:</p>

<quote who="Andreas Dilger">

<p>How does GDB now distinguish between UML processes?  Previously, with
GDB and UML one would "det; att &lt;host pid&gt;" to trace another process.
Will there be equivalent functionality in the new setup?</p>

<p>I was just thinking about hacking the UML PID allocation code so that the
UML process PID == host process PID, so that it is easier to debug multiple
kernel threads (which are all called "kernel thread" and are hard to align
with a specific UML kernel thread).</p>

<p>Will SMP UML "just" be a matter of forking the host process and sharing
the /proc/mm file descriptors, along with a UML SMP scheduler and some IPC
to decide which host process is running each UML process?</p>

</quote>

<p>Regarding how GDB could distinguish between UML processes, Jeff replied,
<quote who="Jeff Dike">It now doesn't.  What I'm considering is some function
you can call from gdb which would longjmp to the stack that you want to look
at and execute a breakpoint (or maybe just hit a breakpoint that was put
there earlier).  That should give you equivalent functionality to the current
det/att.</quote> And for SMP UML, he said Andreas had the right idea. He
said, <quote who="Jeff Dike">It's basically the same as SMP in tt mode,
except that starting the idle threads will be slightly different.</quote></p>

</section>

<section
  title="Linux 2.4.20-rc4 Released"
  subject="Linux 2.4.20-rc4"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0394.html"
  posts="2"
  startdate="26 Nov 2002 05:16:24 -0800"
  enddate="26 Nov 2002 16:01:46 -0800"
>
<topic>FS: ReiserFS</topic>
<topic>Ioctls</topic>
<topic>Networking</topic>
<topic>Samba</topic>

<mention>Paul Mackerras</mention>
<mention>Adrian Bunk</mention>
<mention>Oleg Drokin</mention>
<mention>Kai Germaschewski</mention>

<p>Marcelo Tosatti announced:</p>

<quote who="Marcelo Tosatti">

<p>The main reason for -rc4 is that the ISDN fix in -rc3 was problematic.</p>

<pre>Summary of changes from v2.4.20-rc3 to v2.4.20-rc4
============================================

&lt;marcelo@freak.distro.conectiva&gt;:
  o Changed EXTRAVERSION to -rc4
  o Cset exclude: ralf@dea.linux-mips.net|ChangeSet|20021030170645|00078

&lt;ralf@dea.linux-mips.net&gt;:
  o The BLKGETSIZE ioctl expects an unsigned long argument

Adrian Bunk &lt;bunk@fs.tum.de&gt;:
  o Fix ips driver .text.exit errors

Kai Germaschewski &lt;kai@tp1.ruhr-uni-bochum.de&gt;:
  o ISDN: Fix the fix

Oleg Drokin &lt;green@namesys.com&gt;:
  o Do not allow to mount reiserfs with blocksize != 4k

Paul Mackerras &lt;paulus@samba.org&gt;:
  o PPC32: Fix arch/ppc/Makefile so it builds on POWER3
  o PPC32: Ignore SIGURG if not caught

Rui Sousa &lt;rui.sousa@laposte.net&gt;:
  o Emu10k1 bugfixes</pre>

</quote>

</section>

<section
  title="Reverse-Mapping Virtual Memory Subsystem"
  subject="[PATCH] rmap 15a"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0370.html"
  posts="1"
  startdate="26 Nov 2002 05:35:27 -0800"
>
<topic>Big Memory Support</topic>
<topic>Big O Notation</topic>
<topic>SMP</topic>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>

<mention>Andrew Morton</mention>

<p>Rik van Riel announced:</p>

<quote who="Rik van Riel">

<p>The first maintenance release of the 15th version of the reverse mapping
based VM is now available.  This is an attempt at making a more robust and
flexible VM subsystem, while cleaning up a lot of code at the same time.
The patch is available from:</p>

<p> <a
href="http://surriel.com/patches/2.4/2.4.19-rmap15a">http://surriel.com/patches/2.4/2.4.19-rmap15a</a>
and <a href="http://linuxvm.bkbits.net/">http://linuxvm.bkbits.net/</a></p>

<p>My big TODO items for a next release are:</p>

<p>

<ul>

<li>backport speedups from 2.5</li>

<li>pte-highmem</li>

</ul>

</p>

<p>rmap 15a:</p>

<p>

<ul>

<li>more agressive freeing for higher order allocations   (me)</li>
<li>export __find_pagecache_page, find_get_page define    (me, Cristoph,
Arjan)</li>
<li>make memory statistics SMP safe again                 (me)</li>
<li>make page aging slow down again when needed           (Andrew Morton)</li>
<li>first stab at fine-tuning arjan's O(1) VM             (me)</li>
<li>split active list in cache / working set              (me)</li>
<li>fix SMP locking in arjan's O(1) VM                    (me)</li>

</ul>

</p>

</quote>

</section>

<section
  title="XFS Patches For 2.4.20-rc3"
  subject="Announce: XFS split patches for 2.4.20-rc3"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0520.html"
  posts="1"
  startdate="26 Nov 2002 16:49:34 -0800"
>
<topic>Access Control Lists</topic>
<topic>FS: XFS</topic>

<p>Keith Owens announced:</p>

<quote who="Keith Owens">

<p><a
href="ftp://oss.sgi.com/projects/xfs/download/patches/2.4.20-rc3">ftp://oss.sgi.com/projects/xfs/download/patches/2.4.20-rc3</a>.</p>

<p>For some time the XFS group have been producing split patches for XFS,
separating the core XFS changes from additional patches such as kdb, xattr,
acl, dmapi.  The split patches are released to the world with the hope that
developers and distributors will find them useful.</p>

<p>Read the README in each directory very carefully, the split patch format
has changed over a few kernel releases.  Any questions that are covered by
the README will be ignored.  There is even a 2.4.20/README for the terminally
impatient :).</p>

</quote>

</section>

<section
  title="Status List For 2.5"
  subject="[STATUS 2.5]  November 27, 2002"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0674.html"
  posts="2"
  startdate="27 Nov 2002 10:04:13 -0800"
  enddate="27 Nov 2002 10:32:39 -0800"
>
<topic>Bug Tracking</topic>
<topic>Disks: SCSI</topic>

<p>Guillaume Boissiere posted his 2.5 status list (see <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0674.html">the
specifics</a>), and explained:</p>

<quote who="Guillaume Boissiere">

<p>Things seem to be stabilizing quite a bit.  No new features but tons
of bug fixes have been merged.  Below the list of what I have pending
in the status list along with the 58 open bugs currently in Bugzilla (<a
href="http://bugzilla.kernel.org/)">http://bugzilla.kernel.org/</a>)</p>

<p>Full status list is at <a
href="http://www.kernelnewbies.org/status">http://www.kernelnewbies.org/status</a></p>

</quote>

<p>Steven Dake replied, <quote who="Steven Dake">It appears that some minor
problems with the SCSI and FibreChannel hotswap driver have caused it to be
rejected by the SCSI maintainers at this time.  Unforutnately I don't have
much time before 2.6 releases to work on it, so I'd ask if you could move
this to a 2.7 delivery.</quote></p>

</section>

<section
  title="List Of Kernel Maintainers"
  subject="lk maintainers"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0636.html"
  posts="2"
  startdate="27 Nov 2002 11:31:00 -0800"
  enddate="27 Nov 2002 09:54:56 -0800"
>

<p>Denis Vlasenko posted his list of kernel maintainers (see <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0636.html">the
specifics</a> and said:</p>

<quote who="Denis Vlasenko">

<p>This document is mailed to lkml regularly and will be modified whenever
new victim wishes to be listed in it or someone can no longer devote his
time to maintainer work.   </p>

<p>If you want your entry added/updated/removed, contact me.</p>

<p>BTW, requests to move your entry to the top of the list without actually
changing the text are fine too: that will indicate that entry is not outdated,
so don't be shy ;-)</p>

</quote>

</section>

<section
  title="OSDL Scalable Test Platform Release 2.00"
  subject="[Announce] OSDL Scalable Test Platform Release 2.00"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0211.3/0696.html"
  posts="1"
  startdate="27 Nov 2002 12:08:30 -0800"
>
<topic>Debugging</topic>

<p>Craig Thomas announced:</p>

<quote who="Craig Thomas">

<p>OSDL has released a new version of the Scalable Test Platform, an automated
test environment that allows a developer to test kernel patches on a variety
of hardware platforms against a number of performance tests.</p>

<p>The code and documentation is at:</p>

<p><a
href="http://sourceforge.net/projects/stp/">http://sourceforge.net/projects/stp/</a></p>

<p>OSDL's instance of STP is at:</p>

<p><a href="http://www.osdl.org/stp">http://www.osdl.org/stp</a>.</p>

<p>Types of tests to exercise a kernel patch include:</p>

<p>

<ul>

<li>memory stress</li>
<li>scheduler</li>
<li>file system</li>
<li>database</li>
<li>system calls</li>
<li>synthetic microbenchmarks</li>

</ul>

</p>

<p>Changes to the new release include the following:</p>

<p>

<ul>

<li>New installation toolkit</li>
<li>Major revision to backend</li>
<li>Minor bug fixes to web interface</li>
<li>Much new documentation on Web and in kit</li>

</ul>

</p>

<p>We encourage the community to use the framework at OSDL to
test your patches.  Become an OSDL associate (free signup) at <a
href="http://www.osdl.org">www.osdl.org</a> and take advantage of the the
various platforms offered in the lab.</p>

</quote>

</section>

</kc>

