<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="335" date="27 Nov 2005 00:00:00 -0800" />

<headquote>

<p>It's always worked for me, but hey, maybe I'm just lucky.</p>

<p>--Linus Torvalds</p>

</headquote>

<mailbox-stats>
	<global-stats>
		<generated-at>Sun Nov 27 17:11:22 2005</generated-at>
		<first-message>Fri Oct 21 14:38:18 2005</first-message>
		<last-message>Thu Nov 10 14:54:03 2005</last-message>
		<totals>
			<n-messages>2243</n-messages>
			<n-is-reply>1662</n-is-reply>
			<avg-resp-time>318:59:12</avg-resp-time>
			<n-pgp-signed>48</n-pgp-signed>
			<total-size>14MB</total-size>
			<avg-size>6KB</avg-size>
			<n-attachments>44</n-attachments>
			<att-size>472KB</att-size>
			<bussiest-day-in-n day="2005-11-07"><n-msgs>398</n-msgs><n-bytes>3MB</n-bytes></bussiest-day-in-n>
			<bussiest-day-in-bytes day="2005-11-07"><n-msgs>398</n-msgs><n-bytes>3MB</n-bytes></bussiest-day-in-bytes>
			<n-writers>662</n-writers>
			<wrote-more-then-1-message>246</wrote-more-then-1-message>
			<n-lines>239718</n-lines>
			<header-size>120188</header-size>
			<n-user-agents>64</n-user-agents>
			<n-organisations>39</n-organisations>
			<n-toplevel-domains>38</n-toplevel-domains>
			<avg-spam-score>-12.784485</avg-spam-score>
				<spammiest-writer><score>4.900000</score><name>delbert</name></spammiest-writer>
		</totals>
		<averages>
			<lines-per-message>106</lines-per-message>
			<lines-per-header>53</lines-per-header>
			<header-percent-of-message>50.14%</header-percent-of-message>
			<header-percent-of-total>42.61%</header-percent-of-total>
			<line-length>30</line-length>
		</averages>
		<importance>
			<low>0.00%</low>
			<normal>0.71%</normal>
			<high>0.00%</high>
		</importance>

	</global-stats>
	<top-writers>
		<top-writer rank="1">
			<e-mail-addr>akpm@osdl.org</e-mail-addr>
			<n-messages>88</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>386KB</total-size>
			<mostly-written-at>15:51</mostly-written-at>
		</top-writer>
		<top-writer rank="2">
			<e-mail-addr>russell&#32;king</e-mail-addr>
			<n-messages>74</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>515KB</total-size>
			<mostly-written-at>16:41</mostly-written-at>
		</top-writer>
		<top-writer rank="3">
			<e-mail-addr>adrian&#32;bunk</e-mail-addr>
			<n-messages>73</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>560KB</total-size>
			<mostly-written-at>15:28</mostly-written-at>
		</top-writer>
		<top-writer rank="4">
			<e-mail-addr>nickpiggin@yahoo.com.au</e-mail-addr>
			<n-messages>68</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>384KB</total-size>
			<mostly-written-at>16:02</mostly-written-at>
		</top-writer>
		<top-writer rank="5">
			<e-mail-addr>greg&#32;kh</e-mail-addr>
			<n-messages>51</n-messages>
			<avg-size>10KB</avg-size>
			<total-size>492KB</total-size>
			<mostly-written-at>18:35</mostly-written-at>
		</top-writer>
	</top-writers>
	<top-subjects>
		<top-subject rank="1">
			<subject>new&#32;(now&#32;current&#32;development&#32;process)</subject>
			<n-messages>78</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>364KB</total-size>
			<mostly-written-at>14:28</mostly-written-at>
			<first-msg>1130615850</first-msg>
			<last-msg>1131428090</last-msg>
		</top-subject>
		<top-subject rank="2">
			<subject>3d&#32;video&#32;card&#32;recommendations</subject>
			<n-messages>41</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>172KB</total-size>
			<mostly-written-at>13:54</mostly-written-at>
			<first-msg>1131117027</first-msg>
			<last-msg>1131528843</last-msg>
		</top-subject>
		<top-subject rank="3">
			<subject>best&#32;way&#32;to&#32;handle&#32;leds</subject>
			<n-messages>38</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>178KB</total-size>
			<mostly-written-at>12:54</mostly-written-at>
			<first-msg>1130900599</first-msg>
			<last-msg>1131488085</last-msg>
		</top-subject>
		<top-subject rank="4">
			<subject>[patch]:&#32;clean&#32;up&#32;of&#32;__alloc_pages</subject>
			<n-messages>34</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>160KB</total-size>
			<mostly-written-at>14:37</mostly-written-at>
			<first-msg>1130553206</first-msg>
			<last-msg>1131427055</last-msg>
		</top-subject>
		<top-subject rank="5">
			<subject>ntp&#32;broken&#32;with&#32;2.6.14</subject>
			<n-messages>33</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>159KB</total-size>
			<mostly-written-at>13:08</mostly-written-at>
			<first-msg>1130973716</first-msg>
			<last-msg>1131432284</last-msg>
		</top-subject>
	</top-subjects>
	<top-receivers>
		<top-receiver rank="1">
			<e-mail-addr>linux-kernel@vger.kernel.org</e-mail-addr>
			<n-messages>473</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>5MB</total-size>
			<mostly-written-at>13:47</mostly-written-at>
		</top-receiver>
		<top-receiver rank="2">
			<e-mail-addr>akpm@osdl.org</e-mail-addr>
			<n-messages>323</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>3MB</total-size>
			<mostly-written-at>15:05</mostly-written-at>
		</top-receiver>
		<top-receiver rank="3">
			<e-mail-addr>linus&#32;torvalds</e-mail-addr>
			<n-messages>106</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>953KB</total-size>
			<mostly-written-at>13:06</mostly-written-at>
		</top-receiver>
		<top-receiver rank="4">
			<e-mail-addr>greg&#32;k-h</e-mail-addr>
			<n-messages>45</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>298KB</total-size>
			<mostly-written-at>13:38</mostly-written-at>
		</top-receiver>
		<top-receiver rank="5">
			<e-mail-addr>nickpiggin@yahoo.com.au</e-mail-addr>
			<n-messages>41</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>189KB</total-size>
			<mostly-written-at>14:04</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>975</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>6MB</total-size>
			<mostly-written-at>13:52</mostly-written-at>
		</top-ccers>
		<top-ccers rank="2">
			<e-mail-addr>akpm@osdl.org</e-mail-addr>
			<n-messages>337</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>13:30</mostly-written-at>
		</top-ccers>
		<top-ccers rank="3">
			<e-mail-addr>linus&#32;torvalds</e-mail-addr>
			<n-messages>132</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>568KB</total-size>
			<mostly-written-at>14:29</mostly-written-at>
		</top-ccers>
		<top-ccers rank="4">
			<e-mail-addr>andi&#32;kleen</e-mail-addr>
			<n-messages>72</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>391KB</total-size>
			<mostly-written-at>15:01</mostly-written-at>
		</top-ccers>
		<top-ccers rank="5">
			<e-mail-addr>linux-mm@kvack.org</e-mail-addr>
			<n-messages>63</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>298KB</total-size>
			<mostly-written-at>15:28</mostly-written-at>
		</top-ccers>
	</top-ccers>
	<top-level-domains>
		<tld rank="1">
			<name>com</name>
			<freq>836</freq>
			<avg-size>6KB</avg-size>
			<total-size>5MB</total-size>
		</tld>
		<tld rank="2">
			<name>org</name>
			<freq>364</freq>
			<avg-size>5KB</avg-size>
			<total-size>2MB</total-size>
		</tld>
		<tld rank="3">
			<name>de</name>
			<freq>295</freq>
			<avg-size>8KB</avg-size>
			<total-size>3MB</total-size>
		</tld>
		<tld rank="4">
			<name>uk</name>
			<freq>182</freq>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
		</tld>
		<tld rank="5">
			<name>net</name>
			<freq>135</freq>
			<avg-size>7KB</avg-size>
			<total-size>858KB</total-size>
		</tld>
	</top-level-domains>
	<top-timezones>
		<tz rank="1">
			<name>+0100</name>
			<freq>582</freq>
			<avg-size>6KB</avg-size>
			<total-size>4MB</total-size>
		</tz>
		<tz rank="2">
			<name>-0800</name>
			<freq>514</freq>
			<avg-size>6KB</avg-size>
			<total-size>3MB</total-size>
		</tz>
		<tz rank="3">
			<name>+0000</name>
			<freq>258</freq>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
		</tz>
		<tz rank="4">
			<name>-0500</name>
			<freq>231</freq>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
		</tz>
		<tz rank="5">
			<name>+1100</name>
			<freq>142</freq>
			<avg-size>6KB</avg-size>
			<total-size>761KB</total-size>
		</tz>
	</top-timezones>
	<top-organisations>
		<org rank="1">
			<name>sgi</name>
			<freq>34</freq>
			<bytes>149KB</bytes>
		</org>
		<org rank="2">
			<name>boundaries&#32;unlimited</name>
			<freq>21</freq>
			<bytes>121KB</bytes>
		</org>
		<org rank="3">
			<name>ibm</name>
			<freq>19</freq>
			<bytes>102KB</bytes>
		</org>
		<org rank="4">
			<name>intel</name>
			<freq>10</freq>
			<bytes>48KB</bytes>
		</org>
		<org rank="5">
			<name>kihon&#32;technologies</name>
			<freq>10</freq>
			<bytes>51KB</bytes>
		</org>
	</top-organisations>
	<top-user-agents>
		<useragent rank="1">
			<name>mozilla</name>
			<freq>39</freq>
			<bytes>857KB</bytes>
		</useragent>
		<useragent rank="2">
			<name>evolution</name>
			<freq>36</freq>
			<bytes>2MB</bytes>
		</useragent>
		<useragent rank="3">
			<name>mutt/1.5.9i</name>
			<freq>34</freq>
			<bytes>2MB</bytes>
		</useragent>
		<useragent rank="4">
			<name>mozilla/5.0</name>
			<freq>24</freq>
			<bytes>2MB</bytes>
		</useragent>
		<useragent rank="5">
			<name>mutt/1.5.11</name>
			<freq>18</freq>
			<bytes>996KB</bytes>
		</useragent>
	</top-user-agents>
	<messages-per-day>
		<Sunday><msgs>198</msgs><bytes>2MB</bytes></Sunday>
		<Monday><msgs>481</msgs><bytes>3MB</bytes></Monday>
		<Tuesday><msgs>413</msgs><bytes>3MB</bytes></Tuesday>
		<Wednesday><msgs>360</msgs><bytes>2MB</bytes></Wednesday>
		<Thursday><msgs>221</msgs><bytes>2MB</bytes></Thursday>
		<Friday><msgs>310</msgs><bytes>2MB</bytes></Friday>
		<Saturday><msgs>249</msgs><bytes>2MB</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>0</msgs><bytes>0</bytes></Mar>
		<Apr><msgs>0</msgs><bytes>0</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>246</msgs><bytes>2MB</bytes></Oct>
		<Nov><msgs>1986</msgs><bytes>12MB</bytes></Nov>
		<Dec><msgs>0</msgs><bytes>0</bytes></Dec>
	</messages-per-month>
	<messages-per-day-of-month>
		<day-1><msgs>78</msgs><bytes>342KB</bytes></day-1>
		<day-2><msgs>134</msgs><bytes>866KB</bytes></day-2>
		<day-3><msgs>144</msgs><bytes>663KB</bytes></day-3>
		<day-4><msgs>265</msgs><bytes>2MB</bytes></day-4>
		<day-5><msgs>218</msgs><bytes>2MB</bytes></day-5>
		<day-6><msgs>156</msgs><bytes>978KB</bytes></day-6>
		<day-7><msgs>398</msgs><bytes>3MB</bytes></day-7>
		<day-8><msgs>334</msgs><bytes>2MB</bytes></day-8>
		<day-9><msgs>226</msgs><bytes>2MB</bytes></day-9>
		<day-10><msgs>33</msgs><bytes>231KB</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>0</msgs><bytes>0</bytes></day-14>
		<day-15><msgs>0</msgs><bytes>0</bytes></day-15>
		<day-16><msgs>0</msgs><bytes>0</bytes></day-16>
		<day-17><msgs>0</msgs><bytes>0</bytes></day-17>
		<day-18><msgs>0</msgs><bytes>0</bytes></day-18>
		<day-19><msgs>0</msgs><bytes>0</bytes></day-19>
		<day-20><msgs>0</msgs><bytes>0</bytes></day-20>
		<day-21><msgs>5</msgs><bytes>33KB</bytes></day-21>
		<day-22><msgs>0</msgs><bytes>0</bytes></day-22>
		<day-23><msgs>0</msgs><bytes>0</bytes></day-23>
		<day-24><msgs>1</msgs><bytes>4KB</bytes></day-24>
		<day-25><msgs>1</msgs><bytes>53KB</bytes></day-25>
		<day-26><msgs>0</msgs><bytes>0</bytes></day-26>
		<day-27><msgs>44</msgs><bytes>529KB</bytes></day-27>
		<day-28><msgs>40</msgs><bytes>188KB</bytes></day-28>
		<day-29><msgs>31</msgs><bytes>180KB</bytes></day-29>
		<day-30><msgs>42</msgs><bytes>287KB</bytes></day-30>
		<day-31><msgs>82</msgs><bytes>674KB</bytes></day-31>
	</messages-per-day-of-month>
	<messages-per-hour>
		<hour-1><msgs>64</msgs><bytes>336KB</bytes></hour-1>
		<hour-2><msgs>64</msgs><bytes>474KB</bytes></hour-2>
		<hour-3><msgs>18</msgs><bytes>107KB</bytes></hour-3>
		<hour-4><msgs>18</msgs><bytes>116KB</bytes></hour-4>
		<hour-5><msgs>9</msgs><bytes>43KB</bytes></hour-5>
		<hour-6><msgs>19</msgs><bytes>89KB</bytes></hour-6>
		<hour-7><msgs>39</msgs><bytes>164KB</bytes></hour-7>
		<hour-8><msgs>79</msgs><bytes>364KB</bytes></hour-8>
		<hour-9><msgs>95</msgs><bytes>371KB</bytes></hour-9>
		<hour-10><msgs>135</msgs><bytes>674KB</bytes></hour-10>
		<hour-11><msgs>108</msgs><bytes>526KB</bytes></hour-11>
		<hour-12><msgs>120</msgs><bytes>522KB</bytes></hour-12>
		<hour-13><msgs>144</msgs><bytes>702KB</bytes></hour-13>
		<hour-14><msgs>141</msgs><bytes>1002KB</bytes></hour-14>
		<hour-15><msgs>121</msgs><bytes>632KB</bytes></hour-15>
		<hour-16><msgs>170</msgs><bytes>946KB</bytes></hour-16>
		<hour-17><msgs>156</msgs><bytes>2MB</bytes></hour-17>
		<hour-18><msgs>118</msgs><bytes>900KB</bytes></hour-18>
		<hour-19><msgs>94</msgs><bytes>655KB</bytes></hour-19>
		<hour-20><msgs>97</msgs><bytes>777KB</bytes></hour-20>
		<hour-21><msgs>90</msgs><bytes>553KB</bytes></hour-21>
		<hour-22><msgs>105</msgs><bytes>467KB</bytes></hour-22>
		<hour-23><msgs>132</msgs><bytes>1001KB</bytes></hour-23>
	</messages-per-hour>
	<urls>
		<url-1><freq>1662</freq><url>http://vger.kernel.org/majordomo-info.html</url></url-1>
		<url-2><freq>1657</freq><url>http://www.tux.org/lkml/</url></url-2>
		<url-3><freq>21</freq><url>http://br.acesso.yahoo.com/</url></url-3>
		<url-4><freq>8</freq><url>http://www.ussg.iu.edu/hypermail/linux/kernel/0410.3/1844.html</url></url-4>
		<url-5><freq>8</freq><url>http://www.xgitech.com/</url></url-5>
	</urls>
	<top-avg-resp>
		<resp-pers rank="1">
			<name>keenan&#32;pepper</name>
			<avg-resp-time>00:00:02</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="2">
			<name>mark&#32;lord</name>
			<avg-resp-time>00:03:28</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="3">
			<name>joerg&#32;sommrey</name>
			<avg-resp-time>00:03:50</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="4">
			<name>wim&#32;coekaerts</name>
			<avg-resp-time>00:06:17</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="5">
			<name>linas</name>
			<avg-resp-time>00:09:21</avg-resp-time>
			<n-replies>8</n-replies>
		</resp-pers>
		<resp-pers rank="6">
			<name>denis&#32;vlasenko</name>
			<avg-resp-time>00:12:14</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
	</top-avg-resp>
	<created-with><name>mboxstats</name><version>2.8</version><developer>folkert@vanheusden.com</developer><url>http://www.vanheusden.com/mboxstats/</url></created-with>
</mailbox-stats>

<section
  title="Describing And Debating The Development Process"
  subject="New (now current development process)"
  archive="http://groups.google.com/group/linux.kernel/msg/ddb6b61b2d8679b8"
  posts="78"
  startdate="29 Oct 2005 11:57:30 -0800"
  enddate="07 Nov 2005 21:34:50 -0800"
>
<topic>Bug Tracking</topic>
<topic>Disks: SCSI</topic>
<topic>PCI</topic>

<mention>Roman Zippel</mention>
<mention>Eric Sandall</mention>
<mention>Theodore Y. Ts'o</mention>
<mention>Krzysztof Halasa</mention>

<p>Paolo Ciarrocchi said:</p>

<quote who="Paolo Ciarrocchi">

<p>I would like to write a short article about the new development
process discussed during last Linux Kernel Developers' Summit for my
local LUG.</p>

<p>Since I'm not able to find an accurate report of what has been
discussed during that meeting I try to summariza what is my
understanding of the current process:</p>

<p>The are two kind of releases, 2.6.x kerneles and 2.6.x.y</p>

<p>2.6.x.y are maintained by the "stable" team (stable at kernel dot
org), are released amost every week.</p>

<p>Here is the latest ( I hope ) announce I found in the archive
including an explanation of how stable development works:</p>

<p>Rules on what kind of patches are accepted, and what ones are not, into
the "-stable" tree:</p>

<ul>

<li>It must be obviously correct and tested.</li>

<li>It can not bigger than 100 lines, with context.</li>

<li>It must fix only one thing.</li>

<li>It must fix a real bug that bothers people (not a, "This could be a
   problem..." type thing.)</li>

<li>It must fix a problem that causes a build error (but not for things
   marked CONFIG_BROKEN), an oops, a hang, data corruption, a real
   security issue, or some "oh, that's not good" issue.  In short,
   something critical.</li>

<li>No "theoretical race condition" issues, unless an explanation of how
   the race can be exploited.</li>

<li>It can not contain any "trivial" fixes in it (spelling changes,
   whitespace cleanups, etc.)</li>

<li>It must be accepted by the relevant subsystem maintainer.</li>

<li>It must follow Documentation/SubmittingPatches rules.</li>

</ul>

<p>Procedure for submitting patches to the -stable tree:</p>

<ul>

<li>Send the patch, after verifying that it follows the above rules, to
   stable@kernel.org.</li>

<li>The sender will receive an ack when the patch has been accepted into
   the queue, or a nak if the patch is rejected.  This response might
   take a few days, according to the developer's schedules.</li>

<li>If accepted, the patch will be added to the -stable queue, for review
   by other developers.</li>

<li>Security patches should not be sent to this alias, but instead to the
   documented security@kernel.org.</li>

</ul>

<p>Review cycle:</p>

<ul>

<li>When the -stable maintainers decide for a review cycle, the patches
   will be sent to the review committee, and the maintainer of the
   affected area of the patch (unless the submitter is the maintainer of
   the area) and CC: to the linux-kernel mailing list.</li>

<li>The review committee has 48 hours in which to ack or nak the patch.</li>

<li>If the patch is rejected by a member of the committee, or linux-kernel
   members object to the patch by bringing up issues that the maintainer
   and members did not realize, the patch will be dropped from the
   queue.</li>

<li>At the end of the review cycle, the acked patches will be added to
   the latest -stable release, and a new -stable release will happen.</li>

<li>Security patches will be accepted into the -stable tree directly from
   the security kernel team, and not go through the normal review cycle.
   Contact the kernel security team for more details on this procedure.</li>

</ul>

<p>Review committe:</p>

<ul>

<li>This will be made up of a number of kernel developers who have
   volunteered for this task, and a few that haven't.</li>

</ul>

<p>2.6.x kernel are maintained by Linus Torvalds and Andrew Morton (both
are from OSDL) and the development is as follow:</p>

<ul>

<li>As soon a new kernel is released a two weeks windows is open,
during this period of time maintainers can submit big diffs to Linus
(usually the patched sitted in -mm kernels for a few weeks). Preferred
way to submit big changes is using GIT ( more information about
GIT at <a href="http://git.or.cz/">http://git.or.cz/</a> and <a
href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html">http://www.kernel.org/pub/software/scm/git/docs/tutorial.html</a>).</li>

<li>After two weeks a -rc1 kernel is released and now is possible to
push only patches that do not include new functionalities)</li>

<li>Aftwer two weeks -rc2 is released</li>

<li>Process continues until the kernel is considered "ready", the
process should last three months ( 4 kernels per yeard should be
released).</li>

</ul>

<p>I'm sure I'm missing lot of details so I would really appreciate if
you could support me in writing this article that hopefully will be
usefull outside my LUG as well :-)</p>

</quote>

<p>Jesper Juhl replied:</p>

<quote who="Jesper Juhl">

<p>I recently wrote a document on the different kernel trees and how to
apply patches for them. In that document I also give a description of the
various trees.</p>

<p>Perhaps that document will be useful to you. You can find it in a
recent kernel source tree as Documentation/applying-patches.txt
or you can read it online via lrx at this URL: <a
href="http://sosdg.org/~coywolf/lxr/source/Documentation/applying-patches.txt">http://sosdg.org/~coywolf/lxr/source/Documentation/applying-patches.txt</a></p>

<p>Good luck on your article. Once you are done with it I'd love to read it
and I guess a lot of other people would too, so please supply an URL to it
at that time :-)</p>

</quote>

<p>Elsewhere, Tony Luck replied to Paolo's initial post. Regarging the
description of the -rc1 timeline, Tony said, <quote who="Tony Luck">Initially
Linus said that he would only accept e-mail patches after rc1 ... but common
sense prevailed and he later clarified to say that git merges could still
be used, but only to include bug fixes.</quote> He added, <quote who="Tony
Luck">Also note that a whole new driver (or filesystem) might be accepted
after -rc1 because there is no risk of causing regressions with such a
change.</quote> Tony also pointed out that the only release candidate
with an official schedule was -rc1. Subsequent candidates happened when
they happened. Tony also addressed Paolo's description of the three month
schedule between official kernel releases. He said, <quote who="Tony Luck">the
goal was to make a release in around 8 weeks (which would be closer to six
per year). But you have the important part, which is that Linus doesn't
make the release until it is "ready". 2.6.13 was released on August 28th,
and 2.6.14 on October 27th ... so we appear to have hit the goal this time
through.</quote> Russell King replied:</p>

<quote who="Russell King">

<p>However, three months is _far_ too long.  Look at what is happening
post-2.6.14?  There's loads of really huge changes going in which
were backed up over the last two months.</p>

<p>Continuing like this will just push the release of each kernel further
and further out as there's more stuff merged during the mayhem than
can possibly be properly reviewed and tested.</p>

<p>Shorter release cycles means that there's less mayhem, which in turn
means more time to review.</p>

</quote>

<p>And Linus Torvalds said:</p>

<quote who="Linus Torvalds">

<p>Yes. Three months would be too much. I considered even 2.6.14 to be
delayed by at least one week. So 8 weeks is certainly better than it used
to be, but I think 6 weeks should be the goal-post.</p>

<p>But to hit that, we'd might need to shrink the "merge window" from two
weeks to just one, otherwise there's not enough time to calm down. With
most of the real development happening during the previous calm-down stage,
that might not be impossible: we'd only have one week for merges, but that
isn't the week when development actually happens, so who cares?</p>

<p>Everything said, I think 2.6.13->14 worked well enough, even if it's hard
to say how well a process works after one release. Considering that 2.6.13
had the painful PCI changes (you may not have noticed too much, since they
were x86 only) and there were some potentially painful SCSI changes in the
.14 early merges, so it's not like 13->14 was an "easy" release - so the
process certainly _seems_ to be workable.</p>

<p>So I'm planning on continuing with it unchanged for now. Two-week merge
window until -rc1, and then another -rc kernel roughly every week until
release. With the goal being 6 weeks, and 8 weeks being ok.</p>

<p>I don't think anybody has been really unhappy with this approach? Hmm?</p>

</quote>

<p>There were a couple of subthreads emanating from this one. In one of them,
several folks began discussing the relative merits of having an official
kernel release be unchanged from the most recent -rc release. Eric Sandall
argued that the whole point of an -rc release was to create a "release
candidate", i.e. something that would become the official release if no
further problems arose. Krzysztof Halasa argued that it was okay for the
official release to be different from the most recent -rc release, so long
as no new bugs were introduced. Christopher Friesen pointed out that it was
difficult to know that no new bugs had been introduced. Christopher said,
<quote who="Christopher Friesen">The safe bet is to simply rename the final
-rc with no further changes.</quote> But Linus replied:</p>

<quote who="Linus Torvalds">

<p>That's not actually a very safe bet at all.</p>

<p>Why? Because only a small percentage of people actually test -rc kernels
in the first place.</p>

<p>So if you release the last -rc as the standard kernel, you (a) get no
real coverage advantage anyway and (b) you just wasted a week in order to
try to get some coverage that you aren't getting.</p>

<p>The current kernel development model is to merge stuff early, which
hopefully motivates the people who _do_ test -rc kernels to actually test
-rc1, since they know that that's the one that has _all_ the really relevant
goodies.</p>

<p>And most of those that do test -rc1 will never see any problems at all.
Those that do, are now more likely to test the rest of the -rcs, hopefully
until their problem is resolved. And those that don't test -rc releases
(because they simply don't upgrade very often) will _never_ test an -rc
release, whether it's the first one or the last one.</p>

<p>So what we have to fight this problem is the stable kernel series. We
release the final 2.6.x kernel with as much testing as we can, but it's just
an undeniable fact that a lot of people will try that kernel only after the
release, and often it might be weeks after the release. Doing -rc kernels
didn't do anything for those cases.</p>

<p>But when they find a problem (or somebody who _did_ test an -rc kernel,
but didn't notice a problem until much later), we try to have a process to
get those issues fixed.</p>

<p>So repeat after me: "Most people never test -rc kernels".</p>

</quote>

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

<quote who="Linus Torvalds">

<p>Btw, the ones that _do_ test -rc kernels usually don't test all of them.
The current model is set up in a way where there is _one_ special -rc kernel
that we should try to get people to test: the first one.</p>

<p>That hopefully encourages people to try an -rc kernel who might otherwise
decide that there's too many -rc kernels to bother with. If they know that
all of the real development happened before -rc1, they also are thus aware
that it doesn't really matter which -rc kernel they test, so just testing
_one_ is very good indeed.</p>

<p>The first -rc kernel is also special in another way: it's the one we
"wait" for. It's the one that happens after two weeks, and has a deadline.
The others happen more frequently, and are really objectively less important
than the first one.</p>

<p>(In contrast, some other projects try to make the _last_ -rc be the
important one. That's totally the wrong way around, because if there are
more people testing the last one, the testing happens at _exactly_ the wrong
point in time from a "let's fix the problems" standpoint)</p>

<p>So the call to people who can be bothered to test at all: if you only
test one -rc kernel, please test the first one. That way we get a heads-up
on problems earlier.</p>

<p>(And if you like testing -rc kernels, please test all of them. Or even
the nightly snapshots. Or track the git tree several times a day. The more,
the merrier, but if you only want to boot one kernel a month, make it be
the -rc1 kernel).</p>

</quote>

<p>Willy Tarreau pointed out that at least for some developers, the situation
was different from what Linus described. He said:</p>

<quote who="Willy Tarreau">

<p>I *try* to test *ALL* versions which are announced as the most likely
future -final. When Marcelo tells us that -rc2 will be -final if nobody
complains, I really test it. I build it on several archs and try to catch
stupid bugs because I hate stupid bugs in final releases, they pollute bug
reports (worst ones being build errors).</p>

<p>However, when he announces -preX (X>1) or when you annonce any -rc which is
not likely to become -final, I just check the changelog, and build it if I both
see something which applies to my setup, and I have nothing else to do.</p>

</quote>

<p>Elsewhere, Andi Kleen also replied to Linus's request for feedback on the
current development approach. He said, <quote who="Andi Kleen">The long freeze
periods were nothing much happens are painful. It would be better to have some
more overlap of merging and stabilizing (stable does that already kind of,
but not enough)</quote>. Theodore Y. Ts'o replied that Andrew Morton accepted
patches into the -mm tree during the freeze periods, and so it couldn't
really be called a period where "nothing much happens". But Andi replied,
<quote who="Andi Kleen">The problem is that -mm* contains typically so many
more or less broken changes that any extensive work on there is futile because
you never know whose bugs you're debugging (and if the patch that is broken
will even make it anywhere). In short mainline is frozen too long and -mm*
is too unstable.</quote> And Alexander Viro added, <quote who="Alexander
Viro">Besides, -mm is changing so fscking fast that it doesn't build on
a lot of configs most of the time. And trying to keep track of it and at
least deal with build breakage at real time is, IME, hopeless.</quote>
He added later that he routinely tried building -mm releases for a wide
range of configurations, and found large numbers of problems. Andrew Morton
pointed out that <quote who="Andrew Morton">Every -mm release is built with
allmodconfig on x86 and on x86_64. It's also cross-compiled on fat configs
for alpha, ppc32, ppc64, sparc64, arm and ia64. It's booted on x86, x86_64,
ppc64 and ia64.</quote> He added, <quote who="Andrew Morton">I usually do
allnoconfig and allyesconfig, too.</quote> Alexander said he tested with a
much broader array of configurations. He listed some off, and said, <quote
who="Alexander Viro">_IF_ somebody wants to do that for -mm, yell and you are
more than welcome to all infrastructure, except for the cycles on build box
I'm using. Incidentally, it is a box at work - my energy bill is high enough
as it is, without adding an 8-way 3GHz iamd64 to it...</quote> Martin J.
Bligh replied, <quote who="Martin J. Bligh">I'll do that if you want. I have
a big lab full of largish boxes with serious aircon, and IBM can afford the
power bill. I'm assuming this is a farm of cross-compilers that'll run on x86
(or x86_64)?</quote> But the thread ended or went private at that point.</p>

<p>Elsewhere, also in reply to Andi's initial criticism of the long freeze
periods, Russell King agreed strongly, saying, <quote who="Russell King">I
find the long freeze periods painful and very very very boring, to the
point of looking for other stuff to do (such as cleaning up bits of the
kernel and queuing mega-patches for the next round of merging.)</quote>
Andrew replied:</p>

<quote who="Andrew Morton">

<p>The freezes are for fixing bugs, especially recent regressions. There's no
shortage of them, you know.</p>

<p>I you can think of a better way to get kernel developers off their butts
and actually fixing bugs, I'm all ears.</p>

</quote>

<p>He added later:</p>

<quote who="Andrew Morton">

<p>a) you're sitting around feeling very very very bored while</p>

<p>b) the kernel is in long freeze due to the lack of kernel developer
   attention to known bugs</p>

<p>The solution seems fairly obvious to me?</p>

</quote>

<p>Russell said, <quote who="Russell King">That's fine if you have the
hardware to be able to debug these issues.</quote> And Andrew replied:</p>

<quote who="Andrew Morton">

<p>Most driver bugs cannot be reproduced by the developer.  Almost by
definition: if the patch had caused problems on the developer's machine, he
wouldn't have shipped it.</p>

<p>This is why we have this wonderful group of long-suffering people who
download and test development kernels for us, and who take the time to
report defects.</p>

<p>Yes, it's painful to get into a long-range debugging session, sending debug
patches, twelve-hour turnaround, etc.  But what alternative have we?</p>

</quote>

<p>Close by, Andi said:</p>

<quote who="Andi Kleen">

<p>The problem is that you usually cannot do proper bug fixing because
the release might be just around the corner, so you typically chose the
ugly workaround or revert, or just reject changes for bugs that a are too
risky or the impact too low because there is not enough time to properly
test anymore.</p>

<p>It might work better if we were told when the releases would actually
happen and you don't need to fear that this not quite tested everywhere
bugfix you're about to submit might make it into the gold kernel, breaking
the world for some subset of users.</p>

</quote>

<p>Andrew replied:</p>

<quote who="Andrew Morton">

<p>Nobody knows when a kernel will be released, because it's released
according to perceived bug status, not according to a preconceived
timeline.</p>

<p>I just don't buy what you're saying.  Unless the kernel is at -rc3 or -rc4,
we *know* the release is weeks away - it's always been thus.</p>

</quote>

<p>He added, <quote who="Andrew Morton">There is absolutely nothing preventing
people from working on bugs at any time! It's not as if a bugfix can ever
come too early.</quote></p>

<p>Close by, Russell backed Andi up, saying:</p>

<quote who="Russell King">

<p>Indeed - a prime example is the bootmem initialisation problem.  Had
I known on 1st October that the final release wouldn't have been for
a long time, I'd have applied that patch and you wouldn't have had
that problem with ARM relying on the bootmem initialisation order
clashing with your ia64 (or x86_64) swiotlb fix.</p>

<p>But stupid rmk - again I hasten to add - was suckered into this "-rc
is frozen" idea again and decided it wasn't appropriate to submit it.
In hind-sight, there would have been plenty of time to sort out any
issues.</p>

<p>Hell, we held up 2.6.14 for swiotlb _anyway_.</p>

</quote>

<p>Andrew said:</p>

<quote who="Andrew Morton">

<p>I'd say that was an *exception*, not a "prime example".</p>

<p>I've filed away 322 unresolved bug reports here.  The great majority are
busted drivers on random hardware dating back as far as 2.6.11.  Many of
them are regressions.</p>

<p>There is nothing stopping anyone from working with the originators to get
these things fixed up at any time.</p>

<p>Why is it necessary for me to chase maintainers to get their bugs fixed?</p>

<p>Why are maintainers working on new features when they have unresolved
bugs?</p>

<p>Why is it so often me who has to do the followup for un-responded-to bug
reports against subsystems which I don't know anything about?</p>

<p>(Those are rhetorical questions, btw).</p>

</quote>

<p>Andi said:</p>

<quote who="Andi Kleen">

<p>Because zero bugs is just unrealistic and they would never get anything done
if that was the requirement?</p>

<p>(especially considering that a lot of the bugs at least on x86-64 are
hardware/firmware bugs of some sort, so often it is not really a linux bug
but just a missing ha^w^wwork^w^w^w^wfix for something else)</p>

<p>I agree regressions are a problem and need to be addressed, but handling
all non regressions on a non trivial platforms is just impossible IMHO...</p>

<p>Perhaps it would be nice to have better bug classification: e.g.
regression/new hardware/reported by more than one person etc. I think
with some prioritization like that it would be much easier to keep the bugs
under control.</p>

<p>Sometimes bugs are less important than others. e.g. on x86-64 the
bootmem issue was obscure at best, affecting only a very small part of the
user base. Sure the few people hit by it will be annoyed, but trying to make
everyone happy is impossible so one has to try to just make the majority of
users happy. So it was imho ok to just revert the patch to fix ARM again and
not breaking IA64 (I cannot assess how many users were on ARM/IA64 affected)
for the next release and try to sort it out later.</p>

<p>Regressions are important, everything else has to be prioritized based
on the impact on the user base (and this doesn't necessarily mean the most
noisy part of the userbase)</p>

<p>Perhaps some people could volunteer to set some flags in bugzilla for
obvious things, like regression or new hardware or missing basic information
or for really old kernel and no report for a new one and that could be used
to filter the queries better. Should be an relatively easy task.</p>

</quote>

<p>Zwane Mwaikambo remarked, <quote who="Zwane Mwaikambo">I don't think
we need any special flags, we just need more people paying attention to
it. It doesn't take that much time to go through pending bugs and trying to
identify real ones, but the problem is that we need knowledgeable people to
do this.</quote> And Andrew added, <quote who="Andrew Morton">I don't believe
that what we're seeing is some prioritisation process. The problem is that
some bugs are *harder* than others, and people are just ducking things which
cannot be locally reproduced.</quote></p>

<p>At this point, the discussion veered sharply off, when Roman Zippel
pointed out that the compiled kernels were rapidly growing in size. He listed
a bunch of kernels, starting with 2.2.18 at 495K, and going up to 2.6.14 at
over three times that size.</p>

<p>Andrew asked, <quote who="Andrew Morton">Are you sure these kernels are
feature-equivalent?</quote> And Linus replied:</p>

<quote who="Linus Torvalds">

<p>They may not be feature-equivalent in reality, but it's hard to generate
something that has the features (or lack there-of) of old kernels these
days. Which is problematic.</p>

<p>But some of it is likely also compilers. gcc does insane padding in many
cases these days.</p>

<p>And a lot of it is us just being bloated. Argh.</p>

</quote>

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

<quote who="Linus Torvalds">

<p>I really don't see the point of shaving less than a kB with ugly calling
convention magic, when switching to -Os can save us much more, and when
the networking code is several hundred kB.</p>

<p>If we start doing size optimizations, we need to think big.</p>

</quote>

<p>Roland Dreier said, <quote who="Roland Dreier">it would be great to find
ways to make big improvements. But I think the most realistic way to shrink
the kernel is the same way it grows in the first place -- one small piece
at a time.</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>No, I think that's a lost cause.</p>

<p>It doesn't grow by 700 bytes once in a while. It grows by much more, and
much more often. And we can't fight it that way, that's just not going to
work. Maybe have something that tracks individual object file sizes and
shames people into not growing them..</p>

</quote>

<p>Tim Bird replied:</p>

<quote who="Tim Bird">

<p>As mentioned at the kernel summit, we're working on it at the CE Linux
Forum. These things take time to set up, but we have code already for
something that tests the size impact of individual kernel configs, and we're
working on a test to track individual function sizes for each new kernel
(using Andi Kleen's bloat-o-meter).</p>

<p>We're still in process of setting up the test lab, but we have a number of
hardware boards already, and we're hoping to be publishing size regression data
for the kernel on a regular basis, starting in about April of next year.</p>

</quote>

<p>Andi asked, <quote who="Andi Kleen">Any particular reason it's taking
so long? Would it perhaps be possible to do a subset (e.g. only a single
architecture and less configs) sooner? If the problem is writing the necessary
scripts, I'm sure some people (e.g. M. Bligh or Al Viro) have already written
some that do at least the automated building and would be happy to share
them.</quote> And Tim said:</p>

<quote who="Tim Bird">

<p>The main reason it's taking so long is that it's a background task
for everyone working on it. (Basically, me and one guy at NEC. ;-) We've
gotten sidetracked with lab setup issues (signing a lease for office space,
processing paperwork for board donations, etc. etc.) But I can run some
tests now on a few different platforms just on my desk.</p>

<p>I had hoped to have at least some preliminary results by the end
of November, with a bigger call for help inside the forum to finish up
something big and professional-looking in April. However, maybe I can
cobble together some things, and let people (both in and out of the forum)
look at the preliminary results sooner.</p>

<p>I'll see what I can do by the end of November.</p>

</quote>

</section>

<section
  title="Linux 2.4.32-rc2 Released"
  subject="Linux 2.4.32-rc2"
  archive="http://groups.google.com/group/linux.kernel/msg/fa316ce4749db1ac"
  posts="15"
  startdate="31 Oct 2005 15:57:04 -0800"
  enddate="04 Nov 2005 10:41:57 -0800"
>
<topic>Networking</topic>
<topic>SMP</topic>
<topic>USB</topic>

<mention>Dan Aloni</mention>
<mention>Pete Zaitcev</mention>
<mention>Julian Anastasov</mention>
<mention>Ralf Baechle</mention>
<mention>Nick Piggin</mention>
<mention>Alexey Kuznetsov</mention>
<mention>Andrew Morton</mention>
<mention>Willy Tarreau</mention>

<p>Marcelo Tosatti announced Linux 2.4.32-rc2, saying:</p>

<quote who="Marcelo Tosatti">

<p>Here goes the second release candidate for v2.4.32.</p>

<p>The most significant changes are v2.6 backports of IPv4/IPv6 bugfixes,
and a USB OHCI regression introduced during v2.4.28 which could lead to
crashes on SMP kernels.</p>

</quote>

<p>He posted the changelog:</p>

<quote who="Marcelo Tosatti">

<p>Aleksey Gorelov:<br />
      asus vt8235 router buggy bios workaround</p>

<p>Alexey Kuznetsov:<br />
      [TCP]: Don't over-clamp window in tcp_clamp_window()</p>

<p>Andrew Morton:<br />
      loadkeys requires root priviledges</p>

<p>Dan Aloni:<br />
      fix memory leak in sd_mod.o</p>

<p>Denis Lukianov:<br />
      [MCAST]: Fix MCAST_EXCLUDE line dupes</p>

<p>Herbert Xu:<br />
      Clear stale pred_flags when snd_wnd change</p>

<p>Horms:<br />
      [IPVS]: Add netdev and me as maintainer contacts<br />
      Fix infinite loop in udp_v6_get_port()</p>

<p>Julian Anastasov:<br />
      [IPVS]: ip_vs_ftp breaks connections using persistence<br />
      [IPVS]: really invalidate persistent templates</p>

<p>Marcelo Tosatti:<br />
      Change VERSION to 2.4.32-rc2</p>

<p>Marcus Sundberg:<br />
      [NETFILTER]: this patch fixes a compilation issue with gcc 3.4.3.</p>

<p>Nick Piggin:<br />
      possible memory ordering bug in page reclaim</p>

<p>Pete Zaitcev:<br />
      usb: regression in usb-ohci</p>

<p>Ralf Baechle:<br />
      AX.25: signed char bug</p>

<p>Willy Tarreau:<br />
      Fix jiffies overflow in delay.h</p>

</quote>

<p>Later, he added:</p>

<quote who="Marcelo Tosatti">

<p>There is nothing else pending for v2.4.32 on my part.</p>

<p>Will wait a couple of days and tag it as v2.4.32.</p>

</quote>

</section>

<section
  title="Sharp Zaurus-5500 Testers Wanted"
  subject="sharp zaurus-5500: looking for testers"
  archive="http://groups.google.com/group/linux.kernel/msg/33af2cecde25a1aa"
  posts="7"
  startdate="02 Nov 2005 01:00:03 -0800"
  enddate="04 Nov 2005 15:30:20 -0800"
>
<topic>Touchscreen</topic>

<p>Pavel Machek said:</p>

<quote who="Pavel Machek">

<p>Is there someone out there, with sharp zaurus sl-5500, willing to test
kernels? There's a linux-z tree on kernel.org, which I try to more or
less keep in sync with mainline, that is slowly starting to get
usable. It could use some testing.</p>

<p>Main drawback is that battery charging is not yet done; touchscreen is
there but I did not have chance to test it with proper userspace
filtering.</p>

</quote>

<p>Keenan Pepper leapt through his monitor to hug Pavel, and said he'd begin
testing as soon as he could. Carlos Martin also grabbed Pavel's patches, but
reported, <quote who="Carlos Martin">your git tree (repository?) in kernel.org
is a bit broken. The git web interface gives me 403 error when I try to see
a diff in your zaurus.git tree, and there's stuff that appears to be missing
(history and commits).</quote> Pavel worked on fixing this, and a couple days
later reported that the repository should be working again. Carlos confirmed
this, and said he'd report on his tests as soon as they were finished.</p>

</section>

<section
  title="New eCryptFS Filesystem"
  subject="[PATCH 0/12: eCryptfs] eCryptfs version 0.1"
  archive="http://groups.google.com/group/linux.kernel/msg/0331c5bccac7921d"
  posts="42"
  startdate="02 Nov 2005 20:32:20 -0800"
  enddate="07 Nov 2005 14:39:33 -0800"
>
<topic>Ottawa Linux Symposium</topic>
<topic>Version Control</topic>

<mention>David Howells</mention>
<mention>Erez Zadok</mention>

<p>Phillip Hellewell said:</p>

<quote who="Phillip Hellewell">

<p>This set of patches constitutes eCryptfs version 0.1. We are
presenting it to be reviewed and considered for inclusion into the
kernel.</p>

<p>eCryptfs is a stackable filesystem that is based off of the Cryptfs
that is generated by the FiST stackable filesystem framework written
by Erez Zadok:</p>

<p><a href="http://filesystems.org/">http://filesystems.org/</a></p>

<p>eCryptfs stores cryptographic metadata in the headers of each file;
the headers contain OpenPGP-like packets (see RFC 2440). This allows
the encrypted underlying files to be copied between hosts, and all of
the information necessary to decrypt the files stays with the files
themselves. eCryptfs aims to make the encryption and the decryption of
each individual file completely transparent to userspace applications,
so long as the recipient has the requisite key or passphrase to access
the file available.</p>

<p>Michael Halcrow presented eCryptfs at the 2004 and the 2005 Ottawa
Linux Symposiums; the high-level overview from this year's symposium
starts on page 209 of the first half of the symposium proceedings:</p>

<p><a href="http://www.linuxsymposium.org/2005/linuxsymposium_procv1.pdf">http://www.linuxsymposium.org/2005/linuxsymposium_procv1.pdf</a></p>

<p>Note that this set of patches contains a considerably trimmed-down
version of eCryptfs than what was sent to the LKML earlier this
year. Release 0.1 includes mount-wide passphrase support only; this
will make eCryptfs easier to analyze and debug before the more
advanced policy and public key features are merged in.</p>

<p>eCryptfs performs well under a variety of tests, including FSX and
Connectathon (Basic and General functional). There is a bug that crops
up on a kernel compile. We would appreciate any insight that the VFS
guru's could give us in tracking down and fixing any extant bugs.</p>

<p>eCryptfs utilizes David Howells' keyring; at mount, eCryptfs version
0.1 expects an existing authentication token in the user's session
keyring. The tarball containing the code to do this is available from
the eCryptfs SourceForge site (ecryptfs-v0_1.tar.bz2):</p>

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

<p>Future releases will have policy support, which will entail per-file
passphrase and per-file public key support. Those who are interested
in looking at that code are welcome to obtain it from the eCryptfs CVS
repository on SourceForge:</p>

<p>cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ecryptfs login<br />
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ecryptfs co -P ecryptfs</p>

</quote>

</section>

<section
  title="git Binary Safe"
  subject="binary safe?"
  archive="http://www.gelato.unsw.edu.au/archives/git/0511/11488.html"
  posts="9"
  startdate="03 Nov 2005 14:02:20 -0800"
  enddate="05 Nov 2005 10:22:29 -0800"
>
<topic>Version Control</topic>

<p>On the git mailing list, Randal L. Schwartz said, <quote who="Randal
L. Schwartz">I'm currently about to abandon CVS for my website management,
replacing it with git.</quote> He asked if git was binary-safe, in the sense
that it could be used to house non-text data. Linus Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>Yes. I don't think it's been heavily tested, but the very architecture
of git should mean that there just shouldn't be any issues with binary files
outside of the obvious ones.</p>

<p>The only binary file the kernel ever uses is the logo.gif thing, so it's
been "tested" in the sense that binary files exist, but there's never been
any changes to that file, so..</p>

</quote>

<p>Nick Hengeveld also remarked, <quote who="Nick Hengeveld">We're now using
git in production to distribute content, of which well over 90% is binary
files. Works great.</quote></p>

</section>

<section
  title="git 0.99.9c Released; Querying The git Network"
  subject="GIT 0.99.9c"
  archive="http://www.gelato.unsw.edu.au/archives/git/0511/11508.html"
  posts="5"
  startdate="03 Nov 2005 20:04:02 -0800"
  enddate="05 Nov 2005 15:00:08 -0800"
>

<mention>Junio C Hamano</mention>
<mention>Alex Riesen</mention>

<p>Junio C. Hamano announced git 0.99.9c, saying:</p>

<quote who="Junio C. Hamano">

<p>GIT 0.99.9c is found at http://kernel.org/pub/software/scm/git/
as usual.  It includes the following fixes and documentation
updates since 0.99.9b:</p>

<blockquote>

<p>        Alex Riesen:<br />
              remove CR/LF from .gitignore</p>

<p>        Jon Loeliger<br />
              Illustration: "Fundamental Git Index Operations"<br />
              Illustration: "Git Diff Types"<br />
              Illustration: "Commit DAG Revision Naming"</p>

<p>        Junio C Hamano:<br />
              Do not put automatic merge message after signed-off-by line.<br />
              git-clone: do not forget to create origin branch.<br />
              Make test-date buildable again.<br />
              Do not fail on hierarchical branch names.<br />
              Ignore '\r' at the end of line in $GIT_DIR/config<br />
              Be careful when dereferencing tags (credits Pasky).<br />
              Document --since and --until options to rev-parse.<br />
              Add --no-commit to git-merge/git-pull.<br />
              Add 'ours' merge strategy.<br />
              git-merge-ours: make sure our index matches HEAD<br />
              GIT 0.99.9c</p>

<p>        Peter Eriksen:<br />
              Clean up the SunOS Makefile rule</p>

</blockquote>

<p>The slow and steady march toward 1.0 continues.</p>

<p>I plan to do another full sweep in the documentation directory
on my next GIT day.</p>

<p>On the proposed updates front, I am hoping to include Nick's
http-push using DAV in the "master" branch soon.  And I would
appreciate somebody who actually uses svnimport to Ack on
Yaacov's svnimport fix.</p>

</quote>

<p>Jeff Garzik replied:</p>

<quote who="Jeff Garzik">

<p>Here's an experiment I've been dying to try.</p>

<p>The current <a
href="http://www.bittorrent.com/trackerless.html">"tracker-less" BitTorrent</a>
employs a <a href="http://www.etse.urv.es/~cpairot/dhts.html">distributed
hash table</a> called Kademlia, where the total content is spread
across a bunch of computers on the network. I kinda prefer <a
href="http://www.nicemice.net/amc/research/tangle/">TANGLE</a> to Kademlia.</p>

<p>Anyway, I was thinking that it would be a neat experiment to add simple
TANGLE-like peer-to-peer code, to enable git to query "the git network hash
table" for content.</p>

<p>Comments, or any pre-code-creation objections? How easy is it to add a
new storage backend to git?</p>

<p>To restrict unlimited uploading, I'm thinking that I'll want the system to
fall back to {www,git,rsync}.kernel.org as the original source of content.
[though the code will obviously be generic, and not hardcode *.kernel.org
policy]</p>

</quote>

<p>Junio addressed the issue of adding a new storage back-end, saying:</p>

<quote who="Junio C. Hamano">

<p>Almost everything is contained within sha1_file.c.</p>

<p>Object creation side is simple -- everybody who creates an
object (e.g update-index registering blobs, write-tree writing
the toplevel and intermediate level trees, commit-tree building
a commit object, unpack-objects exploding a pack) goes through
write_sha1_file(), which checks if the object is already
available using has_sha1_file() and creates a new object in the
local .git/objects/?? directory.  I am assuming that you are not
planning to create objects in a remote peer from within the git
code path, and instead to have background process that replicate
them over the network to peer repositories, so you probably do
not have to touch this side.</p>

<p>Extending inspection and reading from existing objects for your
networked storage may be somewhat messy, but starting points
are:</p>

<ul>

<li>has_sha1_file() takes the object name and returns true/false;
  if the object is available to us in any form (be it in one of
  the alternate object stores or the local repository, as
  individual object in an objects/??/ file or stored in a pack).
  Currently it looks at packs and then checks individual files
  for performance reasons (to minimize seeks and to prevent
  polluting dcache with many negative hits); you would be adding
  another data source.</li>

<li>read_sha1_file() takes the object name, and returns the
  uncompressed contents of the object in addition to the type
  and the size.</li>

<li>sha1_object_info() takes the object name and returns the type
  of the object and optionally returns the size of it, without
  reading the contents.  Some programs call this before reading
  the data using read_sha1_file(), so you might want to use this
  as a cue to prefetch from a remote peer; also you _might_ want
  to keep type and size cached if you plan to implement
  forgetful storage that deliberately loses objects and expects
  to refetch it from its peers.  Good test program once you are
  done extending this part is git-cat-file with -t and -s flag.</li>

</ul>

<p>The above three are the primary read interfaces, but there are
some places that cheat by assuming that packs and individual
objects are the only two kinds of sources for the object data,
so you need to be careful.  For example, write_sha1_to_fd(),
which is used only by ssh-upload, first tries to call
map_sha1_file_internal(), which is only valid for individual
objects, to grab the object data, and when it fails, calls
read_packed_sha1(), which is only valid for objects in packs,
without even checking if read_packed_sha1() succeeded.  This
doesn't crash only because the caller of write_sha1_to_fd()
checks if the object is available by calling has_sha1_file()
itself before calling this function, but you would need to
change it to fall back on your networked storage if you do not
want to crash when used by ssh-upload.</p>

<p>HTH, and have fun.</p>

</quote>

<p>Jeff thanked him, adding, <quote who="Jeff Garzik">It looks pretty
straightforward to add a new storage backend, grepping on the symbols you
listed.</quote></p>

</section>

<section
  title="Fixing Incorrect Authors And Committers In git Repositories"
  subject="Fixing Commit And Author"
  archive="http://www.gelato.unsw.edu.au/archives/git/0511/11529.html"
  posts="3"
  startdate="04 Nov 2005 09:30:50 -0800"
  enddate="04 Nov 2005 16:35:21 -0800"
>
<topic>Compression</topic>

<p>On the git mailing list, Darrin Thompson said:</p>

<quote who="Darrin Thompson">

<p>I've got a small project in git where I made a dumb error. All my
commits have author/committer information like this:</p>

<p>Author: Darrin Thompson &lt;darrint@dhcp-1-211.(none)&gt;  2005-10-20 16:50:38<br />
Committer: Darrin Thompson &lt;darrint@dhcp-1-211.(none)&gt;  2005-10-20c16:50:38<br />
Tags: svn-5099</p>

<p>I'd like to replace the commits (yes, I know that means all of them)
with new ones with corrected email addresses and also manage to migrate
my tags. A push in the right direction would be appreciated.</p>

<p>Next I'd like to do the same with the kernel sources... :-)</p>

</quote>

<p>Linus Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>There's a program in the git sources called "git-convert-objects.c".</p>

<p>It basically knows how to walk the git object chains, and rewrite each
object according to a few rules.</p>

<p>The rules currently do _not_ include changing the author/committer info,
but it does know how to parse the really old-style dates, for example,
which are on those same lines, so adding some code there to also re-write
the author/committer name and email wouldn't be impossible.</p>

<p>The code isn't necessarily all that easy to understand, and usage-wise you
also have to convert each head separately (you tell it which branch head
you want to convert, it trawls every reachable object from that head, and
will create the new objects and return the new head value).</p>

<p>What I'm trying to say is that it might not be _pleasant_, but it's
certainly something you can automate and do in a timely manner (ie a small
project will take just a few seconds - or minutes - to convert).</p>

</quote>

<p>As far as doing this for the Linux kernel, Linus added:</p>

<quote who="Linus Torvalds">

<p>The same program will work, but it will take some time.</p>

<p>Actually, as long as you only rewrite commits, it should even be reasonably
efficient. It's when you start rewriting every single object (like I did when
I switched the compression scheme around) that it gets _really_ expensive,
and a project like the kernel would take a long long time.</p>

<p>Hint to the wise: don't do the conversion on the only copy of the repository
you have. It's always worked for me, but hey, maybe I'm just lucky and never
write buggy conversion software.</p>

</quote>

</section>

<section
  title="Ubuntu Kernel Maintained In git"
  subject="[ANNOUNCE] Ubuntu kernel tree"
  archive="http://groups.google.com/group/linux.kernel/msg/5cdc9c4d583846fe"
  posts="18"
  startdate="05 Nov 2005 17:37:52 -0800"
  enddate="09 Nov 2005 14:20:29 -0800"
>

<p>Ben Collins said:</p>

<quote who="Ben Collins">

<p>Some people may have noticed the new git tree located at:</p>

<p>rsync.kernel.org:/pub/scm/linux/kernel/git/bcollins/ubuntu-2.6.git</p>

<p>This tree will directly reflect the Ubuntu Linux Kernel that is available
in our distribution (along with build system). First use of this kernel tree
is slated for Dapper Drake (Ubuntu 6.04), and will stay synced with the just
released 2.6.14(.y).</p>

<p>There are several reasons for making this repo available on kernel.org.
Primary reasons include a more open development model, better visibility
with the kernel developer community, and to make the kernel available to
other distro's who may want to base their kernel off of ours.</p>

<p>Primary goals include:</p>

<ul>

<li>A kernel geared toward a real world Linux distribution, supporting
drivers and subsystems that end users need. You will find a lot of external
drivers in our tree, that for whatever reason, are not included in the upstream
kernel. We hope that including these drivers will give users a one-stop kernel
(no downloading and compiling external modules), and also provide much needed
testing for modules hoping to be included into the mainstream kernel.</li>

<li>Real world configurations. We will provide default kernel configs for
a variety of architectures and system "flavors".</li>

<li>Any feature and/or driver included will attempt to be configurable. That
is, if you don't select to compile it, it will not cause any significant
changes from the stock kernel we are using at that point.</li>

<li>Open development model. We want to be as close to the kernel community
as possible. Integrating ideas, getting feedback, and causing as little
havoc as possible :)</li>

</ul>

</quote>

<p>Pavel Machek remarked, <quote who="Pavel Machek"> We were thinking about
using git for internal suse kernel trees, but we thought it would not work,
as we need more something like quilt. Do you really use git internally, or do
you just export to it? If git is usable for distro develompent... that would be
good news.</quote> Ben replied, <quote who="Ben Collins">Prior to this we were
using baz (arch derivative), but all the patches were still applied at build
time.</quote> He went on, <quote who="Ben Collins">We're giving git a go just
to see. It's all being done right there, I push directly to master.kernel.org
(and also mirror it to a local machine where ubuntu devs can make better use
of it).</quote> Greg KH remarked, <quote who="Greg KH">good luck with this,
it will be interesting to see how long you can handle maintaining the kernel
in this manner.</quote></p>

</section>

<section
  title="git 0.99.9e Released"
  subject="GIT 0.99.9e"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/4d9b52d3f9ede95d"
  posts="5"
  startdate="06 Nov 2005 21:43:19 -0800"
  enddate="07 Nov 2005 20:02:36 -0800"
>

<mention>Junio C Hamano</mention>
<mention>Johannes</mention>
<mention>Josef Weidendorfer</mention>

<p>Junio C. Hamano announced git 0.99.9e, saying:</p>

<quote who="Junio C. Hamano">

<p>GIT 0.99.9e maintenance release is found at the usual places:</p>

<p>RPM, tarballs, and deb:</p>

<p><a href="http://www.kernel.org/pub/software/scm/git/">http://www.kernel.org/pub/software/scm/git/</a></p>

<p>With git, fetch maint branch from</p>

<p>        git://git.kernel.org/pub/scm/git/git.git/</p>

<p>It contains everything from the master branch.  Since we seem to
be shelving the separate git binary directory idea indefinitely,
what we have here is pretty much what will be in 1.0, from the
source code POV.</p>

<ul>

<li>http-push seems to still have a bug or two but that is to be
   expected for any new code, and I am reasonably sure it can be
   ironed out; preferably before 1.0 but it is not a
   showstopper.</li>

<li>I've done the initial round of package splitting for Debian
   side myself, but it probably needs proofreading and fixing by
   experienced Debian person.  Similar RPM package splitting
   that parallels the above is needed.  Although it is not an
   absolute requirement for my sources to have perfect binary
   packaging support (I am just an upstream for binary
   packagers), it is certainly desirable to have RPM specs and
   debian/ files in a presentable shape for 1.0.</li>

<li>I still need to go over the tutorial and core-ish
   documentation once for consistency checks.</li>

</ul>

</quote>

<p>He posted the changelog:</p>

<quote who="Junio C. Hamano">

<p>Changes since 0.99.9d are:</p>

<p>    Johannes Schindelin:<br />
      Allow GIT_DIR to be an absolute path<br />
      http-fetch: do not use curl_message after releasing it</p>

<p>    Jon Loeliger:<br />
      Refactor merge strategies into separate includable file.</p>

<p>    Junio C Hamano:<br />
      test: t4102-apply-rename fails with strict umask (Peter Baumann).<br />
      git-format-patch: silly typo fix.<br />
      Documentation: pull/clone ref mapping clarification (Josef
Weidendorfer).<br />
      git-fetch: fail if specified refspec does not match remote.<br />
      Simplify CFLAGS/DEFINES in Makefile<br />
      Package split: Debian.<br />
      Install asciidoc sources as well.<br />
      Further Debian split fixes.<br />
      Debian: test build.<br />
      Merge in http-push first stage.<br />
      Document expat dependency when using http-push.<br />
      ls-files: --others should not say unmerged paths are unknown.<br />
      git-status: do not mark unmerged paths as committable.<br />
      Set up remotes/origin to track all remote branches.</p>

<p>    Nick Hengeveld:<br />
      Add support for pushing to a remote repository using HTTP/DAV<br />
      Verify remote packs, speed up pending request queue<br />
      Support remote references with slashes in their names<br />
      Improve lock handling<br />
      Refresh the remote lock if it is about to expire</p>

<p>    Paul Collins:<br />
      http-push.c: include with angle bracket, not dq.</p>

<p>    Randal L. Schwartz:<br />
      Use fink/darwinport paths for OSX</p>

</quote>

</section>

<section
  title="New Trivial Patch Monkey Maintainer"
  subject="[2.6 patch] GIT trivial tree"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/9db4104ca7492d47"
  posts="3"
  startdate="07 Nov 2005 09:02:29 -0800"
  enddate="07 Nov 2005 22:23:08 -0800"
>
<topic>Version Control</topic>

<p>Adrian Bunk said:</p>

<quote who="Adrian Bunk">

<p>Linus, please do an update from:</p>

<p><a
href="http://www.kernel.org/pub/scm/linux/kernel/git/bunk/trivial.git">http://www.kernel.org/pub/scm/linux/kernel/git/bunk/trivial.git</a></p>

<p>I've taken over the trivial patch monkey from Rusty, and I'll send the
really trivial patches like spelling corrections through this tree.</p>

<p>Is this tree OK or are there any problems with it?</p>

</quote>

<p>Linus Torvalds replied:</p>

<quote who="Linus Torvalds">

<p>Please don't try to make me update over http. Either point to master
(which is not accessible by all), or point to git://git.kernel.org/. Or do
both..</p>

<p>And if you do the latter (or, in fact, rsync or http for others), please
make sure that you delay your "please pull" sufficiently that the contents
have actually mirrored out, because otherwise, if the mail comes in while
I'm in merging mode (like right now), and I try to pull, I may not have
anything to pull at all just because it hasn't mirrored out yet.</p>

<p>A side comment (this was true with BK too): I prefer not to see
unnecessary two-way merges, since that just makes the history much
messier.</p>

</quote>

</section>

<section
  title="Another Attempt To Remove DevFS"
  subject="[GIT PATCH] Remove devfs from 2.6.14 - try 2"
  archive="http://groups.google.com/group/linux.kernel/msg/dcf531faf9de6b4b"
  posts="1"
  startdate="07 Nov 2005 20:49:12 -0800"
  enddate="07 Nov 2005 20:49:12 -0800"
>
<topic>FS: devfs</topic>

<p>Greg KH said:</p>

<quote who="Greg KH">

<p>Here are the same "delete devfs" patches that I submitted for 2.6.12 and
2.6.13.  It rips out all of devfs from the kernel and ends up saving a
lot of space.  Since 2.6.13 came out, I have seen no complaints about
the fact that devfs was not able to be enabled anymore, and in fact, a
lot of different subsystems have already been deleting devfs support for
a while now, with apparently no complaints (due to the lack of users.)</p>

<p>Please pull from:<br />
        rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6.git/<br />
or if master.kernel.org hasn't synced up yet:<br />
        <a href="http://www.master.kernel.org:/pub/scm/linux/kernel/git/gregkh/devfs-2.6.git/">master.kernel.org:/pub/scm/linux/kernel/git/gregkh/devfs-2.6.git/</a></p>

<p>I've posted all of these patches before, but if people really want to look at
them, they can be found<br />
        <a href="http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-devfs/">http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-devfs/</a></p>

<p>Also, if people _really_ are in love with the idea of an in-kernel
devfs, I have posted a patch that does this in about 300 lines of code,
called ndevfs.  It is available in the archives if anyone wants to use
that instead (it is quite easy to maintain that patch outside of the
kernel tree, due to it only needing 3 hooks into the main kernel tree.)</p>

</quote>

</section>

<section
  title="Secure Digital Host Controller Support"
  subject="[ANNOUNCE] Driver project for Secure Digital Host Controller Interface"
  archive="http://groups.google.com/group/linux.kernel/msg/f8921f3991d5bde3?hl=en"
  posts="1"
  startdate="08 Nov 2005 09:11:13 -0800"
  enddate="08 Nov 2005 09:11:13 -0800"
>

<p>Pierre Ossman said, <quote who="Pierre Ossman">I've started working
on a driver for the Secure Digital Host Controller specification. This
seems to be used by the majority of the controllers found in todays
PCs, so this driver would add support for a lot of chips. Information
is scarce so I do not know if this driver will get production
ready, but for those of you willing to live dangerously: <a
href="http://mmc.drzeus.cx/wiki/Linux/Drivers/sdhci">http://mmc.drzeus.cx/wiki/Linux/Drivers/sdhci</a></quote></p>

</section>

<section
  title="Linux 2.6.14.1 Released"
  subject="Linux 2.6.14.1"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/d9b864b56a5532ee"
  posts="19"
  startdate="04 Nov 2005 12:04:53 -0800"
  enddate="09 Nov 2005 17:56:51 -0800"
>

<p>Greg KH announced Linux 2.6.14.1, saying:</p>

<quote who="Greg KH">

<p>We (the -stable team) are announcing the release of the 2.6.14.1 kernel.</p>

<p>The diffstat and short summary of the fixes are below.</p>

<p>I'll also be replying to this message with a copy of the patch between
2.6.14 and 2.6.14.1, as it is small enough to do so.</p>

<p>The updated 2.6.14.y git tree can be found at:<br />
        rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/linux-2.6.14.y.git<br />
and can be browsed at the normal kernel.org git web browser:<br />
        <a href="http://www.kernel.org/git/">www.kernel.org/git/</a></p>

</quote>

<p>He posted the changelog, which had only a single entry, a fix from Alexander
Viro for a <quote who="Alexander Viro">CVE-2005-2709 sysctl unregistration
oops</quote>.</p>

</section>

<section
  title="Linux 2.4.32-rc3 Released"
  subject="Linux 2.4.32-rc3"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/b41a1c819b27262e"
  posts="6"
  startdate="09 Nov 2005 11:32:16 -0800"
  enddate="10 Nov 2005 01:08:28 -0800"
>
<topic>Ioctls</topic>

<p>Marcelo Tosatti announced Linux 2.4.32-rc3, saying:</p>

<quote who="Marcelo Tosatti">

<p>Two small issues showed up,</p>

<ul>

<li>IPVS refcont leak</li>

<li>unpriviledged virtual terminal ioctls should be allowed to read function
keys</li>

</ul>

<p>So here goes -rc3.</p>

<p>Attaching the full changelog since this is probably the last -rc
release.</p>

</quote>

</section>

</kc>

