<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="180" date="18 Aug 2002 23:00:00 -0800" />

<stats posts="1614" size="8177" contrib="386" multiples="208" lastweek="156">

<person posts="87" size="245" who="Alan Cox " />
<person posts="70" size="471" who="Andrew Morton " />
<person posts="55" size="226" who="Linus Torvalds " />
<person posts="40" size="131" who="Rik van Riel " />
<person posts="38" size="100" who="&quot;David S. Miller&quot; " />
<person posts="36" size="277" who="&quot;Kendrick M. Smith&quot; " />
<person posts="36" size="249" who="Ingo Molnar " />
<person posts="29" size="95" who="Daniel Phillips " />
<person posts="27" size="109" who="Christoph Hellwig " />
<person posts="22" size="100" who="Marcin Dalecki " />
<person posts="20" size="57" who="Bill Davidsen " />
<person posts="19" size="65" who="&quot;H. Peter Anvin&quot; " />
<person posts="19" size="52" who="Jeff Dike " />
<person posts="18" size="57" who="Trond Myklebust " />
<person posts="17" size="104" who="William Lee Irwin III " />
<person posts="17" size="51" who="Jamie Lokier " />
<person posts="16" size="109" who="Hubertus Franke " />
<person posts="16" size="79" who="Greg KH " />
<person posts="15" size="198" who="Rusty Russell " />
<person posts="15" size="96" who="Ivan Kokshaysky " />
<person posts="14" size="50" who="David Mosberger " />
<person posts="13" size="82" who="Luca Barbieri " />
<person posts="13" size="62" who="Rob Landley " />
<person posts="13" size="41" who="Adrian Bunk " />
<person posts="12" size="395" who="Albert Cranford " />
<person posts="12" size="47" who="Andre Hedrick " />
<person posts="12" size="34" who="Jeff Garzik " />
<person posts="11" size="123" who="Stephane Wirtel " />
<person posts="11" size="39" who="Roland Kuhn " />
<person posts="11" size="39" who="Paul Larson " />
<person posts="11" size="36" who="&quot;Udo A. Steinberg&quot; " />
<person posts="11" size="32" who="Helge Hafting " />
<person posts="11" size="31" who="Jens Axboe " />
<person posts="10" size="41" who="Nick Orlov " />
<person posts="10" size="33" who="&quot;Albert D. Cahalan&quot; " />
<person posts="10" size="30" who="Andries Brouwer " />
<person posts="10" size="30" who="Keith Owens " />
<person posts="9" size="67" who="Arnd Bergmann " />
<person posts="9" size="62" who="Benjamin Herrenschmidt " />
<person posts="9" size="59" who="Jesse Barnes " />
<person posts="9" size="56" who="Hans Reiser " />
<person posts="9" size="41" who="&quot;Scott Murray&quot; " />
<person posts="9" size="28" who="Phil Auld " />
<person posts="9" size="25" who="Willy Tarreau " />
<person posts="8" size="46" who="Stephen Rothwell " />
<person posts="8" size="29" who="&quot;Adam J. Richter&quot; " />
<person posts="8" size="27" who="&quot;Richard B. Johnson&quot; " />
<person posts="8" size="27" who="Steven Cole " />
<person posts="8" size="21" who="Gregory Giguashvili " />
<person posts="8" size="18" who="David Woodhouse " />
<person posts="7" size="171" who="Hans Reiser " />
<person posts="7" size="76" who="Alan Cox " />
<person posts="7" size="39" who="Anton Altaparmakov " />
<person posts="7" size="33" who="Marcelo Tosatti " />
<person posts="7" size="28" who="Willy TARREAU " />
<person posts="7" size="24" who="&quot;Petr Vandrovec&quot; " />
<person posts="7" size="15" who="Thunder from the hill " />
<person posts="6" size="63" who="Ravikiran G Thirumalai " />
<person posts="6" size="28" who="Oliver Neukum " />
<person posts="6" size="23" who="&quot;Randy.Dunlap&quot; " />
<person posts="6" size="23" who="Larry McVoy " />
<person posts="6" size="22" who="Dave McCracken " />
<person posts="6" size="21" who="Oliver Xymoron " />
<person posts="6" size="19" who="Benjamin LaHaise " />
<person posts="6" size="18" who="&quot;Martin J. Bligh&quot; " />
<person posts="6" size="16" who="Andi Kleen " />
<person posts="6" size="15" who="Thunder from the hill " />
<person posts="6" size="14" who="Roman Zippel " />
<person posts="5" size="65" who="Joel Becker " />
<person posts="5" size="64" who="&quot;Seth, Rohit&quot; " />
<person posts="5" size="62" who="Tom Rini " />
<person posts="5" size="57" who="OGAWA Hirofumi " />
<person posts="5" size="29" who="Bill Huey (Hui) " />
<person posts="5" size="21" who="Mel " />
<person posts="5" size="21" who="Patrick Mochel " />
<person posts="5" size="21" who="" />
<person posts="5" size="20" who="Jesse Pollard " />
<person posts="5" size="19" who="Tomas Szepe " />
<person posts="5" size="17" who="Brad Hards " />
<person posts="5" size="16" who="Ruth Ivimey-Cook " />
<person posts="5" size="15" who="Erik Andersen " />
<person posts="5" size="14" who="Alexander Viro " />
<person posts="5" size="14" who="Dave Jones " />
<person posts="5" size="12" who="Studying MTD " />
<person posts="5" size="11" who="Frank Davis " />
<person posts="4" size="72" who="Patricia Gaughen " />
<person posts="4" size="59" who="Dipankar Sarma " />
<person posts="4" size="23" who="Hubertus Franke " />
<person posts="4" size="19" who="Abraham vd Merwe " />
<person posts="4" size="19" who="Adam Lackorzynski " />
<person posts="4" size="15" who="Arnd Bergmann " />
<person posts="4" size="14" who="Neil Brown " />
<person posts="4" size="14" who=" (Linus Torvalds)" />
<person posts="4" size="14" who="Tim Hockin " />
<person posts="4" size="13" who="Richard Zidlicky " />
<person posts="4" size="12" who="Pete de Zwart " />
<person posts="4" size="12" who=" (Eric W. Biederman)" />
<person posts="4" size="12" who="&quot;J.A. Magallon&quot; " />
<person posts="4" size="12" who="Kasper Dupont " />
<person posts="4" size="11" who="Russell King " />
<person posts="4" size="11" who="" />
<person posts="4" size="10" who="Daniel Egger " />
<person posts="4" size="10" who="&quot;Nandakumar  NarayanaSwamy&quot; " />
<person posts="4" size="10" who="Gregoire Favre " />
<person posts="4" size="9" who="" />
<person posts="4" size="9" who="Bernd Eckenfels " />
<person posts="4" size="9" who="" />
<person posts="3" size="51" who="Patrick Mansfield " />
<person posts="3" size="38" who="Simon Kirby " />
<person posts="3" size="26" who="Juergen Sawinski " />
<person posts="3" size="23" who="Krzysztof Halasa " />
<person posts="3" size="22" who="Grant Grundler " />
<person posts="3" size="19" who="Stephen Hemminger " />
<person posts="3" size="15" who="David Brownell " />
<person posts="3" size="11" who="Joshua MacDonald " />
<person posts="3" size="10" who=" (Flanigan, Ryan)" />
<person posts="3" size="10" who="Paul Mackerras " />
<person posts="3" size="10" who="Keith Owens " />
<person posts="3" size="10" who="David Bronaugh " />
<person posts="3" size="9" who="" />
<person posts="3" size="9" who="Jan Hudec " />
<person posts="3" size="9" who="Jeff Chua " />
<person posts="3" size="9" who="Ed Tomlinson " />
<person posts="3" size="9" who="" />
<person posts="3" size="9" who="Arnaldo Carvalho de Melo " />
<person posts="3" size="8" who="Skip Ford " />
<person posts="3" size="8" who="Bartlomiej Zolnierkiewicz " />
<person posts="3" size="8" who="Alexandre Julliard " />
<person posts="3" size="7" who="&quot;Peter Klotz&quot; " />
<person posts="3" size="7" who="Andrew Rodland " />
<person posts="3" size="7" who="&quot;Samium Gromoff&quot; " />
<person posts="3" size="7" who="Ivan Gyurdiev " />
<person posts="3" size="7" who="Joshua Uziel " />
<person posts="3" size="7" who="&quot;Bryan K. Walton&quot; " />
<person posts="3" size="6" who="&quot;Michel Eyckmans (MCE)&quot; " />
<person posts="2" size="35" who="Marc-Christian Petersen " />
<person posts="2" size="31" who="Blaise " />
<person posts="2" size="28" who="&quot;Mark Cuss&quot; " />
<person posts="2" size="19" who="Steven Walter " />
<person posts="2" size="18" who="Lee Leahu " />
<person posts="2" size="17" who="Denis Vlasenko " />
<person posts="2" size="17" who="" />
<person posts="2" size="15" who="Jean Tourrilhes " />
<person posts="2" size="12" who="Meelis Roos " />
<person posts="2" size="12" who="Doug Ledford " />
<person posts="2" size="11" who="David Fries " />
<person posts="2" size="10" who="Chris Adams " />
<person posts="2" size="9" who="Johan Martensson " />
<person posts="2" size="9" who="Bruce M Beach " />
<person posts="2" size="9" who="Christoph Hellwig " />
<person posts="2" size="9" who="Hugh Dickins " />
<person posts="2" size="9" who="&quot;Airong Zhang&quot; " />
<person posts="2" size="8" who="Harald Welte " />
<person posts="2" size="8" who="Michal Illich " />
<person posts="2" size="8" who="Chris Mason " />
<person posts="2" size="8" who="Robin Holt " />
<person posts="2" size="7" who="&quot;J. Bruce Fields&quot; " />
<person posts="2" size="7" who="Thomas Molina " />
<person posts="2" size="7" who="&quot;Thomas Munck Steenholdt&quot; " />
<person posts="2" size="7" who="john stultz " />
<person posts="2" size="7" who="&quot;Dr. David Alan Gilbert&quot; " />
<person posts="2" size="7" who="Badari Pulavarty " />
<person posts="2" size="7" who="Matti Aarnio " />
<person posts="2" size="7" who="Fredrik Ohrn " />
<person posts="2" size="7" who="&quot;Dhr N. Van Alphen&quot; " />
<person posts="2" size="7" who="" />
<person posts="2" size="7" who="Jon Portnoy " />
<person posts="2" size="6" who="Michael Procter " />
<person posts="2" size="6" who="Alexander Hoogerhuis " />
<person posts="2" size="6" who="Chris Friesen " />
<person posts="2" size="6" who="&quot;Reed, Timothy A&quot; " />
<person posts="2" size="6" who="Lincoln Dale " />
<person posts="2" size="6" who="Padraig Brady " />
<person posts="2" size="6" who="Kees Bakker " />
<person posts="2" size="6" who="Ben Greear " />
<person posts="2" size="6" who="&quot;Martin Brulisauer&quot; " />
<person posts="2" size="6" who="gerg " />
<person posts="2" size="6" who="Richard Gooch " />
<person posts="2" size="6" who="Mitch Sako " />
<person posts="2" size="6" who="Roland Dreier " />
<person posts="2" size="5" who="Leif Sawyer " />
<person posts="2" size="5" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="2" size="5" who="Nathaniel " />
<person posts="2" size="5" who="Greg Ungerer " />
<person posts="2" size="5" who="Andreas Dilger " />
<person posts="2" size="5" who="=?iso-8859-2?Q?Pawe=B3?= Krawczyk " />
<person posts="2" size="5" who="" />
<person posts="2" size="5" who="David Schwartz " />
<person posts="2" size="5" who="Ingo Oeser " />
<person posts="2" size="5" who="Zwane Mwaikambo " />
<person posts="2" size="5" who="Sam Ravnborg " />
<person posts="2" size="5" who="Filip Van Raemdonck " />
<person posts="2" size="5" who="Pete Zaitcev " />
<person posts="2" size="4" who="Christian Kurz " />
<person posts="2" size="4" who="Brad Chapman " />
<person posts="2" size="4" who="Anton Blanchard " />
<person posts="2" size="4" who="Vitaly Fertman " />
<person posts="2" size="4" who="Luciano Campal Vazquez " />
<person posts="2" size="4" who="Rik van Ballegooijen " />
<person posts="2" size="4" who="&quot;Karan  Misra&quot; " />
<person posts="2" size="4" who="Jonathan Lundell " />
<person posts="2" size="4" who="k0rd " />
<person posts="2" size="4" who="Tom Sanders " />
<person posts="2" size="4" who="Ian Molton " />
<person posts="2" size="4" who="Mikael Pettersson " />
<person posts="2" size="4" who="Roy Sigurd Karlsbakk " />
<person posts="2" size="3" who="Mike Dresser " />
<person posts="2" size="3" who="=?iso-8859-2?Q?peta=20huh?= " />
<person posts="1" size="96" who="James Hicks " />
<person posts="1" size="79" who="Naohiko Shimizu " />
<person posts="1" size="74" who="Simon Huggins " />
<person posts="1" size="73" who="anton wilson " />
<person posts="1" size="42" who="Dominik Brodowski " />
<person posts="1" size="23" who="Erich Focht " />
<person posts="1" size="18" who="Chris Nokleberg " />
<person posts="1" size="14" who="Joe Radinger " />
<person posts="1" size="14" who="&quot;John L. Korpi&quot; " />
<person posts="1" size="14" who="=?ISO-8859-1?Q?Pau_Montero_Par=E9s?= " />
<person posts="1" size="13" who="Lionel Bouton " />
<person posts="1" size="13" who="Greg Banks " />
<person posts="1" size="13" who=" (Dagfinn Ilmari =?iso-8859-1?q?Manns=E5ker?=)" />
<person posts="1" size="12" who="&quot;Guillaume Boissiere&quot; " />
<person posts="1" size="10" who="=?ISO-8859-1?Q? &quot;=D0=BB=B6=AB=C3=F7&quot; ?= " />
<person posts="1" size="10" who="Jim Houston " />
<person posts="1" size="9" who="Greg Fitzgerald " />
<person posts="1" size="9" who="Matthew Harrell " />
<person posts="1" size="8" who="" />
<person posts="1" size="8" who="Stewart " />
<person posts="1" size="7" who="Carlos Laviola " />
<person posts="1" size="6" who="&quot;David McIlwraith&quot; " />
<person posts="1" size="6" who="&quot;Scott Worley&quot; " />
<person posts="1" size="6" who="&quot;Andrew Vasquez&quot; " />
<person posts="1" size="6" who="&quot;Bruce J.A. Nourish&quot; " />
<person posts="1" size="6" who="Kristian Hogsberg " />
<person posts="1" size="6" who="George France " />
<person posts="1" size="6" who="Kevin Buhr " />
<person posts="1" size="6" who="Josef Siemes " />
<person posts="1" size="5" who="John Coffman " />
<person posts="1" size="5" who="Oleg Drokin " />
<person posts="1" size="5" who="Oliver Feiler " />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who="Tommy Wu " />
<person posts="1" size="5" who="&quot;Nilanjan Bhowmik&quot; " />
<person posts="1" size="5" who="Andris Pavenis " />
<person posts="1" size="5" who="&quot;Andrew Hall&quot; " />
<person posts="1" size="5" who="Aaron Caskey " />
<person posts="1" size="4" who="Kieran " />
<person posts="1" size="4" who="James Bourne " />
<person posts="1" size="4" who="Matthew Dobson " />
<person posts="1" size="4" who="&quot;Bhavesh P. Davda&quot; " />
<person posts="1" size="4" who="Daniel Forrest " />
<person posts="1" size="4" who="Olaf Dabrunz " />
<person posts="1" size="4" who="&quot;Mohammed Zika&quot; " />
<person posts="1" size="4" who="Alexander Martinez " />
<person posts="1" size="4" who="Ian Soboroff " />
<person posts="1" size="4" who=" (chancetoberich)" />
<person posts="1" size="4" who="Morten Helgesen " />
<person posts="1" size="4" who="J Sloan " />
<person posts="1" size="4" who="&quot;Woodruff, Robert J&quot; " />
<person posts="1" size="3" who="Thomas Hood " />
<person posts="1" size="3" who=" " />
<person posts="1" size="3" who="=?ISO-8859-1?Q? &quot;=C2=BD=CC=CE&quot; ?= " />
<person posts="1" size="3" who="&quot;Bill Rugolsky Jr.&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="&quot;Andrew&quot; " />
<person posts="1" size="3" who="Martin Waitz " />
<person posts="1" size="3" who="Ryan Anderson " />
<person posts="1" size="3" who="&quot;James Lee&quot; " />
<person posts="1" size="3" who="Roger " />
<person posts="1" size="3" who="Christoffer Olsen " />
<person posts="1" size="3" who="Kai Germaschewski " />
<person posts="1" size="3" who="&quot;Jason Zebchuk&quot; " />
<person posts="1" size="3" who="Andi Kleen " />
<person posts="1" size="3" who="&quot;Steve Best&quot; " />
<person posts="1" size="3" who="Mark Mielke " />
<person posts="1" size="3" who="Jakub Jelinek " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Brad Heilbrun " />
<person posts="1" size="3" who="&quot;Cameron, Steve&quot; " />
<person posts="1" size="3" who="Roberto Gordo Saez " />
<person posts="1" size="3" who="Gilad Ben-Yossef " />
<person posts="1" size="3" who="Johannes Erdfelt " />
<person posts="1" size="3" who="=?ISO-8859-1?Q?Pasi_K=E4rkk=E4inen?= " />
<person posts="1" size="3" who="&quot;Christian Ehrhardt&quot; " />
<person posts="1" size="3" who="Crutcher Dunnavant " />
<person posts="1" size="3" who="Jean-Luc Coulon " />
<person posts="1" size="3" who="&quot;Renato&quot; " />
<person posts="1" size="3" who="&quot;Johnnie Q. Hacker&quot; " />
<person posts="1" size="3" who="Dmitri " />
<person posts="1" size="3" who=" (Ingo Adlung)" />
<person posts="1" size="3" who="Marc-Christian Petersen " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Duc Vianney " />
<person posts="1" size="3" who="&quot;Chad Young&quot; " />
<person posts="1" size="3" who="&quot;laurent.hivet&quot; " />
<person posts="1" size="3" who="Pavel Machek " />
<person posts="1" size="3" who="watermodem " />
<person posts="1" size="3" who="Lars Ellenberg " />
<person posts="1" size="3" who="&quot;Darrell A. Escola&quot; " />
<person posts="1" size="3" who="&quot;David D. Hagood&quot; " />
<person posts="1" size="3" who="David Love " />
<person posts="1" size="3" who="Giacomo Catenazzi " />
<person posts="1" size="3" who="&quot;Peter Wong&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="2" who="Dana Lacoste " />
<person posts="1" size="2" who="Eli Carter " />
<person posts="1" size="2" who="&quot;Duc Vianney&quot; " />
<person posts="1" size="2" who="DervishD " />
<person posts="1" size="2" who="David Lang " />
<person posts="1" size="2" who="Devilkin " />
<person posts="1" size="2" who="SA " />
<person posts="1" size="2" who="Dave Hansen " />
<person posts="1" size="2" who="Paul Slootman " />
<person posts="1" size="2" who="Austin Gonyou " />
<person posts="1" size="2" who="Julien BLACHE " />
<person posts="1" size="2" who="Dax Kelson " />
<person posts="1" size="2" who="Frederik Dannemare " />
<person posts="1" size="2" who="Andreas Gruenbacher " />
<person posts="1" size="2" who="&quot;TARZAN LION&quot; " />
<person posts="1" size="2" who="Stephen Cameron " />
<person posts="1" size="2" who="Josh McKinney " />
<person posts="1" size="2" who="Perry The Cynic " />
<person posts="1" size="2" who="Alex Deucher " />
<person posts="1" size="2" who="Heinz Diehl " />
<person posts="1" size="2" who="Chris the Elder " />
<person posts="1" size="2" who="Paul Menage " />
<person posts="1" size="2" who="Thomas Schenk " />
<person posts="1" size="2" who="David Weinehall " />
<person posts="1" size="2" who="Vincent Bernat " />
<person posts="1" size="2" who="&quot;O.Sezer&quot; " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="John Levon " />
<person posts="1" size="2" who="Tom Vier " />
<person posts="1" size="2" who="&quot;Tom Sightler&quot; " />
<person posts="1" size="2" who="Jan NOwaK " />
<person posts="1" size="2" who="Naohiko Shimizu " />
<person posts="1" size="2" who="Peter Chubb " />
<person posts="1" size="2" who="george anzinger " />
<person posts="1" size="2" who="Irwan Hadi " />
<person posts="1" size="2" who="Oliver Neukum " />
<person posts="1" size="2" who="&quot;Luck, Tony&quot; " />
<person posts="1" size="2" who="Kelsey Hudson " />
<person posts="1" size="2" who="Andreas Schwab " />
<person posts="1" size="2" who="Thomas Munck Steenholdt " />
<person posts="1" size="2" who="Hans-Christian Armingeon " />
<person posts="1" size="2" who="Ed Sweetman " />
<person posts="1" size="2" who="Samuel Flory " />
<person posts="1" size="2" who="Patrick Mau " />
<person posts="1" size="2" who="&quot;Rick A. Hohensee&quot; " />
<person posts="1" size="2" who="Frank Fiene " />
<person posts="1" size="2" who="&quot;Mark H. Wood&quot; " />
<person posts="1" size="2" who="&quot;sanket rathi&quot; " />
<person posts="1" size="2" who="James Simmons " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Peter Samuelson " />
<person posts="1" size="2" who="J Sloan " />
<person posts="1" size="2" who="Tony Gale " />
<person posts="1" size="2" who="Mike Galbraith " />
<person posts="1" size="2" who="zhengchuanbo " />
<person posts="1" size="2" who="Reinhold Jordan " />
<person posts="1" size="2" who=" (Billy O'Connor)" />
<person posts="1" size="2" who="John Kim " />
<person posts="1" size="2" who="&quot;Garst R. Reese&quot; " />
<person posts="1" size="2" who="Andrey Nekrasov " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Douglas Gilbert " />
<person posts="1" size="2" who="&quot;Ashok Raj&quot; " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="RISKO Gergely " />
<person posts="1" size="2" who="John Weber " />
<person posts="1" size="2" who="Rob Radez " />
<person posts="1" size="2" who="Stas Sergeev " />
<person posts="1" size="2" who="&quot;daniel sheltraw&quot; " />
<person posts="1" size="2" who="Dale Amon " />
<person posts="1" size="2" who="Streng " />
<person posts="1" size="2" who="Mathias Kretschmer " />
<person posts="1" size="2" who="Leopold Gouverneur " />
<person posts="1" size="2" who="Aaron Lehmann " />
<person posts="1" size="2" who="Mark J Roberts " />
<person posts="1" size="1" who="" />
<person posts="1" size="1" who="=?iso-8859-2?Q?zuzana=20nerekn?= " />
<person posts="1" size="1" who="ed Wang " />
<person posts="1" size="1" who="Amol Lad " />
<person posts="1" size="1" who="&quot;elsa&quot; " />

</stats>

<section
  title="Status Of InfiniBand Support"
  subject="Re: [2.6] The List, pass #2"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.3/1126.html"
  posts="31"
  startdate="28 Jul 2002 02:47:10 -0800"
  enddate="12 Aug 2002 21:27:43 -0800"
>
<topic>Disks: SCSI</topic>
<topic>Feature Freeze</topic>
<topic>Microsoft</topic>

<mention>Guillaume Boissiere</mention>

<p>Guillaume Boissiere had written that InfiniBand support would probably
not make it into 2.6, and would have to wait until 2.7; Albert D. Cahalan
asked why this was. He said that if folks stuck to the simplest goals,
such as SCSI or IP over InfiniBand, it wouldn't be so difficult to
code. Roland Dreier pointed out, <quote who="Roland Dreier">Look at <a
href="http://infiniband.sf.net">http://infiniband.sf.net</a> to see all the
infrastructure required just to get to the point of being able to start to
write an IP-over-IB driver.</quote> Albert replied, <quote who="Albert D.
Cahalan">It's pretty obvious that you could do SCSI and IP with much less
code</quote> [...] <quote who="Albert D. Cahalan">Ditch the lofty goals,
and you might make the 2.6.xx kernel.  You can stick to being a FireWire
alternative for now.</quote> But Roland said, <quote who="Roland Dreier">I
agree that it's a shame that the IB spec is so absurdly complex.  And it
probably is true that you could come up with a simplified way of using
IB hardware that would be easier to code for.  However, I don't think
you'll find much interest in the IB world in implementing Linux-specific,
non-interoperable, non-IB-spec-compliant software.</quote></p>

<p>Linus Torvalds also replied to Albert's initial question, saying:</p>

<quote who="Linus Torvalds">

<p>It's big, it's complex, and nobody seems to take it that seriously (the
only people who ever asked _me_ about it was Intel, and they seem to have
cancelled their own projects).</p>

<p>If it turns out to be a big hit, it can be backported. But as it looks now,
it has very little relevance for any 2.6 freeze schedule.</p>

</quote>

<p>Ben Greear added, <quote who="Ben Greear">I read that Microsoft was
cancelling support for it as well.</quote> Austin Gonyou said to Linus:</p>

<quote who="Austin Gonyou">

<p>True, and to second that with some facts, companies who were making this
their mainstay, are in much pain, on top of their economic status, because
of Intel seemingly cancelling their projects.</p>

<p>Several companies in Austin, TX were chomping at the bit for people to
come work on Infiniband technology, but there has been nothing new relating
to this climate for a very long time...and probably won't be unless Intel,
HP, IBM, someone with deep pockets and a marketing machine can show it's
viable for consumer use.</p>

</quote>

<p>Rob Landley replied:</p>

<quote who="Rob Landley">

<p>Ah, the austin rumor mill.</p>

<p>According to a friend of mine who works at AMD:</p>

<p>

<ol>

<li>Intel licensed that hyper-transport thing when they licensed x86-64
(Yamhill?).</li>

<li>Dell gave people refunds on the few itanium machines they actually managed
to sell.  (I believe the number I heard was a total of about two hundred and
fifty total itanium "development" systems sold...)</li>

</ol>

</p>

<p>There would appear to be a distinct trend here, but you know rumors... :)</p>

</quote>

<p>Matt Domsch from Dell commented on the Dell rumor, saying, <quote who="Matt
Domsch">In this case, rumors are completely untrue. :-)  Standard Operating
Procedure is to give refunds for systems returned within 30 days if the
customer chooses to do that.  We didn't do anything akin to a recall.
In fact, we're still selling 4P Itanium servers (PowerEdge 7150).</quote></p>

</section>

<section
  title="Ethernet Driver Documentation"
  subject="ethtool documentation"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.0/1035.html"
  posts="38"
  startdate="05 Aug 2002 03:46:57 -0800"
  enddate="08 Aug 2002 01:18:51 -0800"
>
<topic>Ioctls</topic>
<topic>Networking</topic>

<mention>Abraham vd Merwe</mention>

<p>Abraham vd Merwe asked if there were any documentation describing the
ioctls that needed to be implemented in each ethernet driver, and Jeff Garzik
replied, <quote who="Jeff Garzik">Unfortunately not.  There is a distinct
lack of network driver docs at the moment...  The best documentation is
looking at source code of drivers that implement the most ioctls.</quote>
But Tim Hockin said he'd written a quick overview document. He added, <quote
who="Tim Hockin">I need to add docs for a few of the newer commands, still,
and I want to get into the structs for each call in more detail, too.
I want to re-examine a few of recent additions, before they become too
ubiquitous - am I too late to pipe up for my own aesthetics?</quote> He
posted the entire doc:</p>

<quote who="Tim Hockin">

<p>These are the valid parameters to the SIOCETHTOOL ioctl().  Network drivers
should support these as much as possible.</p>

<p>ETHTOOL_GSET<br />
ETHTOOL_SSET</p>

<blockquote>

<p>  Get/set NIC settings.  These commands expect a 'struct ethtool_cmd *'
  argument.  This struct includes fields for supported features (speed,
  duplex, transceiver), advertised features, speed, duplex, port,
  transceiver, and autonegotiation.  If the caller attempts to set an
  invalid value for any field, return -EINVAL.</p>

</blockquote>

<p>ETHTOOL_GDRVINFO</p>

<blockquote>

<p>  Get driver information.  This command expects a 'struct ethtool_drvinfo *'
  argument.  This struct includes the driver identifier as a string, the
  driver version as a string, bus information for the interface, and length
  information for other ETHTOOL_* commands.</p>

</blockquote>

<p>ETHTOOL_GREGS</p>

<blockquote>

<p>  Get a register dump from the NIC.  This command expects a 'struct
  ethtool_regs regs *' argument.  This struct has a driver-specific version
  field and a length field.  The length field indicates the length of the
  data field to be populated with register information.</p>

</blockquote>

<p>ETHTOOL_GWOL<br />
ETHTOOL_SWOL</p>

<blockquote>

<p>  Get/set wake-on-lan options for the NIC.  These commands expect a 'struct
  ethtool_wolinfo *' argument.  This struct has fields for supprted and
  active WoL options, and the SecureOn password, if active.  If the caller
  attempts to set an invalid value, return -EINVAL.</p>

</blockquote>

<p>ETHTOOL_GMSGLVL<br />
ETHTOOL_SMSGLVL</p>

<blockquote>

<p>  Get/set the driver message-level value for the NIC.  This command expects
  a 'struct ethtool_value *' argument.</p>

</blockquote>

<p>ETHTOOL_NWAY_RST</p>

<blockquote>

<p>  Force auto-negotiation to restart, if it is enabled.  If it is not
  enabled, return -EINVAL.</p>

</blockquote>

<p>ETHTOOL_GLINK</p>

<blockquote>

<p>  Read the current link status.  This command expects a 'struct
  ethtool_value *' argument.</p>

</blockquote>

<p>ETHTOOL_GEEPROM<br />
ETHTOOL_SEEPROM</p>

<blockquote>

<p>  Get/set EEPROM data.  These commands expect a 'struct ethtool_eeprom *'
  argument.  This struct has a magic number, an offset and length pair, and a
  data field.  If the offset+length are longer than the maximum size, the
  extra is silently ignored.</p>

</blockquote>

<p>ETHTOOL_GCOALESCE<br />
ETHTOOL_SCOALESCE</p>

<blockquote>

<p>  Get/set coalescing parameters.  These commands expect a 'struct
  ethtool_coalesce *' argument.  This struct has several fields for
  configuring coalescing - see ethtool.h for details.  If the caller
  attempts to set an invalid value, return -EINVAL.</p>

</blockquote>

<p>ETHTOOL_GRINGPARAM<br />
ETHTOOL_SRINGPARAM</p>

<blockquote>

<p>  Get/set RX/TX ring parameters.  These commands expect a 'struct
  ethtool_ringparam *' aargument.  This struct has fields for several
  rx pending options, and tx pending. If the caller attempts to set an invalid
  value, return -EINVAL.</p>

</blockquote>

<p>ETHTOOL_GPAUSEPARAM<br />
ETHTOOL_SPAUSEPARAM</p>

<blockquote>

<p>  Get/set the RX/TX pause parameters.  These commands expect a 'struct
  ethtool_pauseparam *' argument.  This struct has fields to enable
  autonegotiation of pause parameters and to force RX and TX pause control.</p>

</blockquote>

<p>ETHTOOL_GRXCSUM<br />
ETHTOOL_SRXCSUM</p>

<blockquote>

<p>  Get/set the RX hardware checksum capability/flag.  These commands expect
  a 'struct ethtool_value *' argument.  If the caller attempts to enable RX
  hardware checksumming on an interface that does not support it, return
  -EINVAL.</p>

</blockquote>

<p>ETHTOOL_GTXCSUM<br />
ETHTOOL_STXCSUM</p>

<blockquote>

<p>  Get/set the TX hardware checksum capability/flag.  These commands expect
  a 'struct ethtool_value *' argument.  If the caller attempts to enable TX
  hardware checksumming on an interface that does not support it, return
  -EINVAL.</p>

</blockquote>

<p>ETHTOOL_GSG<br />
ETHTOOL_SSG</p>

<blockquote>

<p>  Get/set the scatter/gather capability/flag.  These commands expect a 'struct
  ethtool_value *' argument.  If the caller attempts to set an invalid value,
  return -EINVAL.</p>

</blockquote>

<p>ETHTOOL_TEST<br />
/* execute NIC self-test, priv. */</p>

<p>ETHTOOL_GSTRINGS<br />
/* get specified string set */</p>

<p>ETHTOOL_PHYS_ID<br />
/* identify the NIC */</p>

<p>ETHTOOL_GSTATS<br />
/* get NIC-specific statistics */</p>

</quote>

</section>

<section
  title="driverFS API Updates"
  subject="driverfs API Updates"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.0/1142.html"
  posts="9"
  startdate="05 Aug 2002 11:17:13 -0800"
  enddate="08 Aug 2002 17:20:07 -0800"
>
<topic>FS: driverfs</topic>

<p>Patrick Mochel described:</p>

<quote who="Patrick Mochel">

<p>A series of driverfs changes went into Linus' tree last Friday. This is
a short summary of those changes, and some notes on how to use them.</p>

<p>Firstly, I changed the name of the structure that must be declared from
struct driver_file_entry to struct device_attribute. This more accurately
represents what is going on.</p>

<p>I've also created a macro[1] for defining device attributes, that goes
like this:</p>

<p>DEVICE_ATTR(name,"strname",mode,show,store);</p>

<p>This will create a structure by the name of 'dev_attr_##name',
where ##name is the first parameter, which can then be passed to
device_create_file(). [2]</p>

<p>The definition of device_remove_file has changed to:</p>

<p>void device_remove_file(struct device * dev, struct device_attribute *
attr);</p>

<p>(The second parameter is now the same type as what is passed to
device_create_file, for consistency's sake (instead of a char *)).</p>

<p>I've added support for bus and device driver attributes. The mechanism for
manipulating them is analogous to that of device attributes. To declare them,
you do:</p>

<p>BUS_ATTR(name,"strname",mode,show,store);
DRIVER_ATTR(name,"strname",mode,show,store);</p>

<p>which create the objects</p>

<p>struct bus_attribute bus_attr_##name;</p>

<p>and</p>

<p>struct driver_attribute driver_attr_##name;</p>

<p>respectively.</p>

<p>You can then use</p>

<p>int bus_create_file(struct bus_type *, struct bus_attribute *); void
bus_remove_file(struct bus_type *, struct bus_attribute *);</p>

<p>int driver_create_file(struct device_driver *, struct driver_attribute *);
void driver_remove_file(struct device_driver *, struct driver_attribute *);</p>

<p>To add and remove them.</p>

<p>Bus attribute files appear in the bus's directory (bus/&lt;bus&gt;/
under the driverfs mountpoint).</p>

<p>Driver attributes appear in the driver's directory
(bus/&lt;bus&gt;/&lt;driver&gt;/ under the driverfs mountpoint).</p>

<p>The bus show and store routines are identical to the device show and
store routines, though they take a pointer of type struct bus_type as the
first parameter.</p>

<p>Similarly for drivers; they take a struct device_driver * as the first
parameter.</p>

<p>Please see include/linux/device.h for the structure definitions, and
drivers/base/fs/*.c for implementation details.</p>

<p>driverfs now has the ability to support attributes for any object
type. I've updated the documentation (Documentation/filesystems/driverfs.txt)
to hopefully include enough information to hack on it. I'm also open to all
questions and suggestions, so please feel free to ask.</p>

</quote>

</section>

<section
  title="uClinux With Memory Management"
  subject="uclinux on MMU platforms - query"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.0/1403.html"
  posts="6"
  startdate="06 Aug 2002 08:04:01 -0800"
  enddate="08 Aug 2002 05:20:30 -0800"
>
<topic>User-Mode Linux</topic>
<topic>Virtual Memory</topic>

<mention>David Weinehall</mention>

<p>Amol Lad asked if uClinux would run on a platform that <i>did</i> have a
memory management unit (MMU). Greg Ungerer said it was theoretically possible,
but that if you could use virtual memory, you were better off doing so than
not, so uClinux would not be the best choice for that hardware. But Alan
Cox said, <quote who="Alan Cox">Being able to run true ucLinux on i386 makes
debugging and verification of software so much less painful sometimes.</quote>
Greg replied, <quote who="Greg Ungerer">For some things yes. But it is a real
pain trying to track down memory corruption and stack overflow problems in
applications. They have a tendency to take your the whole system...</quote></p>

<p>At this point David Weinehall joked that a uClinux version of UML would
be great, and Greg laughed, saying, <quote who="Greg Ungerer">We sort of
have better than that now. There are quite a few emulators that run under
standard Linux that will quite happliy run uClinux. There is xcopilot
(m68328), coldfire (5206), ARMulator (ARM), tsim (SPARC leon) and or1ksim
(OPENcores OR1000).  I am sure there is more!</quote></p>

</section>

<section
  title="Status Of NTFS Write Support"
  subject="[BK-PATCH-2.5] NTFS 2.0.24: Cleanups"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.0/1544.html"
  posts="5"
  startdate="06 Aug 2002 17:05:04 -0800"
  enddate="08 Aug 2002 10:08:49 -0800"
>
<topic>FS: NTFS</topic>

<mention>Christoph Hellwig</mention>
<mention>Adam J. Richter</mention>
<mention>Denis Vlasenko</mention>

<p>Anton Altaparmakov announced an NTFS update, explaining, <quote who="Anton
Altaparmakov">This is just some cleanups, mostly the BUG_ON() cleanups from
Adam J. Richter. Just to relax a bit after the big changes in the last ntfs
update. (-;</quote> He posted the ChangeSet:</p>

<quote who="Anton Altaparmakov">

<p>   NTFS: 2.0.24 - Cleanups.</p>

<p>

<ul>

<li>Treat BUG_ON() as ASSERT() not VERIFY(), i.e. do not use side effects
inside BUG_ON(). (Adam J. Richter)</li>

<li>Split logical OR expressions inside BUG_ON() into individual BUG_ON()
calls for improved debugging. (Adam J. Richter)</li>

<li>Add errors flag to the ntfs volume state, accessed via
NVol{,Set,Clear}Errors(vol).</li>

<li>Do not allow read-write remounts of read-only volumes with errors.</li>

<li>Clarify comment for ntfs file operation sendfile which was added by
Christoph Hellwig a while ago (just using generic_file_sendfile()) to say
that ntfs ->sendfile is only used for the case where the source data is on
the ntfs partition and the destination is somewhere else, i.e. nothing we
need to concern ourselves with.</li>

</ul>

</p>

</quote>

<p>Erik Andersen noticed the item about read-write remounts, and remarked,
<quote who="Erik Andersen">I thought the current NTFS driver does
not yet support writing...</quote> Anton explained, <quote who="Anton
Altaparmakov">Correct, and if you look at the code you will notice the
#ifdef NTFS_RW around it... The read-only compiled driver doesn't have
any write related code. Only the read-write compiled driver has, but at the
moment this is just adding necesary safety bits before starting to add actual
write code.  Writing is under development and you will be seing more and more
bits related to it appearing. (-:</quote> Erik was very happy about this, for
the occassional times he needed to interoperate with Windows 2000; and Denis
Vlasenko also gave the thumbs up, offering to help write and test the code.</p>

</section>

<section
  title="Tigon3 Crash Bug"
  subject="kernel BUG at tg3.c:1557"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.0/1654.html"
  posts="23"
  startdate="07 Aug 2002 03:40:43 -0800"
  enddate="08 Aug 2002 07:32:15 -0800"
>
<topic>Disk Arrays: RAID</topic>
<topic>Networking</topic>
<topic>PCI</topic>

<p>Roland Kuhn reported, <quote who="Roland Kuhn">On a dual Athlon MP
with a 3ware-7850 RAID (640GB RAID-5) and 3C996B-T GE NIC I can crash the
machine with the above BUG message in virtually no time simply by copying
data both ways between the RAID and the NIC. The BUG message shows that
this can happen any time, it doesn't matter if the interrupt is received in
cpu_idle or something else. I tried noapic, but to no avail.</quote> Alan
Cox replied, <quote who="Alan Cox">I've never been able to get a broadcom
chipset ethernet card stable on a dual athlon with AMD 76x chipset. I have
no idea what the problem is although it certainly appears to be PCI versus
main memory ordering funnies.</quote> David S. Miller hung on a bit longer
with a few suggestions and patches, but eventually he said, <quote who="David
S. Miller">I'm stumped, sorry.</quote> Pressing on by himself, Roland said:</p>

<quote who="Roland Kuhn">

<p>Just out of curiosity I tried it with</p>

<pre>static void tg3_write_mailbox_reg32(struct tg3 *tp, u32 off, u32 val)
{ 
        unsigned long flags;

        spin_lock_irqsave(&amp;tp-&gt;indirect_lock, flags);
        writel(val, tp-&gt;regs + off);
        spin_unlock_irqrestore(&amp;tp-&gt;indirect_lock, flags);
}</pre>

<p>and that plain works. That means that only the mailbox writes have
additional locking around the otherwise unchanged writel() call. Does the
spin_lock_irqsave/spin_unlock_irqrestore take care of the PCI ordering?</p>

</quote>

<p>And he replied to himself with:</p>

<quote who="Roland Kuhn">

<p>While loading properly, this still crashed the machine. After giving it
some thought I tried to add a dummy pci_read_config_dword() just before the
writel(), and that works! I use this function both for tw32 and tw32_mailbox. I
hammered it over one hour with a script that crashed it always in five seconds,
and not so much as a hiccup :-)</p>

<p>Only one question is left: can this effect be achieved more elegantly?</p>

</quote>

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

</section>

<section
  title="Sharing Thread Credentials"
  subject="[PATCH 2.5.30+] Second attempt at a shared credentials patch"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0090.html"
  posts="14"
  startdate="08 Aug 2002 06:58:13 -0800"
  enddate="12 Aug 2002 12:08:46 -0800"
>
<topic>BSD</topic>
<topic>FS: InterMezzo</topic>
<topic>FS: NFS</topic>
<topic>POSIX</topic>
<topic>SMP</topic>
<topic>Version Control</topic>

<p>Dave McCracken posted a patch and announced:</p>

<quote who="Dave McCracken">

<p>This patch allows tasks to share credentials via a flag to clone().</p>

<p>This version fixes the problem with exec() that Linus found.  Tasks that
call exec() get their own copy of the credentials at that point.</p>

<p>The URL is here because it's too big to include in email:</p>

<p><a
href="http://www.ibm.com/linux/ltc/patches/misc/cred-2.5.30-3.diff.gz">http://www.ibm.com/linux/ltc/patches/misc/cred-2.5.30-3.diff.gz</a></p>

<p>The patch is against Linus' BK tree as of this morning.</p>

</quote>

<p>Trond Myklebust complained that the patch was too big and monolithic. He
pointed out an NFS bug that had slipped into the patch, saying, <quote
who="Trond Myklebust">Instead of doing this as one big unreadable monolithic
patch and risking getting things wrong like in the above case, it would be
nice if you could go via a set of wrapper functions</quote> [which] <quote
who="Trond Myklebust">would allow you to make the changes to the lower level
filesystem code in smaller babysteps, and make the actual move to 'struct
cred' a trivial patch...</quote> He added, <quote who="Trond Myklebust">As
I argued before when Ben first presented this, that will also allow us the
flexibility to change the structure at a later date. Several filesystems
could benefit from a shared *BSD-style 'struct ucred' to replace the tuple
current-&gt;{ fsuid, fsgid, groups }.</quote></p>

<p>Dave found the bug and posted an updated patch, but didn't like Trond's
suggestion. He said, <quote who="Dave McCracken">I *could* do a big
monolithic patch to change all references to current-&gt;*id to macros,
then change the macros in a separate patch.  But then we'd be stuck with
macros for all those references forever, and they're not likely to change
again any time soon.  I don't think we'd really want to have macros for all
our structure references on the off chance that someone might change it in
the future.</quote> Trond explained:</p>

<quote who="Trond Myklebust">

<p>Macros (and inlined functions) have the advantage that they enforce good
policy. Doing 'task->cred->uid = a' on tasks other than 'current' is in
general not a very safe thing to do. This sort of issue w.r.t. safe policies
should in particular be worrying you when you start adding CRED_CLONE...</p>

<p>There are good precedents for this sort of argument: see
'set_current_state()' &amp; friends.</p>

<p>In addition, those macros would allow you to set up compatibility with
2.4.x and simplify patch backports.</p>

<p>As for changing the structure: As I said previously I'd like to unify all
those { fsuid, fsgid, group } things into a proper ucred, so that we can
share these objects around the VFS, and cache them...  Your 'struct cred'
as it stands will not suffice to do all that since it does not provide the
necessary Copy On Write protection. (For instance if some thread temporarily
raises my process privileges, I will *not* want all my already opened
'struct file's to suddenly gain root access).</p>

</quote>

<p>Dave was iffy about Trond's example. He said, <quote who="Dave McCracken">If
a thread makes a system call to change its credentials, all other threads
should see it.  That's POSIX behavior, and the whole point of the patch.
If you're talking about kernel code that assumes another identity under the
covers, then yes, that's interesting.  And could be achieved by allocating
a temporary cred structure and attaching it to the task for the duration of
the operation.</quote> Trond replied:</p>

<quote who="Trond Myklebust">

<p>Authentication under UNIX usually requires you to check the process'
uid/gid/groups affiliation. As such, it is useful to be able to pass that
information around the kernel. Most OSes use some variation of the BSD
'ucred' structure which is reference counted and obeys COW (copy on write).</p>

<pre>struct ucred {
  atomic_t count;
  uid_t    uid;      /* == fsuid if you like */
  gid_t    gid;      /* == fsgid  "  "   "   */
  int      ngroups;
  gid_t    *groups;
};</pre>

<p>This means that 'struct file', the underlying filesystems, whoever
else... can hold a reference to the above structure and be assured that it will
never change. Changing the fsuid etc. are extremely rare operations compared
to opening/closing a file, so the whole idea is precisely to *avoid* having
to copy the above information all the time (which, given all the races that
CLONE_CRED introduces, is a good thing).</p>

<p>As for POSIX behaviour: it is quite compatible with the above. The only
change would be that your shared 'struct cred' would require a reference to
a struct ucred rather than including fsuid, fsgid, groups as cred structure
members.</p>

<p>Note: Given that Linux has adopted the 'capability' model on top of the
standard UNIX authentication model, it might perhaps be necessary to move
the capabilities into the ucred in order to make them COW too?</p>

</quote>

<p>This made sense to Dave. He said it was a good idea, but not really related
to his patch, and he didn't want to tie them together.</p>

<p>Earlier in the discussion, when Trond had said that macros and inline
functions enforced good policy, Dave had replied, <quote who="Dave McCracken">I
don't really see the benefit.  The macros you're talking about are only there
to provide different behavior for MP and UP.  There aren't macros for any
of the other shareable structures hanging off the task struct.</quote> And
Trond said, <quote who="Trond Myklebust">... which begs the question: are you
saying that there are no SMP issues with CLONE_CRED and setting/reading the
'struct cred' members?</quote> Dave replied, <quote who="Dave McCracken">Yes,
I'm saying there are no SMP issues with the shared cred structure.  I looked
for them and failed to find any.  Credentials are not set cross-task, and
are always done via atomic ops.  I also failed to find any broader race
conditions that would require a lock.</quote> But Trond said:</p>

<quote who="Trond Myklebust">

<p>What if one thread is doing an RPC call while the other is changing the
'groups' entry?</p>

<p>Given that the first thread wants both to copy and/or compare the groups
entry what prevents scenarios of the form?</p>

<pre>  Thread 1                       Thread 2

                                change cred->ngroups
  copy cred->ngroups
  copy cred->groups
                                change cred->groups
</pre>

</quote>

<p>Dave's eyes bugged out, and he said, <quote
who="Dave McCracken">Good point.  Ok, I've added locking
to the cred structure to handle this.</quote> He posted <a
href="http://www.ibm.com/linux/ltc/patches/misc/cred-2.5.30-5.diff.gz">another
patch</a> and said he didn't see any other places where locking was
necessary. At this point Linus Torvalds chimed in, with:</p>

<quote who="Linus Torvalds">

<p>Please don't do this with locking, I really think the right thing to do
is to have a "duplicate()" function, and when you pass credentials off to
something, you dup them at that point.</p>

<p>If you start off as non-root, and then execve suid into root, a pending
NFS request should _not_ suddently have the credentials changed under it. Yet
clearly that kind of thing can't just be locked either.     </p>

<p>Along with copy-on-write semantics, this should perform perfectly well
(ie "duplicate()" would only increment a count, and then setuid() would have
to have code soemthing like</p>

<pre>        if (cred-&gt;count &gt; 1) {
                newcred = alloc_cred();
                copy_cred(newcred, cred);
                for_each_cred_group(p) {
                        p-&gt;cred = newcred;
                        atomic_inc(&amp;newcred-&gt;count);
                        putcred(cred);
                }
        }</pre>

<p>instead.</p>

</quote>

<p>There was no reply to this, but Trond also said to Dave, <quote
who="Trond Myklebust">Err... Well my original point about your changes to
the sunrpc code still stand: no spinlocking there AFAICS. In addition,
you'll want to talk to the Intermezzo people: they do allocation of
buffers based on the (volatile) value of cred-&gt;ngroups.</quote>
Dave agreed he'd missed the sunrpc case, and posted <a
href="http://www.ibm.com/linux/ltc/patches/misc/cred-2.5.30-6.diff.gz">another
patch</a>. Trond still had some problems with the patch, and they probably
took it to private email.</p>

</section>

<section
  title="Linux Test Project Update"
  subject="ANNOUNCE: August Linux Test Project Announcement"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0122.html"
  posts="1"
  startdate="08 Aug 2002 09:43:41 -0800"
>
<topic>Bug Tracking</topic>
<topic>Networking</topic>
<topic>Version Control</topic>

<mention>Nathan Straz</mention>
<mention>Davide Libenzi</mention>
<mention>Jeff Martin</mention>
<mention>Paul Larson</mention>

<p>Airong Zhang announced:</p>

<quote who="Airong Zhang">

<p>The Linux Test Project test suite
LTP-20020807.tgz has been released.  Visit our website ( <a
href="http://ltp.sourceforge.net">http://ltp.sourceforge.net</a> ) to download
the latest version of the test suite, and for information on test results on
pre-release, release candidate and stable releases of the kernel. There is
also a list of test cases that are expected to fail, please find the list at <a
href="http://ltp.sourceforge.net/expected-errors.php">http://ltp.sourceforge.net/expected-errors.php</a>.</p>

<p><i>Highlights</i></p>

<p>

<ul>

<li>LTP's Kernel Code Coverage website for 2.5.X kernel is live <a
href="http://ltp.sf.net/coverage/coverage-2.5.26/index.html">http://ltp.sf.net/coverage/coverage-2.5.26/index.html</a></li>

<li>Kernel code coverage tools are available on CVS under module utils</li>

<li>Automated test frame work to extract, build and install various Linux
tests are available on CVS under module utils</li>

<li>Database stress tool 'dbgrinder' is available on cvs under
ltp/utils/database</li>

</ul>

</p>

<p>We encourage the community to post results, patches or new tests on
our mailing list and use the CVS bug tracking facility to report problems
that you might encounter with the test suite. More details are available at
our web-site.</p>

<p><i>Change Log</i></p>

<p>

<ul>

<li>New Additions</li>

<ul>

<li>Added new test-cases for link07,fcntl22,link06        ( Group Bull )</li>

<li>Added Linux kernel scheduler latency tester           ( Davide Libenzi )</li>

<li>Database test tool 'dbgrinder'                        ( James Kenefick )</li>

</ul>

<li>Fixes</li>

<ul>

<li>Several fixes for 64-bit                              ( Gerhard Tonn )</li>

<li>fstat05,llseek fixes for MIPS                         ( Carsten Langgaard )</li>

<li>- Fixed check in getgroups03 that was causing
  failures if 'nobody' isn't in any secondary groups    ( Paul Larson )</li>

<li>Fix sendfile02 to work with the new 2.5 kernels which
  no longer allow it to fall back on write              ( Paul Larson )</li>

<li>Changed the hard-coded ip address to 127.0.0.1 in
  recvfrom01-sctp-udp-ipv6                              ( Robbie Williamson )</li>
<li>Added instance and time command line options in
  runalltests.sh                                        ( Jeff Martin )</li>

<li>Fixed the algorithm description for fork07,fork12
  Reduced the output of fork07 to a finite amount       ( Nathan Straz )</li>

<li>Added fork12 to runtest/crashme.                      ( Nathan Straz )</li>

<li>Added option for interface selection in tcpdump01     ( Robbie Williamson )</li>

</ul>

</ul>

</p>

<p><i>CVS Bugs closed</i></p>

<p>#591695 getgroups03 fails on some distros<br />
#591698 sendfile02 fails with 2.5 kernels</p>

<p><i>Acknowledgements</i></p>

<p>

<ul>

<li>Manoj Iyer,James Kenefick and Peter Oberparleiter for delivering the
coverage analysis toolset.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Daily Snapshots Of The Unstable Series"
  subject="Announce: daily 2.5 BK snapshots"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0180.html"
  posts="10"
  startdate="08 Aug 2002 11:52:50 -0800"
  enddate="09 Aug 2002 11:03:00 -0800"
>
<topic>SMP</topic>
<topic>Version Control</topic>

<mention>David Woodhouse</mention>
<mention>H. Peter Anvin</mention>

<p>Jeff Garzik announced:</p>

<quote who="Jeff Garzik">

<p>Since Linus does not do pre-patches anymore, he mentioned some time ago
it would be nice if somebody created an automated BK snapshot process to
make BK changes accessible between kernel releases.  I've done that.</p>

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/snap/2.5/">ftp://ftp.kernel.org/pub/linux/kernel/people/jgarzik/snap/2.5/</a></p>

<p>All BK changes not in the current 2.5 kernel release will be posted at
this URL, in GNU patch form, on a daily basis.  [snap happens at one minute
past midnight, California time]   The full changelog log is also extracted.
Each time Linus releases a new kernel, the contents of this directory will
be wiped out.</p>

</quote>

<p>He added in reply to himself:</p>

<quote who="Jeff Garzik">

<p>Two more details:</p>

<p>

<ul>

<li>Just like a pre-patch, the Makefile EXTRAVERSION is hacked to indicate
"-bk1", "-bk2", etc.</li>

<li>I'll be setting up a process like this for 2.4, too, at the request
of Marcelo</li>

</ul>

</p>

</quote>

<p>H. Peter Anvin asked Jeff in private, if they could choose a directory that
wasn't in people/, but Jeff replied on the list, <quote who="Jeff Garzik">I
would like to test it for a while and see if Linus objects, before doing
so...</quote></p>

<p>Rik van Riel also replied to Jeff's initial announcement:</p>

<quote who="Rik van Riel">

<p>Heh, I've had something vaguely like this on NL.linux.org:</p>

<p><a
href="ftp://ftp.nl.linux.org/pub/linux/bk2patch/">ftp://ftp.nl.linux.org/pub/linux/bk2patch/</a></p>

<p>Every 3 hours it creates a unidiff between the latest tagged version and
the head of the bk tree, for both 2.5 and 2.4.</p>

</quote>

<p>Jeff replied:</p>

<quote who="Jeff Garzik">

<p>Just to forestall other private responses [already gotten two], mine is
slightly different than your's, and David Woodhouse's setup.  My goal was
basically to create a daily pre-patch, complete with hacked EXTRAVERSION.
That's something that is familiar to testers (pre-patch form), and the
snapshot is not so often that people will get buried in a flurry of patches
and csets. can you say "2.5.30-bk439" ;-)</p>

<p>So I consider my dailies as a complement to your bk2patch and dwmw2's
output, not redundant.  Programmers would probably find dwmw2's per-cset
patches to be more useful, while testers and power users, and maybe
maintainers, would prefer daily pre-patches to test and sync against.</p>

</quote>

<p>Paul Larson described his own system, saying, <quote who="Paul Larson">I
have a setup that does a nightly pull of 2.5, builds it for UP and SMP,
pushes to two machines (UP and SMP) and runs LTP on it.  Then sends me back
the results of all of it.  Of course if something fails that didn't fail the
previous day, I have a limited set of Changesets as culprits so it's easier for
me to find the cause of problems when I do more frequent testing like this.
Any major problems are reported immediatly of course, but would anyone be
interested in seeing the results of this more often?  I don't know if I have
enough space on the LTP website to post all the data that's gathered every
single day (It would add up REALLY fast), but would a weekly rollup to lkml be
something people would like to see?</quote> Larry McVoy pointed out, <quote
who="Larry McVoy">if you look at Documentation/BUG-HUNTING which describes
how to do binary search to track down bugs, you'll notice you can now do
the same thing with BK at a much finer granularity.  It's possible to track
down bugs to the changeset which caused the bug, rather than the release.
Which is what Paul is talking about, but he's talking about doing it over
a small set of csets.  You can do it over a large set of csets as well.
File this away as a thing you can do and if you ever need the details,
contact me and I'll walk you through it if it isn't obvious.</quote></p>

</section>

<section
  title="Status Of -dj Series"
  subject="What patches I need for s stable 2.5.x"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0199.html"
  posts="4"
  startdate="08 Aug 2002 13:02:31 -0800"
  enddate="13 Aug 2002 22:49:08 -0800"
>
<topic>Disks: IDE</topic>

<mention>Brad Chapman</mention>

<p>Brad Chapman asked what patches to apply to the 2.5 tree to get something
stable. Alan Cox replied, <quote who="Alan Cox">The IDE stuff might get you
a usable 2.5, even then the error handling is not correct in all cases so
treat it with care. On my test boxes the foreport didnt hang the machine
the way 2.5.* did so its an improvement.  You might just want to follow
the 2.5.*-dj tree though.</quote> Brad saw the wisdom of that, and asked
if there were any caveats with regard to Dave Jones' tree. Dave replied,
<quote who="Dave Jones">The biggest gotcha right now is that it's lagging
behind mainline.  (Current is 2.5.30-dj1, which doesn't actually boot.. Last
working one was against 2.5.27).  Hopefully I'll be back on track by the
end of the week.</quote></p>

</section>

<section
  title="PCI Fix For NUMA-Q"
  subject="[patch] PCI configuration fix for NUMA-Q"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0215.html"
  posts="2"
  startdate="08 Aug 2002 14:07:46 -0800"
  enddate="08 Aug 2002 15:41:59 -0800"
>
<topic>PCI</topic>

<p>Matthew Dobson said, <quote who="Matthew Dobson">The PCI code for NUMA-Q
machines has been broken for a while...  The kernel currently can't find
PCI busses on quad's other than the first.  This patch fixes that problem.
Please apply.</quote> Alan Cox replied, <quote who="Alan Cox">Its a tiny bit
more code to implement a set of pci ops instead of hacking CONFIG_MULTIQUAD
into the core code and it gets rid of the ifdefs for BUS2QUAD and the like
if you instead of ideffing it all split the pci_conf1_ ops so you have your
own copy with BUS2QUAD bits called pci_conf1_mq_.... and put the originals
back cleanly without multiquad.</quote> He posted some sample code, and
added, <quote who="Alan Cox">Less ifdefs, less magic macros, minutely better
performance and it scales for future stuff when Intel/Dell/whoever releases
their NUMA chipset (See 2.4.20pre-ac although the effect is less obvious
there as its all in one file anyway in 2.4)</quote></p>

</section>

<section
  title="klibc And Licensing"
  subject="klibc development release"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0261.html"
  posts="34"
  startdate="08 Aug 2002 19:39:52 -0800"
  enddate="11 Aug 2002 20:39:08 -0800"
>
<topic>BSD</topic>
<topic>FS: initramfs</topic>
<topic>FS: ramfs</topic>
<topic>FS: rootfs</topic>
<topic>Klibc</topic>
<topic>Version Control</topic>

<mention>Albert D. Cahalan</mention>
<mention>Rob Landley</mention>

<p>H. Peter Anvin announced:</p>

<quote who="H. Peter Anvin">

<p>Okay, I'm starting to have enough guts about this to release for testing...
</p>

<p>klibc is a tiny C library subset intended to be integrated into the kernel
source tree and being used for initramfs stuff.  Thus, initramfs+rootfs
can be used to move things that are currently in kernel space, such as ip
autoconfiguration or nfsroot (in fact, mounting root in general) into user
space.</p>

<p>I would particularly appreciate portability comments, since I'm flying
blind on non-i386 machines (anyone want to send me hardware?), although any
bug reports would be appreciated.</p>

<p><a
href="ftp://ftp.kernel.org/pub/linux/libs/klibc/klibc.tar.gz">ftp://ftp.kernel.org/pub/linux/libs/klibc/klibc.tar.gz</a></p>

<p>I haven't bothered putting a version number on it, since it changes quite
often.  I have also published the CVS repository in the directory above.</p>

</quote>

<p>Albert D. Cahalan asked if he could link 4-clause BSD code against klibc,
since the 4-clause BSD license was incompatible with the GPL. H. Peter
replied that he was planning to release klibc under a BSD-style license,
either 3-clause BSD, MIT or the X license. Rob Landley asked what was wrong
with the LGPL, and Alexander Viro replied, <quote who="Alexander Viro">klibc
is static-only.  So for all practical purposes LGPL would be every bit as
viral as GPV itself.</quote> Oliver Xymoron replied:</p>

<quote who="Oliver Xymoron">

<p>You say that as if it were a bad thing.</p>

<p>(And technically incorrect, if you also provide .o files so that the end
user can relink as they desire.)</p>

<p>That aside for the moment, isn't the plan to pull stuff that's currently
GPL out of the kernel and link against this lib anyway?</p>

<p>Second point - if it goes into the kernel source tree as suggested, but with
a 'copycenter' license, we can expect to have the nVidia problem but worse.</p>

<p>Making it GPL shouldn't be a big deal. It is intended to be a small amount
of code, after all. And I'd hate to get into a situation where people started
shipping their magic 'make the hardware work' bits as closed replacements
for the early boot code.</p>

</quote>

<p>Alexander replied:</p>

<quote who="Alexander Viro">

<p>I have no problems with people choosing whatever license they prefer
for their work and I have no problems with using GPL when I'm working on
projects that are already under it, but it's not the license I would choose
for my work in cases when I have a choice.</p>

<p>As for the "make the hardware work" code, there's nothing to stop people
from doing that _NOW_.  I'm not too fond of that, but as long as we are
talking about userland code it</p>

<p>

<ul>

<li>will have to use normal system calls</li>

<li>will not have to link against any particular library, no matter what
we provide</li>

<li>will be up to those who write it and those who decide to use it.</li>

</ul>

</p>

<p>We are talking about libc.  _Nothing_ in that code couldn't be reimplemented
by any half-competent programmer.  It's a textbook stuff.  Those who don't
like GPL would be trivially able to reimplement all these functions in their
own code anyway.  End of story.  Whatever license is chosen, it won't prevent
people from putting their code under any license they like.</p>

<p>There is a crucial difference from the situation with nVidia, Veritrash
and the rest of let's-bugger-the-kernel team.  _They_ want more than using
syscalls from user mode - they want an access to guts of the kernel and that's
a very different can of worms.  And _that_ I have problems with.  A lot.
Especially when they expect us to abstain from changes of kernel internals
that might break their junk and when they whine when such changes are done.</p>

<p>People do have a right to put their code under whatever license they
like.  Now, _I_ won't use the stuff I don't have a source for unless I have
exceptionally good reason to believe that authors of that stuff are among the
few percents of programmers who *can* find their arse without outside help.
But that has nothing to do with licensing or any moral considerations and
everything to the fact that I know what kind of crap most of the software
is.</p>

</quote>

</section>

<section
  title="KDB Update"
  subject="Announce: kdb v2.3 i386 updates for kernels 2.4.18 and 2.4.19"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0279.html"
  posts="2"
  startdate="08 Aug 2002 22:52:18 -0800"
  enddate="10 Aug 2002 01:14:33 -0800"
>

<mention>Keith Owens</mention>

<p>Keith Owens announced an <a
href="ftp://oss.sgi.com/projects/kdb/download/v2.3/">update</a> of the kernel
debugger for 2.4.18 and 2.4.19. </p>

</section>

<section
  title="IDE Update"
  subject="[PATCH] 2.5.30 IDE 115"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0320.html"
  posts="7"
  startdate="09 Aug 2002 03:57:07 -0800"
  enddate="13 Aug 2002 05:46:16 -0800"
>
<topic>Disks: IDE</topic>
<topic>Ioctls</topic>

<p>Marcin Dalecki posted an IDE update and announced:</p>

<quote who="Marcin Dalecki">

<p>- Fix small typo introduced in 113, which prevented CD-ROMs from
  working altogether.</p>

<p>- Eliminate block_ioctl(). This code can't be shared in the way
  proposed by this file. We will port it to the proper
  blk_insert_request() soon. This will eliminate the _elv_add_request()
  "layering violation".</p>

<p>- Don't play IRQ wreck havoc in ata_dump().</p>

<p>- Fix delays on seeks in ide-cd.c</p>

<p>- Integrate special_intr() and tcq_nop_intr() in to one single IRQ
  handler. This way we don't have to kmalloc anything for sending a NOP
  to the drive in TCQ.</p>

<p>- Eliminate the usage of the XXX_handler from the ata_taskfile
  structure. Now we always deduce which handler will be needed from
  the command which will be executed. This makes the usage of the
  channel IRQ handler pointer much more cleaner now.</p>

<p>- Don't pass taskfiles through rq->special. Pass them through rq->cmd[]
  as every other block device does or at least should do. This way
  we don't pass pointers to structures on local stack around any more.</p>

<p>- pdc4030 code doesn't have anything to do with the normal taskfile
  stuff.</p>

</quote>

<p>Marcin and Jens Axboe proceeded to argue about various technical details,
and at one point Jens remarked, <quote who="Jens Axboe">I would appreciate it
if you would keep your hands out of the block code.</quote> Marcin replied,
<quote who="Marcin Dalecki">OK. I have enough.</quote> Adam J. Richter
interpreted this exchange as Jens asking Marcin to step down as IDE maintainer,
and Marcin agreeing. He queried both of them privately, and said on-list:</p>

<quote who="Adam J. Richter">

<p>I have confirmed by email with Jens (cc'ed to Martin) that Jens did not
mean that Martin should step down as IDE maintainer or anything like that.</p>

<p>Jens was referring to the generic block code that he maintains (including
elv_add_request and drivers/block/block_ioctl.c, which Martin had submitted
patch for in IDE 115 without consulting with Jens).</p>

<p>Personally, I hope that Martin stays on as IDE maintainer.  Getting IDE to
a maintainable state was a minefield that had to be crossed.  Could someone
else have done with fewer mistakes?  Maybe, but there was plenty of time
for someone else to do it, and nobody stepped up to the plate.  Of course
there is a trade-off point that point is more conservatively set with the
software that controls disk storage, but, in general, I think it's important
to be supportive of those who actually produce.</p>

</quote>

<p>Morten Helgesen hadn't thought the Jens/Marcin exchange was unclear,
but added, <quote who="Morten Helgesen">I agree with you - there`s no point
discussing whether or not someone else would have been able to do what
Martin has done with fewer mistakes - I think we should focus on helping
Martin make 2.5 IDE stable ...</quote></p>

</section>

<section
  title="Maintainer List"
  subject="lk maintainers"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0362.html"
  posts="1"
  startdate="09 Aug 2002 05:36:49 -0800"
>
<topic>Bug Tracking</topic>
<topic>Disk Arrays: RAID</topic>
<topic>Disks: IDE</topic>
<topic>Disks: SCSI</topic>
<topic>FS: NFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: ReiserFS</topic>
<topic>FS: autofs</topic>
<topic>FS: devfs</topic>
<topic>FS: ext2</topic>
<topic>FS: ext3</topic>
<topic>FS: smbfs</topic>
<topic>Framebuffer</topic>
<topic>Hot-Plugging</topic>
<topic>I2O</topic>
<topic>Kernel Build System</topic>
<topic>Networking</topic>
<topic>PCI</topic>
<topic>Real-Time: RTLinux</topic>
<topic>Samba</topic>
<topic>Serial ATA</topic>
<topic>Software Suspend</topic>
<topic>Sound: ALSA</topic>
<topic>Spam</topic>
<topic>USB</topic>
<topic>Virtual Memory</topic>

<mention>Trond Myklebust</mention>
<mention>Arnaldo Carvalho de Melo</mention>
<mention>Alexander Viro</mention>
<mention>Hans Reiser</mention>
<mention>Rik van Riel</mention>
<mention>Linus Torvalds</mention>
<mention>Vojtech Pavlik</mention>
<mention>Geert Uytterhoeven</mention>
<mention>Jeff Garzik</mention>
<mention>Andre Hedrick</mention>
<mention>Greg KH</mention>
<mention>Jaroslav Kysela</mention>
<mention>Anton Altaparmakov</mention>
<mention>Tigran Aivazian</mention>
<mention>Martin J. Bligh</mention>
<mention>Arjan van de Ven</mention>
<mention>Eric S. Raymond</mention>
<mention>Mike Phillips</mention>
<mention>Oleg Drokin</mention>
<mention>H. Peter Anvin</mention>
<mention>Alan Cox</mention>
<mention>Pavel Machek</mention>
<mention>Dave Jones</mention>
<mention>Richard Gooch</mention>
<mention>Andrew Morton</mention>
<mention>Jens Axboe</mention>
<mention>Ingo Molnar</mention>
<mention>Victor Yodaiken</mention>
<mention>James Simmons</mention>
<mention>Tim Waugh</mention>
<mention>Rusty Russell</mention>
<mention>Gerd Knorr</mention>
<mention>Andrea Arcangeli</mention>
<mention>Martin Dalecki</mention>
<mention>David S. Miller</mention>
<mention>Rogier Wolff</mention>
<mention>Urban Widmark</mention>
<mention>Petr Vandrovec</mention>
<mention>Marcelo Tosatti</mention>
<mention>Neil Brown</mention>
<mention>Ralf Baechle</mention>
<mention>Russell King</mention>
<mention>Keith Owens</mention>
<mention>Robert Love</mention>
<mention>Maksim Krasnyanskiy</mention>

<p>Denis Vlasenko posted the kernel maintainers list, saying, <quote who="Denis
Vlasenko">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.  If you want your entry added/updated/removed,
contact me.</quote> The list:</p>

<quote who="Denis Vlasenko">

<p>So, you are new to Linux kernel hacking and want to submit a kernel bug
report or a patch but don't know how to do it and _where_ to report it?
Then save this file for future reference.</p>

<p><i>Preparing bug report:</i></p>

<p>Compile problems: report GCC output and result of "grep '^CONFIG_' .config"
Oops: decode it with ksymoops Unkillable process: Alt-SysRq-T and ksymoops
relevant part Yes it means you should have ksymoops installed and tested,
which is easy to get wrong. I've done that too often.</p>

<p>More info in the FAQ at http://www.tux.org/lkml/</p>

<p><i>Sending bug report/patch:</i></p>

<p>

<ul>

<li>Some device drivers have active developers, try to contact them first.</li>
<li>Otherwise find a subsystem maintainer to which your report pertains
  and send report to his address.</li>
<li>Small fixes and device driver updates are best directed to subsystem
  maintainers and "small bits" integrators.</li>
<li>It never hurts to CC: Linux kernel mailing list, but without specific
  maintainer address in To: field there is high probability that your
  patch won't be noticed. You have been warned.</li>
<li>Do not send it to all addresses at once! This will annoy lots of people
  and isn't useful at all. It's a spam.</li>
<li>Do NOT send small fixes to Linus, he just can't handle _everything_.
  He will eventually receive it from maintainers/integrators, send it
  their way.</li>
<li>If your patch is something big and new, announce it on lkml and try
  to attract testers. After it has been tested and discussed, you can
  expect Linus to consider inclusion in mainline.</li>

</ul>

</p>

<p><i>Current Linux kernel people</i></p>

<p>Note that this list is sorted in reversed date order, most recent
entries first. This means than entries at bottom can be outdated :-(</p>

<pre>Linux kernel mailing list &lt;linux-kernel@vger.kernel.org&gt;
        Post anything related to Linux kernel here, but nothing else :-)

Ingo Molnar &lt;mingo@elte.hu&gt; [30 jul 2002]
        Ingo wrote the new scheduler for 2.5.

Ralf Baechle &lt;ralf@uni-koblenz.de&gt; [30 jul 2002]
        I am maintainer of the AX.25 code

Victor Yodaiken &lt;yodaiken@fsmlabs.com&gt; [30 jul 2002]
        RTLinux patches, updates, contributions, drivers.
        Please send first to the list: rtl@rtlinux.org

Pavel Machek &lt;pavel@ucw.cz&gt; [27 jul 2002]
        I am network block device maintainer. Visit http://nbd.sf.net.
        (see Steven Whitehouse &lt;steve@gw.chygwyn.com&gt; entry)
        I am working on software suspend.

William Irwin &lt;wli@holomorphy.com&gt; [02 jul 2002]
        Send bug reports and/or feature requests related to many tasks,
        rmap, space consumption, or allocators to me. I'm involved in
        * rmap
        * memory allocators
        * reducing space consumed by data structures (e.g. struct page)
        * issues arising in workloads with many tasks
        * kernel janitoring
        See also:
        Rik van Riel &lt;riel@surriel.com&gt;
        Andrea Arcangeli &lt;andrea@suse.de&gt;
        Martin Bligh &lt;Martin.Bligh@us.ibm.com&gt;
        Andrew Morton &lt;akpm@zip.com.au&gt;

Dave Jones &lt;davej@suse.de&gt; [23 apr 2002]
        I collect various bits and pieces for inclusion in 2.5,
        especially small and trivial ones and driver updates.
        I'll feed them to Linus when (and if) they
        are proved to be worthy.

Andre Hedrick &lt;andre@linux-ide.org&gt; [09 apr 2002]
        ATA/ATAPI Storage Architect [2.0,2.2,2.4]
        HBA interface developer
        Serial ATA Architect [future release]
        Voting NCITS member AT-Attachment Committee

Andrea Arcangeli &lt;andrea@suse.de&gt; [28 mar 2002]
        Send VM related bug reports and patches to me.
        I'm especially interested in VM issues with:
        * lots of RAM and CPUs
        * NUMA
        * heavy swap scenarios
        * performance of I/O intensive workloads (in particular
          with lots of async buffer flushing involved)
        See also Martin J. Bligh &lt;Martin.Bligh@us.ibm.com&gt; entry
        Mail also:
        Arjan van de Ven &lt;arjanv@redhat.com&gt;

Martin J. Bligh &lt;Martin.Bligh@us.ibm.com&gt; [28 mar 2002]
        I'm interested in VM issues with lots (>4G for i386)
        of RAM, lots of CPUs, NUMA

Steven Whitehouse &lt;steve@chygwyn.com&gt; [27 mar 2002]
        I am the Linux DECnet network stack maintainer
        Visit http://www.chygwyn.com/decnet/

Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt; [26 mar 2002]
        IPX, 802.2 LLC, NetBEUI, http://kerneljanitors.org,
        cyclom2x sync card driver

John Cagle &lt;jcagle@kernel.org&gt; [19 mar 2002]
        The current maintainer of devices.txt, the list of
        assigned device numbers for LANANA.  Consult the web
        site (www.lanana.org) for instructions on submitting
        requests for new device numbers.  Send all device
        related email to &lt;device@lanana.org&gt;.

Tigran Aivazian &lt;tigran@veritas.com&gt;
        I am author and maintainer of BFS filesystem and IA32
        microcode update driver.

Rogier Wolff &lt;R.E.Wolff@BitWizard.nl&gt; [12 mar 2002]
        I do "specialix serial ports":
        drivers/char/specialix.c (IO8+)
        drivers/char/sx.c        (SX, SI, SIO)
        drivers/char/rio/*.c     (RIO)

Martin Dalecki &lt;martin@dalecki.de&gt; [11 mar 2002]
        IDE subsystem maintainer for 2.5
        (mail Vojtech Pavlik &lt;vojtech@suse.cz&gt; too)

Ed Vance &lt;serial24@macrolink.com&gt; [05 mar 2002]
        Maintainer for the generic serial driver, serial.c,
        for 2.2 and 2.4 kernels.  Please post patches to
        linux-serial@vger.kernel.org for tested bug
        fixes or to add support for a new serial device.
        Limited to time available. If I have not responded
        in a week, yell at serial24@macrolink.com

netfilter/iptables development &lt;netfilter-devel@lists.samba.org&gt; [23 feb 2002]
        Please report all netfilter/iptables related problems
        to this mailinglist, where all netfilter developers are present.
        See also http://www.netfilter.org/contact.html

Hans Reiser &lt;reiser@namesys.com&gt; [16 feb 2002]
        Send me all reiserfs related patches with a cc to
        reiserfs-dev@namesys.com, send bug reports to
        reiserfs-dev@namesys.com, send paid support requests to
        support@namesys.com after going to www.namesys.com/support.html
        to pay, send discussions (not bug reports unless they are
        interesting to most persons) to reiserfs-list@namesys.com.
        If we sit on your patch for a week without responding,
        yell at us, we deserve it.  Look at our web page
        at www.namesys.com for more about sending us code,
        working with us, and our patch submission and tracking system.

Paul Bristow &lt;paul@paulbristow.net&gt; [16 feb 2002]
        I am an ide-floppy driver maintainer
        (ATAPI ZIP, LS-120/240 Superdisk, Clik! drives).

Mike Phillips &lt;phillim2@comcast.net&gt; [15 feb 2002]
        Token ring subsystem and drivers.

Anton Altaparmakov &lt;aia21@cam.ac.uk&gt; [15 feb 2002]
        I am the NTFS guy.

https://bugzilla.redhat.com/bugzilla [14 feb 2002]
        Reports of problems with the Red Hat shipped kernels.

Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt; [14 feb 2002]
        Linux 2.2 maintainer (maintenance fixes only).
        Collator of patches for unmaintained things in 2.2/2.4.
        Maintainer of the 2.4-ac (2.4 plus stuff being tested) tree.
        I2O, sound, 3c501 maintainer for 2.2/2.4.

Robert Love &lt;rml@tech9.net&gt; [14 feb 2002]
        Preemptible kernel is mine.

ALSA development &lt;alsa-devel@alsa-project.org&gt; [12 feb 2002]
Jaroslav Kysela &lt;perex@perex.cz&gt; [12 feb 2002]
        Advanced Linux Sound Architecture
        ALSA patches are available at
        ftp://ftp.alsa-project.org/pub/kernel-patches/*

Neil Brown &lt;neilb@cse.unsw.edu.au&gt; [08 feb 2002]
        I am interested in any issues with the code in:
        NFS server    (fs/nfsd/*)
        software RAID (drivers/md/{md,raid,linear}*)
        or related include files.

Maksim Krasnyanskiy &lt;maxk@qualcomm.com&gt; [08 feb 2002]
        I'm author and maintainer of the Bluetooth subsystem
        and Universal TUN/TAP device driver.
        These days mostly working on Bluetooth stuff.

Rik van Riel &lt;riel@conectiva.com.br&gt; [07 feb 2002]
        Send me VM related stuff, please CC to linux-mm@kvack.org

Geert Uytterhoeven &lt;geert@linux-m68k.org&gt; [07 feb 2002]
        I work on the frame buffer subsystem, the m68k port (Amiga part),
        and the PPC port (CHRP LongTrail part).
        Unfortunately I barely have spare time to really work on these
        things. My job is not Linux-related (so far :-). I can not
        promise anything about my maintainership performance.

H. Peter Anvin &lt;hpa@zytor.com&gt; [07 feb 2002]
        i386 boot and feature code, i386 boot protocol, autofs3,
        compressed iso9660 (but I'll accept all iso9660-related
        changes.)  kernel.org site manager; please contact me
        for sponsorship-related issues.

kernel.org admins &lt;ftpadmin@kernel.org&gt; [07 feb 2002]
        Kernel.org sysadmins.  Contact us if you notice something breaks,
        or if you want a change make sure you give us at least 1-2 weeks.
        Please note that we got a lot of feature requests, a lot of
        which conflict or simply aren't practical; we don't have time to
        respond to all requests.

Greg KH &lt;greg@kroah.com&gt; [07 feb 2002]
        I am USB and PCI Hotplug maintainer.

Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt; [07 feb 2002]
        I am NFS client maintainer.

James Simmons &lt;jsimmons@transvirtual.com&gt; [07 feb 2002]
        Console and framebuffer sybsustems.
        I also play around with the input layer.

Richard Gooch &lt;rgooch@atnf.csiro.au&gt; [07 feb 2002]
        I maintain devfs. I want people to Cc: me when reporting devfs
        problems, since I don't read all messages on linux-kernel.
        Send devfs related patches to me directly, rather than
        bypassing me and sending to Linus/Marcelo/Alan/Dave etc.

Russell King &lt;rmk@arm.linux.org.uk&gt; [06 feb 2002]
        ARM architecture maintainer.  Please send all ARM patches through
        the patch system at http://www.arm.linux.org.uk/developer/patches/
        New serial drivers maintainer for 2.5.  Submit patches to
        rmk+serial@arm.linux.org.uk

Andrew Morton &lt;akpm@zip.com.au&gt; [05 feb 2002]
        I'm receptive to any reproducible bug anywhere in the 2.4 kernel.
        Specialising in ext2, ext3 and network drivers.
        Not thinking about 2.5.x at this time.

Petr Vandrovec &lt;vandrove@vc.cvut.cz&gt; [05 feb 2002]
        ncpfs filesystem, matrox framebuffer driver, problems related
        to VMware - in all of 2.2.x, 2.4.x and 2.5.x.

Reiserfs developers list &lt;reiserfs-dev@namesys.com&gt; [05 feb 2002]
        Send all reiserfs-related stuff here including but not limited to bug
        reports, fixes, suggestions.

Oleg Drokin &lt;green@linuxhacker.ru&gt; [05 feb 2002]
        SA11x0 USB-ethernet and SA11x0 watchdog are mine.

Vojtech Pavlik &lt;vojtech@ucw.cz&gt; [05 feb 2002]
        Feel free to send me bug reports and patches to input device drivers
        (drivers/input/*, drivers/char/joystick/*)
        I also want to receive bug reports and patches for following
        USB drivers: printer, acm, catc, hid*, usbmouse, usbkbd, wacom.
        All other (not in the list) USB driver changes should go to USB
        maintainer (hopefully there is one listed here :-).
        Also CC me if you are posting VIA IDE driver related message
        (although I am not IDE subsystem maintainer).

======= These entries are suggested by lkml folks ========

Ralf Baechle &lt;ralf@gnu.org&gt; [27 mar 2002]
        I am mips/mips64 maintainer.

David S. Miller &lt;davem@redhat.com&gt; [07 feb 2002]
        I am Sparc64 and networking core maintainer.

======= These ones I made myself ========
======= I am waiting confirmation/correction from these people ========

Urban Widmark &lt;urban@teststation.com&gt; [13 feb 2002]
        smbfs

Jeff Garzik &lt;jgarzik@mandrakesoft.com&gt; [12 feb 2002]
        I am the network-card-drivers guy (8139 for instance).
        CC me and Andrew Morton &lt;akpm@zip.com.au&gt; on network driver patches.

video4linux list &lt;video4linux-list@redhat.com&gt; [12 feb 2002]
Gerd Knorr &lt;kraxel@bytesex.org&gt; [12 feb 2002]
        video4linux

Tim Waugh &lt;twaugh@redhat.com&gt; [08 feb 2002]
        > Who is maintaining the linux iomega stuff?
        For 2.4.x, me (in theory). I don't have time for 2.5.x at the moment.

Alexander Viro &lt;viro@math.psu.edu&gt; [5 feb 2002]
        I am NOT a fs subsystem maintainer. But I won't kill
        you if you send me some generic fs bug reports and (hopefully) patches.

Eric S. Raymond &lt;esr@thyrsus.com&gt; [5 feb 2002]
        Send kernel configuration bug reports and suggestions to me.
        Also I'll be more than happy to accept help enties for kernel config
        options (Configure.help).

G?rard Roudier &lt;groudier@free.fr&gt; [5 feb 2002]
        I am SCSI guy.

Jens Axboe &lt;axboe@suse.de&gt; [5 feb 2002]
        I am block device subsystem maintainer.

Keith Owens &lt;kaos@ocs.com.au&gt; [5 feb 2002]
        ksymoops, kbuild, .. .. .. .. .  are mine.

Linus Torvalds &lt;torvalds@transmeta.com&gt; [5 feb 2002]
        Do not send anything to me unless it is for 2.5, well tested,
        discussed on lkml and is used by significant number of people.
        In general it is a bad idea to send me small fixes and driver
        updates, send them to subsystem maintainers and/or
        "small stuff" integrator (currently Dave Jones &lt;davej@suse.de&gt;,
        see his entry). Sorry, I can't do everything.

Marcelo Tosatti &lt;marcelo@conectiva.com.br&gt; [5 feb 2002]
        Do not send anything to me unless it is for 2.4 and well tested.
        If you are sending me small fixes and driver updates, send
        a copy to subsystem maintainers and/or "small stuff" integrators:
        - Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;,
        - Rusty Russell &lt;trivial@rustcorp.com.au&gt;.

Rusty Russell &lt;rusty@rustcorp.com.au&gt; [5 feb 2002]
        > Here are some cleanups of whitespace in .....
        Want me to add this to the trivial patch collection for tracking?
        If so just send (or cc:) it to trivial@rustcorp.com.au.</pre>

</quote>

</section>

<section
  title="New Block Allocator For ReiserFS In 2.4"
  subject="[BK] [PATCH] reiserfs changeset 7 of 7 to include into 2.4 tree"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0367.html"
  posts="11"
  startdate="09 Aug 2002 08:36:39 -0800"
  enddate="12 Aug 2002 12:33:35 -0800"
>
<topic>FS: ReiserFS</topic>

<p>Hans Reiser posted a patch to implement a new block allocator for ReiserFS
in the 2.4 tree. A number of folks were concerned that this should go into 2.5
first, since it wasn't technically a bug fix. Hans replied, <quote who="Hans
Reiser">I understand why all of you are doubtful about it going into 2.4, it
is not that you are crazy, but my closeness to the code makes me think it is
stable enough that it should go in.  Also remember that we have an extensive
test suite, we have been benchmarking variations on this code for months,
and I frankly don't think that 2.5 insertion will get it enough testing
to be instructive to us.</quote> Andrew Morton asked, <quote who="Andrew
Morton">Block allocation algorithms are really, really important.  I'd be
very interested in a description of what this change does, what problems it
is solving, how it solves them, observed results, testing methodology, etc.
Is such a thing available?</quote> Hans replied:</p>

<quote who="Hans Reiser">

<p>The block allocator code is one of the key remaining pieces we would have
fixed before 2.4 shipped if we had had time.  The block allocator code that
shipped is simply ugly.</p>

<p>The block allocation algorithms in ReiserFS were once extremely simple.
They would attempt to allocate a block near to its left neighbor in the
tree ordering, searching for a free block starting from the block number
of that neighbor, and doing the search in increasing block number order.
(Increasing not decreasing block number order was significant to performance
we found.)</p>

<p>The problem with this algorithm occurred when there were no free
blocks anywhere near that neighbor.  It would perform a linear scan of
the bitmaps, and this scan might consume quite a lot of CPU as it checked
each bit.  Additionally, if you cannot get a free block near the neighbor,
then proximity to the neighbor is actually a bad thing to achieve, because
it means proximity to a full part of the disk.</p>

<p>So long ago I suggested that we try attaching a count to the bitmap,
and not bother to scan its bits if that count was not zero.  This new code
does that.</p>

<p>Additionally, Jeff Mahoney wrote code to pick a random bitmap to go to if
the current bitmap was full, and to try to make it a bitmap that is less than
90% full.  This new code does that by default.  (Oleg rewrote Jeff's code,
and I have lost track of what aspects of it are Jeff's vs.  Oleg's.)</p>

<p>However, we also tried a whole bunch of other things, and it looks like
Jeff's/Oleg's code makes those other things not so valuable because those
other things were achieving value by doing what Jeff's/Oleg's code does but
less thoroughly or even as an unintended side effect.</p>

<p>In 2.4 we have code that takes all of the formatted nodes, and tries
to put them into the first 10% of the disk.  This makes me uncomfortable,
because the 10% number is inflexible.  Maybe I am wrong to dislike this.
More experiments are needed, though I may wait for V4.1 to do them.  It also
does things with displacing things according to a hash function, which was a
broken hash function at one time (you could tell that it didn't work the way
that the programmer intended, and that it put things near to the start of the
disk by accident due to directory ids tending to be numerically smaller than
the device size in block numbers).  I can't remember if that hash function has
been fixed in the 2.4.19 code tree or if it is only fixed in our new patch.</p>

<p>We experimented with dispersing directories randomly across this disk.</p>

<p>We experimented with randomly displacing files large enough to have
unformatted nodes (option in new allocator allows you to displace files
larger than some arbitrary size).</p>

<p>In the end I decided that the improved bitmap scanning code plus the
avoidance of 90% full bitmaps when nothing near is free plus starting from
the left neighbor was close to as good as any other combination, and had
the advantage of being simpler, so I made it the default, because I trust
more in the robustness of simpler algorithms that I understand more fully.</p>

<p>The default code path is either far simpler than the current code,
or clearly superior, depending on what part of it one considers.  I do not
claim that I have found the right answer, but I have probably found the best
that I will invent for V3.</p>

<p>Almost everything that we at Namesys are going to change in V3 is written
and going into the next several 2.4.20-pre* releases.  The only thing that
I know of that remains and is unwritten is to perhaps revert to the tail
conversion policy used in Linux 2.2.* (the current code is very inefficient
in its tail handling, and one of us thinks it might speed up if we go back
to the old way, and I'd be interested to see a benchmark of it.)  We would
probably like to also junk the 4k at a time read code, but most likely that
will be done in V4 (Linux 2.5/2.6) not V3.</p>

<p>V3 will probably change very little after 2.4.20, and that is what our
users need in the period while V4 stabilizes   ---  they need something that
always just works albeit not as fast as V4.</p>

</quote>

</section>

<section
  title="Multimedia Card Support In 2.4"
  subject="new driver: multimedia card (mmc) framework, patch against 2.4.19"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0421.html"
  posts="2"
  startdate="09 Aug 2002 12:24:15 -0800"
  enddate="10 Aug 2002 22:47:40 -0800"
>

<p>James Hicks posted a patch and announced:</p>

<quote who="James Hicks">

<p>This patch implements the core framework for Multimedia Cards (MMC).
It has been tested with iPAQ H3800 handhelds with MMC storage cards.</p>

<p>At the moment, access to the information required to write a driver for
SD or SDIO requires signing and NDA that precludes the release of an open
source driver, so only MMC is supported at this time.</p>

</quote>

<p>Garst R. Reese remarked, <quote who="Garst R. Reese">I am currently using
an MMC card via usb with a SanDisk SDDR-33 reader.  I can use either MMC
cards or SD cards using the sddr09 driver in usb/storage. All I had to do
was mount -t msdos /dev/sda1 /mnt. But your post sent me scurrying through
that code and I looked at unusual_devs.h and noticed that sddr-33 was not
mentioned, but sddr-31, -09 etc were.  I'd love to have an MMC slot in place
of my floppy drive.</quote> There was no reply.</p>

</section>

<section
  title="USB Update To New Driver Model"
  subject="[RFC] USB driver conversion to use &quot;struct device_driver&quot;"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0458.html"
  posts="9"
  startdate="09 Aug 2002 16:10:05 -0800"
  enddate="12 Aug 2002 15:36:51 -0800"
>
<topic>FS: driverfs</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Greg KH posted a patch and announced:</p>

<quote who="Greg KH">

<p>Here's a patch against 2.5.30 that is the start of converting the USB code
over to using the new core "struct device_driver" logic and functionality.
Right now only the HUB and HID drivers are converted, and so they are the
only ones that will work properly (the others will compile, but no devices
are ever bound to them.)</p>

<p>The code is still quite rough in places, but the baic functions seem to
work well (driver callbacks, etc.)  There is some odd USB specific tweaks
that were needed to be done in order to get this working properly.</p>

<p>The USB subsystem only binds drivers to USB "interfaces".  A USB device
may have many "interfaces", so a single device may have many drivers attached
to it, handling different portions of it (think of a USB speaker, which has a
audio driver for the audio stream, and a HID driver for the speaker buttons.)
Because of this I had to create a "empty" device driver that I attach to the
USB device structure.  This ensures it shows up properly in the driverfs tree,
and that no USB drivers try to bind to it.</p>

<p>Also, the driverfs representation of the USB devices has changed, possibly
for the worse.  Just try the patch to see what I mean :)</p>

<p>There is a known bug that happens in put_device() when a USB device is
removed from the system, but the proper person already knows about it.</p>

<p>Comments?</p>

<p>If I don't hear any objections, I'll work on converting all of the USB
drivers over to this model (the probe and disconnect function parameters
have changed) and send the patch to Linus.</p>

<p>Many thanks to Pat Mochel for the original version of this patch (way
back against 2.5.15) and for putting up with all of the USB device /
interface madness.</p>

</quote>

<p>Elsewhere, under the Subject: <a href="">[BK PATCH] USB changes for
2.5.31</a>, he posted a new update, saying:</p>

<quote who="Greg KH">

<p>  This patch against 2.5.31 fixes some problems in the konicawc driver</p>

<p>

<ul>

<li>add new video mode 160x120</li>
<li>add konicawc_camera_on/off()</li>
<li>initially send out URBs in status,data order</li>
<li>fix konicawc_isoc_irq to always resubmit status then data URBs</li>
<li>tidy up debug messages</li>
<li>make konicawc_compress_iso look for frame start on initial image</li>

</ul>

</p>

</quote>

</section>

<section
  title="IDE Comparison Between 2.4 And 2.5"
  subject="what's the difference between 2.4-IDE and 2.5-IDE in ATA ?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0540.html"
  posts="2"
  startdate="10 Aug 2002 05:40:11 -0800"
  enddate="10 Aug 2002 06:53:37 -0800"
>
<topic>Disks: IDE</topic>

<mention>Dave Jones</mention>

<p>Stephane Wirtel asked what the difference was between the 2.4 and 2.5 IDE
code. Ed Tomlinson replied:</p>

<quote who="Ed Tomlinson">

<p>2.4 IDE was (re)written on top of the old ide code by Andre Hendrik.
Seems that Andre, who it seems does really understand IDE and its quirks,
can be a pain to work with...  In early 2.5.x Linus started taking patches
from Marcin (or Martin) Dalecki.  Since then, with over a 115 patches,
Marcin has proceeded to rewrite the IDE code.  This has tended to make IDE a
bit unstable in 2.5.   About 2.5.26ish Jens Axobe got tired of the 2.5 ide
problems and ported 2.4 ide to 2.5.  This change was picked up in the Dave
Jones series of kernels - it allows other pieces of the kernel to be tested
while Marcin works towards a cleaner IDE.</p>

<p>IDE 2.5 is stable for some but not for others (like me) depending on it
is iffy - have backups.  If you do not want to test 2.5 IDE use -dj (Dave
is a bit behind Linus now due to other work and a much needed vacation)</p>

</quote>

</section>

<section
  title="Alpha Updates For 2.5"
  subject="[patch 2.5.30] alpha: pte/pfn/page/tlb macros update [1/10]"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0546.html"
  posts="8"
  startdate="10 Aug 2002 07:23:44 -0800"
  enddate="10 Aug 2002 07:35:28 -0800"
>
<topic>Assembly</topic>
<topic>Forward Port</topic>
<topic>Real-Time</topic>
<topic>SMP</topic>

<p>Ivan Kokshaysky posted a large set of Alpha updates that had been building
up since around the 2.5.18 time frame. He listed the changes (grouped here
from multiple emails):</p>

<quote who="Ivan Kokshaysky">

<p>

<ul>

<li>sync up with (2.5.18?) pte/pfn/page/tlb etc. macros;</li>

<li>asm-generic/tlb.h: loading unsigned long constant to unsigned int
  tlb-&gt;nr causes compiler warnings on 64 bit platforms.</li>

<li>send_ipi_message() fix from Jeff Wiedemeier:
  The 2.5.30 IPI algorithm (with the to_whom == set test) incorrectly sends IPI
  messages to CPU 0 in a SMP system running with one processor. In this case
  to_whom is often 0 (cpu_present_mask &amp; ~1UL &lt;&lt; smp_processor_id())
  which ends up triggering the to_whom == set case.</li>

<li>migration IPI removed;</li>

<li>Hardware cpu_id to logical cpu mapping is gone.
  Converted to cpu_online() etc.</li>

<li>Historically, assembly routines included libc header &lt;alpha/regdef.h&gt;
  for OSF/1 register names. With the new kernel build system it doesn't work
  anymore. Make our own copy in &lt;include/asm&gt;.</li>

<li>From Jay Estabrook:
  CIA rev 1 can't use DAC and windows 1,2 for SG.</li>

<li>cli, sti an so on go away;</li>

<li>irq_smp.c goes to /dev/null; the only leftover (synchronize_irq)
  moved to irq.c;</li>

<li>hardirq count field in the preemption counter extended to 12 bits -
  one more than required for wildfire.</li>

<li>Generic per-cpu areas; wrappers for SMP boot process.</li>

<li>osf_getrusage() updated for new utime/stime fields of the task_struct;</li>

<li>compatibility wrappers for OSF/1 v4 readv/writev syscalls:
  forward port from 2.4.19.</li>

<li>pcibios_init() must be int;</li>

<li>fls() - ctlz on ev67, generic on others. This was required for
  something several kernel releases back, now it seems to be unused.  Anyway,
  it shouldn't hurt, so included here.</li>

<li>missing #includes, missing #if RTC_IRQ in drivers/char/rtc.c;</li>

<li>define USER_HZ;</li>

<li>From Jeff Wiedemeier: rename alpha-specific config section 'General setup'
to 'System setup'
  to avoid confusion with generic 'General setup';</li>

<li>From Jeff Wiedemeier: fix the 'bootpfile' build.</li>

<li>__down_[read,write]_trylock, __downgrade_write implemented;</li>

<li>__builtin_expect replaced with unlikely().</li>

</ul>

</p>

</quote>

</section>

<section
  title="Linux 2.5.31"
  subject="Linux 2.5.31"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0613.html"
  posts="12"
  startdate="10 Aug 2002 18:04:26 -0800"
  enddate="13 Aug 2002 06:09:22 -0800"
>
<topic>FS: JFS</topic>
<topic>FS: NTFS</topic>
<topic>FS: driverfs</topic>
<topic>Kernel Release Announcement</topic>
<topic>Networking</topic>
<topic>USB</topic>

<p>Linus Torvalds announced 2.5.31:</p>

<quote who="Linus Torvalds">

<p>Hmm. I've switched home machines this week, and people have been reasonably
busy, so there is most likely a lot of dropped stuff.</p>

<p>There's a lot of merged stuff too, including various architectures getting
up to speed with all the big changes (tlb and irq etc, and rmk is apparently
trying to shrink his arm patch).  Sparc64, alpha, ppc32, ARM..</p>

<p>The series of patches from Al Viro should fix a semaphore deadlock when
partition reading was triggered while a new device was opened, and lay the
groundwork for more disk description cleanups.</p>

<p>NTFS, JFS, driverfs and networking updates. USB, ISDN and network driver
updates, partial merge with akpm (you've seen the discussions about some
of the stuff dropped) etc. And let's see how much fallout there is from the
30-bit pids etc.</p>

</quote>

<p>Here is the <a
href="http://www.kernel.org/pub/linux/kernel/v2.5/ChangeLog-2.5.31">ChangeLog</a>.</p>

</section>

<section
  title="uClinux Update Against 2.5.31"
  subject="[PATCH]: linux-2.5.31uc0 MMU-less patches"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0703.html"
  posts="1"
  startdate="11 Aug 2002 07:41:22 -0800"
>

<p>Greg Ungerer announced:</p>

<quote who="Greg Ungerer">

<p>I have put the latest uClinux (MMU-less) patches at:</p>

<p><a
href="http://www.uclinux.org/pub/uClinux/uClinux-2.5.x/linux-2.5.31uc0.patch.gz">http://www.uclinux.org/pub/uClinux/uClinux-2.5.x/linux-2.5.31uc0.patch.gz</a></p>

<p>Nothing much new, just updated against 2.5.31.</p>

</quote>

</section>

<section
  title="VM Regress: Benchmarking The VM Subsystem"
  subject="[ANNOUNCE] VM Regress - A VM regression and test tool"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0746.html"
  posts="9"
  startdate="11 Aug 2002 12:17:01 -0800"
  enddate="12 Aug 2002 23:43:26 -0800"
>
<topic>User-Mode Linux</topic>
<topic>Virtual Memory</topic>

<p>Mel Gorman announced:</p>

<quote who="Mel Gorman">

<p>Project page: <a
href="http://www.csn.ul.ie/~mel/projects/vmregress/">http://www.csn.ul.ie/~mel/projects/vmregress/</a><br />
Download: <a
href="http://www.csn.ul.ie/~mel/projects/vmregress/vmregress-0.4.tar.gz">http://www.csn.ul.ie/~mel/projects/vmregress/vmregress-0.4.tar.gz</a></p>

<p>This is the first public release of VM Regress v0.4 (BumbleBee). It
is the beginnings of a regression, benchmarking and test tool for the
Linux VM.  The web page has an introduction and the project itself has
quiet comprehensive documentation and commentary so I am not going to go
into heavy detail here.</p>

<p>There appears to be frequent trouble reliably testing the VM and comparing
the impact (beneficial or otherwise) of VM features. As best as I can tell,
there is heavy reliance on stress testing or intuitive decisions made by
individual kernel developers to prove a VM is working or that is is better
than another implementation. This tool eventually will be able to provide
empirical data on VM performance as well as acting as a regression tool to
make sure changes don't break anything.</p>

<p>It works by using kernel modules to get a definite view of what the kernel
is at and to provide reliable, reproducible tests. Modules are divided
up into 4 catagories. Core modules provide infrastructure for the tool.
Sense modules tell what is going on in the VM. Test tests particular features
and bench modules (none yet) will benchmark different sections of the VM.</p>

<p>The aim is to eventually eliminate guesswork in development. The tool will
be able to tell for definite if a feature works. If it does work, it will be
able to tell how well or poorly the feature performed. This will hopefully
replace ad-hoc shell script tests and provide concrete performance data any
developer can reliably produce and use as proof of "Feature X is better"</p>

<p>The interface to the tests are via proc at /proc/vmregress. Help is
provided for most of them by cat'ing the entries after module load. The
README and manual are very comprehensive and each c file has a detailed
description at the top so I'm not going to go into heavy detail in this
mail. The README includes a sample set of tests to illustrate how the tool
can be used to provide useful information about performance.</p>

<p>This was developed against 2.4.18 and 2.4.19 but will compile with 2.5.30
and takes into account the existence of rmap (will compile and work with
or without rmap). Bear in mind the tool is far for complete and I'm just
looking for feedback on the viability and usefulness (or the lack thereof)
of this tool. Consequently, it doesn't do much. Currently it</p>

<p>

<ul>

<li>Provides infrastructure such as proc helper functions, page table walk
functions and so on</li>

<li>Provides tests for the /proc interface to ensure it works</li>

<li>Prints out the sizeof() VM related structs and prints out the memory
usage</li>

<li>Prints out information on all zones in the system</li>

<li>Tests physical page allocation/free functions with either GFP_ATOMIC or
GFP_KERNEL flags</li>

<li>Tests page faulting routines</li>

</ul>

</p>

<p>This has been tested heavily with UML 2.4.18 and with a dual PII350 running
2.4.19 . It is known to compile with 2.5.30 but I haven't done any 2.5 testing
yet due to the lack of a crash box. It will work with or without rmap as
the tool was written with it (as well as every other VM feature) in mind.</p>

</quote>

<p>Bernd Eckenfels replied:</p>

<quote who="Bernd Eckenfels">

<p>This sounds more like a micro benchmark tool, which is a good start,
but the real problem with VM optimizations is, that they have to take into
account real world load and especially user experience.</p>

<p>A simple example is the fact, that an idle desktop box will feel very
sluggy if a user comes back after a few hours break, because all visible
programs are paged out. To improve this, one could think about adding a flag
to applications like "connected to gui". This feature would need a test then,
which is no usual micro benchmark.</p>

<p>So I think it is a good idea to avoid to introduce slow operations in
hot code path, but it does not help much the developers in the problem of
simulating workload and measuring the interactive and real throughput.</p>

<p>But perhaps you can take this into account?</p>

</quote>

<p>Mel agreed that VM Regress was indeed a micro benchmark tool, and was
intended to be so. He explained that VM Regress was intended to benchmark
individual parts of the VM subsystem, not the computer as a whole. He
went on:</p>

<quote who="Mel Gorman">

<p>I am more interested in answering questions like</p>

<p>

<ul>

<li>Does subsystem X still work after changes made to it?</li>

<li>How well does subsystem X perform?</li>

<li>How long does it take to find pages to swap out?</li>

<li>How much overhead is introduced by feature Y?</li>

<li>What does my process space look like after vmscan does it's work?</li>

</ul>

</p>

<p>For example, in time, it'll be able to tell exactly how well rmap is
performing and compare it to a VM without rmap in terms of "how long it took
to find a page to replace" and "what did the address space look like after
kswapd worked". I should be able to show that rmap kept the correct pages in
memory for instance where as an overall benchmarking tool is going to tell
me nothing new. Used in combination with a profiling tool like oprofile,
I should be able to get very specific performance data that I suspect will
be useful to developers and to a much lesser extent, users.</p>

<p>I am making a persumption that if it can be shown that each individual
component is working and performs well, then overall performance should
improve.</p>

</quote>

<p>There was no reply to this, but close by, Daniel Phillips also replied to
Bernd:</p>

<quote who="Daniel Phillips">

<p>We get too hung up on 'real world' world loads, that is not a productive
way VM developers to spend their time.  Developers need to use tests
that focus on very specific aspects of VM performance.  Yes, this testing
should be backed up by 'real world' tests to confirm what the VM developer
thinks, that improved performance on a subsystem translates into improved
overall performance, and to keep a watch out for unexpected or undesirable
interactions.  That's called a 'reality tests'.</p>

<p>If you want to help with 'interactive performance', i.e., user experience,
then *quantify what contributes to that* and write a micro-measurement tool
that measures such things.  E.g, latency of response to keyboard events
under load.  It's not rocket science, it just takes time and effort to set
this kind of thing up so it's accurate and predictive.</p>

<p>It's an incredible waste of developer's time to be running 'reality tests'
all the time, and never using more precise measurement methods.  Anyone who
wants to run reality tests and post the results is more than welcome to, and
this is valuable.  It's not valuable to throw mud at a testing/measurement
tool because you think it's not 'realistic'.</p>

</quote>

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

<quote who="Rik van Riel">

<p>The thing is that developers need some benchmarking thing
they can script to run overnight.  Watching vmstat for
hours on end is not a useful way of spending development
time.</p>

<p>On the other hand, if somebody could code up some scriptable
benchmarks that approximate real workloads better than the
current benchmarks do, I'd certainly appreciate it.</p>

<p>For web serving, for example, I wouldn't mind a benchmark that:</p>

<p>

<ol>
<li>simulates a number of users, that:</li>
<ol>
  <li>load a page with 10 to 20 associated images</li>
  <li>sleep for a random time between 3 and 60 seconds,
        "reading the page"</li>
  <li>follow a link and grab another page with N images</li>
</ol>
<li>varies the number of users from 1 to N</li>
<li>measures</li>
<ol>
  <li>the server's response time until it starts
        answering the request</li>
  <li>the time it takes to download each full page</li>
</ol>
</ol>

</p>

<p>Then we can plot both kinds of response time against the number of users
and we have an idea of the web serving performance of a particular system
... without focussing on, or even measuring, the unrealistic "servers N
pages per minute" number.</p>

</quote>

<p>Mel reiterated that this was not the purpose of VM Regress, and added:</p>

<quote who="Mel Gorman">

<p>In VM Regress land, I would be much more likely to provide a benchmark
that did something like the folllowing. (Remember that VM Regress aims to
provide more than been a pure benchmarking tool. Benchmarking is just one
aspect)</p>

<p>

<ol>
<li>Memory map with MAP_SHARED a number of regions</li>
<ol>
  <li>Each region is 512 pages large (2MB on a x86)</li>
  <li>Create a number of regions until a percentage of memoryt is used
       that would hit the various watermarks of the zones</li>
</ol>
<li>Over 1 hour do, reference regions with a gaussion pattern to simulate
   popular pages and images</li>
<li>At the end, give the best, worst and average time to read a region.
   Print out what regions are still resident in memory and compare that to
   the references. Regions referenced often should still be in memory and 
   dead regions should be in swap</li>
<li>Repeat the test altering the following parameters</li>
<ul>
  <li>The percentage of physical memory consumed to see what gets swapped out</li>
  <li>Simulate disk buffer usage instead of mmap'ing regions</li>
</ul>
</ol>

</p>

<p>With a low percentage of physical memory used, there shouldn't be anything
too interesting happening because cache should be doing most of the work.
With more regions, it should be noted how the VM holds up, how well it
selects regions to swap out and how long it takes to find the proper pages
and so on.</p>

<p>This type of benchmark is far away but I already do most of this work with
the fault.o module. I memory map a region of which the size is related to
the amount of physical memory (more accuratly it's related to the zone
watermarks for the zone known to be affected by the test) and touch every
page in the region. For n passes, I check if each page is present, if it's
swapped out, I touch it to swap it back in. I then print out how many
pages were swapped in, how many pages are physically present in the region
and how long that pass took in milliseconds.</p>

<p>That is most of the work there so this isn't quiet vapourware, more a
really dense fog. I just need a few more bits and pieces such as printing
graphs of present pages vs references and meaningful data is easily
accessible</p>

</quote>

</section>

<section
  title="Submitting Patches To trivial@rustcorp.com.au"
  subject="Trivial Patch Policy (trivial@rustcorp.com.au)"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/0857.html"
  posts="3"
  startdate="11 Aug 2002 23:07:05 -0800"
  enddate="13 Aug 2002 19:56:02 -0800"
>

<p>Rusty Russell said:</p>

<quote who="Rusty Russell">

<p>I've been collecting trivial patches for a few months now, and
it's time to solidify some rules:</p>

<p>

<ol>

<li>

<p>Trivial patches must qualify for one of the following to be
   accepted:</p>

<p><ol>
  <li>Spelling fixes (useful for grep, and sets a good example)</li>
  <li>Warning fixes (cluttering with useless warnings is bad)</li>
  <li>Compilation fixes (only if they are actually correct)</li>
  <li>Runtime fixes (only if they actually fix things)</li>
  <li>Removing use of deprecated functions/macros (eg. check_region).</li>
  <li>Contact detail and documentation fixes</li>
  <li>Non-portable code replaced by portable code
      (even in arch-specific, since people copy, as long as it's trivial)</li>
  <li>Any fix by the author/maintainer of the file.
           (ie. patch monkey in re-transmission mode)</li>
</ol></p>

<p>   They must also be "trivial" by my definition of trivial.  Best   
   patches contain enough context for me to judge without opening the
   file (diff -C&lt;nn&gt; -u is your friend).</p>

<p>   NOTE: This means I'll only take whitespace/indentation fixes from
   the author or maintainer.</p>

</li>

<li>The patch will not be forwarded to anyone until a new kernel has
   been released after I receive the patch, *unless* noone else is
   sent the patch.  So if you cc: the trivial patch monkey, it'll only
   be forwarded from there if it doesn't make the next kernel.</li>

<li>The first time the patch is forwarded, it will be sent to the
   author and/or maintainer.  If they say they've included it in their
   tree, no more forwards will occur (modulo some timeout eventually).
   If they NAK it, the patch will be closed.  Otherwise, the patch
   will be sent directly to Linus or Marcelo on future forwards (the
   maintainer will still be cc'd).</li>

</ol>

</p>

<p>Hopefully this will be a good compromise between coordinating with
maintainers who want control of their files, and stopping trivial
patches from slipping through the cracks.</p>

</quote>

<p>Dave Jones had a few questions. He asked about point 2:</p>

<quote who="Dave Jones">

<p>What happens in this case..</p>

<p>person a sends the monkey a patch.<br />
person b replies to l-k (cc'ing monkey) with a "no do it this way" ?</p>

<p>do you have a hand-operated means to say "this patch supercedes the
previous" ?</p>

</quote>

<p>Rusty replied, <quote who="Rusty Russell">Yes, I close the old patch,
and add the new one.  Low-tech, I know 8).  The original person will
get a one-liner on why the patch was closed (like, "obsoleted by new
patch").</quote></p>

<p>In his same post, Dave also asked about point 3:</p>

<quote who="Dave Jones">

<p>What would be *really* good, for the case where retransmits are necessary,
if Alan hasn't picked it up for 2.4 (or me for 2.5), you could add us to
the relevant Cc's, (and remove after Alan/Myself takes it).</p>

<p>This could however get tricky, as the same patch may need a bit of
hand-merging to fit against -ac/-dj.</p>

<p>Maybe just simpler to remove us when Alan/I send an ACK ?</p>

</quote>

<p>Rusty thought it wasn't worth the effort, and pointed out that it also added
a "multiple paths to Linus" problem. As far as patches requiring massage in
order to fit into -ac or -dj, Rusty said, <quote who="Rusty Russell">That's
something I've simply refused to get into: patches either apply or they don't.
With about 40 patches a week and other responsibilities, I rely on the author
seeing that something broke and retransmitting.</quote></p>

</section>

<section
  title="JFS 1.0.21 Available"
  subject="[ANNOUNCE]  Journaled File System (JFS)  release 1.0.21"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1026.html"
  posts="1"
  startdate="12 Aug 2002 10:45:23 -0800"
>
<topic>Disk Arrays: EVMS</topic>
<topic>FS: JFS</topic>

<mention>Christoph Hellwig</mention>

<p>Steve Best announced:</p>

<quote who="Steve Best">

<p>Release 1.0.21 of JFS was made available today.</p>

<p>Drop 59 on August 12, 2002 (jfs-2.4-1.0.21.tar.gz
and jfsutils-1.0.21.tar.gz) includes fixes to the file
system and utilities.</p>

<p>The new feature in this release is the capability to resize
the file system.</p>

<p>Utilities changes</p>

<p>

<ul>

<li>add external log support to xpeek</li>
<li>fix fsck.jfs to update log device number in superblock after
  logredo with external log.</li>
<li>fix typo in mkfs.jfs Emergency help. (Bas)  </li>
<li>do not build currently unused defrag, extendfs utilities</li>
<li>eliminate uuid redefinition compiler warnings</li>
<li>add logsuper functions to libfs</li>
<li>fix printf format specifiers.  (Christoph Hellwig)</li>
<li>code cleanup (all)</li>
<li>update JFS FSIM for EVMS - see <a
href="http://sourceforge.net/projects/evms/">http://sourceforge.net/projects/evms/</a></li>

</ul>

</p>

<p>File System changes</p>

<p>

<ul>

<li>define sb_bread for kernels older than 2.4.18</li>
<li>C99-style initializers (Christoph Hellwig)</li>
<li>Add resize function to JFS
   This is invoked by mount -oremount,resize=&lt;blocks&gt;
   See Documentation/filesystems/jfs.txt for more information.</li>
<li>Remove d_delete calls from jfs_rmdir &amp; jfs_unlink</li>
<li>Dynamically allocate metapage structures
   Use slab cache and pool of reserved structures to manage the metapage
   structures. This is set up similar to the mempool routines in the
   2.5 kernel. Previously a fixed number of these structures were
   preallocated. This did not scale well.</li>
<li>Rework JFS's inode locking</li>

</ul>

</p>

<p>For more details about JFS, please see the patch instructions or
changelog.jfs files.</p>

</quote>

</section>

<section
  title="Linux 2.4.20-pre2"
  subject="Linux 2.4.20-pre2"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1078.html"
  posts="5"
  startdate="12 Aug 2002 14:45:18 -0800"
  enddate="13 Aug 2002 07:04:16 -0800"
>

<mention>Mel Gorman</mention>
<mention>Marcelo Tosatti</mention>

<p>Marcelo Tosatti announced 2.4.20-pre2, and Mel Gorman sent him a patch
containing <a href="http://www.csn.ul.ie/~mel/projects/vm/">documentation
and comments</a>. Elsewhere, Bhavesh P. Davda said:</p>

<quote who="Bhavesh P. Davda">

<p>For the Nth time, here again is the patch for fixing the scheduler for
correct SCHED_FIFO and SCHED_RR behaviour.</p>

<p>I waited to see it in 2.4.20-pre1, not there, 2.4.20-pre2, not there...</p>

<p>Please apply it in 2.4.20-pre3</p>

</quote>

</section>

<section
  title="qla2xxx Driver Update"
  subject="[ANNOUNCE] QLogic FC Driver for Linux 6.01b4 Released."
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1079.html"
  posts="1"
  startdate="12 Aug 2002 15:33:35 -0800"
>
<topic>Disks: SCSI</topic>
<topic>Forward Port</topic>
<topic>Networking</topic>

<mention>Arjan van de Ven</mention>

<p>Andrew Vasquez said:</p>

<quote who="Andrew Vasquez">

<p>QLogic is pleased to announce the 6.01b4 release of its qla2xxx driver for
ISP2100/ISP22xx/ISP23xx chips and HBAs.</p>

<p>Major improvements from the 5.3x driver series include:</p>

<p>

<ul>

<li>Robust and stable failover implementation</li>
<li>Fast-path cleanup</li>
<li>Support for the new error-handling routines</li>
<li>Report-luns scan</li>
<li>ISP2342 support</li>
<li>IP via FC support (RFC 2625)</li>
<li>ISP2100 support.</li>
<li>64bit DMA addressing</li>
<li>Remove virt_to_bus/kmalloc --> pci_* routines</li>
<li>Memory mapped I/O support</li>
<li>General code-sanitizing</li>
<ul>
    <li>locking structures</li>
    <li>queue structures</li>
    <li>extraneous NOP *LOCK/UNLOCK macros</li>
    <li>remove old EH routines</li>
    <li>remove serial console routines</li>
</ul>
</ul>

</p>

<p>The 6.xx series driver supports kernels 2.4.x and above ONLY, and contains
most of Arjan van de Ven's (Redhat) changes made to the 5.31 driver.</p>

<p>A side note regarding ISP2100 support: QLogic has formally retired the
QLA2100 card and will *not* provide technical support for these chips and HBAs.
The initial 6.xx series drivers were stripped of ISP2100 card recognition.
The current ISP2100 support was forward-ported from 5.3x.  From an engineering
standpoint, any patches or fixes for the ISP2100 will be considered.</p>

<p>The driver distribution can be downloaded at:</p>

<p><a
href="http://download.qlogic.com/drivers/5537/qla2x00-v6.1b4-dist.tgz">http://download.qlogic.com/drivers/5537/qla2x00-v6.1b4-dist.tgz</a></p>

<p>The distribution contains three main components:</p>

<p>        qla2x00src-vX.YY.tgz    -- The FC/SCSI driver<br />
        qla2xipsrc-vM.NN.tgz    -- The IP network driver<br />
        qlapi-P.QQ-rel.tgz      -- The SNIA API library</p>


<p>Changes since 6.01b2 distribution:</p>

<p>  QLA2X00:</p>

<p>

<ul>

<li>Remove qla_dbg.h and qla_def.h files from driver
          distribution.</li>
<li>Remove all virt_to_* calls in both SCSI/IP driver sources.</li>
<ul>
  <li>64bit DMA addressing through dma_addr_t.</li>
</ul>
<li>Cleanup structure names/member variables from IP sources.</li>
<li>Add QL_DEBUG_LEVEL_12 for IP debugging.</li>
<li>Add transmission timeout callback for IP driver.</li>
<li>Enable SRAM, Instruction RAM and GP RAM parity checks on
          ISP2300s.</li>
<li>Display all luns recognized by driver in /proc, not just
          SCSI mid-layer scanned luns.  Luns not scanned by the mid-
          layer are marked with an asterisk (*).</li>
<ul>
  <li>Add FC_SUPPORT_RPT_LUNS flag to the struct fc_port.flags.
            Set, if the device supported the report luns command.</li>
</ul>
<li>Increase Inquiry request buffer to 36 rather than 4.  Some
          target devices have problems with the small transfer.</li>
<li>Fix assignment of current_speed during an asyncronous event
          MBA_LOOP_UP.  Improper connection speed was being reported
          to EXIOCTs and IP driver.</li>
<li>Add ISP2100 support:</li>
<ul>
  <li>QLogic provides no support for the ISP2100.</li>
  <li>compiled binary name qla2100.o.</li>
  <li>Forward-port chip support from 5.[2|3]x series driver.</li>
  <li>Update Makefile.kernel and Config.in.</li>
  <li>add new 2100 TP firmware (1.19.24).</li>
</ul>
<li>Fix copy-error in qla2x00_fo_get_params() where the
          qla_fo_params notification CDB would be zero'd-out.</li>
<li>Fix kernel-oops when DEBUG level 5 is enabled and a command
          is sent to a non-existent lun.</li>
<li>Fix in-kernel compilation problem (Veritas).</li>
<li>Remove superfluous KMALLOC*/KMFREE/BZERO/BCOPY/
          BCMP/qla_bcopy defines and functions.</li>
<li>Remove unused ql_list_link structures and functions.</li>
<li>Consistent use of copy_to/from_user() functions (RH).</li>
<li>Consistent use of scsi_qla_host_t instead of
          several aliases (RH).</li>
<li>Remove illegal usage of caddr_t (RH).</li>
<li>Remove Target-Mode support from driver.</li>
<li>Cleanup qla_fo.c file:</li>
<ul>
  <li>Remove old debugging code.</li>
  <li>General sanitizing.</li>
</ul>
<li>Cleanup compiler warnings during debug builds.</li>
<li>Add new 2300 IP/TP firmware (3.01.13).</li>

</ul>

</p>

<p>  QLA2XIP:</p>

<p>

<ul>

<li>Requires v6.01b4 SCSI driver.</li>
<li>Add completion status to send and receive control buffers.</li>
<li>Add support for specifying the MTU (mtu) and Receive
          buffers count (buffers) on the modules command line.</li>
<li>Add NETIF_F_HIGHDMA to the device feature flags if 64bit
          DMA addressing possible.</li>
<li>Add tx_timeout() implementation.</li>
<li>Add display of link connection speed during initialization.</li>
<li>Fix race in qla2xip_free_send_cb().</li>
<li>Remove all virt_to_* calls in driver sources.</li>
<ul>
  <li>64bit DMA addressing through dma_addr_t.</li>
</ul>
<li>Use system-defined structures for network/ethernet
          support.</li>
<ul>
  <li>Use hton/ntoh functions.</li>
</ul>
<li>Cleanup structure names/member variables.</li>

</ul>

</p>

</quote>

</section>

<section
  title="XFS Split Patches For 2.4"
  subject="Announce: XFS split patches for 2.4.19 - respin"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1111.html"
  posts="1"
  startdate="12 Aug 2002 19:04:25 -0800"
>
<topic>Access Control Lists</topic>
<topic>FS: XFS</topic>
<topic>Kernel Build System</topic>

<p>Keith Owens announced:</p>

<quote who="Keith Owens">

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

<p>The xfs patches for 2.4.19 have been respun as of 2002-08-13 01:22 UTC.
This includes kdb v2.3 2.4.19 common-2, i386-3 plus some recent quota and
acl fixes.</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, kbuild 2.5.  These patches were initially intended for internal
use and for feeding to Linus but we got no response at all.  The split
patches are now being 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 Of khttpd And Tux In 2.4"
  subject="TUX in 2.4.20?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1194.html"
  posts="4"
  startdate="13 Aug 2002 03:39:31 -0800"
  enddate="13 Aug 2002 15:26:41 -0800"
>
<topic>Web Servers</topic>

<mention>Roy Sigurd Karlsbakk</mention>

<p>Roy Sigurd Karlsbakk suggested that 2.4.20 would be a good target for
removing khttpd and replacing it with Tux. Alan Cox replied, <quote who="Alan
Cox">Tux is invasive. It isnt a clean simple patching job.</quote> And Oliver
Neukum added, <quote who="Oliver Neukum">2.4 is a stable series. Removing
something needs a very good reason, which just isn't there.</quote></p>

</section>

<section
  title="User Mode Linux Update For 2.5.31"
  subject="UML 2.5.31"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1269.html"
  posts="1"
  startdate="13 Aug 2002 09:27:50 -0800"
>
<topic>User-Mode Linux</topic>

<p>Jeff Dike announced:</p>

<quote who="Jeff Dike">

<p>UML has been updated to 2.5.31 and UML 2.4.18-52.</p>

<p>The changes since 2.5.30 have been mostly bug fixes and cleanups.</p>

<p>I fixed a "I'm tracing myself and can't get out" race.</p>

<p>The kernel entry and exit code was cleaned up and reduced from three
copies to one.</p>

<p>telnetd is now killed when UML shuts down, so telnet connections to UML
consoles die properly.</p>

<p>Fixed a crash caused by a non-GFP_ATOMIC allocation in an interrupt.</p>

<p>UML now exits when 'debug' is asked for and CONFIG_PT_PROXY is disabled.</p>

<p>Fixed some bugs in the ubd device plugging code.  </p>

<p>Fixed ethertap by making CLOEXEC optional in os_pipe.</p>

<p>Made UML build on 2.2 by defining the SHUT_* macros if no header file
does.</p>

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

<p>For the other UML mirrors and other downloads, see<br />
<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>

</section>

<section
  title="Linux Test Project Update"
  subject="Release announcement"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1386.html"
  posts="1"
  startdate="13 Aug 2002 12:13:56 -0800"
>
<topic>Ioctls</topic>

<mention>Andreas Jaeger</mention>

<p>Paul Larson announced:</p>

<quote who="Paul Larson">

<p>The Linux Test Project test suite LTP-20020813 has been released.  Visit our
website ( <a href="http://ltp.sourceforge.net">http://ltp.sourceforge.net</a>
) to download the latest version of the test suite.</p>

<p>There are some important fixes in this release, so please consider
upgrading.</p>

<p>LTP-20020813</p>

<p>* Fixes</p>

<p>

<ul>

<li>Fix runtest/commands to export the correct TCdat           ( Paul Larson        )</li>
<li>Add some missing includes and remove warnings about missing prototypes         ( Andreas Jaeger     ) </li>
<li>Add better initialization to waitpid05, signal04, getgroups01      ( Robbie Williamson  )</li>
<li>Fix sockioctl01 to work even if fd0 isn't open    ( Paul Larson )</li>
<li>Fix mmstress path problems, now uses execvp   ( Paul Larson        )</li>

</ul>

</p>

</quote>

</section>

<section
  title="NFSv4 Under 2.5"
  subject="announcing NFSv4 patches against 2.5.31"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0208.1/1425.html"
  posts="1"
  startdate="13 Aug 2002 14:53:57 -0800"
>
<topic>Access Control Lists</topic>
<topic>Extended Attributes</topic>
<topic>FS: NFS</topic>

<p>Kendrick M. Smith announced:</p>

<quote who="Kendrick M. Smith">

<p>This is an announcement of a set of 38 patches against Linux 2.5.31,
which implement basic NFSv4 functionality.  The patches were
developed as part of the NFSv4 project at the University of Michigan.
We are aiming to work with other kernel developers in the next   
few weeks, to get the patches included in 2.5.x.  In addition, we
could always use more testing, so if anyone wants to apply the patches
and bang on them, that would be extremely helpful as well.</p>

<p>For now, only the bare minimum of features have been implemented --
just enough to create a functional network file system.  Byte-range
file locking, state management, recovery from server reboot, extended
attributes, ACL's, the NFSv4 "pseudo filesystem", and strong security
are still unimplemented in 2.5.x.  Actually, we have implementations of
most of these features in 2.4.x, but are waiting to port them to 2.5.x
until the "minimal" patches have been approved.</p>

<p>(For those familiar with the NFSv4 protocol, I should elaborate by
 saying that the client does all of its READs and WRITEs using "magic
 stateids" and uses OPEN and CLOSE only when it needs to create a
 file.  The server treats all state-manipulating operations such
 as SETCLIENTID,OPEN,CLOSE... as no-ops and does not remember state.
 Instead of a proper implementation of the pseudo filesystem, the
 first entry in /etc/exports is chosen as the nominal root.)</p>

<p>Here are directions for running NFSv4.  Note that a few userland
utilities are necessary (URL's given as needed):</p>

<p>

<ol>

<li>Apply the NFSv4 patches to a clean 2.5.31 kernel, either one at a time
   from the messages following this one, or
   all at once by downloading the "grand unified patch" from <a
   href="http://www.citi.umich.edu/projects/nfsv4/patches-2.5/patch-2.5.31-E">www.citi.umich.edu/projects/nfsv4/patches-2.5/patch-2.5.31-E</a>.
   There will be seperate kernel config options for NFSv4 support in the
   client and server.</li>

<li>Download and install the GSSD d