<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="306" date="11 Apr 2005 00:00:00 -0800" />

<mailbox-stats>
	<global-stats>
		<generated-at>Sun Apr 10 22:43:21 2005</generated-at>
		<first-message>2005/03/14 07:19:00</first-message>
		<last-message>2005/03/31 22:54:54</last-message>
		<totals>
			<n-messages>2041</n-messages>
			<total-size>12MB</total-size>
			<avg-size>6KB</avg-size>
			<n-writers>727</n-writers>
			<wrote-more-then-1-message>262</wrote-more-then-1-message>
			<n-lines>191877</n-lines>
			<header-size>110528</header-size>
			<n-user-agents>75</n-user-agents>
			<n-organisations>56</n-organisations>
			<n-toplevel-domains>41</n-toplevel-domains>
		</totals>
		<averages>
			<lines-per-message>94</lines-per-message>
			<lines-per-header>54</lines-per-header>
			<header-percent-of-message>57.60%</header-percent-of-message>
			<header-percent-of-total>44.59%</header-percent-of-total>
			<line-length>9641</line-length>
			<bits-per-byte>4.2585</bits-per-byte>
		</averages>
		<importance>
			<low>0.00%</low>
			<normal>0.44%</normal>
			<high>0.00%</high>
		</importance>

	</global-stats>
	<top-writers>
		<top-writer rank="1">
			<e-mail-addr>Ingo Molnar</e-mail-addr>
			<n-messages>69</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>377KB</total-size>
			<mostly-written-at>12:34</mostly-written-at>
		</top-writer>
		<top-writer rank="2">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>65</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>420KB</total-size>
			<mostly-written-at>13:37</mostly-written-at>
		</top-writer>
		<top-writer rank="3">
			<e-mail-addr>Evgeniy Polyakov</e-mail-addr>
			<n-messages>50</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>413KB</total-size>
			<mostly-written-at>13:03</mostly-written-at>
		</top-writer>
		<top-writer rank="4">
			<e-mail-addr>Steven Rostedt</e-mail-addr>
			<n-messages>46</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>208KB</total-size>
			<mostly-written-at>13:18</mostly-written-at>
		</top-writer>
		<top-writer rank="5">
			<e-mail-addr>Herbert Xu</e-mail-addr>
			<n-messages>43</n-messages>
			<avg-size>4KB</avg-size>
			<total-size>166KB</total-size>
			<mostly-written-at>17:50</mostly-written-at>
		</top-writer>
	</top-writers>
	<top-subjects>
		<top-subject rank="1">
			<subject>Can't use SYSFS for "Proprietry" driver modules !!!.</subject>
			<n-messages>97</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>395KB</total-size>
			<mostly-written-at>14:56</mostly-written-at>
		</top-subject>
		<top-subject rank="2">
			<subject>[patch] Real-Time Preemption, -RT-2.6.12-rc1-V0.7.41-07</subject>
			<n-messages>62</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>272KB</total-size>
			<mostly-written-at>13:27</mostly-written-at>
		</top-subject>
		<top-subject rank="3">
			<subject>forkbombing Linux distributions</subject>
			<n-messages>51</n-messages>
			<avg-size>4KB</avg-size>
			<total-size>201KB</total-size>
			<mostly-written-at>14:41</mostly-written-at>
		</top-subject>
		<top-subject rank="4">
			<subject>[PATCH] API for true Random Number Generators to add entropy</subject>
			<n-messages>50</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>227KB</total-size>
			<mostly-written-at>13:03</mostly-written-at>
		</top-subject>
		<top-subject rank="5">
			<subject>NFS client latencies</subject>
			<n-messages>45</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>395KB</total-size>
			<mostly-written-at>13:51</mostly-written-at>
		</top-subject>
	</top-subjects>
	<top-receivers>
		<top-receiver rank="1">
			<e-mail-addr>linux-kernel@vger.kernel.org</e-mail-addr>
			<n-messages>341</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>3MB</total-size>
			<mostly-written-at>14:41</mostly-written-at>
		</top-receiver>
		<top-receiver rank="2">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>198</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>14:09</mostly-written-at>
		</top-receiver>
		<top-receiver rank="3">
			<e-mail-addr>Ingo Molnar</e-mail-addr>
			<n-messages>65</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>350KB</total-size>
			<mostly-written-at>13:27</mostly-written-at>
		</top-receiver>
		<top-receiver rank="4">
			<e-mail-addr>johnpol@2ka.mipt.ru</e-mail-addr>
			<n-messages>46</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>210KB</total-size>
			<mostly-written-at>12:28</mostly-written-at>
		</top-receiver>
		<top-receiver rank="5">
			<e-mail-addr>Herbert Xu</e-mail-addr>
			<n-messages>44</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>191KB</total-size>
			<mostly-written-at>14:12</mostly-written-at>
		</top-receiver>
	</top-receivers>
	<top-ccers>
		<top-ccers rank="1">
			<e-mail-addr>linux-kernel@vger.kernel.org</e-mail-addr>
			<n-messages>876</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>5MB</total-size>
			<mostly-written-at>14:11</mostly-written-at>
		</top-ccers>
		<top-ccers rank="2">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>260</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>14:38</mostly-written-at>
		</top-ccers>
		<top-ccers rank="3">
			<e-mail-addr>Ingo Molnar</e-mail-addr>
			<n-messages>53</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>340KB</total-size>
			<mostly-written-at>16:10</mostly-written-at>
		</top-ccers>
		<top-ccers rank="4">
			<e-mail-addr>Greg KH</e-mail-addr>
			<n-messages>38</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>243KB</total-size>
			<mostly-written-at>13:16</mostly-written-at>
		</top-ccers>
		<top-ccers rank="5">
			<e-mail-addr>johnpol@2ka.mipt.ru</e-mail-addr>
			<n-messages>36</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>151KB</total-size>
			<mostly-written-at>14:40</mostly-written-at>
		</top-ccers>
	</top-ccers>
	<top-level-domains>
		<tld rank="1">
			<name>com</name>
			<freq>788</freq>
		</tld>
		<tld rank="2">
			<name>org</name>
			<freq>352</freq>
		</tld>
		<tld rank="3">
			<name>de</name>
			<freq>133</freq>
		</tld>
		<tld rank="4">
			<name>net</name>
			<freq>124</freq>
		</tld>
		<tld rank="5">
			<name>au</name>
			<freq>85</freq>
		</tld>
	</top-level-domains>
	<top-timezones>
		<tz rank="1">
			<name>+0200</name>
			<freq>559</freq>
		</tz>
		<tz rank="2">
			<name>-0800</name>
			<freq>302</freq>
		</tz>
		<tz rank="3">
			<name>-0500</name>
			<freq>284</freq>
		</tz>
		<tz rank="4">
			<name>+0100</name>
			<freq>193</freq>
		</tz>
		<tz rank="5">
			<name>-0700</name>
			<freq>124</freq>
		</tz>
	</top-timezones>
	<top-organisations>
		<org rank="1">
			<name>MIPT</name>
			<freq>46</freq>
			<bytes>293KB</bytes>
		</org>
		<org rank="2">
			<name>Kihon Technologies</name>
			<freq>40</freq>
			<bytes>183KB</bytes>
		</org>
		<org rank="3">
			<name>SGI</name>
			<freq>28</freq>
			<bytes>120KB</bytes>
		</org>
		<org rank="4">
			<name>OSDL</name>
			<freq>12</freq>
			<bytes>52KB</bytes>
		</org>
	</top-organisations>
	<top-user-agents>
		<useragent rank="1">
			<name>Mozilla</name>
			<freq>53</freq>
			<bytes>967KB</bytes>
		</useragent>
		<useragent rank="2">
			<name>Evolution</name>
			<freq>47</freq>
			<bytes>2MB</bytes>
		</useragent>
		<useragent rank="3">
			<name>Mutt/1.5.6+20040907i</name>
			<freq>37</freq>
			<bytes>930KB</bytes>
		</useragent>
		<useragent rank="4">
			<name>Mozilla/5.0</name>
			<freq>32</freq>
			<bytes>642KB</bytes>
		</useragent>
		<useragent rank="5">
			<name>Mutt/1.4.1i</name>
			<freq>20</freq>
			<bytes>464KB</bytes>
		</useragent>
	</top-user-agents>
	<messages-per-day>
		<Sunday><msgs>171</msgs><bytes>903KB</bytes></Sunday>
		<Monday><msgs>324</msgs><bytes>2MB</bytes></Monday>
		<Tuesday><msgs>348</msgs><bytes>3MB</bytes></Tuesday>
		<Wednesday><msgs>353</msgs><bytes>2MB</bytes></Wednesday>
		<Thursday><msgs>340</msgs><bytes>2MB</bytes></Thursday>
		<Friday><msgs>327</msgs><bytes>3MB</bytes></Friday>
		<Saturday><msgs>157</msgs><bytes>807KB</bytes></Saturday>
	</messages-per-day>
	<messages-per-month>
		<Jan><msgs>0</msgs><bytes>0</bytes></Jan>
		<Feb><msgs>0</msgs><bytes>0</bytes></Feb>
		<Mar><msgs>988</msgs><bytes>6MB</bytes></Mar>
		<Apr><msgs>1034</msgs><bytes>7MB</bytes></Apr>
		<May><msgs>0</msgs><bytes>0</bytes></May>
		<Jun><msgs>0</msgs><bytes>0</bytes></Jun>
		<Jul><msgs>0</msgs><bytes>0</bytes></Jul>
		<Aug><msgs>0</msgs><bytes>0</bytes></Aug>
		<Sep><msgs>0</msgs><bytes>0</bytes></Sep>
		<Oct><msgs>0</msgs><bytes>0</bytes></Oct>
		<Nov><msgs>0</msgs><bytes>0</bytes></Nov>
		<Dec><msgs>0</msgs><bytes>0</bytes></Dec>
	</messages-per-month>
	<messages-per-day-of-month>
		<day-1><msgs>244</msgs><bytes>2MB</bytes></day-1>
		<day-2><msgs>117</msgs><bytes>634KB</bytes></day-2>
		<day-3><msgs>126</msgs><bytes>707KB</bytes></day-3>
		<day-4><msgs>229</msgs><bytes>2MB</bytes></day-4>
		<day-5><msgs>188</msgs><bytes>2MB</bytes></day-5>
		<day-6><msgs>114</msgs><bytes>587KB</bytes></day-6>
		<day-7><msgs>16</msgs><bytes>71KB</bytes></day-7>
		<day-8><msgs>0</msgs><bytes>0</bytes></day-8>
		<day-9><msgs>0</msgs><bytes>0</bytes></day-9>
		<day-10><msgs>0</msgs><bytes>0</bytes></day-10>
		<day-11><msgs>0</msgs><bytes>0</bytes></day-11>
		<day-12><msgs>0</msgs><bytes>0</bytes></day-12>
		<day-13><msgs>0</msgs><bytes>0</bytes></day-13>
		<day-14><msgs>3</msgs><bytes>10KB</bytes></day-14>
		<day-15><msgs>3</msgs><bytes>12KB</bytes></day-15>
		<day-16><msgs>0</msgs><bytes>0</bytes></day-16>
		<day-17><msgs>1</msgs><bytes>6KB</bytes></day-17>
		<day-18><msgs>4</msgs><bytes>14KB</bytes></day-18>
		<day-19><msgs>9</msgs><bytes>45KB</bytes></day-19>
		<day-20><msgs>5</msgs><bytes>32KB</bytes></day-20>
		<day-21><msgs>10</msgs><bytes>45KB</bytes></day-21>
		<day-22><msgs>23</msgs><bytes>120KB</bytes></day-22>
		<day-23><msgs>70</msgs><bytes>410KB</bytes></day-23>
		<day-24><msgs>62</msgs><bytes>326KB</bytes></day-24>
		<day-25><msgs>79</msgs><bytes>508KB</bytes></day-25>
		<day-26><msgs>31</msgs><bytes>128KB</bytes></day-26>
		<day-27><msgs>40</msgs><bytes>166KB</bytes></day-27>
		<day-28><msgs>82</msgs><bytes>336KB</bytes></day-28>
		<day-29><msgs>134</msgs><bytes>685KB</bytes></day-29>
		<day-30><msgs>171</msgs><bytes>925KB</bytes></day-30>
		<day-31><msgs>261</msgs><bytes>2MB</bytes></day-31>
	</messages-per-day-of-month>
	<messages-per-hour>
		<hour-1><msgs>39</msgs><bytes>202KB</bytes></hour-1>
		<hour-2><msgs>31</msgs><bytes>224KB</bytes></hour-2>
		<hour-3><msgs>24</msgs><bytes>121KB</bytes></hour-3>
		<hour-4><msgs>13</msgs><bytes>53KB</bytes></hour-4>
		<hour-5><msgs>5</msgs><bytes>16KB</bytes></hour-5>
		<hour-6><msgs>13</msgs><bytes>136KB</bytes></hour-6>
		<hour-7><msgs>48</msgs><bytes>235KB</bytes></hour-7>
		<hour-8><msgs>76</msgs><bytes>441KB</bytes></hour-8>
		<hour-9><msgs>93</msgs><bytes>595KB</bytes></hour-9>
		<hour-10><msgs>129</msgs><bytes>624KB</bytes></hour-10>
		<hour-11><msgs>114</msgs><bytes>694KB</bytes></hour-11>
		<hour-12><msgs>130</msgs><bytes>831KB</bytes></hour-12>
		<hour-13><msgs>134</msgs><bytes>708KB</bytes></hour-13>
		<hour-14><msgs>122</msgs><bytes>547KB</bytes></hour-14>
		<hour-15><msgs>126</msgs><bytes>752KB</bytes></hour-15>
		<hour-16><msgs>121</msgs><bytes>752KB</bytes></hour-16>
		<hour-17><msgs>135</msgs><bytes>747KB</bytes></hour-17>
		<hour-18><msgs>96</msgs><bytes>538KB</bytes></hour-18>
		<hour-19><msgs>99</msgs><bytes>492KB</bytes></hour-19>
		<hour-20><msgs>93</msgs><bytes>580KB</bytes></hour-20>
		<hour-21><msgs>89</msgs><bytes>482KB</bytes></hour-21>
		<hour-22><msgs>117</msgs><bytes>636KB</bytes></hour-22>
		<hour-23><msgs>107</msgs><bytes>584KB</bytes></hour-23>
	</messages-per-hour>
	<created-with><name>mboxstats</name><version>2.2</version><developer>folkert@vanheusden.com</developer><url>http://www.vanheusden.com/mboxstats/</url></created-with>
</mailbox-stats>

<section
  title="Real-Time Preemption Updates And Bug Hunting"
  subject="[patch] Real-Time Preemption, -RT-2.6.12-rc1-V0.7.41-00"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/2641db95ab6c9e78"
  posts="89"
  startdate="19 Mar 2005 11:16:58 -0800"
  enddate="07 Apr 2005 13:21:50 -0800"
>
<topic>FS: ext3</topic>
<topic>Real-Time</topic>
<topic>SMP</topic>

<mention>Paul E. McKenney</mention>
<mention>Lee Revell</mention>

<p>Ingo Molnar said:</p>

<quote who="Ingo Molnar">

<p>i have released the -V0.7.41-00 Real-Time Preemption patch (merged to
2.6.12-rc1), which can be downloaded from the usual place:</p>

<a href="http://redhat.com/~mingo/realtime-preempt/">http://redhat.com/~mingo/realtime-preempt/</a>

<p>the biggest change in this patch is the merge of Paul E. McKenney's
preemptable RCU code. The new RCU code is active on PREEMPT_RT. While it
is still quite experimental at this stage, it allowed the removal of
locking cruft (mainly in the networking code), so it could solve some of
the longstanding netfilter/networking deadlocks/crashes reported by a
number of people. Be careful nevertheless.</p>

<p>there are a couple of minor changes relative to Paul's latest
preemptable-RCU code drop:</p>

<p>

<ul>

<li>made the two variants two #ifdef blocks - this is sufficient for now
and we'll see what the best way is in the longer run.</li>

<li>moved rcu_check_callbacks() from the timer IRQ to ksoftirqd. (the
timer IRQ still runs in hardirq context on PREEMPT_RT.)</li>

<li>changed the irq-flags method to a preempt_disable()-based method, and
moved the lock taking outside of the critical sections. (due to locks
potentially sleeping on PREEMPT_RT).</li>

</ul>

</p>

<p>to create a -V0.7.41-00 tree from scratch, the patching order is:</p>

<p><a href="http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2">http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2</a><br />
<a href="http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.12-rc1.bz2">http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.12-rc1.bz2</a><br />
<a href="http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.12-rc1-V0.7.41-00">http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.12-rc1-V0.7.41-00</a></p>

</quote>

<p>Lee Revell reported system hangs with this code, but no serious debugging
took place. Elsewhere, Paul E. McKenney offered a few cleanup patches, and Ingo
updated his tree. Magnus Naeslund confirmed that system hangs were occurring
about 20 minutes after bootup with this kernel, exactly as Lee had reported.
Ingo tried doing some code revisions that turned out to blow up in his face,
leaking dentries all over the place. He abandoned that entire tree and
returned to his earlier version. It didn't help that while these lockups
occurred on single-processor systems, there was another crash bug showing
up -- a race condition between two CPUs -- that only affected SMP systems.</p>

<p>A lengthy debugging process followed, with more work being done to solve
the SMP problem than the other. It seemed that progress was being made, with
folks like Steven Rostedt working round the clock on patch implementations; but
ultimately the solution was not as forthcoming as folks would have liked. To
give an example of some of the troubles they had during this thread, at one
point Ingo asked for a cleaner patch, in hopes of migrating it eventually into
the official tree, and Steven remarked, <quote who="Steven Rostedt">that's
the main problem. Without changing the design of the ext3 system, I don't
think there is a clean patch.</quote></p>

</section>

<section
  title="Linux 2.6.12-rc1-mm3 Released"
  subject="2.6.12-rc1-mm3"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/f52ad3f555f84dab"
  posts="56"
  startdate="25 Mar 2005 00:21:54 -0800"
  enddate="01 Apr 2005 19:46:25 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>Serial ATA</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Andrew Morton announced Linux 2.4.12-rc1-mm3, saying:</p>

<quote who="Andrew Morton">

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc1/2.6.12-rc1-mm3/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc1/2.6.12-rc1-mm3/</a></p>

<p>

<ul>

<li>Mainly a bunch of fixes relative to 2.6.12-rc1-mm2.</li>

<li>Again, we'd like people who have had recent DRM and USB resume problems
to test and report, please.</li>

<li>The bk-ide-dev tree is back after a couple of weeks of difficulties.</li>

<li>Jeff asks that anyone who has had problems with the Silicon Image SATA
drivers test sata_sil-corruption--lockup-fix.patch, which is included in
this kernel.</li>

</ul>

</p>

</quote>

</section>

<section
  title="JFFS3 Cleanups And An Attempt At Additional APIs"
  subject="[RFC] CryptoAPI &amp; Compression"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/021c5d241fe3c034"
  posts="44"
  startdate="25 Mar 2005 08:08:20 -0800"
  enddate="03 Apr 2005 07:24:28 -0800"
>
<topic>Compression</topic>

<mention>David Woodhouse</mention>

<p>Artem B. Bityuckiy said:</p>

<quote who="Artem B. Bityuckiy">

<p>I'm working on cleaning-up the JFFS3 compression stuff. JFFS3 contains a
number of compressors which actually shouldn't be there as they are
platform-independent and generic. So we want to move them to the generic
part of the Linux kernel instead of storing them in fs/jffs2/. And we
were going to use CryptoAPI to access the compressors.</p>

<p>But I've hit on a problem - CryptoAPI's compression method isn't
flexible enough for us.</p>

<p>CryptoAPI's compress method is:</p>

<p>int crypto_compress(struct crypto_tfm *tfm,
                    const u8 *src, unsigned int slen,
                    u8 *dst, unsigned int *dlen);</p>

<p>*src - input data;<br />
slen - input data length;<br />
*dst - output data;<br />
*dlen - on input - output buffer length, on output - the length of the
compressed data;</p>

<p>The crypto_compress() API call either compresses all the input data or
returns error.</p>

<p>In JFFS2 we need something more flexible. Te following is what we want:</p>

<p>int crypto_compress_ext(struct crypto_tfm *tfm,
                    const u8 *src, unsigned int *slen,
                    u8 *dst, unsigned int *dlen);</p>

<p>*src - input data;<br />
*slen - on input - input data length, on output - the amount of data
that were actually compressed.<br />
*dst - output data;<br />
*dlen - on input - output buffer length, on output - the length of the
compressed data;</p>

<p>This would allow us (and we really need this) to provide a large input
data buffer, a small output data buffer and to ask the compressor to
compress as much input data as it can to fit (in the compressed form) to
the output buffer. To put it differently, we often have a large input,
and several smalloutput buffers, and we want to compress the input data
to them.</p>

<p>I offer to extend the CryptoAPI and add an "extended compress" API call
with the above mentioned capabilities. We might as well just change the
crypto_compress() and all its users.</p>

<p>Alternatively, we may create some kind of "Compression API" but I don't
like this idea...</p>

</quote>

<p>Herbert Xu was happy to see the generic code moved into the generic part
of the kernel, but he felt the specific API suggested by Artem would be
slow and unwieldy. While he was willing to add the interface, he felt it
would be best to keep the existing API as well. The two of them powwowed
over an implementation that would solve the various requirements; and David
Woodhouse also chimed in with his own ideas; but ultimately Artem had to
give up on his idea, when he couldn't convince Herbert of its value.</p>

<p>As Artem put it, <quote who="Artem B. Bityuckiy">OK. No problems, that
was just RFC. :-)</quote></p>

</section>

<section
  title="Using New And Old Megaraid Drivers"
  subject="megaraid driver (proposed patch)"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/b0ff5ad5ff085ffc"
  posts="10"
  startdate="25 Mar 2005 10:22:52 -0800"
  enddate="31 Mar 2005 05:01:01 -0800"
>
<topic>Version Control</topic>

<mention>James Bottomley</mention>

<p>Bruno Cornec reported:</p>

<quote who="Bruno Cornec">

<p>I've noticed that since recent kernel versions, it's not possible anymore
to use simultaneously new and old megaraid driver.</p>

<p>It seems to have been introduced by that changeset:
<a href="http://linux.bkbits.net:8080/linux-2.5/diffs/drivers/scsi/megaraid/Kconfig.megaraid@1.1??nav=index.html|src/.|src/drivers|src/drivers/scsi|src/drivers/scsi/megaraid|hist/drivers/scsi/megaraid/Kconfig.megaraid">http://linux.bkbits.net:8080/linux-2.5/diffs/drivers/scsi/megaraid/Kconfig.megaraid@1.1??nav=index.html|
src/.|src/drivers|src/drivers/scsi|src/drivers/scsi/megaraid|hist/drivers/scsi/megaraid/Kconfig.megaraid</a></p>

<p>It particularly makes life of people developing kernel for distro difficult
as it forces them to drop support for legacy hardware which is working just
fine with 2.6, or to patch their own kernel build.  As well it prevents
simultaneous usage of new and old cards in the same system.</p>

<p>Would you consider to apply the following patch proposed by Thierry Vignaud
as a solution for the MandrakeSoft kernel in the mainstream 2.6 kernel?</p>

</quote>

<p>James Bottomley suggested talking to the megaraid maintainers and the
linux-scsi mailing list. There was a brief discussion of possible solutions,
but the thread petered out with no clear resolution.</p>

</section>

<section
  title="Reorganizing Network Configuration Options"
  subject="[RFC/PATCH] network configs: disconnect network options from drivers"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/0ebd624918115e9d"
  posts="18"
  startdate="30 Mar 2005 23:47:09 -0800"
  enddate="05 Apr 2005 13:04:06 -0800"
>
<topic>Modems</topic>
<topic>Networking</topic>

<mention>David S. Miller</mention>
<mention>Chris Friesen</mention>
<mention>Andrew Morton</mention>

<p>Randy Dunlap said:</p>

<quote who="Randy Dunlap">

<p>RFC:  This is a work-in-progress (WIP), not yet completed.</p>

<p>A few people dislike that the Networking Options menu is inside the Device
Drivers/Networking menu.  This patch moves the Networking Options menu to
immediately before the Device Drivers menu, renames it to "Networking options
and protocols", &amp; moves most protocols to more logical places (IMHOOC).</p>

<p>The reasons that it is still WIP are:</p>

<p>

<ul>

<li>I'd like to see all of the sub-menus done in the same style;</li>

<li>IrDA &amp; Bluetooth subsystems include protocols &amp; drivers, yet they
are displayed under Networking protocols.  I don't see much good reason to
split them up.  (See, this is an example of why the Networking Options and
Network Drivers were close together....)</li>

<li>some Networking options need to be qualified with CONFIG_NET</li>

</ul>

</p>

</quote>

<p>Jamal Hadi Salim said, <quote who="Jamal Hadi Salim">About time someone
brave did this.</quote> And Chris Friesen and David S. Miller said the work
looked sensible, as did Thomas Graf. Randy was happy for the kudos, but asked
specifically for feedback on some key issues. For one, he asked if the best
thing would be <quote who="Randy Dunlap">leaving IrDA and Bluetooth subsystem
(with drivers) where they are, which is under "Network options and protocols"
(I really don't want to split their drivers away from their subsystem, just to
put them under Network driver support.)</quote> Sam Ravnborg replied, <quote
who="Sam Ravnborg">Agreed. All IrDA / Bluetooth stuff belongs together.
Leave them where they are for now.</quote> Randy also wanted to know if
<quote who="Randy Dunlap">leaving SLIP, PPP, and PLIP where they are under
Network driver support, even though they say that they are "protocols"</quote>
would be a good idea. Sam replied, <quote who="Sam Ravnborg">SLIP and PLIP
is not that common. PPP is more common for cable-modem/ADSL I suppose. But
still it would make sense to create an Misc protocols menu, like we have
a misc filesystems menu.</quote> But on further reflection, Randy noticed
that <quote who="Randy Dunlap">SLIP, PLIP, and PPP depend on NETDEVICES,
and they use some netdev interfaces, so they appear to be more like net
devices than protocols even though they are called protocols in Kconfig text,
so I am leaving them alone for now.</quote> Sam posted his own additions to
Randy's work, and they continued to discuss what would be best. Sam said:</p>

<quote who="Sam Ravnborg">

<p>The new Networking menu looks unstructured.  And the net/Kconfig file
contains a lot of config snippets that does not belong there.  So I took a
stamp on it with focus on:</p>

<p>

<ul>

<li>Move config bits to appropriate places, creating several new Kconfig
files</li>

<li>Made uses of menus more consistent at least on first and second level</li>

<li>Move submenu to the top</li>

<li>Rename top menu to "Networking" and located it just before
"File systems"</li>

</ul>

</p>

<p>The patch became much larger. The win is that the top-level net/Kconfig
contains much less cruft.</p>

</quote>

<p>Randy replied, <quote who="Randy Dunlap">Nice job overall.  Especially nice
to move ATM, bridge, DECNET, ECONET, etc., to their own Kconfig files so that
they are more manageable.</quote> But he added, <quote who="Randy Dunlap">I
still prefer Networking to come before Device Drivers FWIW.  Just makes
some kind of hierarchical sense to me.</quote> Sam fixed this location;
and after further digging, Randy said:</p>

<quote who="Randy Dunlap">

<p>Here are a few more suggestions for you to consider.</p>

<p>

<ul>

<li>in Networking support, move Network testing and Netpoll support to the
end of the menu (basically put the devel.  tools toward the bottom of the
menu)</li>

<li>I would rather not "hide" Amateur Radio, IrDA, and Bluetooth in the
Networking protocols area, but have them near 802.1x and ATM in the top-level
Networking support menu.  How does that sound to you?</li>

</ul>

</p>

</quote>

<p>Sam implemented both of these suggestions, and added, <quote who="Sam
Ravnborg">I thought of creating a Kconfig.netfilter for the common netfilter
stuff. But in the end did not do it - felt there was plenty of new small
files being created already.</quote> Randy replied, <quote who="Randy
Dunlap">It would make sense to isolate the netfilter options, but that can
be done later.  But you are right about "plenty of new small files."</quote>
He added, <quote who="Randy Dunlap">I would move Frame Diverter (NET_DIVERT)
from the end of the net/core/Kconfig file to the top of the same file....
and then ship it.  :)</quote> Sam committed his changes and pushed them
along the Andrew Morton's -mm tree.</p>

</section>

<section
  title="Linux 2.6.12-rc1-mm4 Released"
  subject="2.6.12-rc1-mm4"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/00a28fcb6a2c97f7"
  posts="6"
  startdate="31 Mar 2005 02:25:54 -0800"
  enddate="04 Apr 2005 02:54:34 -0800"
>
<topic>FS: ReiserFS</topic>
<topic>Kernel Release Announcement</topic>

<p>Andrew Morton announced Linux 2.6.12-rc1-mm4, saying:</p>

<quote who="Andrew Morton">

<p><a
href="ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc1/2.6.12-rc1-mm4/">ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc1/2.6.12-rc1-mm4/</a></p>

<p>

<ul>

<li>New reiserfs4 code drop</li>

<li>Various new fixes and cleanups.  Am still interested in hearing how
people are going with the DRI problems and the PM resume problems.</li>

</ul>

</p>

</quote>

</section>

<section
  title="FUSE Breaks Backward Compatibility"
  subject="[PATCH] FUSE: 0/3 update kernel ABI"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/b0e12ac9d147f86e"
  posts="3"
  startdate="31 Mar 2005 12:52:42 -0800"
  enddate="31 Mar 2005 13:17:35 -0800"
>
<topic>Backward Compatibility</topic>

<mention>Franco Broi</mention>

<p>Miklos Szeredi said:</p>

<quote who="Miklos Szeredi">

<p>The following 3 patches change the userspace interface.  Backward
compatibility is not retained, the library must be upgraded to
2.3-pre1 or later.  The library will support both the old and the new
ABI versions.  Filesystems dynamically linked with libfuse don't need
to be recompiled.</p>

<p>The main reason for the change is that the current interface was not
compatible between 32bit and 64bit modes of dual architecures.</p>

<p>The patches are:</p>

<p>  1/3 - Add padding to structures to make sizes the same on 32bit and
        64bit archs</p>

<p>  2/3 - Add offset to fuse_dirent structure.  This will make the
        readdir interface more flexible</p>

<p>  3/3 - Change ABI major version from 5 to 6, and check if userspace
        supports the new interface</p>

</quote>

<p>In a <a
href="http://groups-beta.google.com/group/fa.linux.kernel/msg/fc5a94b07331f34c">subsequent
post</a> he added that for the first patch, <quote who="Miklos Szeredi">Initial
testing and test machine generously provided by Franco Broi.</quote></p>

</section>

<section
  title="New ConfigFS Filesystem For Userspace-Driven Kernel Object Configuration"
  subject="[PATCH] configfs, a filesystem for userspace-driven kernel object configuration"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/06e0368f86c8f824"
  posts="6"
  startdate="03 Apr 2005 11:57:28 -0800"
  enddate="05 Apr 2005 10:16:51 -0800"
>
<topic>FS: procfs</topic>
<topic>FS: sysfs</topic>
<topic>Ioctls</topic>

<p>Joel Becker said:</p>

<quote who="Joel Becker">

<p>I humbly submit configfs.  With configfs, a configfs config_item is created
via an explicit userspace operation: mkdir(2).  It is destroyed via rmdir(2).
The attributes appear at mkdir(2) time, and can be read or modified via read(2)
and write(2).  readdir(3) queries the list of items and/or attributes.</p>

<p>The lifetime of the filesystem representation is completely driven by
userspace.  The lifetime of the objects themselves are managed by a kref,
but at rmdir(2) time they disappear from the filesystem.</p>

<p>configfs is not intended to replace sysfs or procfs, merely to coexist
with them.</p>

<p>An interface in /proc where the API is:</p>

<p># echo "create foo 1 3 0x00013" &gt; /proc/mythingy</p>

<p>or an ioctl(2) interface where the API is:</p>

<pre>        struct mythingy_create {
                char *name;
                int index;
                int count;
                unsigned long address;
        }

        do_create {
                mythingy_create = {"foo", 1, 3, 0x0013};
                return ioctl(fd, MYTHINGY_CREATE, &amp;mythingy_create);
        }</pre>

<p>becomes this in configfs:</p>

<pre>        # cd /config/mythingy
        # mkdir foo
        # echo 1 &gt; foo/index
        # echo 3 &gt; foo/count
        # echo 0x00013 &gt; foo/address</pre>

<p>Instead of a binary blob that's passed around or a cryptic string that
has to be formatted just so, configfs provides an interface that's completely
scriptable and navigable.</p>

<p>Patch is against 2.6.12-rc1-bk3.</p>

<p><a
href="http://oss.oracle.com/~jlbec/files/configfs/2.6.12-rc1-bk3/configfs-2.6.12-rc1-bk3-1.patch">http://oss.oracle.com/~jlbec/files/configfs/2.6.12-rc1-bk3/configfs-2.6.12-rc1-bk3-1.patch</a></p>

</quote>

<p>Matt Mackall asked, <quote who="Matt Mackall">How does the kernel know
when to actually create the object?</quote> And Zach Brown replied:</p>

<quote who="Zach Brown">

<p>"actually create", huh? :)</p>

<p>In the trivial case Joel describes, the item is almost certainly allocated
during "# mkdir foo" when the subsystem will get a -&gt;make_item() call
for the 'mythingy' group it registerd.  The various attribute writes then
find the item by following their configfs_attribute argument to the item
that its embedded in.</p>

<p>But I bet you're not really asking about creation.  I bet you're
wondering how the kernel will know when enough attributes have been filled
and that it's safe to use the object.  Misguided items could assign magical
ordering to the attribute filling such that once a final attribute is set,
and others have been set, the item goes live.  That's what ocfs2 does now,
sadly, but certainly not as a long-term solution.</p>

<p>The missing piece is the 'commit_item' group operation that is yet to
be implemented.  The intent is to have a directory of pending items that
can have their attributes filled before being rename()ed into a directory of
items that are in active use.  The commit_item() call that hits at rename()
would give the kernel the chance to refuse the item because attributes
haven't been filled in or conflict with existing items, or whatever.</p>

</quote>

</section>

<section
  title="Linux 2.4.30 Released"
  subject="linux-2.4.30 released"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/0d5145c7c9a1b465"
  posts="1"
  startdate="03 Apr 2005 17:44:24 -0800"
>

<mention>Marcelo Tosatti</mention>

<p>Marcelo Tosatti announced Linux 2.4.30, saying that it was identical to
2.4.30-rc4. No changes at all.</p>

</section>

<section
  title="New Hardware For kernel.org"
  subject="kernel.org replaced"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/274c5177ed22c32a"
  posts="6"
  startdate="04 Apr 2005 11:53:19 -0800"
  enddate="04 Apr 2005 13:52:25 -0800"
>

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

<quote who="H. Peter Anvin">

<p>HP has most graciously donated a pair of DL585 quad Opteron servers with
24 GB of RAM and 10 TB of disk using a pair of MSA-30 arrays for each server.
The first ones of these servers was officially put in service today; the
next one will be put in service next week.  Each server is in a different
ISC colo, connected to the Internet via gigabit fiber links.</p>

<p>Consequently, we should now see incredibly much better performance from
kernel.org.  Huge thanks to HP for the new hardware, and huge thanks to
ISC for letting us quadruple our rack space requirements from 5U to 2x10U.
We'll be saturating those links in no time :)</p>

</quote>

<p>He added in a later post:</p>

<quote who="H. Peter Anvin">

<p>A few additional notes:</p>

<p>

<ul>

<li>The IP addresses for kernel.org have changed.  When the second
server gets deployed next week, most of the kernel.org addresses,
e.g. ftp.kernel.org, will be round-robins.  The individual servers
can be specified as ftp1.kernel.org and ftp2.kernel.org.</li>

<li>*** If you run a service from kernel.org that uses DNS entries
beyond our control, please see the email I sent out; if you didn't
get it, contact me. ***</li>

<li>The old IP addresses will be turned off later this week.</li>

</ul>

</p>

</quote>

<p>Alessandro Suardi was thrilled about these developments, though he did point
out that <quote who="Alessandro Suardi">2.6.12-rc2 has been announced a few
hours ago on <a href="http://www.kernel.org">http://www.kernel.org</a>, still
the patch isn't there.. it will be hard to saturate links that way ;)</quote>
H. Peter looked into this and reported it <quote who="H. Peter Anvin">Fixed.
It was uploaded while I was still in the process of getting the upload system
set up, and it apparently got recorded as already uploaded.</quote></p>

</section>

<section
  title="inotify Version 0.22 Released"
  subject="[patch] inotify 0.22"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/4cb40c8e1881f025"
  posts="8"
  startdate="04 Apr 2005 12:02:15 -0800"
  enddate="05 Apr 2005 08:59:35 -0800"
>

<mention>Martin Schlemmer</mention>

<p>Robert Love said:</p>

<quote who="Robert Love">

<p>Below, find inotify 0.22, against 2.6.12-rc1.</p>

<p>This release introduces a conversion in our primary locking from
spinlocks to semaphores.  Semaphores are a more natural fit for our code,
which synchronizes with user-space, thus we clean up a bit of code with
a net reduction of 63 lines.  Also, I was able to remove the GFP_ATOMIC
allocation.</p>

<p>I did this as a bit of an experiment, not to fix any specific problem,
and I now think it is the right way to go.</p>

<p>This release also fixes a small bug in the coalescing code, which could
of mistakenly dropped a move event.  We now verify that the cookies match
before coalescing.</p>

</quote>

<p>Dale Blount asked, <quote who="Dale Blount">Will inotify watch directories
recursively?</quote> And Robert replied:</p>

<quote who="Robert Love">

<p>No, inotify does not support watching directories recursively.  I would
love to add it, but it would be a mess to do inside of the kernel.</p>

<p>Making it easy and efficient to watch a full tree, however, was a goal
of inotify.  Beagle, a personal indexing infrastructure, watches the user's
entire home directory.</p>

<p>You could never do this in dnotify because you would run out of file
descriptors and pin every file.</p>

<p>In inotify, it is not hard to write a simple recursive loop to add a
watch to each directory starting at a given path.  It can even be done in
an atomic fashion.  See</p>

<p><a
href="http://mail.gnome.org/archives/dashboard-hackers/2004-October/msg00022.html">http://mail.gnome.org/archives/dashboard-hackers/2004-October/msg00022.html</a></p>

<p>wherein I publish such an algorithm.</p>

</quote>

<p>Martin Schlemmer asked if the new inotify code would appear in the official
kernel any time soon, but there was no reply to this. Robert did release
two more updates to the patch during the course of the thread, however.</p>

</section>

<section
  title="Refining The Master Abort Mode Flag For PCI Bridge Chips"
  subject="[RFC/Patch 2.6.11] Take control of PCI Master Abort Mode"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/0d5c4a2c4208c560"
  posts="4"
  startdate="05 Apr 2005 11:33:59 -0800"
  enddate="06 Apr 2005 12:44:31 -0800"
>
<topic>Disks: IDE</topic>
<topic>Networking</topic>
<topic>PCI</topic>

<mention>Randy Dunlap</mention>
<mention>Daniel Egger</mention>

<p>Ross Biro said:</p>

<quote who="Ross Biro">

<p>Currently Linux 2.6 assumes the BIOS (or firmware) sets the master abort
mode flag on PCI bridge chips in a coherent fashion.  This is not always the
case and the consequences of getting this flag incorrect can cause hardware
to fail or silent data corruption.  This patch lets the user override the
BIOS master abort setting at boot time and the distro maintainer to set a
default according to their target audience.</p>

<p>The comments in the patch are probably a bit too verbose, but I think
it is a good patch to start discussions around.  If it is decided that
something should be done about this problem, this patch could be included
in a -mm release and migrate into Linus's kernel as appropriate.</p>

<p>This incarnation of the patch has had minimal testing.  For our internal
kernels, we always force the master abort mode to 1 and then let the device
drivers for hardware we know can't handle target aborts switch the master
abort mode to 0. This does not seem appropriate for general release.</p>

<p>Some background for those who do not spend most of their waking hours
exploring buses and what can go wrong.</p>

<p>The master abort flag tells a PCI bridge what to do when a bus master
behind the bridge requests the bus and the bridge is unable to get the bus.
With the flag clear, for master reads the bridge returns all 0xff's (hence
silent data corruption) and for master writes, it throws the data away.
With the bit set, the bridge sends a target abort to the master.  This can
only happen when the system is heavily loaded.</p>

<p>The problem with always setting the bit is that some PCI hardware, notably
some Intel E-1000 chips (Ethernet controller: Intel Corporation: Unknown
device 1076) cannot properly handle the target abort bit.  In the case of
the E-1000 chip, the driver must reset the chip to recover.  This usually
leads to the machine being off the network for several seconds, or sometimes
even minutes, which can be bad for servers.</p>

<p>I even have a single motherboard with both a device that cannot handle the
target abort and an IDE controller that can handle the target abort behind
the same bridge.  For this motherboard, I have to choose the lesser of two
evils, network hiccups or potential data corruption.  For the record, I have
seen both occur.  Other people may make wish to make a different choice than
we did, hence this patch allows the user to choose the mode at runtime.</p>

</quote>

<p>Randy Dunlap went over the patch with a fine tooth comb and offered some
suggestions; and Daniel Egger thought Ross's patch might solve a problem
he'd been having with his own system; but there was no further discussion
and the thread ended.</p>

</section>

</kc>

