<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="296" date="12 Feb 2005 00:00:00 -0800" />

<intro>

<p>I'd like to thank two folks who've helped me out with Kernel Traffic
over the past couple weeks. Folkert van Heusden with mailbox statistics,
and Jonas Berlin with URL generation for thread archives.</p>

<p>Folkert's <a href="http://www.vanheusden.com/mboxstats/">mboxstats</a>
program is really terrific, in fact it gathers way more statistics than
I actually use. Hopefully my XSLT recipes will grow into the wealth of
information provided by mboxstats.</p>

<p>Jonas replied to my call for help, to find the Google Groups URLs
for the various threads covered in KT. This is a thorny problem, because
although Groups lets you search by Message-ID, the particular lkml archive
is gated through a Usenet server so the Message-ID gets munged. Jonas
wrote a utility to scrape Google's HTML, sift through search results, and
find the links to the proper post. Anyone interested in this script can <a
href="../bin/news2googleurl-4">look it over</a>.</p>

</intro>

<mailbox-stats>
	<global-stats>
		<generated-at>Wed Feb  9 23:27:14 2005</generated-at>
		<first-message>2005/01/03 22:40:13</first-message>
		<last-message>2005/01/17 23:46:55</last-message>
		<totals>
			<n-messages>1608</n-messages>
			<total-size>10MB</total-size>
			<avg-size>6KB</avg-size>
			<n-writers>598</n-writers>
			<wrote-more-then-1-message>224</wrote-more-then-1-message>
			<n-lines>166997</n-lines>
			<header-size>85239</header-size>
			<n-user-agents>60</n-user-agents>
			<n-organisations>48</n-organisations>
			<n-toplevel-domains>45</n-toplevel-domains>
		</totals>
		<averages>
			<lines-per-message>103</lines-per-message>
			<lines-per-header>53</lines-per-header>
			<header-percent-of-message>51.04%</header-percent-of-message>
			<header-percent-of-total>41.62%</header-percent-of-total>
			<line-length>25652</line-length>
			<bits-per-byte>4.2314</bits-per-byte>
		</averages>
		<importance>
			<low>0.00%</low>
			<normal>0.50%</normal>
			<high>0.00%</high>
		</importance>

	</global-stats>
	<top-writers>
		<top-writer rank="1">
			<e-mail-addr>Adrian Bunk</e-mail-addr>
			<n-messages>53</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>313KB</total-size>
			<mostly-written-at>12:54</mostly-written-at>
		</top-writer>
		<top-writer rank="2">
			<e-mail-addr>Karim Yaghmour</e-mail-addr>
			<n-messages>41</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>311KB</total-size>
			<mostly-written-at>14:57</mostly-written-at>
		</top-writer>
		<top-writer rank="3">
			<e-mail-addr>Andreas Gruenbacher</e-mail-addr>
			<n-messages>41</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>241KB</total-size>
			<mostly-written-at>15:11</mostly-written-at>
		</top-writer>
		<top-writer rank="4">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>38</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>236KB</total-size>
			<mostly-written-at>14:23</mostly-written-at>
		</top-writer>
		<top-writer rank="5">
			<e-mail-addr>Matt Mackall</e-mail-addr>
			<n-messages>31</n-messages>
			<avg-size>4KB</avg-size>
			<total-size>118KB</total-size>
			<mostly-written-at>16:57</mostly-written-at>
		</top-writer>
	</top-writers>
	<top-subjects>
		<top-subject rank="1">
			<subject>2.6.11-rc1-mm1</subject>
			<n-messages>110</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>612KB</total-size>
			<mostly-written-at>13:13</mostly-written-at>
		</top-subject>
		<top-subject rank="2">
			<subject>[PATCH] dynamic tick patch</subject>
			<n-messages>60</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>287KB</total-size>
			<mostly-written-at>14:23</mostly-written-at>
		</top-subject>
		<top-subject rank="3">
			<subject>[patch 1/13] Qsort</subject>
			<n-messages>46</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>219KB</total-size>
			<mostly-written-at>12:50</mostly-written-at>
		</top-subject>
		<top-subject rank="4">
			<subject>seccomp for 2.6.11-rc1-bk8</subject>
			<n-messages>29</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>150KB</total-size>
			<mostly-written-at>12:27</mostly-written-at>
		</top-subject>
		<top-subject rank="5">
			<subject>Announce loop-AES-v3.0b file/swap crypto package</subject>
			<n-messages>26</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>108KB</total-size>
			<mostly-written-at>16:26</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>302</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>3MB</total-size>
			<mostly-written-at>13:56</mostly-written-at>
		</top-receiver>
		<top-receiver rank="2">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>211</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>13:48</mostly-written-at>
		</top-receiver>
		<top-receiver rank="3">
			<e-mail-addr>Linus Torvalds</e-mail-addr>
			<n-messages>43</n-messages>
			<avg-size>14KB</avg-size>
			<total-size>588KB</total-size>
			<mostly-written-at>12:10</mostly-written-at>
		</top-receiver>
		<top-receiver rank="4">
			<e-mail-addr>Karim Yaghmour</e-mail-addr>
			<n-messages>41</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>227KB</total-size>
			<mostly-written-at>11:18</mostly-written-at>
		</top-receiver>
		<top-receiver rank="5">
			<e-mail-addr>Greg KH</e-mail-addr>
			<n-messages>28</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>168KB</total-size>
			<mostly-written-at>13:43</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>624</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>4MB</total-size>
			<mostly-written-at>13:54</mostly-written-at>
		</top-ccers>
		<top-ccers rank="2">
			<e-mail-addr>Andrew Morton</e-mail-addr>
			<n-messages>163</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>13:51</mostly-written-at>
		</top-ccers>
		<top-ccers rank="3">
			<e-mail-addr>greg@kroah.com</e-mail-addr>
			<n-messages>47</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>235KB</total-size>
			<mostly-written-at>12:49</mostly-written-at>
		</top-ccers>
		<top-ccers rank="4">
			<e-mail-addr>Andi Kleen</e-mail-addr>
			<n-messages>46</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>289KB</total-size>
			<mostly-written-at>13:08</mostly-written-at>
		</top-ccers>
		<top-ccers rank="5">
			<e-mail-addr>Andi Kleen</e-mail-addr>
			<n-messages>42</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>187KB</total-size>
			<mostly-written-at>14:44</mostly-written-at>
		</top-ccers>
	</top-ccers>
	<top-level-domains>
		<tld rank="1">
			<name>com</name>
			<freq>585</freq>
		</tld>
		<tld rank="2">
			<name>org</name>
			<freq>324</freq>
		</tld>
		<tld rank="3">
			<name>de</name>
			<freq>249</freq>
		</tld>
		<tld rank="4">
			<name>net</name>
			<freq>80</freq>
		</tld>
		<tld rank="5">
			<name>cz</name>
			<freq>47</freq>
		</tld>
	</top-level-domains>
	<top-timezones>
		<tz rank="1">
			<name>+0100</name>
			<freq>601</freq>
		</tz>
		<tz rank="2">
			<name>-0800</name>
			<freq>379</freq>
		</tz>
		<tz rank="3">
			<name>-0500</name>
			<freq>200</freq>
		</tz>
		<tz rank="4">
			<name>+0000</name>
			<freq>122</freq>
		</tz>
		<tz rank="5">
			<name>+1100</name>
			<freq>92</freq>
		</tz>
	</top-timezones>
	<top-organisations>
		<org rank="1">
			<name>Opersys inc.</name>
			<freq>41</freq>
		</org>
		<org rank="2">
			<name>MontaVista Software</name>
			<freq>13</freq>
		</org>
		<org rank="3">
			<name>SUSE Labs</name>
			<freq>12</freq>
		</org>
		<org rank="4">
			<name>OSDL</name>
			<freq>11</freq>
		</org>
		<org rank="5">
			<name>The Domain of Holomorphy</name>
			<freq>10</freq>
		</org>
	</top-organisations>
	<top-user-agents>
		<useragent rank="1">
			<name>Mozilla</name>
			<freq>41</freq>
		</useragent>
		<useragent rank="2">
			<name>Mutt/1.5.6+20040907i</name>
			<freq>36</freq>
		</useragent>
		<useragent rank="3">
			<name>Evolution</name>
			<freq>34</freq>
		</useragent>
		<useragent rank="4">
			<name>Mozilla/5.0</name>
			<freq>30</freq>
		</useragent>
		<useragent rank="5">
			<name>Mutt/1.4.1i</name>
			<freq>24</freq>
		</useragent>
	</top-user-agents>
	<messages-per-day>
		<Sunday>201</Sunday>
		<Monday>254</Monday>
		<Tuesday>310</Tuesday>
		<Wednesday>187</Wednesday>
		<Thursday>161</Thursday>
		<Friday>305</Friday>
		<Saturday>187</Saturday>
	</messages-per-day>
	<messages-per-month>
		<Jan>1605</Jan>
		<Feb>0</Feb>
		<Mar>0</Mar>
		<Apr>0</Apr>
		<May>0</May>
		<Jun>0</Jun>
		<Jul>0</Jul>
		<Aug>0</Aug>
		<Sep>0</Sep>
		<Oct>0</Oct>
		<Nov>0</Nov>
		<Dec>0</Dec>
	</messages-per-month>
	<messages-per-day-of-month>
		<day-1>0</day-1>
		<day-2>0</day-2>
		<day-3>1</day-3>
		<day-4>4</day-4>
		<day-5>0</day-5>
		<day-6>3</day-6>
		<day-7>2</day-7>
		<day-8>0</day-8>
		<day-9>0</day-9>
		<day-10>0</day-10>
		<day-11>0</day-11>
		<day-12>0</day-12>
		<day-13>5</day-13>
		<day-14>38</day-14>
		<day-15>31</day-15>
		<day-16>45</day-16>
		<day-17>39</day-17>
		<day-18>64</day-18>
		<day-19>71</day-19>
		<day-20>138</day-20>
		<day-21>265</day-21>
		<day-22>156</day-22>
		<day-23>156</day-23>
		<day-24>214</day-24>
		<day-25>242</day-25>
		<day-26>116</day-26>
		<day-27>15</day-27>
		<day-28>0</day-28>
		<day-29>0</day-29>
		<day-30>0</day-30>
		<day-31>0</day-31>
	</messages-per-day-of-month>
	<messages-per-hour>
		<hour-1>44</hour-1>
		<hour-2>35</hour-2>
		<hour-3>26</hour-3>
		<hour-4>14</hour-4>
		<hour-5>16</hour-5>
		<hour-6>18</hour-6>
		<hour-7>33</hour-7>
		<hour-8>61</hour-8>
		<hour-9>81</hour-9>
		<hour-10>74</hour-10>
		<hour-11>118</hour-11>
		<hour-12>79</hour-12>
		<hour-13>81</hour-13>
		<hour-14>89</hour-14>
		<hour-15>114</hour-15>
		<hour-16>111</hour-16>
		<hour-17>91</hour-17>
		<hour-18>98</hour-18>
		<hour-19>51</hour-19>
		<hour-20>62</hour-20>
		<hour-21>85</hour-21>
		<hour-22>81</hour-22>
		<hour-23>71</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="Linux 2.6.11-rc1-mm1 Released; FUSE And LTT (With relayfs) Included"
  subject="2.6.11-rc1-mm1"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/ada9aff5ad36e17e"
  posts="144"
  startdate="14 Jan 2005 00:23:52 -0800"
  enddate="25 Jan 2005 01:12:38 -0800"
>
<topic>Extended Attributes</topic>
<topic>FS: ext3</topic>
<topic>Kernel Release Announcement</topic>
<topic>Samba</topic>
<topic>Security</topic>
<topic>Version Control</topic>

<mention>Masami Hiramatsu</mention>

<p>Andrew Morton announced Linux 2.6.11-rc1-mm1, saying:</p>

<quote who="Andrew Morton">

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

<p>

<ul>

<li>Added bk-xfs to the -mm "external trees" lineup.</li>

<li>

<p>Added the Linux Trace Toolkit (and hence relayfs).  Mainly because I
  haven't yet taken as close a look at LTT as I should have.  Probably neither
  have you.</p>

<p>  It needs a bit of work on the kernel&lt;-&gt;user periphery, which is not a big
  deal.</p>

<p>  As does relayfs, IMO.  It seems to need some regularised way in which a
  userspace relayfs client can tell relayfs what file(s) to use.  LTT is
  currently using some ghastly stick-a-pathname-in-/proc thing.  Relayfs
  should provide this service.</p>

<p>  relayfs needs a closer look too.  A lot of advanced instrumentation
  projects seem to require it, but none of them have been merged.  Lots of
  people say "use netlink instead" and lots of other people say "err, we think
  relayfs is better".  This is a discussion which needs to be had.</p>

</li>

<li>The 2.6.10-mm3 announcement was munched by the vger filters, sorry.  One of
  the uml patches had an inopportune substring in its name (oh pee tee hyphen
  oh you tee).  Nice trick if you meant it ;)</li>

<li>Big update to the ext3 extended attribute support.  agruen, tridge and sct
  have been cooking this up for a while.  samba4 proved to be a good
  stress test.</li>

<li>davej's "2.6 post-Halloween features" document has been added to -mm as
  Documentation/feature-list-2.6.txt in the hope that someone will review it
  and help keep it up-to-date.</li>

<li>Added FUSE (filesystem in userspace) for people to play with.  Am agnostic
  as to whether it should be merged (haven't read it at all closely yet,
  either), but I am impressed by the amount of care which has obviously gone
  into it.  Opinions sought.</li>

</ul>

</p>

</quote>

<p>The FUSE developers had been trying like the dickens to get FUSE into the
main kernel. Getting into the -mm tree was a major step, and Miklos Szeredi,
Kasper Sandberg, and Andre Eisenbach all expressed joy and happiness. Andre
said:</p>

<quote who="Andre Eisenbach">

<p>As a long time user of KDE's kio-slaves, I was always missing the
kio-slave functionality on the command line and in non-kde programs.
FUSE provides a kio-slave interface, but hopefully the inclusion of
FUSE in the mm-kernel  will cause more "fuse native" filesystems to
come out which provide the functionality of the various kio-slaves.</p>

<p>Some things I'd like to see (as I am currently using the KIO
equivalent) implemented as FUSE fs:</p>

<p>

<ul>

<li>"fish", virtual file access over ssh</li>

<li>"audiocd", virtual audio cd filesystem which copies and encodes
audio tracks on the fly</li>

<li>"ftp", virtual file system ftp server access</li>

<li>etc..</li>

</ul>

</p>

<p>Imagination is the limit, and since it can be implemented in userspace
pretty easily with FUSE, I am looking forward to see what people can
come up with and hope that FUSE is here to stay.</p>

</quote>

<p>Miklos replied that 'fish' was already available at <a
href="http://sourceforge.net/projects/fuse">http://sourceforge.net/projects/fuse</a>,
although <quote who="Miklos Szeredi">You need to dowload fuse-2.2-pre3 and
sshfs-1.0.  It should work on any kernel including the 2.6.10-rc1-mm1 with
FUSE compiled in.</quote></p>

<p>Andrew Morton asked Kasper, one of the other FUSE enthusiasts, what
FUSE-based filesystems he used, and why. Rog&#233;rio Brito replied, <quote
who="Rog&#233;rio Brito">I have never used a -mm kernel tree before, but
seeing that fuse got included made me download the patch to try it.I'll be
using gmailfs (which needs fuse) just to see how things work with Debian's
testing (sarge) userland.</quote> Peter Buckingham also said to Andrew,
<quote who="Peter Buckingham">we're currently prototyping a lightweight
network filesystem proxy using fuse.</quote> And Matthias Urlichs said that
he currently used <quote who="Matthias Urlichs">sshfs (best idea for file
access through firewalls).  gmailfs (best free off-site backup facility).
Will use encfs as soon as FUSE is in mainline (I'm using cryptoloop now,
but that's not sanely backupable.)</quote> Kasper had nothing to add.</p>

<p>The other big topic of the thread was relayfs, which got a more measured
reaction. Andi Kleen said:</p>

<quote who="Andi Kleen">

<p>relayfs and netlink are for completely problem spaces.  relayfs is for
relaying a lot of data quickly (e.g. for kernel instrumentation). There
it fills a niche that printk doesn't fill (since it's too slow). netlink
is quite slow (allocates data for each event, does lots of other gunk),
but an useful extensible format for low frequency events.</p>

<p>For the problems that relayfs solves netlink is totally unusable due to
low efficiency (you could as well use printk, but that is also to slow). I
think a low overhead logging mechanism is very much needed, because I find
myself reinventing it quite often when I need to debug some timing sensitive
problem. Trying to tackle these with printk is hopeless because it changes
timing too much.</p>

<p>The problem relayfs has IMHO is that it is too complicated. It seems to
either suffer from a overfull specification or second system effect. There
are lots of different options to do everything, instead of a nice simple
fast path that does one thing efficiently.  IMHO before merging it should go
through a diet and only keep the paths that are actually needed and dropping
a lot of the current baggage.</p>

<p>Preferably that would be only the fastest options (extremly simple per
CPU buffer with inlined fast path that drop data on buffer overflow), with
leaving out anything more complicated. My ideal is something like the old
SGI ktrace which was an extremly simple mechanism to do lockless per CPU
logging of binary data efficiently and reading that from a user daemon.</p>

</quote>

<p>Roman Zippel felt that relayfs should indeed be merged, though
its API should be declared unstable as developers worked to simplify
it. He agreed with Andi about relayfs' overcomplexity, saying, <quote
who="Roman Zippel">relayfs should resemble a very simple pipe, maybe making
it possible to writing them directly to disk.</quote> Close by, Masami
Hiramatsu suggested a project he was working on as a simpler replacement to
relayfs: <a href="http://lkst.sourceforge.net/">Linux Kernel State Tracer
(LKST)</a>. Andi encouraged him to publish his code for review, and Masami
said the latest version only supported kernel 2.6.9; he added that he'd port
it up to the latest kernel as soon as he could.</p>

<p>Also in reply to Andi's first post, Karim Yaghmour, one of the relayfs
developers, said the relayfs folks would consider "reasonable" changes, but
he also felt a lot of what Andi considered unnecessary was actually quite
useful. The subthread veered into technical considerations at that point.</p>

<p>Elsewhere, Thomas Gleixner replied more harshly to Andrew's initial
announcement regarding relayfs, or more precisely LTT as a whole. He thought
the code was way too big, adding 150K to the source tree just for debugging. He
suggested, <quote who="Thomas Gleixner">I don't see any real advantage over
a nice implemented per cpu ringbuffer, which is lock free and does not add
variable timed delays in the log path. Don't tell me that a ringbuffer
is not suitable, it's a question of size and it is the same problem for
relayfs. If you don't have enough buffers it does not work. This applies for
every implementation of tracebuffering you do. In space constraint systems
relayfs is even worse as it needs more memory than the plain ringbuffer.
The ringbuffer has a nice advantage. In case the system crashes you can
retrieve the last and therefor most interesting information from the ringbuffer
without any hassle via BDI or in the worstcase via a serial dump. You can
even copy the tail of the buffer into a permanent storage like buffered SRAM
so it can be retrieved after reboot.</quote> His post was quite a bit longer,
all critical, and Karim replied:</p>

<quote who="Karim Yaghmour">

<p>Granted tracing is not free, but please avoid spreading FUD without
actually carrying out proper testing. We've done quite a large number of
tests and we've demonstrated over and over that LTT, and ltt-over- relayfs,
is actually very efficient. If you're interested in actual test data, then
you may want to check out the following:</p>

<p><a
href="http://www.opersys.com/ftp/pub/LTT/Documentation/ltt-usenix.ps.gz">http://www.opersys.com/ftp/pub/LTT/Documentation/ltt-usenix.ps.gz</a></p>

<p><a
href="http://lwn.net/Articles/13870/">http://lwn.net/Articles/13870/</a></p>

<p>We are aware of the cost of the various tracing components, as you can see
by my earlier posting about early-checking to minimize the cost of the tracing
hooks for kernel compiled with them, and are open for any optimization. If
you have any concrete suggestions, save the scrap-everything-I-know-better
(which is really unproductive as you would anyway have to go down the same
path we have), we are more than willing to entertain them.</p>

</quote>

<p>Thomas replied, <quote who="Thomas Gleixner">Yes, the "you would anyway
have to go down the same path we have" argument really scares me away from
doing so.  I don't buy this kind of arguments.</quote> But Andrew Morton
said, <quote who="Andrew Morton">I do. When someone has been working on
a real-world project for several years we *need* to understand all the
problems which that person encountered before we can competently review the
implementation.  Surely you've been there before: you throw out all the old
stuff, write a new one and once you've addressed all the warts and corner
cases and weird-but-valid requirements it ends up with the same complexity
as the original.</quote></p>

<p>The rest of the subthread degenerated into bickering between Thomas and
Karim.</p>

</section>

<section
  title="Loop-AES Version 3.0b Crypto Package Released"
  subject="Announce loop-AES-v3.0b file/swap crypto package"
  archive="http://groups-beta.google.com/group/nlo.lists.linux-crypto/msg/79783d0b72aa9437"
  posts="26"
  startdate="16 Jan 2005 13:58:07 -0800"
  enddate="21 Jan 2005 10:29:18 -0800"
>
<topic>Advanced Encryption Standard</topic>
<topic>BSD: FreeBSD</topic>
<topic>Ioctls</topic>

<mention>Bill Davidsen</mention>

<p>Jari Ruusu said:</p>

<quote who="Jari Ruusu">

<p>loop-AES changes since previous release:</p>

<p>

<ul>

<li>Fixed externally compiled module version multi-key-v3 ioctl
  incompatibility with boxes running 64 bit kernel and 32 bit userland.
  Kernel patch versions were not affected (2.4 and 2.6 kernels).</li>

<li>Fixed bug that made v3 on-disk format always use file backed code path on
  some 2.6 kernels that did not have LO_FLAGS_DO_BMAP defined. No data loss,
  but file backed code path is not journaled file system safe. Same bug also
  had cosmetic side effect of "losetup -a" status query always displaying
  file backed v2 on-disk format as v3 on-disk format.</li>

</ul>

</p>

<p>bzip2 compressed tarball is here:</p>

<p>    <a href="http://loop-aes.sourceforge.net/loop-AES/loop-AES-v3.0b.tar.bz2">http://loop-aes.sourceforge.net/loop-AES/loop-AES-v3.0b.tar.bz2</a><br />
    md5sum b295ff982cd4503603b38fdc54e604cc</p>

<p>    <a href="http://loop-aes.sourceforge.net/loop-AES/loop-AES-v3.0b.tar.bz2.sign">http://loop-aes.sourceforge.net/loop-AES/loop-AES-v3.0b.tar.bz2.sign</a></p>

</quote>

<p>Bill Davidsen asked if this would ever make it into the official tree,
and Jari replied, <quote who="Jari Ruusu">Unlikely to go to mainline
kernel.  Mainline folks are just too much in love with their backdoored <a
href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=107419912024246&amp;w=2">device
crypto</a> implementations. If you want strong device crypto in mainline
kernel, maybe you should take a look at FreeBSD gbde.</quote></p>

<p>A number of folks took Jari to task over his use of the term 'backdoor',
which implied an intentional deception; and folks debated for awhile.</p>

</section>

<section
  title="plugsched Version 2.0 Released; Some Discussion Of Official Inclusion"
  subject="[ANNOUNCE][RFC] plugsched-2.0 patches ..."
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/bb3b57c626ba0ed1"
  posts="11"
  startdate="19 Jan 2005 17:23:25 -0800"
  enddate="21 Jan 2005 13:20:08 -0800"
>
<topic>Big O Notation</topic>
<topic>FS: sysfs</topic>
<topic>Scheduler</topic>

<mention>Ingo Molnar</mention>
<mention>William Lee Irwin III</mention>
<mention>Andrew Morton</mention>

<p>Peter Williams that his plugsched-2.0
patches <quote who="Peter Williams">are now available from: &lt;<a
href="http://prdownloads.sourceforge.net/cpuse/plugsched-2.0-for-2.6.10.patch?download">http://prdownloads.sourceforge.net/cpuse/plugsched-2.0-for-2.6.10.patch?download</a>&gt;
as a single patch to linux-2.6.10 and at: &lt;<a
href="http://prdownloads.sourceforge.net/cpuse/plugsched-2.0-for-2.6.10.patchset.tar.gz?download">http://prdownloads.sourceforge.net/cpuse/plugsched-2.0-for-2.6.10.patchset.tar.gz?download</a>&gt;
as a (gzipped and tarred) patch set including "series" file which nominates
the order of application of the patches.</quote> He went on:</p>

<quote who="Peter Williams">

<p>This is an update of the earlier version of plugsched (previously released
by Con Kolivas) and has a considerably modified scheduler interface that
is intended to reduce the amount of code duplication required when adding a
new scheduler.  It also contains a sysfs interface based on work submitted
by Chris Han.</p>

<p>This version of plugsched contains 4 schedulers:</p>

<p>

<ol>

<li>"ingosched" which is the standard active/expired array O(1) scheduler
created by Ingo Molnar,</li>

<li>"staircase" which is Con Kolivas's version 10.5 O(1) staircase
scheduler,</li>

<li> "spa_no_frills" which is a single priority array O(1) scheduler without
any interactive response enhancements, etc., and</li>

<li>"zaphod" which is a single priority array O(1) scheduler with interactive
response bonuses, throughput bonuses and a choice of priority based or
entitlement based interpretation of "nice".</li>

</ol>

</p>

<p>Schedulers 3 and 4 also offer unprivileged real time tasks and hard/soft
per task CPU rate caps.</p>

<p>The required scheduler can be selected at boot time by supplying a string
of the form "cpusched=&lt;name&gt;" where &lt;name&gt; is one of the names
listed above.</p>

<p>The default scheduler (that will be used in the absence of a "cpusched"
boot argument) can be configured at build time and is set to "ingosched"
by default.</p>

<p>The file /proc/scheduler contains a string describing the current
scheduler.</p>

<p>The directory /sys/cpusched/&lt;current scheduler name&gt;/ contains
any scheduler configuration control files that may apply to the current
scheduler.</p>

</quote>

<p>Kasper Sandberg was very pleased to see this work going forward, and Marc E.
Fiuczynski put it more historically:</p>

<quote who="Marc E. Fiuczynski">

<p>Peter, thank you for maintaining Con's plugsched code in light of Linus'
and Ingo's prior objections to this idea.  On the one hand, I partially agree
with Linus&amp;Ingo's prior views that when there is only one scheduler that
the rest of the world + dog will focus on making it better. On the other
hand, having a clean framework that lets developers in a clean way plug in
new schedulers is quite useful.</p>

<p>Linus &amp; Ingo, it would be good to have an indepth discussion on this
topic.  I'd argue that the Linux kernel NEEDS a clean pluggable scheduling
framework.</p>

<p>Let me make a case for this NEED by example.  Ingo's scheduler belongs
to the egalitarian regime of schedulers that do a poor job of isolating
workloads from each other in multiprogrammed environments such as those found
on Enterprise servers and in my case on PlanetLab (www.planet-lab.org) nodes.
This has been rectified by HP-UX, Solaris, and AIX through the use of fair
share schedulers that use O(1) schedulers within a share.  Currently PlanetLab
uses a CKRM modified version of Ingo's scheduler.  Similarly, the linux-vserver
project also modifies Ingo's scheduler to construct an entitlement based
scheduling regime. These are not just variants of O(1) schedulers in the sense
of Con's staircase O(1). Nor is it clear what the best type of scheduler is for
these environments (i.e., HP-UX, Solaris and AIX don't have it fully solved
yet either). The ability to dynamically swap out schedulers on a production
system like PlanetLab would help in determining what type of scheduler is
the most appropriate.  This is because it is non-trivial, if not impossible,
to recreate the multiprogrammed workloads that we see in a lab.</p>

<p>For these reasons, it would be useful for plugsched (or something like
it) to make its way into the mainline kernel as a framework to plug in
different schedulers.  Alternatively, it would be useful to consider in what
way Ingo's scheduler needs to support plugins such as the CKRM and Vserver
types of changes.</p>

</quote>

<p>Peter remarked, <quote who="Peter Williams">I'm hoping that the CKRM
folks will send me a patch to add their scheduler to plugsched :-)</quote>
Marc replied, <quote who="Marc E. Fiuczynski">They are planning to release a
patch against 2.6.10.  But their patch wont stand alone against 2.6.10 and
so it might be difficult for you to integrate their code into a scheduler
for plugsched.</quote> Shailabh Nagar, who had done work on the project,
replied:</p>

<quote who="Shailabh Nagar">

<p>Thats true. The current CKRM CPU scheduler is not a standalone
component...if it were made one, it would need a non-CKRM interface to define
classes, set their shares etc.</p>

<p>However, we have not investigated the possibility of making our CPU
scheduler a pluggable one that could be loaded into a kernel equipped with
the plugsched patches AND the CKRM framework. This should be possible but
not a high priority until there is more  consensus for having CPU schedulers
pluggable at all  (we have more basic stuff to fix in our scheduler such as
load balancing).</p>

<p>Of course, we're more than happpy to work with someone willing to chip
in and make our scheduler pluggable.</p>

</quote>

<p>Elsewhere, Valdis Kletnieks suggested including plugsched in Andrew Morton's
-mm series, comparing the situation to the disk elevator code. He said, <quote
who="Valdis Kletnieks">we started with one disk elevator, and now we have 3
or 4 that are selectable on the fly after some banging around in -mm.</quote>
[...] <quote who="Valdis Kletnieks">All the arguments that support having
more than one elevator apply equally well to the CPU scheduler....</quote>
Jens Axboe, on the other hand, felt the two were completely different kettles
of fish. He said, <quote who="Jens Axboe">Yes they are both schedulers,
but that's about where the 'similarity' stops. The CPU scheduler must be
really fast, overhead must be kept to a minimum. For a disk scheduler,
we can affort to burn cpu cycles to increase the io performance. The extra
abstraction required to fully modularize the cpu scheduler would come at a
non-zero cost as well, but I bet it would have a larger impact there. I doubt
you could measure the difference in the disk scheduler.</quote> He added,
<quote who="Jens Axboe">There are vast differences between io storage devices,
that is why we have different io schedulers. I made those modular so that
the desktop user didn't have to incur the cost of having 4 schedulers when
he only really needs one.</quote></p>

<p>Marc replied, <quote who="Marc E. Fiuczynski">Modularization usually is
done through a level of indirection (function pointers).  I have a can of
"indirection be gone" almost ready to spray over the plugsched framework
that would reduce the overhead to zero at runtime.  I'd be happy to finish
that work if it makes it more palpable to integrate a plugsched framework
into the kernel?</quote> Con Kolivas replied, <quote who="Con Kolivas">The
indirection was a minor point. On modern cpus it was suggested by wli</quote>
[William Lee Irwin III] <quote who="Con Kolivas">that this would not be a
demonstrable hit in perormance. Having said that, I'm sure Peter would be happy
for another developer. I know how tiring and lonely it can feel maintaining
such a monster.</quote> Peter agreed whole-heartedly that <quote who="Peter
Williams">the more hands the lighter the load.</quote> He went on:</p>

<quote who="Peter Williams">

<p>Another issue (than indirection) that I think needs to be addressed at
some stage is freeing up the memory occupied by the code of the schedulers
that were unlucky not to be picked.  Something like what __init offers only
more selective.</p>

<p>And the option of allowing more than one CPU per run queue is another
direction that needs addressing.  This could allow a better balance between
the good scheduling fairness that is obtained by using a single run queue
with the better scalability obtained by using separate run queues.</p>

</quote>

<p>But this idea was not explored further during the thread.</p>

</section>

<section
  title="Linux 2.6.11-rc1-mm2 Released"
  subject="2.6.11-rc1-mm2"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/b4c2a41c5b0e86d4"
  posts="23"
  startdate="19 Jan 2005 21:38:18 -0800"
  enddate="21 Jan 2005 14:43:59 -0800"
>
<topic>Ioctls</topic>
<topic>Kernel Release Announcement</topic>
<topic>Kexec</topic>

<p>Andrew Morton announced Linux 2.6.11-rc1-mm2, saying:</p>

<quote who="Andrew Morton">

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

<p>

<ul>

<li>There are a bunch of ioctl() and compat_ioctl() changes in here which
seem to be of dubious maturity.  Could people involved in this area please
review, test and let me know?</li>

<li>A revamp of the kexec and crashdump patches.  Anyone who is interested
in this work, please help to get this ball rolling a little faster?</li>

<li>This kernel isn't particularly well-tested, sorry.  I've been a bit tied
up with other stuff.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Status Of RelayFS"
  subject="[PATCH] relayfs redux for 2.6.10: lean and mean"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/c55cc629bca75a8a"
  posts="11"
  startdate="19 Jan 2005 22:23:48 -0800"
  enddate="23 Jan 2005 00:07:41 -0800"
>
<topic>FS: procfs</topic>

<p>Karim Yaghmour said:</p>

<quote who="Karim Yaghmour">

<p>I've reworked the relayfs patch extensively. The API and internals have
been heavily purged. The patch is in fact almost HALF! its original size,
loosing 90KB and going from 200KB to 110KB.</p>

<p>Here's a summary of changes:</p>

<p>

<ul>

<li>Dropped the lockless scheme (complaints from Christoph, Arjan,
  Ingo, Andrew, etc. regarding the debatable efficiency of cmpxchng
  over traditional locks.)</li>

<li>Dropped the resizing capabilities (Andi, Christoph, etc.)</li>

<li>Dropped all user-space read/write capabilities (Andi, Christoph,
  Roman, Tim, etc.) Basically this is about making relayfs do
  one thing and do it good: transfer high volumes of data to
  user-space as efficiently as possible.</li>

<li>Implemented the ad-hoc mode. This mode contrasts with the
  managed mode (old locking scheme) in that it manages only
  one ring buffer, doesn't care about outside synchronization,
  and is basically the most basic buffer scheme one could have.
  (ongoing discussion with Roman on this issue.)</li>

<li>Dropped the klog client (Greg).</li>

<li>Modified API to use pointers instead of IDs (Roman).</li>

<li>Miscallaneous cleanups (Domen).</li>

<li>Miscallaneous rearrangement of code (me).</li>

</ul>

</p>

<p>I've tested this with a hacked ltt patch and I can get it
to collect data in the managed mode without a problem.
Reading the data though is another story, I'll update the
LTT patch once I know where the relayfs stuff is heading.
Beware: don't try to use the ltt code in Andrew's tree with
this relayfs, it's a completely different beast.</p>

<p>So without further ado, here's the code. I've removed the
Documentation/filesystems/relayfs.txt file for now (no, don't
worry that's not part of the 90KB that went away ;). It's
probably going to need some rewriting before we're done,
so let's not get distracted by it for now.</p>

<p>Karim</p>

<p>The full patch is here:<br />
<a href="http://www.opersys.com/ftp/pub/relayfs/patch-relayfs-redux-2.6.10-050120-real">http://www.opersys.com/ftp/pub/relayfs/patch-relayfs-redux-2.6.10-050120-real</a><br />
<a href="http://www.opersys.com/ftp/pub/relayfs/patch-relayfs-redux-2.6.10-050120-real.bz2">http://www.opersys.com/ftp/pub/relayfs/patch-relayfs-redux-2.6.10-050120-real.bz2</a></p>

</quote>

<p>Greg KH and Pekka Enberg read the patch and offered specific suggestions.
Then on an architectural note, Greg said:</p>

<quote who="Greg KH">

<p>Hm, how about this idea for cutting about 500 more lines from the code:</p>

<p>Why not drop the "fs" part of relayfs and just make the code a set of
struct file_operations.  That way you could have "relayfs-like" files in
any ram based file system that is being used.  Then, a user could use these
fops and assorted interface to create debugfs or even procfs files using
this type of interface.</p>

<p>As relayfs really is almost the same (conceptually wise) as debugfs as
far as concept of what kinds of files will be in there (nothing anyone would
ever rely on for normal operations, but for debugging only) this keeps users
and developers from having to spread their debugging and instrumenting files
from accross two different file systems.</p>

</quote>

<p>Karim replied:</p>

<quote who="Karim Yaghmour">

<p>However this assumes that the users of relayfs are not going to want it
during normal system operation. This is an assumption that fails with at
least LTT as it is targeted at sysadmins, application developers and power
users who need to be able to trace their systems at any time.</p>

<p>I don't mind piggy-backing off another fs, if it makes sense, but unlike
debugfs, relayfs is meant for general use, and all files in there are of the
same type: relay channels for dumping huge amounts of data to user-space. It
seems to me the target audience and basic idea (relay channels only in
the fs) are different, but let me know if there's a compeling argument for
doing this in another way without making it too confusing for users of those
special "files" (IOW, when this starts being used in distros, it'll be more
straightforward for users to understand if all files in a mounted fs behave
a certain way than if they have certain "odd" files in certain directories,
even if it's /proc.)</p>

</quote>

<p>Greg asked, <quote who="Greg KH">since you are proposing that relayfs be
mounted all the time, where do you want to mount it at?  I had to provide a
"standard" location for debugfs for people to be happy with it, and the same
issue comes up here.</quote> Karim replied, <quote who="Karim Yaghmour">this is
a very good question. We've taken to the habit of having a /relayfs. If this
is too problematic, I don't see any problem with /mnt/relayfs also. In either
case, I have to admit frankly that I'm not familiar with the exact formal
rules for introducing something like this. Of course I'm aware of the FHS and
LSB, but let me know what you think is the best way to proceed here.</quote>
However, the conversation did not continue on the mailing list.</p>

</section>

<section
  title="Some Debate Over OOM Killer Future"
  subject="oom killer gone nuts"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/9633559fea029f6e"
  posts="13"
  startdate="20 Jan 2005 04:34:06 -0800"
  enddate="21 Jan 2005 00:46:07 -0800"
>
<topic>Big Memory Support</topic>
<topic>OOM Killer</topic>
<topic>Virtual Memory</topic>

<mention>Jens Axboe</mention>
<mention>Andrew Morton</mention>

<p>Jens Axboe reported problems with the OOM (out-of-memory) killer, where it
would kill processes apparently indiscriminately, even though there was plenty
of RAM free. Andries Brouwer remarked sardonically that the OOM killer should
just be removed entirely as a failed idea. But Marcelo Tosatti replied:</p>

<quote who="Marcelo Tosatti">

<p>There is a user requirement for overcommit mode, you know.</p>

<p>Saying "hey, there's no more overcommit mode in future v2.6 releases, you
run out of memory and get -ENOMEM" is not really an option is it?</p>

<p>You propose to remove the OOM killer and do what? Lockup solid?</p>

<p>It is _WAY_ off right now: look at the amount of free pages:</p>

<p>DMA free:4536kB min:60kB low:72kB high:88kB active:0kB inactive:0kB present:16384kB pages_scanned:0 all_unreclaimable? no protections[]: 0 0 0<br />
Normal free:524648kB min:4028kB low:5032kB high:6040kB active:76508kB inactive:81760kB present:1031360kB pages_scanned:0 all_unreclaimable? no protections[]: 0 0 0<br />
HighMem free:0kB min:128kB low:160kB high:192kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no protections[]: 0 0 0<br />
DMA: 556*4kB 155*8kB 65*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 4536kB<br />
Normal: 29800*4kB 25115*8kB 6953*16kB 1251*32kB 326*64kB 103*128kB 31*256kB 12*512kB 3*1024kB 1*2048kB 0*4096kB = 524648kB<br />
HighMem: empty</p>

<p>v2.4 gets it pretty much right for most cases, and its obviously screwed up
right now in v2.6.</p>

<p>Andrea/Thomas were working on getting it fixed ??</p>

</quote>

<p>Andries replied:</p>

<quote who="Andries Brouwer">

<p>Right now we have three overcommit modes.
They are specified by:</p>

<p>0: overcommit, but keep it reasonable (the current default)<br />
1: overcommit, always say yes<br />
2: keep track of all our obligations, do not overcommit</p>

<p>So, one has the right to expect that no OOM situation can occur in
overcommit mode 2. But in 2.6.10 it can. That is a bug.  The conclusion must
be that bookkeeping is done incorrectly.  Perhaps also mode 0 is affected
by that same bug.</p>

<p>Now you ask what I propose. There is no hurry worrying about that -
the first thing should be to fix the bookkeeping problem.</p>

<p>But assume that fixed. Then everybody can run in mode 2 and never have
any problems. That is what I do.</p>

<p>Yes, you say, but that is an inefficient use of memory. Perhaps.  That is
the price I am willing to pay for the guarantee that my processes are not
killed at some random moment.</p>

<p>But if someone else does not do anything of importance and doesnt care
if his processes die at arbitrary moments if only things go as fast as
possible and use as much of his precious memory as possible, then also for
him overcommit mode 2 can be useful.  It is accompanied by the variable
overcommit_ratio R - the amount of memory that can be used is Swap +
Memory*(R/100). Here R can be larger than 100, so in overcommit mode 2
one can specify very precisely what amount of overcommitment is considered
acceptable.</p>

<p>Very few people run overcommit mode 2, and lots of things are badly
tested. It cannot become the default today.  But I would like to see it the
default at some future moment.</p>

</quote>

<p>Close by, Andrea Arcangeli replied to Marcelo:</p>

<quote who="Andrea Arcangeli">

<p>I'm working on fixing it, not just tuning it. The bugs in mainline aren't
about the selection algorithm (which is normally what people calls oom
killer). The bugs in mainline are about being able to kill a task reliably,
regardless of which task we pick, and every linux kernel out there has always
killed some task when it was oom. So the bugs are just obvious regressions
of 2.6 if compared to 2.4.</p>

<p>But this is all fixed now, I'm starting sending the first patches to Andrew
very shortly (last week there was still the oracle stuff going on). Now I
can fix the rejects.</p>

<p>I will guarantee nothing about which task will be picked (that's the old
code at works, I changed not a bit in what normally people calls "the oom
killer", plus the recent improvement from Thomas), but I guarantee the VM
won't kill tasks right and left like it does now (i.e. by invoking the oom
killer multiple times).</p>

</quote>

<p>Andries was very skeptical, and insisted that the default should be to not
kill any processes. But the discussion petered out at this point. However,
Andrea later posted a bunch of patches for various fixes in this area;
and it looked as though Andrew Morton was in the process of applying them
to his -mm tree.</p>

</section>

<section
  title="Mysterious Disk-Space Reportage"
  subject="negative diskspace usage"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/2dbb10a1304094be"
  posts="8"
  startdate="21 Jan 2005 06:11:06 -0800"
  enddate="24 Jan 2005 01:07:12 -0800"
>
<topic>FS: ext3</topic>

<p>Wichert Akkerman reported:</p>

<quote who="Wichert Akkerman">

<p>After cleaning up a bit df suddenly showed interesting results:</p>

<pre>Filesystem            Size  Used Avail Use% Mounted on
/dev/md4             1019M  -64Z  1.1G 101% /tmp</pre>

<pre>Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md4               1043168 -73786976294838127736   1068904 101% /tmp</pre>

<p>This is on a ext3 filesystem on a 2.6.10-ac10 kernel.</p>

</quote>

<p>Andries Brouwer replied:</p>

<quote who="Andries Brouwer">

<p>The Used column is total-free, so free was 2^66 + 964440.  That 2^66 no
doubt was 2^64 in a computation counting 4K-blocks, and arose at some point
where a negative number was considered unsigned.</p>

<p>But having available=1068904 larger than free=964440 is strange.</p>

<p>I assume this was produced by statfs or statfs64 or so.  You can check using
"strace -e statfs64 df /dev/md4" that these really are the values returned by
the kernel, so that we can partition the blame between df and the kernel.</p>

<p>The values are computed by</p>

<blockquote>

<p>        buf-&gt;f_blocks = es-&gt;s_blocks_count - overhead;<br />
        buf-&gt;f_bfree = ext3_count_free_blocks (sb);<br />
        buf-&gt;f_bavail = buf-&gt;f_bfree - es-&gt;s_r_blocks_count;</p>

</blockquote>

<p>that is: blocks = total - overhead, and available = free - reserved.
strace shows three values, and I expect tune2fs or so will show 2 more.</p>

<p>More available than free sounds like a negative count of reserved blocks.
Are you still able to examine the situation?</p>

</quote>

<p>Wichert confirmed statfs64, and also that he was unable to examine the
situation further. But he did say:</p>

<quote who="Wichert Akkerman">

<p>I do have some more information. A e2fsck run on that filesystem
was just as interesting:</p>

<p>/dev/md4: clean, 16/132480 files, -15514/264960 blocks</p>

<p>Forcing an e2fsck revelated a few groups with incorrect block counts:</p>

<p>Free blocks count wrong for group #2 (34308, counted=32306).<br />
Free blocks count wrong for group #6 (45805, counted=32306).<br />
Free blocks count wrong for group #8 (14741, counted=2354).<br />
Free blocks count wrong (280474, counted=252586).</p>

<p>After fixing those everything returned to normal. I did run dumpe2fs
on the filesystem, if that is interesting I can retrieve and post that.</p>

</quote>

<p>Andries replied, <quote who="Andries Brouwer">It is an interesting
situation, but probably there is not enough information to find out what
happened.</quote></p>

</section>

<section
  title="Weird Behavior On Seek Or Append In SysFS"
  subject="[PATCH 1/3] disallow seeks and appends on sysfs files"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/3dc8e593c90250b7"
  posts="4"
  startdate="21 Jan 2005 14:49:39 -0800"
  enddate="24 Jan 2005 13:40:14 -0800"
>
<topic>FS: sysfs</topic>

<mention>Greg KH</mention>

<p>Mitch Williams posted a patch which <quote who="Mitch Williams">causes
sysfs to return errors if the caller attempts to append to or seek on a
sysfs file.</quote> Greg KH asked what the current SysFS behavior was if
one attempted an append or seek, Mitch replied:</p>

<quote who="Mitch Williams">

<p>Because the store method doesn't have an offset argument, it must assume
that all writes are based from the beginning of the buffer.</p>

<p>So if your sysfs file contains "123" and you do</p>

<blockquote>

<p>   echo "45" &gt;&gt; mysysfsfile</p>

</blockquote>

<p>instead of the expected "12345", you end up with "45" in the file with
no errors.  Opening the file, seeking, and writing gives the same type of
behavior, with no errors.</p>

<p>This patch just sets a few flags to make sure that errors are returned
when this behavior is seen.  Logically then, the two "features" do the same
thing (set flags), and prevent the same behavior (writing wrong contents
without error).</p>

</quote>

<p>Greg was astonished that this was the case, and said he'd accept the
patch; but he wanted Mitch to split it into two patches, one to handle seeks,
and one for appends. Mitch was OK with this.</p>

</section>

<section
  title="Software Suspend Under SMP"
  subject="Enable swsusp on SMP machines"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/5a567bb285d9f92d"
  posts="3"
  startdate="24 Jan 2005 09:19:43 -0800"
  enddate="25 Jan 2005 00:42:31 -0800"
>
<topic>SMP</topic>
<topic>Software Suspend</topic>

<p>Pavel Machek said, <quote who="Pavel Machek">This enables swsusp on SMP
machines. It should be working in 2.6.10, already (but you may need noapic
in 2.6.10).</quote></p>

</section>

<section
  title="superio scx200 Module Renamed To scx"
  subject="[1/1] superio: change scx200 module name to scx."
  archive="http://groups-beta.google.com/group/linux.kernel/msg/9205c53a18398dd7"
  posts="4"
  startdate="24 Jan 2005 12:37:20 -0800"
  enddate="24 Jan 2005 22:18:48 -0800"
>

<mention>Greg KH</mention>

<p>Evgeniy Polyakov changed the superio scx200 module name to scx. Greg KH
accepted the patch. There was no discussion.</p>

</section>

<section
  title="New timeofday Core Subsystem"
  subject="[RFC][PATCH] new timeofday core subsystem (v. A2)"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/9adc3284670662c6"
  posts="25"
  startdate="24 Jan 2005 14:51:29 -0800"
  enddate="26 Jan 2005 09:51:45 -0800"
>

<p>John Stultz said:</p>

<quote who="John Stultz">

<p>Here is a new release of my time of day proposal, which
include ppc64 support as well as suspend/resume and cpufreq
hooks. For basic summary of my ideas, you can follow this link: <a
href="http://lwn.net/Articles/100665/">http://lwn.net/Articles/100665/</a></p>

<p>This patch implements the architecture independent portion of the time of
day subsystem. Included is timeofday.c (which includes all the time of day
management and accessor functions), ntp.c (which includes the ntp scaling
code, leapsecond processing, and ntp kernel state machine code), timesource.c
(for timesource specific management functions), interface definition .h files,
the example jiffies timesource (lowest common denominator time source, mainly
for use as example code) and minimal hooks into arch independent code.</p>

<p>The patch does not function without minimal architecture specific hooks
(i386, x86-64, and ppc64 examples to follow), and it can be applied to a
tree without affecting the code.</p>

<p>New in this version:</p>

<p>

<ul>

<li>TIMESOURCE_CYCLES type</li>
<li>__iomem labes and proper mmio access</li>
<li>write_seqlock_irq -> writeseqlock_irqsave</li>
<li>arch generic interface for for get_cmos_time() equivalents</li>
<li>suspend/resume hooks for sleep/hibernate (lightly tested)</li>
<li>timesource adjust_callback hook</li>

</ul>

</p>

</quote>

</section>

<section
  title="Marvell mv64xxx I2C Driver"
  subject="[PATCH][I2C] Marvell mv64xxx i2c driver"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/180f5b72edfe9228"
  posts="6"
  startdate="25 Jan 2005 17:26:45 -0800"
  enddate="26 Jan 2005 15:59:37 -0800"
>
<topic>I2C</topic>

<mention>Greg KH</mention>
<mention>Jean Delvare</mention>

<p>Mark A. Greer said, <quote who="Mark A. Greer">Marvell makes a line of
host bridge for PPC and MIPS systems.  On those bridges is an i2c controller.
This patch adds the driver for that i2c controller.</quote> Jean Delvare
and Greg KH had some technical comments, which Mark attempted to address
in subsequent versions of his patch. Folks seemed to look favorably on the
patch overall.</p>

</section>

<section
  title="Software Suspend 2.1.5.7B For Linux 2.4.28"
  subject="Software Suspend for 2.4 Final Release"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/90791f6b42412bd0"
  posts="1"
  startdate="25 Jan 2005 21:20:18 -0800"
>
<topic>Forward Port</topic>
<topic>Software Suspend</topic>

<p>Nigel Cunningham said:</p>

<quote who="Nigel Cunningham">

<p>SoftwareSuspend 2.1.5.7B for the 2.4.28 kernel is now available from <a
href="http://softwaresuspend.berlios.de">softwaresuspend.berlios.de</a>.</p>

<p>Bug fixes and forward ports to 2.4.29 and later kernels notwithstanding,
it is intended to be the last release of SoftwareSuspend for the 2.4 series
kernels.</p>

<p>The 2.4 version of Suspend is generally pretty easily to get going, but
if you have any questions or problems, you will find lots of resources at <a
href="http://softwaresuspend.berlios.de">softwaresuspend.berlios.de</a>. In
particular, there are HOWTOs, FAQs, and a Wiki that you can consult before
asking on the mailing lists you'll also find there.</p>

<p>Fuller instructions regarding applying the package can be found in the
README file, included in the package.</p>

</quote>

</section>

</kc>

