<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="29" date="29 Jul 1999 00:00:00 -0800" />

<intro>

<p>Many thanks go to Peter Samuelson, who actually sent in a context sensitive
diff with corrections to last week's issue (a link fix and some clearer
wording). Peter has been a big help on several occassions, and it is much
appreciated :-)</p>

</intro>

<stats posts="915" size="3792" contrib="356" multiples="153" lastweek="136">

<person posts="29" size="82" who="Alan Cox " />
<person posts="28" size="121" who="Riley Williams " />
<person posts="23" size="81" who="&quot;Stephen C. Tweedie&quot; " />
<person posts="19" size="66" who="Andi Kleen " />
<person posts="18" size="90" who="Alexander Viro " />
<person posts="18" size="57" who="Steve Dodd " />
<person posts="16" size="85" who="Artur Skawina " />
<person posts="16" size="70" who="Bernd Paysan " />
<person posts="15" size="55" who="&quot;Khimenko Victor&quot; " />
<person posts="15" size="53" who="Jamie Lokier " />
<person posts="12" size="39" who="Andrea Arcangeli " />
<person posts="11" size="53" who="Larry McVoy " />
<person posts="10" size="56" who="Pavel Machek " />
<person posts="10" size="33" who="Marc Mutz " />
<person posts="10" size="31" who="Ulrich Drepper " />
<person posts="9" size="43" who="&quot;Sean Hunter&quot; " />
<person posts="9" size="36" who="Richard Gooch " />
<person posts="9" size="35" who="Alon Ziv " />
<person posts="9" size="25" who="" />
<person posts="8" size="37" who="Kurt Garloff " />
<person posts="8" size="28" who="Rik van Riel " />
<person posts="8" size="27" who="Linus Torvalds " />
<person posts="8" size="25" who="&quot;Albert D. Cahalan&quot; " />
<person posts="8" size="20" who="Tim Waugh " />
<person posts="7" size="31" who="Claus Fischer " />
<person posts="6" size="45" who="Matthew Kirkwood " />
<person posts="6" size="44" who="Ingo Molnar " />
<person posts="6" size="26" who="Steve Underwood " />
<person posts="6" size="17" who="Benjamin LaHaise " />
<person posts="6" size="16" who="Chris Evans " />
<person posts="5" size="37" who="&quot;Benjamin C.R. LaHaise&quot; " />
<person posts="5" size="22" who="Zack Weinberg " />
<person posts="5" size="20" who="Oliver Xymoron " />
<person posts="5" size="18" who=" (Rogier Wolff)" />
<person posts="5" size="18" who="&quot;Chris Jones&quot; " />
<person posts="5" size="18" who=" (H.J. Lu)" />
<person posts="5" size="17" who="&quot;Richard B. Johnson&quot; " />
<person posts="5" size="17" who="Horst von Brand " />
<person posts="5" size="16" who=" (Bob_Tracy)" />
<person posts="5" size="16" who="Tim Hockin " />
<person posts="5" size="16" who="Dong Liu " />
<person posts="5" size="16" who="&quot;Jones D (ISaCS)&quot; " />
<person posts="5" size="15" who="Dancer " />
<person posts="5" size="15" who="&quot;Barrett G. Lyon&quot; " />
<person posts="5" size="15" who="Peter Desnoyers " />
<person posts="5" size="15" who="&quot;Theodore Y. Ts'o&quot; " />
<person posts="5" size="13" who="Hirling Endre " />
<person posts="4" size="70" who="Frank van Maarseveen " />
<person posts="4" size="30" who="Sasi Peter " />
<person posts="4" size="15" who="Mike Touloumtzis " />
<person posts="4" size="15" who="Andi Kleen " />
<person posts="4" size="15" who="Hermann Schichl " />
<person posts="4" size="13" who="&quot;John P. Looney&quot; " />
<person posts="4" size="13" who="Fred Reimer " />
<person posts="4" size="13" who="Chris Osicki " />
<person posts="4" size="12" who="Matti Aarnio " />
<person posts="4" size="12" who="Mike Shaver " />
<person posts="4" size="11" who="" />
<person posts="4" size="10" who="Jens Axboe " />
<person posts="4" size="10" who="&quot;Andre M. Hedrick&quot; " />
<person posts="4" size="8" who="bluexiao " />
<person posts="3" size="94" who="Bruce Korb " />
<person posts="3" size="20" who="Thomas Bierweiler " />
<person posts="3" size="19" who="Benjamin Redelings I " />
<person posts="3" size="14" who="Matthias Hanisch " />
<person posts="3" size="14" who="" />
<person posts="3" size="13" who="Nils Nieuwejaar - Sun High Performance Computing " />
<person posts="3" size="13" who="&quot;Dunlap, Randy&quot; " />
<person posts="3" size="13" who="&quot;Mr. James W. Laferriere&quot; " />
<person posts="3" size="12" who="Gerard Roudier " />
<person posts="3" size="12" who="Rick Hohensee " />
<person posts="3" size="12" who="Mark Henry " />
<person posts="3" size="11" who="Matthew Wilcox " />
<person posts="3" size="10" who="Paul Barton-Davis " />
<person posts="3" size="9" who="Christopher Hassell " />
<person posts="3" size="9" who="Zack Weinberg " />
<person posts="3" size="9" who="Darren Reed " />
<person posts="3" size="9" who="" />
<person posts="3" size="9" who="Arjan Filius " />
<person posts="3" size="8" who="Wakko Warner " />
<person posts="3" size="8" who="George Bonser " />
<person posts="3" size="8" who="Jeremy Fitzhardinge " />
<person posts="3" size="8" who="&quot;Alan Curry&quot; " />
<person posts="3" size="7" who="Gregory Maxwell " />
<person posts="3" size="7" who="" />
<person posts="2" size="53" who="Peter Hanecak " />
<person posts="2" size="38" who="Sven Koch " />
<person posts="2" size="22" who="" />
<person posts="2" size="21" who="Sarah Schwalm " />
<person posts="2" size="20" who="Benjamin Lewis " />
<person posts="2" size="16" who="William Stearns " />
<person posts="2" size="12" who="Benno Senoner " />
<person posts="2" size="11" who="Jamie Lokier " />
<person posts="2" size="9" who="Rui Sousa " />
<person posts="2" size="9" who="Harald Koenig " />
<person posts="2" size="9" who=" (Dario_Ballabio)" />
<person posts="2" size="9" who="Luca Montecchiani " />
<person posts="2" size="9" who="Thomas Bierweiler Mailing list " />
<person posts="2" size="9" who="merblich " />
<person posts="2" size="8" who="&quot;Donald Harter&quot; " />
<person posts="2" size="8" who="Thomas Roell " />
<person posts="2" size="8" who="&quot;Petr Vandrovec Ing. VTEI&quot; " />
<person posts="2" size="8" who="&quot;J. Reeves Hall&quot; " />
<person posts="2" size="7" who="Marco Ermini " />
<person posts="2" size="7" who="Trond Myklebust " />
<person posts="2" size="7" who="" />
<person posts="2" size="7" who="Karl Kiniger " />
<person posts="2" size="7" who="&quot;Mike A. Harris&quot; " />
<person posts="2" size="7" who="Oystein Viggen " />
<person posts="2" size="7" who="Jeff Garzik " />
<person posts="2" size="7" who="Paul Jakma " />
<person posts="2" size="7" who="Stanislav Krasilovskiy " />
<person posts="2" size="7" who="Gabor Lenart " />
<person posts="2" size="7" who=" (Linus Torvalds)" />
<person posts="2" size="6" who="Andreas Jaeger " />
<person posts="2" size="6" who="Borislav Deianov " />
<person posts="2" size="6" who="&quot;B. James Phillippe&quot; " />
<person posts="2" size="6" who="=?iso-8859-1?q?willy=20tarreau?= " />
<person posts="2" size="6" who="CaT " />
<person posts="2" size="6" who="Bryn Paul Arnold Jones " />
<person posts="2" size="6" who="Niels Kristian Bech Jensen " />
<person posts="2" size="6" who="Rafael Reilova " />
<person posts="2" size="6" who="Wichert Akkerman " />
<person posts="2" size="6" who="Andreas Schwab " />
<person posts="2" size="6" who="elijah wright " />
<person posts="2" size="6" who="Klaus Kudielka " />
<person posts="2" size="6" who="&quot;Lou Grinzo&quot; " />
<person posts="2" size="6" who="John Alvord " />
<person posts="2" size="6" who="Russ " />
<person posts="2" size="6" who="Andrej Todosic " />
<person posts="2" size="6" who="Christof Damian " />
<person posts="2" size="6" who="&quot;M.Brands&quot; " />
<person posts="2" size="6" who="&quot;David S. Miller&quot; " />
<person posts="2" size="6" who="&quot;Nate Tuck&quot; " />
<person posts="2" size="6" who="" />
<person posts="2" size="6" who="noupe " />
<person posts="2" size="6" who="Bill Ward " />
<person posts="2" size="5" who="Werner Almesberger " />
<person posts="2" size="5" who="Rik van Riel " />
<person posts="2" size="5" who="Alan Modra " />
<person posts="2" size="5" who="Tigran Aivazian " />
<person posts="2" size="5" who="Khimenko Victor " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="Girish D Kale " />
<person posts="2" size="5" who="Philip Blundell " />
<person posts="2" size="5" who="chenl " />
<person posts="2" size="5" who="Jeff Dike " />
<person posts="2" size="5" who="Aaron Tiensivu " />
<person posts="2" size="5" who="&quot;really  &lt;lnx-kern@pie-9.soo.com&gt;" />
<person posts="2" size="5" who="Frank Butter " />
<person posts="2" size="5" who="&quot;Steven N. Hirsch&quot; " />
<person posts="2" size="4" who="Petru Paler " />
<person posts="2" size="4" who=" (Davide Libenzi)" />
<person posts="1" size="41" who="Roman Shterenzon " />
<person posts="1" size="20" who="&quot;Nikolaiev, Mike&quot; " />
<person posts="1" size="17" who="Sancio " />
<person posts="1" size="16" who="Camm Maguire " />
<person posts="1" size="14" who="&quot;HurriKaNe&quot; " />
<person posts="1" size="12" who="Dave DeMaagd " />
<person posts="1" size="11" who="" />
<person posts="1" size="10" who="Daniel Kobras " />
<person posts="1" size="10" who="Volkmar Schau " />
<person posts="1" size="9" who="Jakob Sandgren " />
<person posts="1" size="9" who="Charles K Hardin " />
<person posts="1" size="8" who="&quot;Henning P. Schmiedehausen&quot; " />
<person posts="1" size="8" who="The Doctor What " />
<person posts="1" size="8" who="Dehartog " />
<person posts="1" size="7" who="&quot;Christopher E . Hassell&quot; " />
<person posts="1" size="7" who="Dmitry Veprintsev " />
<person posts="1" size="6" who="Richard Guy Briggs " />
<person posts="1" size="5" who="Michael Vogt " />
<person posts="1" size="5" who="Will Weisser " />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who="Pete Wyckoff " />
<person posts="1" size="5" who="Steve Bradshaw " />
<person posts="1" size="5" who="Bernhard Kaindl " />
<person posts="1" size="4" who="" />
<person posts="1" size="4" who="Heinz Mauelshagen " />
<person posts="1" size="4" who="John Campbell " />
<person posts="1" size="4" who="Richard Bouska " />
<person posts="1" size="4" who="&quot;Rudla Kudla&quot; " />
<person posts="1" size="4" who="Jesper Pedersen " />
<person posts="1" size="4" who="Nils Nieuwejaar - Sun High Performance Computing " />
<person posts="1" size="4" who="Jorge Gonzalez Villalonga " />
<person posts="1" size="4" who="&quot;Jon P. deOng&quot; " />
<person posts="1" size="4" who="Andreas Hartmann " />
<person posts="1" size="4" who="David Wragg " />
<person posts="1" size="4" who="Mark Lord " />
<person posts="1" size="4" who="Roger Espel Llima " />
<person posts="1" size="4" who="BERNARD Sebastien " />
<person posts="1" size="4" who="&quot;petergoh&quot; " />
<person posts="1" size="4" who="Douglas Kilpatrick " />
<person posts="1" size="3" who="Marc Merlin " />
<person posts="1" size="3" who="Philippe Troin " />
<person posts="1" size="3" who="&quot;Robert M. Hyatt&quot; " />
<person posts="1" size="3" who="Kris Karas " />
<person posts="1" size="3" who="Patrick Berge " />
<person posts="1" size="3" who="Scott McDermott " />
<person posts="1" size="3" who=" (Jason R. Mastaler)" />
<person posts="1" size="3" who="Jakub Jelinek " />
<person posts="1" size="3" who="Ove Ewerlid " />
<person posts="1" size="3" who="Brad Kemp " />
<person posts="1" size="3" who="Francois-Rene Rideau " />
<person posts="1" size="3" who="Juanjo Ciarlante " />
<person posts="1" size="3" who="&quot;Enrique Bernal&quot; " />
<person posts="1" size="3" who="Julian Anastasov " />
<person posts="1" size="3" who="Mathew G Monroe " />
<person posts="1" size="3" who="&quot;Edouard G. Parmelan&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Farrell Kenimer " />
<person posts="1" size="3" who="Mike " />
<person posts="1" size="3" who="&quot;W. Reilly Cooley&quot; " />
<person posts="1" size="3" who="&quot;Terry Katz&quot; " />
<person posts="1" size="3" who="Bernd Kaindl " />
<person posts="1" size="3" who="&quot;J.H.P&quot; " />
<person posts="1" size="3" who="Chuck Lever " />
<person posts="1" size="3" who="Karim Yaghmour " />
<person posts="1" size="3" who="Drizzt " />
<person posts="1" size="3" who="Lars Kellogg-Stedman " />
<person posts="1" size="3" who="Craig Armour " />
<person posts="1" size="3" who="&quot;David C. Troy&quot; " />
<person posts="1" size="3" who="Craig Sanders " />
<person posts="1" size="3" who="Andreas Bombe " />
<person posts="1" size="3" who="Godmar Back " />
<person posts="1" size="3" who="David Weinehall " />
<person posts="1" size="3" who="Janos Farkas " />
<person posts="1" size="3" who="&quot;W. Reilly Cooley&quot; " />
<person posts="1" size="3" who=" (Jim Gettys)" />
<person posts="1" size="3" who="Tim Ricketts " />
<person posts="1" size="3" who="&quot;Manuel J. Galan&quot; " />
<person posts="1" size="3" who="Donald Becker " />
<person posts="1" size="3" who="Roman Zippel " />
<person posts="1" size="3" who="Johan =?iso-8859-1?Q?Myr=E9en?= " />
<person posts="1" size="3" who="Denis Bucher " />
<person posts="1" size="3" who=" (Guest section DW)" />
<person posts="1" size="3" who="Richard Dynes " />
<person posts="1" size="3" who="&quot;Michael B. Trausch&quot; " />
<person posts="1" size="3" who="Alejandro Montiel " />
<person posts="1" size="3" who="Damien Miller " />
<person posts="1" size="3" who="Kamran Karimi " />
<person posts="1" size="3" who="Luigi Giacobbe " />
<person posts="1" size="3" who="&quot;G. Allen Morris III&quot; " />
<person posts="1" size="3" who="Michal Jaegermann " />
<person posts="1" size="3" who="Gerd Knorr " />
<person posts="1" size="3" who="Donald Sharp " />
<person posts="1" size="3" who="Peter Allen " />
<person posts="1" size="3" who="Walter Reed " />
<person posts="1" size="3" who="Steve " />
<person posts="1" size="3" who="Frank van Maarseveen " />
<person posts="1" size="3" who="Thierry Danis " />
<person posts="1" size="3" who=" (Marco d'Itri)" />
<person posts="1" size="3" who=" (Leslie F. Donaldson)" />
<person posts="1" size="3" who="Erik Walthinsen " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Farshidoo " />
<person posts="1" size="3" who="Marcus Meissner " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Rene Chaddock " />
<person posts="1" size="3" who="&quot;Nietzel, Earle R&quot; " />
<person posts="1" size="3" who="&quot;Raj, Ashok&quot; " />
<person posts="1" size="3" who="Rob Riggs " />
<person posts="1" size="3" who="David Woodhouse " />
<person posts="1" size="3" who="Giuliano Procida " />
<person posts="1" size="3" who="Nathan Hand " />
<person posts="1" size="3" who="Jos Hulzink " />
<person posts="1" size="3" who="Joerg Beyer " />
<person posts="1" size="2" who="Jim Freeman " />
<person posts="1" size="2" who="Dragos Acostachioaie " />
<person posts="1" size="2" who="Zack Brown " />
<person posts="1" size="2" who="Nomad the Wanderer " />
<person posts="1" size="2" who="Pavel Machek " />
<person posts="1" size="2" who="Roger Gammans " />
<person posts="1" size="2" who="Arvind Sankar " />
<person posts="1" size="2" who="Philip Blundell " />
<person posts="1" size="2" who="Ron Flory " />
<person posts="1" size="2" who="alen " />
<person posts="1" size="2" who="David Ford " />
<person posts="1" size="2" who="Knuth Posern " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="David Hamm " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Alen Peacock " />
<person posts="1" size="2" who="=?iso-8859-2?Q?Tom=EDk_Daniel?= " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Mike Frisch " />
<person posts="1" size="2" who="Junji Kanemaru " />
<person posts="1" size="2" who="Mike Galbraith " />
<person posts="1" size="2" who="ALOK SINGH " />
<person posts="1" size="2" who="Thomas Davis " />
<person posts="1" size="2" who="Malcolm Beattie " />
<person posts="1" size="2" who="Keith Owens " />
<person posts="1" size="2" who="jmt " />
<person posts="1" size="2" who="Oliver Neukum " />
<person posts="1" size="2" who="Michael Boettger " />
<person posts="1" size="2" who="Matthias Andree " />
<person posts="1" size="2" who=" (Philipp Thomas)" />
<person posts="1" size="2" who="Marc SCHAEFER " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Jason Trump " />
<person posts="1" size="2" who="Jan Kara " />
<person posts="1" size="2" who="Helge Hafting " />
<person posts="1" size="2" who="&quot;Andrew Dunstan&quot; " />
<person posts="1" size="2" who="Mark Harvey " />
<person posts="1" size="2" who="&quot;Anthony Barbachan&quot; " />
<person posts="1" size="2" who="Olaf Kirch " />
<person posts="1" size="2" who="Fred Cohen " />
<person posts="1" size="2" who="Manfred Spraul " />
<person posts="1" size="2" who="Riccardo Facchetti " />
<person posts="1" size="2" who="&quot;Brian K. White&quot; " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Tarun Reddy " />
<person posts="1" size="2" who="mullein " />
<person posts="1" size="2" who="Alex Buell " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Brian Capouch " />
<person posts="1" size="2" who="David Forrest " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="hans schneidhofer " />
<person posts="1" size="2" who=" (Gary L. Hennigan)" />
<person posts="1" size="2" who="&quot;John Haggerty&quot; " />
<person posts="1" size="2" who="&quot;Alexander V. Voinov&quot; " />
<person posts="1" size="2" who="Trever Adams " />
<person posts="1" size="2" who=" (Dirk Haage)" />
<person posts="1" size="2" who="Thomas Hiller " />
<person posts="1" size="2" who="Richard Henderson " />
<person posts="1" size="2" who="Jeff Moyer USG " />
<person posts="1" size="2" who="Ingo Molnar " />
<person posts="1" size="2" who="Paul Kimoto " />
<person posts="1" size="2" who=" (Miquel van Smoorenburg)" />
<person posts="1" size="2" who="Dirk Nuyens " />
<person posts="1" size="2" who="Zach Brown " />
<person posts="1" size="2" who="Raul Miller " />
<person posts="1" size="2" who="DAVID BALAZIC " />
<person posts="1" size="2" who="Ben Bridgwater " />
<person posts="1" size="2" who="Mikael Pettersson " />
<person posts="1" size="2" who="&quot;Viet Nguyen&quot; " />
<person posts="1" size="2" who="Bernhard Rosenkraenzer " />
<person posts="1" size="2" who="&quot;Ivan R. Judson&quot; " />
<person posts="1" size="2" who="Johan Andersson " />
<person posts="1" size="2" who="Martijn van Oosterhout " />
<person posts="1" size="2" who="Jesse Kuang " />
<person posts="1" size="2" who="fvw " />
<person posts="1" size="2" who="Jeff Voskamp " />
<person posts="1" size="2" who="Hormuzd KHOSRAVI " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Dennis Hou " />
<person posts="1" size="2" who="Holger Smolinski " />
<person posts="1" size="2" who="Masumi Ellis " />
<person posts="1" size="2" who="Elmer Joandi " />
<person posts="1" size="2" who="&quot;Robert J. Elsner&quot; " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Mofeed Shahin " />
<person posts="1" size="2" who="&quot;Rodel T. Viado&quot; " />
<person posts="1" size="1" who="Paul Mackerras " />

</stats>

<section
  title="The Development Process; Tree Ownership"
  subject="Problem with memmap file with SMP"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_02/msg00680.html"
  posts="12"
  startdate="13 Jul 1999 00:00:00 -0800"
  enddate="19 Jul 1999 00:00:00 -0800"
>
<topic>FS: NFS</topic>
<topic>SMP</topic>
<topic>Virtual Memory</topic>

<p>Steve Bradshaw found an extremely disturbing bug on SMP systems. He posted a
small program that would cause one process to modify another process' data
under certain conditions. Stephen C. Tweedie replied, <quote who="Stephen C.
Tweedie">Ack. I looked at this for a while, but it's
one of those things that you just know *can't* be happening... until you
realise what's going wrong.</quote> He pinpointed the problem, explaining,
<quote who="Stephen C. Tweedie">OK, what happens is
that munmap() of a MAP_SHARED mapped file is trashing the data of another
process on a different CPU which happens still to have the same page
mapped.</quote> He added that NFS had the same problem.</p>

<p>He posted a patch against 2.2, adding that the problem was moot for 2.3
kernels because of the VM infrastructure changes. He admitted his patch was
"a little messy", though he felt there was no truly clean solution.</p>

<p>Linus Torvalds commented (incidentally settling once and for all any
question of who really owns the stable kernels), <quote who="Linus
Torvalds">It's a singularly ugly fix, regardless. I would never let code
like that near any of my kernels, but Alan is the one who gets to decide in
the stable tree.</quote></p>

<p>Alan Cox, from under a pile of 3500 emails accrued during his vacation, came
up for air to say, <quote who="Alan Cox">Since 2.2 is
going to be around for quite a while yet it wants doing right, painful or
otherwise, tested in 2.3.x first if need be.</quote></p>

<p>And Stephen replied to Linus, <quote who="Stephen C. Tweedie">The trouble is
that a correct fix --- the clean way of doing things --- is to back-port the
2.3 changes, which is obviously a non-starter.</quote> He described one
alternative, but added, <quote who="Stephen C. Tweedie">but that is a change
in the definition of the VFS which I wanted to avoid for 2.2.</quote> He
went on to explain, <quote who="Stephen C. Tweedie">The code paths in 2.2
simply don't let us pass information to the fs about whether or not an
update_vm_cache() is necessary or not. Either we check in update_vm_cache or
we change the VFS definitions. If Alan would prefer the latter then I'm
certainly willing to code it that way, but it will be incompatible with
existing fs modules.</quote></p>

<p>Linus suggested a two-line solution that wasn't perfect, adding, <quote
who="Linus Torvalds">It's a trade-off - do you do the cheezy two-liner that
gets the basic cases right, or do you do the more complex solution that should
get everything right but might have some subtle problem. I will accept either
from Alan.</quote></p>

<p>Alan's previous comment about "doing it right, painful or otherwise", though
at an earlier point in the thread, was actually made after Linus' last
remarks, so presumably the more complex solution will be the one to go in.</p>

</section>

<section
  title="Handling Out-Of-Memory Conditions"
  subject="Memory hogs"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00257.html"
  posts="25"
  startdate="16 Jul 1999 00:00:00 -0800"
  enddate="20 Jul 1999 00:00:00 -0800"
>
<topic>Virtual Memory</topic>

<p>Bernd Paysan felt something should be done about out-of-memory (OOM)
conditions. Rik van Riel gave a pointer to <a
href="http://www.nl.linux.org/~riel/patches/">his patch page</a>, and said,
<quote who="Rik van Riel">Please, somebody grab the OOM patch, integrate it
into a new kernel and send it to Linus...</quote> However, a discussion
ensued about implementation, some of which ignored his patch, and some of
which was intended to extend his patch. One of his later comments in the
discussion, ran:</p>

<quote who="Rik van Riel">

<p>My solution works rather
well so I don't see why there are so much objections to it again...</p>

<p>We've had this whole discussion just before the 2.2pre era, when I decided
the kernel should stabilize and my patch wasn't important enough to disturb
the debugging.</p>

<p>I propose we stop this discussion until somebody produces better CODE then
what's in my patch.</p>

</quote>

<p>A few posts later, he added:</p>

<quote who="Rik van Riel">

<p>let's integrate my solution
so that we have at least _something_ NOW. It has taken almost a year and my
patch has always bounced off on discussions where NO code for any of the
other proposals has shown up.</p>

<p>We can easily add stuff or replace it by something better later on. For now
it's important to have something at least halfway decent.</p>

</quote>

</section>

<section
  title="gcc Vs. egcs: The Saga Continues"
  subject="what libc+compiler is in use for development?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00544.html"
  posts="8"
  startdate="18 Jul 1999 00:00:00 -0800"
  enddate="19 Jul 1999 00:00:00 -0800"
>
<topic>Compiler</topic>
<topic>Networking</topic>

<p>Some news on the egcs/gcc front, last discussed in <kcref
subject="linux-2.3.4pre1: Adjustments for using gcc builtins" startdate="27 May 1999 23:00:00 -0800"></kcref> and before then in <kcref subject="Still no
ISDN connection :(" startdate="04 Apr 1999 00:00:00 -0800"></kcref> (which
also links several other articles). Dmitry Veprintsev asked which libc and
compiler was being used for kernel development, and Steve Dodd replied,
<quote who="Steve Dodd">egcs /generally/ works, but you won't get so much
sympathy if something breaks. If you must use it, grab the 1.1.2 release
(egcs-2.91.66); IIRC earlier versions had bugs. Later versions may also
cause problems: the (pre-??) versions of gcc-2.95 that are floating around
apparently cause problems if you don't use -fno-strict-aliasing; I don't
know if they're OK if you do use that flag.</quote></p>

<p>But Horst von Brand replied, <quote who="Horst von Brand">gcc-2.95 is around the corner, its prereleases generate
_much_ better code than gcc-2.7.2. I have been compiling my kernels with
egcs (lately gcc-2.95 snapshots, after EGCS got appointed keeper of GCC in
April) for more than a year and a half now with mostly minor hickups (if
that much), many others have done so too. The problems that surfaced have
generally promptly been fixed. Many distributions ship kernels compiled with
egcs.</quote> He added, <quote who="Horst von Brand">gcc-2.7.2 is going to go away soon.</quote></p>

<p>Steve replied, <quote who="Steve Dodd">I was under
the impression that Linus has disputed the code generation thing, but
compilers are certainly not my domain so I won't comment. It'll just be nice
to have a working C compiler and a working C++ compiler in the same
package..</quote></p>

<p>Horst gave this bit of analysis: <quote who="Horst von Brand">What Linus has
been questioning (AFAIU him :) is that he knows exactly (more or less) what
code gcc-2.7.2 will generate, and this isn't true with later versions. You'd
have to understand that Linus is a efficiency freak, he wants minute control
over the object code. The changed code generation algorithms, new and
rewamped optimizations, and assorted other changes in the compiler mean that
the certain way of writing code that used to give the fastest object doesn't
necessarily do so so anymore. I'd also say that the linux kernel is _the_
piece of code that most uses (and stresses) the different extensions (and
quirks, even bugs) of the gcc compiler. So the push towards more standards
conformance, even the elimination of bugs in the compiler got at odds with
Linus. A famous case was the bug in ia32 that allowed to write illegal asm
statements (sadly in a way that was quite logical). Linus does have a point,
but the egcs people have to care not just for the linux-kernel-compiler,
they have to care for a general purpose tool, even a host of other languages
(The current GCC (GNU Compiler Collection) includes C, C++, Objective C,
FORTRAN 77, Java, and chill. More are to come, at least Pascal is supposed
to be integrated soon AFAIK). I'd say that you loose somewhat locally, but
the overall quality of the code is much better. And the egcs folks _do_ care
for the kernel, a bug in the compiler exposed by the kernel is high
priority; also caveats and workarounds for problems compiling the kernel are
routinely posted in the compiler FAQ.</quote></p>

</section>

<section
  title="devfs V. 116 Announced"
  subject="[PATCH] devfs v116 available"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00626.html"
  posts="1"
  startdate="19 Jul 1999 00:00:00 -0800"
  enddate="19 Jul 1999 00:00:00 -0800"
>
<topic>FS: devfs</topic>

<mention>Tim Waugh</mention>

<p>Richard Gooch announced:</p>

<quote who="Richard Gooch">

<p>Hi, all. Version 116 of my
devfs patch is now available from: <a
href="http://www.atnf.csiro.au/~rgooch/linux/kernel-patches.html">http://www.atnf.csiro.au/~rgooch/linux/kernel-patches.html</a>.
The devfs FAQ is also available here.</p>

<p>This is against 2.3.10. Highlights of this release:</p>

<ul>

<li>Added support for /dev/parport%d<br />
Thanks to Tim Waugh &lt;tim@cyberelk.demon.co.uk&gt;</li>

<li>Fixed parallel port ATAPI tape driver</li>

<li>Fixed Atari SLM laser printer driver</li>

</ul>

</quote>

</section>

<section
  title="2.2.10ac11 Announced; Bugs Found"
  subject="Linux 2.2.10ac11"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00633.html"
  posts="7"
  startdate="19 Jul 1999 00:00:00 -0800"
  enddate="20 Jul 1999 00:00:00 -0800"
>

<p>Alan Cox announced <a
href="ftp://ftp.us.kernel.org/pub/linux/kernel/alan/">2.2.10ac11</a>, and
said:</p>

<quote who="Alan Cox">

<p>A lot of updates here. I've not
chased down the lockd bug reports yet, nor the umount nfsd bug that is
trapped by the SLAB debugging. This mops up most of the stuff while I've
been occupied elsewhere. Chances are given the number of updates there will
be a few glitches in it. Have fun testing.</p>

<p>I'll be stripping the important fixes out of this to merge with the other
stuff stripped out for a 2.2.11 draft for Linus starting tomorrow.</p>

</quote>

<p>James W. Laferriere got an error:</p>

<p>inet.c: In function 	net_init':<br />
inet.c:1105: `SOCK_DGRAM' undeclared (first use in this function)<br />
inet.c:1105: (Each undeclared identifier is reported only once<br />
inet.c:1105: for each function it appears in.)<br />
inet.c:1139: warning: implicit declaration of function `inet_aton'<br />
make[1]: *** [inet.o] Error 1</p>

<p>and said, <quote who="James W. Laferriere">Hello
Alan, something in the &lt; ac10 , breaks the sys/socket.h include
structure. Making the below under 2.2.10-vanilla compiles like a charm
(minus some silly warnings). I have dug into the sys/socket.h tree of
includes &amp; I find SOCK_DGRAM defined in asm/socket.h which is included
by linux/socket.h which in turn is included by sys/socket.h. But the below
happens anyway. Where might I be going wrong ?</quote></p>

<p>Alan replied, <quote who="Alan Cox">The include file
changes break libc5 it seems. Right now I've not figured the right way to
fix that without upsetting glibc</quote></p>

<p>Several folks posted patches, but Alan had no comment, and the thread ended.</p>

</section>

<section
  title="Networking Conformance Issues"
  subject="timestamps, tcp_paws_discard and out of order packets/acks (fwd)"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00652.html"
  posts="5"
  startdate="18 Jul 1999 00:00:00 -0800"
  enddate="24 Jul 1999 00:00:00 -0800"
>
<topic>Networking</topic>

<mention>Pete Wyckoff</mention>

<p>Benjamin C.R. LaHaise asked, <quote who="Benjamin C.R. LaHaise">I'm wondering if anyone has tackled the problem I pointed
out a while ago where an ack manages to arrive before data sent on the same
connection due, causing the tcp paws support in 2.2/2.3 to dump the data
packet? The traces at <a
href="http://www.kvack.org/~blah/">http://www.kvack.org/~blah/a.(leeloo|mole)</a>
are still valid against 2.3.10, and the behaviour disappears when timestamps
are disabled. Debugging verified that tcp_paws_discard is the source of the
packet drops, specifically the second term (...tsval - tp-&gt;ts_recent)
&lt; 0.</quote></p>

<p>Pete Wyckoff noticed from the linked page that leeloo was setting ts_recent
for the dup ack packet it was getting. He didn't see where <a
href="http://www.cis.ohio-state.edu/htbin/rfc/rfc1323.html">RFC1323 ("TCP
Extensions for High Performance")</a> called for such behavior. Ben posted a
patch, and replied, <quote who="Benjamin C.R. LaHaise">Ahh, you're right! I went back over RFC1323 and found out
that the code in tcp_replace_ts_recent seems to be the root of this problem.
The comment simply don't jive with the code or my reading of the rfc. I've
changed things to abide by RFC1323 and the commented change, and now things
are flying, even with reordered packets. My reading of RFC1323 is that it
tries to only update ts_recent for in-order packets, which makes sense if
packets are reordered.</quote></p>

<p>David S. Miller replied:</p>

<quote who="David S. Miller">

<p>I have to think about
this change some more. There are 3 independant issues working here.</p>

<ol>

<li>RFC1323 describes the check wrong, as stated by the comment.</li>

<li>The rules stated by all RFCs and working drafts do not allow for best
utilization of ACK feedback when ACKs are massively reordered. This is what
my PAWS workaround is trying to accomplish. I brought this issue up, with
detailed traces, to the tcp-impl list, showing how detrimental it was to
performance. And the best response I got was "oh that bug, it hurts my head
each time I think about it" So Linux will perform well in these cases and
nobody else will because aparently even the RFC authors themselves do not
care. Note that what Linux does makes the PAWS check rules for pure-ACKs
orthogonal to the out of order data packet cases.</li>

<li>Audrey found some other RTT estimation problems which are being dealt
with too, and these fixes have security implications as well. (before you
could quite easily make a connection believe that the RTT was some nearly
infinite value, effectively making the connection useless)</li>

</ol>

<p>Until I can verify that the bug in question is fixed, and the above 3 issues
are still addressed, I cannot apply this patch.</p>

</quote>

</section>

<section
  title="Linus' Email Address Forged By Spammers"
  subject="Fake emails from 'Linus'"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00662.html"
  posts="6"
  startdate="19 Jul 1999 00:00:00 -0800"
  enddate="20 Jul 1999 00:00:00 -0800"
>
<topic>Mailing List Administration</topic>
<topic>Spam</topic>

<mention>Richard Gooch</mention>

<p>Linus Torvalds reported:</p>

<quote who="Linus Torvalds">

<p>Just a heads-up: somebody is
sending out fake emails that claim to be from me, and that have me endorsing
the Java client for Seti@Home.</p>

<p>The reason I know somebody is faking emails is that I got a bounce from one
of them.</p>

<p>If somebody on the kernel list gets a message that claims to be from "Linus
Torvalds &lt;torvalds@transmeta.com&gt;" with a subject line of "Seti@Home
user interface", it is fake.</p>

<p>I'd like to see the full headers from such a message, to see if it shows
where it is really originating from: the bounced message does not contain
the original headers..</p>

<p>I assume it is a mass-posting trying to market Seti@Home or the particular
client in question, and I'm not all that amused.</p>

<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Linus</p>

<p>PS. Although I have to admit that the first line brought a grin: "Being
the awesome Linux stud that I am.."</p>

</quote>

<p>Richard Gooch replied that the Seti@Home people were probably not behind the
forgeries, since they seemed reputable. There was also some small discussion
about PGP signatures.</p>

</section>

<section
  title="Capabilities Bug And Fix"
  subject="[patch] capability paranoia"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00728.html"
  posts="2"
  startdate="19 Jul 1999 00:00:00 -0800"
  enddate="19 Jul 1999 00:00:00 -0800"
>
<topic>Capabilities</topic>

<mention>Matthew Kirkwood</mention>

<p>Matthew Kirkwood posted a patch to drivers/char/mem.c, requiring
CAP_SYS_RAWIO to open /dev/mem, /dev/kmem and /dev/port. Chris Evans
replied, <quote who="Chris Evans">I was working under
the assumption we already limit /dev/mem et. al to CAP_SYS_RAWIO. If we
don't then this needs applying ASAP.</quote></p>

</section>

<section
  title="util-linux V. 2.9 Announced"
  subject="util-linux-2.9v"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00866.html"
  posts="1"
  startdate="20 Jul 1999 00:00:00 -0800"
  enddate="20 Jul 1999 00:00:00 -0800"
>
<topic>FS</topic>

<p>Andries Brouwer announced:</p>

<quote who="Andries Brouwer">

<p>I just put
util-linux-2.9v the usual places. People complained that using *fdisk failed
on 600 GB disks. If I made no mistake cfdisk will now work up to 2 TB
(mainly by ignoring the kernel's answer to HDGETGEO).</p>

<p>Once 2 TB looked almost infinitely large, but today 100 GB is quite common,
and we can expect that very soon this 2 TB will be a real limit. In other
words, this old ugly DOS-type partition table will have to be
replaced.</p>

</quote>

</section>

<section
  title="2.2.x API Broken And Fixed"
  subject="SO_REUSEADDR problem with 2.2.10-ac11?"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00902.html"
  posts="4"
  startdate="20 Jul 1999 00:00:00 -0800"
  enddate="21 Jul 1999 00:00:00 -0800"
>

<p>Wichert Akkerman reported, <quote who="Wichert Akkerman">I upgraded my
system from 2.2.6 to 2.2.10-ac11 yesterday and noticed an interesting problem:
multiple sockets can now bind to the same port on the same interface. I
noticed this when I suddenly had 10 ircd running and client connections were
getting accepted by the wrong server (ie not the first one). I've been told
this also happens with 2.2.10-ac10.</quote> He included a simple test program
to illustrate the problem.</p>

<p>Brandon S. Allbery replied, <quote who="Brandon S. Allbery">Would you
believe that Solaris 2.6 lets you do this as well?</quote> But Wichert said,
<quote who="Wichert Akkerman">Perhaps, I don't use that. It might even be
correct behaviour officialy, but introducing such a change in a 2.2 kernel
is a Really-Bad-Idea(TM) since it breaks a lot of programs.</quote></p>

<p>Alexey Kuznetsov said, <quote who="Alexey Kuznetsov">It was not deliberate,
certainly. The patch is appended.</quote></p>

</section>

<section
  title="Patch For Extended Disc Stats In 2.2.x And 2.3.x"
  subject="[PATCH] Extended disk statistics."
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_03/msg00948.html"
  posts="1"
  startdate="20 Jul 1999 00:00:00 -0800"
  enddate="20 Jul 1999 00:00:00 -0800"
>
<topic>Ioctls</topic>

<p>Daniel Kobras said, <quote who="Daniel Kobras">The
attached patch against 2.3.10 (applies fine up to 2.3.11pre5, haven't
checked pre6 yet) adds two ioctl()s BLKSSTAT and BLKGSTAT that provide disk
i/o statistics per (minor) block device. It's an extension of the basic
accounting already exported via /proc/stat. In order to use it, you have to
turn on CONFIG_BLK_EXT_STATS and furthermore issue an approriate
BLKSSTAT-ioctl() on each device you want to account for. See the comments on
top of drivers/block/diskstat.c for details.</quote> He also gave a <a
href="http://www.tuebingen.linux.de/kobras/kernel/">URL</a> to patches
against 2.2 kernels.</p>

</section>

<section
  title="Framebuffer HOWTO 1.1 Announced"
  subject="HOWTO-Framebuffer 1.1 released!"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_04/msg00050.html"
  posts="1"
  startdate="22 Jul 1999 00:00:00 -0800"
  enddate="22 Jul 1999 00:00:00 -0800"
>
<topic>Framebuffer</topic>

<p>Alex Buell announced:</p>

<quote who="Alex Buell">

<p>I have today released the next revision
to the HOWTO-Framebuffer. It now includes a section on multi-headed
displays, kindly donated by Frederick A. Niles. I have taken over
responsibility for distribution and maintenance for his mini HOWTO-Multihead
document, but he will retain all copyrights to his document.</p>

<p>You may access it at <a
href="http://www.tahallah.demon.co.uk/programming/Framebuffer-HOWTO-1.1.html">http://www.tahallah.demon.co.uk/programming/Framebuffer-HOWTO-1.1.html</a></p>

</quote>

</section>

<section
  title="ppdev Back-ported to 2.2.10"
  subject="ppdev is released for 2.2.10"
  archive="http://kernelnotes.org/lnxlists/linux-kernel/lk_9907_04/msg00405.html"
  posts="1"
  startdate="24 Jul 1999 00:00:00 -0800"
  enddate="24 Jul 1999 00:00:00 -0800"
>
<topic>Ioctls</topic>

<p>Tim Waugh announced:</p>

<quote who="Tim Waugh">

<p>I have back-ported the ppdev code (support for user-space parallel port
device drivers) to 2.2.10, in such a way that it is self-contained.</p>

<p>Just as in 2.3, it allows programs to open("/dev/parport0") and perform
ioctls to claim/release the port, examine/set the data, status, and control
lines, as well as perform IEEE 1284 negotiation and data/address transfers.
In 2.2.10-ppdev1, however, all transfers are software-driven; DMA/FIFO
support is only in 2.3.</p>

<p>The ppdev code supercedes ppuser-0.8.</p>

<p>It should be relatively easy to add the parallel printer console to
ppdev-2.2.10, in the same way that lp does it in 2.3.</p>

<p>Get it while you still can:</p>

<p>&lt;URL:<a href="http://www.cyberelk.demon.co.uk/parport/patch-2.2.10-ppdev1.gz">http://www.cyberelk.demon.co.uk/parport/patch-2.2.10-ppdev1.gz</a>&gt;<br />
&lt;URL:<a href="ftp://ftp.torque.net/pub/parport/patch-2.2.10-ppdev1.gz">ftp://ftp.torque.net/pub/parport/patch-2.2.10-ppdev1.gz</a>&gt;</p>

</quote>

</section>

</kc>
