<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="334" date="26 Nov 2005 00:00:00 -0800" />

<headquote>

<p>No, I did that on purpose.</p>

<p>--Linus Torvalds</p>

</headquote>

<mailbox-stats>
	<global-stats>
		<generated-at>Fri Nov 18 22:51:39 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="Status Of Sharp SL-C3000 Support"
  subject="spitz (zaurus sl-c3000) support"
  archive="http://groups.google.com/group/linux.kernel/msg/f2dc694487d7c71f"
  posts="10"
  startdate="13 Oct 2005 00:14:24 -0800"
  enddate="22 Oct 2005 20:27:22 -0800"
>
<topic>I2C</topic>

<p>Pavel Machek asked about the status of the <a
href="http://conics.net/shp/pda/zaurus-sl-c700/sl-c3000/">Sharp SL-C3000</a>
(Spitz) PDA, saying, <quote who="Pavel Machek">I got spitz machine today. I
thought <a href="http://www.openzaurus.org/wordpress/">oz3.5.3</a>
for spitz would be 2.6-based, but found out that I'm not _that_
fortunate.</quote> He saw from the changelogs that Spitz support in some
form had come into the kernel in 2.6.14-rc2, but he pointed out that the <a
href="http://www.orca.cx/zaurus/">2.6 port page</a> seemed old. Specifically,
he asked, <quote who="Pavel Machek">Is there simple way to tell spitz and
tosa apart (like without opening the machine)?</quote> Tosa being the <a
href="http://conics.net/shp/pda/zaurus-sl-c700/sl-6000.htm">SL-6000</a>.</p>

<p>Richard Purdie said, <quote who="Richard Purdie">oz 3.5.4 is due for
release soon and will hopefully have a 2.6 option for spitz.</quote> He also
confirmed that the port page was indeed outdated. He added:</p>

<quote who="Richard Purdie">

<p>I got a spitz recently which moved 2.6 for it forwards a lot. Have a
look at:</p>

<p><a
href="http://www.rpsys.net/openzaurus/">http://www.rpsys.net/openzaurus/</a></p>

<p>This file should give you an idea of
which patches to apply in what order: <a
href="http://www.rpsys.net/openzaurus/temp/linux-openzaurus_2.6.14-rc1.bb">http://www.rpsys.net/openzaurus/temp/linux-openzaurus_2.6.14-rc1.bb</a></p>

<p>With my patch series applied, we're missing usb client (usb host works)
and sound support.</p>

<p>Mainline is missing power management and currently fails to compile
without my patch series but I'm working on that.</p>

</quote>

<p>Pavel asked if there was a "preview" of oz 3.5.4 anywhere, and Richard
replied:</p>

<quote who="Richard Purdie">

<p>I'm no sure offical preview images exist but here's something I built
myself recently:</p>

<p><a
href="http://www.rpsys.net/openzaurus/temp/spitz/">http://www.rpsys.net/openzaurus/temp/spitz/</a></p>

<p>Rename the gpe or opie file "hdimage1.tgz" to flash depending on what
flavoured image you'd like. You need the other files including gnu-tar.
You don't need an initrd.bin file as under 2.6 we can boot directly from
the microdrive.</p>

<p>I'm hoping these work - I'm not sure I've tried one of them... :)</p>

</quote>

<p>Pavel asked what he could do to help the project in general, and Richard
summarized:</p>

<quote who="Richard Purdie">

<p>I'm open to any help in getting the none ipaq/tosa things merged with
mainline. Have a look through them patch series and see if there's anything
you fancy taking on. Most of them are simple fixes although some are nasty
hacks we need to find some way of doing nicely.</p>

<p>The biggest thing is the battery/power management patch. I've just agreed
some changes to enable it to stand a chance of making mainline. It probably
needs more coding style cleanup.</p>

<p>There's also sound to get working although so code arrived yesterday
which should help with that. The usb client code exists in handheld.org's
kernel26 cvs tree. We need to extract it, fix any bugs and talk to the usb
developers about it.</p>

<p>Its a shame you don't have a C1000 as there's a nasty bit of coding
someone with such a device needs to do to complete mainline 2.6 support
(I2C driver for its IO Expander to enable access to its extra GPIOs).</p>

</quote>

<p>Pavel didn't take any of that up explicitly, but they did continue to talk
for awhile about how to get things working for Pavel, and how to interpret
various ambiguous situations.</p>

</section>

<section
  title="Linux 2.6.14-rc4-mm1 Released; NTFS Lurching Toward Writable"
  subject="2.6.14-rc4-mm1"
  archive="http://groups.google.com/group/linux.kernel/msg/533ab4caedd94486"
  posts="75"
  startdate="16 Oct 2005 15:41:08 -0800"
  enddate="24 Oct 2005 00:52:13 -0800"
>
<topic>FS: NTFS</topic>
<topic>I2C</topic>
<topic>Kernel Release Announcement</topic>
<topic>PCI</topic>
<topic>USB</topic>

<p>Andrew Morton announced Linux 2.6.14-rc4-mm1, saying:</p>

<quote who="Andrew Morton">

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

<ul>

<li>Lots of i2c, PCI and USB updates</li>

<li>Large input layer update to convert it all to dynamic input_dev
allocation</li>

<li>Significant x86_64 updates</li>

<li>MD updates</li>

<li>Lots of core memory management scalability rework</li>

</ul>

</quote>

<p>One of the patches was also an NTFS update. Anton Altaparmakov replied:</p>

<quote who="Anton Altaparmakov">

<p>This is a request for testers for ntfs.  2.6.14-rc4-mm1 contains a
pretty much complete re-write of file write support so some more testers
than just myself would be good before I submit it for inclusion in
2.6.15...</p>

<p>The rewrite means that the following features are now supported:</p>

<p>Given an existing uncompressed and unencrypted file, you can use:</p>

<ul>

<li>write(2) to write to the file, including beyond the end of the
existing file, and the file will be extended appropriately.  Both
resident and non-resident files are supported.  Support for heavily
fragmented files still has some limitations but you will just get an
EOPNOTSUPP error if you hit one.  Everything will still be consistent on
the volume.  Sparse files can also be written to and holes will be
filled in appropriately.</li>

<li>truncate(2) and ftruncate(2) to change the size of the file, inlcuding
using open(2) with O_TRUNC flag.  As with write(2) there still are some
limitations for heavily fragmented files, and as above, everything will
still be consistent on the volume if you hit an unsupported case.</li>

</ul>

<p>What this means is that you can now run your favourite editor on an
existing file, e.g. "vim /ntfs/somefile.txt" works fine and you can save
your changes.  Also things like running OpenOffice should work to edit
existing MS Office documents but I haven't tried it yet (it should work
as long as OpenOffice does not need to create temporary files in the
same directory as the document).</p>

<p>Still not supported features are creation/deletion of files/directories
and mmap(2) based writes to sparse regions of files.  (The mmap(2)
support has not been modified since the last release, only the file
write(2) support was rewritten.)</p>

<p>If you do try it, please let me know how it worked for you! - Thanks a
lot in advance for testing!</p>

</quote>

<p>Alberto Patino tested it out, but the code corrupted his filesystem so badly
he could no longer boot Windows 2000; and an examination of two files he edited
showed parts of each file in the other. Anton replied:</p>

<quote who="Anton Altaparmakov">

<p>You should be able to hopefully fix windows by booting with the installation
CD and going into recovery console and running chkdsk on the partition.
You can also try running ntfsfix from ntfsprogs and then booting into windows.
This may be sufficient to allow it to do a chkdsk on the partition before
it crashes.</p>

<p>I found a bug that caused corruption of the openoffice document as you
described. The fix is below.</p>

</quote>

</section>

<section
  title="git/Cogito Tutorial; Some Discussion Of The Merge Problem"
  subject="LCA2006 Git/Cogito tutorial"
  archive="http://www.gelato.unsw.edu.au/archives/git/0510/10565.html"
  posts="20"
  startdate="17 Oct 2005 13:48:09 -0800"
  enddate="24 Oct 2005 19:25:58 -0800"
>
<topic>PCI</topic>
<topic>Version Control</topic>

<p>On the git mailing list, Martin Langhoff said:</p>

<quote who="Martin Langhoff">

<p>Sounds like I will be hosting a Git/Cogito tutorial in the upcoming LCA2006
(Dunedin, NZ, Jan 25~28). Given that I do have some significant holes in my
git knowledge (no, really!?) I'll be happy if other git hackers/users are
present at LCA and willing to take part in the tutorial.</p>

<p>Petr Baudis hinted earlier that he might be coming, as did Linus (but he
was hoping for a sponsor, I'm not sure whether he'll be there or not). Speak
up if you'll be there!</p>

<p>I'll post my slides and presentation plan beforehand to the list, to avoid
spreading misinfirmation/bad practices. They will probably be based on a
recent talk I gave @ Wellington Perl Mongers about swtiching to Git/Cogito:</p>

<p><a
href="http://wellington.pm.org/archive/200510/git/">http://wellington.pm.org/archive/200510/git/</a></p>

<p>The feedback (from both non-cogito-users and actual cogito-users) was
that I made it sound too complicated, so the current plan is to focus on
the tutorial part, and leave "under the hood" parts for a rainy day or for
an after tutorial in-the-corridor chat.</p>

</quote>

<p>Petr Baudis offered some suggestions, and remarked on Martin's description
of the merge feature in his tutorial. Martin had said that git and Cogito
provided "Very fast stupid merge" and "very smart, slow merges when stupid
won't do". Petr said he didn't know of any merges that could be termed
"very smart", and asked what Martin was referring to. Martin replied, <quote
who="Martin Langhoff">I'm very impressed with git-merge.sh, which first does
the simple git-read-tree -m, and it can then try several merger scripts to
resolve the index. The "smartest" merge resolver we have follows renames,
but we could have language-specific and project-specific resolvers, for
instance.</quote> The discussion branched off in different directions at
this point. In one of these, Junio C. Hamano replied:</p>

<quote who="Junio C. Hamano">

<p>I should not be saying this because I am the primary guilty party, but
you should not be so impressed.</p>

<p>Being able to specify which merge strategy to use is a useful thing, but I
do not think being able to try more than one merge strategies automatically,
while it has some coolness value, is very useful in practice.</p>

<p>The language-specific or project-specific part should be made orthogonal
to merge strategy modules, which currently is not. The primary thing Daniel's
git-merge-resolve and Fredrik's git-merge-recursive do is to figure out which
paths can be resolved without merging the file contents, and which paths need
to be resolved with file contents merge, and they use different strategies
to find which 3 variants of the contents to use for that final merge.</p>

<p>But at the end of the day, merging the contents is done by running 'merge'
in either case. This should be made either customizable, or we ship our
standard one that can be extended to first run 'file' to see the file content
type of what is being merged and run content specific merge program if there
is one.</p>

<p>Even if we did that, we are still doing 3-way merge; git-merge framework
may not mesh very well when we want to use something like codeville merge
which is not based on 3-way.</p>

</quote>

<p>Linus Torvalds said:</p>

<quote who="Linus Torvalds">

<p>Oh, the git merge is about a million times better than any silly weave
merge with extra BonusPoints and MagicCapitalizedNames.</p>

<p>Why? Because if you want to be slow and careful, you can always just
create the weave after-the-fact and do a weave merge.</p>

<p>And because well-behaved git merges are so fast, you can actually afford
to so so.</p>

<p>There's nothing magic in a weave merge. It's just a trick. It doesn't
need the files to be in weave format beforehand, even though people seem to
believe that file formats go together with it.</p>

<p>If somebody thinks a weave merge is wonderful and fixes everything, I have
to rain on their parade. You still need to manually fix real conflicts up,
and regardless, what kind of merge you do has _nothing_ to do with how you
maintain your files.</p>

<p>If you want to do a weave merge inside git, then the way to do that is
to just create the weave on demand in the (rare) case where it's needed. We
have all the history. You might even just do a "lazy weave", which just
starts from the common parent, and ignores the history before that.</p>

<p>Much cheaper that way, and arguably nicer (others will argue that you
want to take history into account, to decide about undo's etc. It's a matter
of taste).</p>

<p>The thing is, automatic merging isn't all _that_ important. The thing that
made BK wonderful at merging was that it had a wonderful tool for merging
for when there were real clashes, which is where the _really_ nasty cases
are. The actual automatic merge wasn't necessarily anything magical.</p>

<p>(Same went for applying diffs, btw. What made BK nice was "renametool". Of
course, it was also what made me decide that tracking renames was the wrong
thing to do in the first place, but if you make a CMS that does renames,
you'd better have a "renametool").</p>

<p>And if you have a tool that helps you visually merge the _real_ clashes,
it doesn't much matter if you are only half-way decent on the automatic
ones. They'll be so trivial that nobody cares.</p>

<p>And it doesn't matter _how_ good your automatic merges are, there always
_will_ be real clashes.</p>

<p>[ Side note. Think about this for a while. Git did three-way merges
 pretty much since day one, but they only became _useful_ when we made
 it easy to see the merge conflicts and fix them up. That's a fundamental
 lesson right there: you don't have to be perfect, you have to make it easy
 for the user to fix up your imperfections. ]</p>

<p>So we should spend time on making it easy to see what the clash was,
and on tools to help resolve them. Some random merge-strategy-of-the-day is
just bling-bling.</p>

<p>The reason people like merge strategies is that it's a nice area for
some mental masturbation. You can create all these fancy examples. And then
can ignore the fact that most real merge problems end up being two people
changing the same code in different ways, that just need manual merging.</p>

<p>Don't get me wrong - if somebody does a nice automated merge for git, it's a
good thing, but it's probably much more important to try to integrate something
like xxdiff to a git workflow. And _that_ level is probably where you want
to have special language-based coloring etc to further help things out.</p>

<p>So keep your eyes on the ball. And "automatic merge" isn't it.</p>

</quote>

<p>Petr replied, <quote who="Petr Baudis">The *primary* reason for new merge
strategies is not reducing number of conflicts, but actually being able to
force a conflict at places where it isn't crystal-clear what the resolution
should be (but not conflicting where it should be clear), and especially at
places where the three-way merge *silently* gets it *wrong* without throwing
any conflicts. And weren't it you who wanted a conservative merge strategy
which wouldn't ever do that?</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>A three-way merge is plenty conservative for me.</p>

<p>Any merge will always get some case wrong, exactly the same way any
merge will always get some that require fixing up, even if a human might say
"that's a stupid merge". Two patches add the same thing to different places
(an unsorted array of PCI ID's or whatever), and pretty much any merge ever
will silently "mismerge" it as far as a human is concerned. From a _technical_
point it was correct. In practice, it wasn't.</p>

<p>So when I say "conservative", I don't mean "can never mis-merge", because
such a thing doesn't exist. No, "conservative" means that it seldom does
it in practice, and that when it happens, you can at least understand why
it happened.</p>

<p>A simple strategy that makes people understand what happened is often
much better than a more complex one. And you should never underestimate
the importance of peoples _expectations_. A three-way merge has a _huge_
advantage in that absolutely tons of people are used to what it does: even
when they don't necessarily "understand" the merge (they never cared),
if they've worked with CVS they've seen them before.</p>

<p>Don't get me wrong - a weave merge is pretty damn conservative too. I'm not
down on weave merges, I just don't think that the difference is that huge in
practice - the difference between a three-way merge and a weave merge is much
smaller than the advantage of a good graphical tool and a good workflow.</p>

<p>That's really my argument here: automated merges aren't the end-all. I
realize that a lot of SCM people think that three-way merges are old and
boring and stupid, but the fact is, sometimes the old ways aren't the best
ways, but sometimes they are old just because they are good enough.</p>

</quote>

</section>

<section
  title="Another git/Cogito Tutorial"
  subject="Scribblings for a cogito/git tutorial"
  archive="http://www.gelato.unsw.edu.au/archives/git/0510/10573.html"
  posts="7"
  startdate="17 Oct 2005 12:04:54 -0800"
  enddate="24 Oct 2005 00:36:35 -0800"
>

<mention>Petr Baudis</mention>

<p>On the git mailing list, Horst von Brand said, <quote who="Horst von
Brand">I've also been asked around here for a cogito+git tutorial, to that
end I've made up a script that simulates several developers interacting.
Hacking around is simulated by patching, ed(1) scripts (merges don't turn
out the same diff every time), and plain copying new files in. I've set
up a GPG key with an empty passphrase (comment is "Experimental") to have
signed tags, etc. in a convenient manner. The idea is to create interesting
histories (for browsing) and show off the commands in a compact way. If
only there was a convenient way to run a strech of the (bash) script,
look at the results, and then resume...</quote> He gave a link to a <a
href="http://pincoya.inf.utfsm.cl/Script.git">git repository</a> of his script
and supporting files. Petr Baudis said he loved it, and asked if it could be
released under the GPL and added to the Cogito official documentation. Horst
said he'd be honored, and added, <quote who="Horst von Brand">I realized later
that I didn't clarify the license. It's on my TODO list ;-)</quote> He also
noticed that Petr had not only included the latest version of the tutorial into
the Cogito repository, but the entire history of its development as well.</p>

</section>

<section
  title="Linux 2.6.14-rc5 Released"
  subject="Linux v2.6.14-rc5"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/4755861ab588f831"
  posts="6"
  startdate="19 Oct 2005 23:33:09 -0800"
  enddate="21 Oct 2005 14:07:52 -0800"
>
<topic>Kernel Release Announcement</topic>

<p>Linus Torvalds announced Linux 2.6.14-rc5, saying:</p>

<quote who="Linus Torvalds">

<p>Yeah, I know I said -rc4 was going to be the last one, but as some of
you may have noticed from the discussions, a day before I was planning
on releasing 2.6.14 we found a couple of bugs (nasty RCU callback delays,
swiotlb, etc). The fixes for those weren't all that complicated, but the
problems were subtle enough that I wanted to get them fixed and have another
-rc before final release.</p>

<p>So here it is. There's a number of other small random fixes in there
too.</p>

</quote>

</section>

<section
  title="git File-History Tracking; Some Consideration Of Rename Tracking"
  subject="git-rev-list: add &quot;--dense&quot; flag"
  archive=""
  posts="21"
  startdate="21 Oct 2005 16:40:54 -0800"
  enddate="25 Oct 2005 20:40:30 -0800"
>
<topic>Version Control</topic>

<p>On the git mailing list, Linus Torvalds said:</p>

<quote who="Linus Torvalds">

<p>This is what the recent git-rev-list changes have all been gearing up
for.</p>

<p>When we use a path filter to git-rev-list, the new "--dense" flag asks
git-rev-list to compress the history so that it _only_ contains commits
that change files in the path filter.  It also rewrites the parent
information so that tools like "gitk" will see the result as a dense
history tree.</p>

<p>For example, on the current kernel archive:</p>

<pre>        [torvalds@g5 linux]$ git-rev-list HEAD | wc -l
        9904
        [torvalds@g5 linux]$ git-rev-list HEAD -- kernel | wc -l
        5442
        [torvalds@g5 linux]$ git-rev-list --dense HEAD -- kernel | wc -l
        356</pre>

<p>which shows that while we have almost ten thousand commits, we can prune
down the work to slightly more than half by only following the merges
that are interesting. But further, we can then compress the history to
just 356 entries that actually make changes to the kernel subdirectory.</p>

<p>To see this in action, try something like</p>

<p>        gitk --dense -- gitk</p>

<p>to see just the history that affects gitk.  Or, to show that true
parallel development still remains parallel, do</p>

<p>        gitk --dense -- daemon.c</p>

<p>which shows some parallel commits in the current git tree.</p>

<p>Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;<br />
---</p>

<p>I'm really happy with how this turned out. It's a bit expensive to run on
big archives, but I _really_ think it's quite spectacular. And likely very
useful indeed.</p>

<p>For example, say you love gitk, but only care about networking changes.
Easy enough, just do</p>

<p>        gitk --dense -- net/ include/net/</p>

<p>and off you go. It's not free (we do a _lot_ of tree comparisons), but
dammit, it's fast enough that it's very very useful.  The tree comparisons
are done very efficiently.</p>

<p>This is _way_ more powerful than annotate. Interested in just a single
file? Just do</p>

<p>        gitk --dense -- kernel/exit.c</p>

<p>and it will show the 17 or so commits that change kernel/exit.c with the
right history (it turns out that there is no parallel development at all
in that file, so in this case it will linearize history entirely).</p>

<p>Damn, I'm good.</p>

</quote>

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

<quote who="Linus Torvalds">

<p>one additional point.</p>

<p>This took 0.91 seconds to complete on the current kernel history on my
machine with a pretty much fully packed archive, and the memory footprint
was a total of about 12MB.</p>

<p>And it scales pretty well too. On the historical linux archive, which is
three years of history, the same thing takes me just over 12 seconds and
52MB, and that's for the _whole_ history. And it's not just following one
file: it's following that subdirectory.</p>

<p>So it really is pretty damn cool.</p>

<p>Of course, I might have a bug somewhere, but it all _seems_ to work very
well indeed.</p>

</quote>

<p>Marco Costalba was very impressed with this, and updated the qgit graphical
archive browser to also support the <code>--dense</code> option.</p>

<p>Elsewhere, Petr Baudis raised an old question, <quote who="Petr Baudis">How
to track renames? I believe the situation has changed in the last half
a year. GIT really is a full-fledged SCM by now (at least its major part
code-wise), and I think it's hopefully becoming obvious that we need to
track renames.</quote> [...] <quote who="Petr Baudis">If I convince you
that it is worth tracking the renames explicitly, "how" is already a minor
question.</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>Never. I'm 100% convinced that tracking renames is WRONG WRONG WRONG.</p>

<p>You can follow renames _afterwards_.</p>

<p>Git tracks contents. And I think we've proven that figuring out renames
after-the-fact from those contents is not only doable, but very well
supported already.</p>

<p>I'm convinced that git handles renames better than any other SCM ever.
Exactly because we figure it out when it matters.</p>

</quote>

<p>Petr tried to discuss it, but Linus closed down the argument with, <quote
who="Linus Torvalds">The fact is, users have not a frigging clue when a rename
happens. I told you before, I'll tell you again: if you depend on users telling
you about renames, you'll get it wrong. You'll get it wrong quite often, in
fact. This is not something I'm going to discuss again. Go back to all the
same arguments from 6 months ago. I was right then, I'm right now.</quote></p>

<p>Elsewhere, he posted some pseudo-code:</p>

<quote who="Linus Torvalds">

<p>let's say that you want to follow a certain filename, what you can do
is basically (fake shell syntax with "goto restart")</p>

<pre>        rev=HEAD
   restart:

        git-rev-list $rev --dense --parents -- "$filename" |
                while read commit parent1 restofparents
                do
                        if [ "$restofparents" ]; then
                                .. it's a merge, do whatever it is you do
                                   with merges ..
                        else
                                shaold=$(git-ls-tree $parent -- "$filename")
                                shanew=$(git-ls-tree $commit -- "$filename")

                                # Did it disappear?
                                # Maybe it got renamed from something
                                if [ -z "$shaold" ]; then
                                        old=$(git-diff-tree -M -r $commit |
                                                grep " R .* $filename")
                                        echo "rename? $old"
                                        filename=figure-it-out-from-$old
                                        rev=$parent
                                        goto restart
                                fi
                                git-diff-tree -p $commit -- "$filename"
                        fi
                while</pre>

<p>or something similar.</p>

<p>In other words: you'll basically have to figure out the renames on your
own, and follow the renaming, but something like the above should do it.</p>

</quote>

<p>Junio C. Hamano replied, <quote who="Junio C. Hamano">Isn't that only
true because you are not doing more than "have these paths change" in the
new rev-list that already has part of diff-tree? If rev-list can optionally
be told to detect renames internally (it has necessary bits after all), it
could adjust the set of paths to follow when it sees something got renamed,
either by replacing the original path given from the command line with its
previous name, or adding its previous name to the set of path limitters
(to cover the copy case as well).</quote> Linus said:</p>

<quote who="Linus Torvalds">

<p>The problem with renames isn't the straight-line case.</p>

<p>The problem with renames is the merge case. And quite frankly, I don't
know how to handle that sanely.</p>

<p>If everything was straight-line (CVS), renames would be trivial. But
git-rev-list very fundamentally works on something that isn't. So let's
look at the _fundamental_ problem:</p>

<ul>

<li>

<p>git-rev-list traverses one commit at a time, and it doesn't even _know_
   whether it has seem all the parents of that commit during the first
   phase.</p>

<p>   The first phase is the "limit_list()" thing, which is when we decide
   which commits are reachable, uninteresting, and which merges to follow.</p>

<p>   Now, think about this: since we don't even know that we've seen all
   parents, that pretty much by definition means that we can't know what
   has been renamed if we were to track it.</p>

</li>

<li>

<p>in the second phase (which is where I do the densification), we do
   actually have the full tree and that makes a lot of things a lot easier
   to do. When it comes to dense, for example, it means that I know all
   the UNINTERESTING logic has already been done, and that all merges have
   been simplified.</p>

<p>   But in the second phase, we couldn't do rename detection either, since
   by then, we've already fixed the list of names as far as merges are
   concerned.</p>

</li>

</ul>

<p>And note that this fundamental issue is true _whether_ we have some
explicit rename information in a commit or not.</p>

<p>Git-rev-list has a few additional issues that make it even more
interesting:</p>

<ul>

<li>

<p>git-rev-list fundamentally is designed for multiple heads. There is no
   one special "origin" head. We might not have _one_ end-point, we might
   have twenty-five different heads we're looking at at the same time. Try</p>

<p>        gitk --all --dense -d -- git-fetch.c</p>

<p>   on the current git archive, and be impressed by how well it works (and
   yes, you'll see a funny artifact: "--dense" never removes a line of
   development entirely, so you'll see a single dot for the two
   "unrelated" lines: "gitk" and "to-do" do not share a root with the rest
   of them. You'll get a single dot for that root, even if it
   obviously doesn't actually change "git-fetch.c").</p>

<p>   You'll also very clearly see the "Big tool rename" which created that
   name: it will be the first commit after the root that is visible that
   way.</p>

</li>

<li>

<p>path limiters are fundamentally designed to take a list of paths and
   directories. Personally, I find that to be a lot more important than a
   single file. That's very efficient the way we do it, but if you were to
   _change_ the list of paths, you'd basically have to track those changes
   over history.</p>

<p>   (This actually happens even with a single path - imagine a merge, and a
   rename down one line of the merge. You'll have to keep track of
   different files for the different lines of development, and then when
   they join together, and the rename only happened in one of them, you'll
   have to make an executive decision, or just continue to track _both_)</p>

</li>

</ul>

<p>So what do I propose? I propose that you realize that "git-rev-list" is
just the _building_ block. It does one thing, and one thing only: it
creates revision list.</p>

<p>A user basically _never_ uses git-rev-list directly: it just doesn't make
sense. It's not what git-rev-list is there for. git-rev-list is meant to
be used as a base for doing the real work. And that's how you can use it
for renaming too.</p>

<p>If you think of "git-rev-list --dense -- name" as a fast way to get a set
of commits that affect "name", suddenly it all makes sense. You suddenly
realize that that's a nice building block for figuring out renames. It's
not _all_ of it, but it's a big portion.</p>

<p>To go back to "gitk", let's see what the path limitation shows us. Right
now, doing a</p>

<p>        gitk --all --dense -d -- git-fetch.sh</p>

<p>only shows that particular name, and that's by design. Maybe that's what
the user wants? You have to realize that especially if you remember an
_old_ name that may not even exist any more, that's REALLY what you want.
Something that works more like "annotate" is useless, because something
that works like annotate would just say "I don't have that file, I can't
follow renames" and exit.</p>

<p>So the first lesson to learn is that following just pure path-names is
actually meaningful ON ITS OWN! Sometimes you do NOT want to follow
renames.</p>

<p>For example, let's say that you used to work on git 4 months ago, but gave
up, since it was too rough for you. But you played around with it, and now
you're back, and you have an old patch that you want to re-apply, but it
doesn't talk about "git-fetch.sh", it talks about "git-fetch-script". So
you do</p>

<p>        gitk --dense -- git-fetch-script</p>

<p>and voila, it does the right thing, and top of the thing is "Big tool
rename", which tells you _exactly_ what happened to that PATHNAME.</p>

<p>See? Static pathnames are important!</p>

<p>Now, this does show that when you _do_ care about renames, "gitk" right
now doesn't help you very much (no offense to gitk - how could it know
that git-rev-list would give it pathname detection one day?). Let's
go back to the original example, and see what we could do to make gitk
more useful..</p>

<p>        gitk --all --dense -d -- git-fetch.sh</p>

<p>Go and select that "Big tool rename" thing, and start looking for the
rename..</p>

<p>You won't find it. Why? You'll see all-new files, no renames. It turns out
that "gitk" follows the "parent" thing a bit _too_ slavishly, which is
correct on one level, but in this case with "--dense" it turns out that
what you want to do is see only what _that_ commit does, not what that
commit did relative to its parent (which was the initial revision).</p>

<p>So while "--dense" made gitk work even without any changes, it's clear
that the new capability means that gitk might want to have a new button:
"show diff against 'fake parent'" and "show diff against 'real parent'".</p>

<p>If you want the global view, the default gitk behaviour is correct (it
will show a "valid" diff - you'll see everything that changed between the
points it shows). But in a rename-centric world, you want the _local_
change to that commit, and right now gitk can't show you that.</p>

<p>So for trackign renames, we probably want that as a helper to gitk.</p>

<p>Also, gitk has a "re-read references" button, but if you track renames,
you probably want to do more than re-read them: you want to re-DO them
with the "Big rename" as the new head (forget the old references
entirely), and with the name list changed. New functionality (possibly
you'd like to havea "New wiew" button, which actually starts a new gitk
so that you can see both of them). Right now you'd have to do it by hand:</p>

<p>        gitk --dense 215a7ad1ef790467a4cd3f0dcffbd6e5f04c38f7 -- git-fetch-script</p>

<p>(where 215a.. is the thing you get when you select the "Big tool rename")</p>

<p>You'd also probably like to have some way to limit the names shown for the
git-diff-tree in gitk.</p>

<p>In short, the new "gitk --dense -- filename" doesn't help you nearly as
much as it _could_. But when you squint a bit, I think you'll see how it's
quite possible to do...</p>

</quote>

</section>

<section
  title="RCU Infrastructure Torture Test For Hotplug, Realtime, And More"
  subject="[PATCH] RCU torture-testing kernel module"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/9aa4c4c3c79f822d"
  posts="15"
  startdate="22 Oct 2005 16:12:14 -0800"
  enddate="24 Oct 2005 18:29:01 -0800"
>
<topic>Hot-Plugging</topic>
<topic>Real-Time</topic>

<mention>Badari Pulavarty</mention>
<mention>Andrew Morton</mention>
<mention>Ingo Oeser</mention>

<p>Paul E. McKenney said:</p>

<quote who="Paul E. McKenney">

<p>This patch is a rewrite of the one
submitted on October 1st, using modules (<a
href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=112819093522998&amp;w=2">http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=112819093522998&amp;w=2</a>).</p>

<p>This rewrite adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an
intense torture test of the RCU infratructure. This is needed due to the
continued changes to the RCU infrastructure to accommodate dynamic ticks,
CPU hotplug, realtime, and so on. Most of the code is in a separate file
that is compiled only if the CONFIG variable is set. Documentation on how
to run the test and interpret the output is also included.</p>

<p>This code has been tested on i386 and ppc64, and an earlier version of
the code has received extensive testing on a number of architectures as part
of the PREEMPT_RT patchset.</p>

</quote>

<p>Ingo Oeser pointed out that this feature should really depend on the
DEBUG_KERNEL configuration option; but this led to the discovery that
depending on DEBUG_KERNEL would erroneously cause additional debugging code
to be included in the compiled binary. After some back-and-forth that included
Andrew Morton, the bug was fixed and the dependency updated.</p>

<p>Meanwhile, Badari Pulavarty tested the feature, reporting long boot
delays and a lot of CPU hogging. Kyle Moffett explained, <quote who="Kyle
Moffett">Uhh... It's a torture test. What exactly do _you_ expect it will do?
I think the idea is to enable it as a module and load it when you want to
start torture testing, and unload it when done. "TORTURE_TEST"s are not
for production systems :-D.</quote> Barari said he expected some sort of
<code>/proc</code> interface to turn the feature on and off. But as Kyle went
on to say, the feature should be turned on or off by loading or unloading
the module. And Paul, close by, said, <quote who="Paul E. McKenney">I wonder
if I should somehow exclude "=y" on this one -- I haven't come up with any
case where it is useful.</quote> But there was no real discussion on that.</p>

</section>

<section
  title="Support For Parallel Port On SGI 02 Workstation"
  subject="[PATCH] Parallel port support for SGI O2"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/ba4b31daf9055b3a"
  posts="2"
  startdate="23 Oct 2005 02:20:59 -0800"
  enddate="25 Oct 2005 00:10:57 -0800"
>

<p>Arnaud Giersch said:</p>

<quote who="Arnaud Giersch">

<p>I wrote a low-level parallel port driver for the built-in port on SGI O2
(a.k.a. IP32).</p>

<p>The parallel port is driven by a standard ECP chipset, with memory-mapped
I/O registers. That's why it was not possible to use the parport_pc module
which assumes port-mapped I/O registers.</p>

<p>What works:</p>

<ul>

<li>Basic modes are supported: PCSPP, PS2.</li>

<li>Compatibility mode with FIFO support is present.</li>

<li>FIFO can be driven with or without interrupts.</li>

</ul>

<p>What does not work:</p>

<ul>

<li>DMA support is not implemented (lack of documentation). If you have any
information, please tell me.</li>

<li>EPP and ECP modes are not implemented (lack of interest). I currently
do not own any peripheral supporting this extended modes. It should not be
too difficult to do.</li>

</ul>

<p>All tests were done with an HP LaserJet 5MP connected to a R5000 SGI O2.</p>

<p>The module is named parport_ip32. The patch is not included in this mail
because it is not very small (2383 lines, 73 Kb). It is however avalaible
from:</p>

<p><a
href="http://arnaud.giersch.free.fr/parport_ip32/parport_ip32-latest.patch.gz">http://arnaud.giersch.free.fr/parport_ip32/parport_ip32-latest.patch.gz</a></p>

<p>The patch is against the latest Linux/MIPS kernel (2.6.14-rc2 as of today).
If you prefer that I post it on a mailing list, please just tell me where,
and how (inlined, or gzip'ed attached file).</p>

<p>Further informations are available on:</p>

<p><a
href="http://arnaud.giersch.free.fr/parport_ip32.html">http://arnaud.giersch.free.fr/parport_ip32.html</a></p>

</quote>

</section>

<section
  title="Improved git-mv May Replace git-rename"
  subject="[PATCH] This commit implements git-mv"
  archive="http://www.gelato.unsw.edu.au/archives/git/0510/10880.html"
  posts="1"
  startdate="23 Oct 2005 18:15:34 -0800"
  enddate="23 Oct 2005 18:15:34 -0800"
>
<topic>Version Control</topic>

<p>On the git mailing list, Josef Weidendorfer implemented the
<code>git-mv</code> command, to allow file renaming. He said:</p>

<quote who="Josef Weidendorfer">

<p>It superceeds git-rename by adding functionality to move
multiple files, directories or symlinks into another directory.
It also provides according documentation.</p>

<p>The implementation renames multiple files, using the arguments
from the command line to produce an array of sources and destinations.
In a first pass, all requested renames are checked for errors, and
overwriting of existing files is only allowed with '-f'.
The actual renaming is done in a second pass.
This ensures that any error condition is checked before anything is
changed.</p>

</quote>

<p>With his patch, Josef included a changelog entry:</p>

<quote who="Josef Weidendorfer">

<p>The recent request on the list for "mv" in GIT reminded me about an
addition to git-rename I made a week ago. I renamed it to "git-mv" and added
some documentation.</p>

<p>If this works, we can remove git-rename sometimes in the future.</p>

<p>I should complement this command with tests. Also, a nice addition would
be to support an interactive mode like 'mv', by asking if files should be
overwritten.</p>

<p>By the way, it also checks for a request to move a directory into itself,
which of course is an error.</p>

<p>Option "-k" is good for this: E.g. a "git-mv -k * dir" moves all revision
controlled files and directories (but not "dir"!) into "dir". "-k" makes
sure that the errors (trying to move "dir" into itself, or move files without
revision control around) will not terminate the command but silently ignored
and skipped. "-k" was taken from "make": Continue even on an error.</p>

</quote>

</section>

<section
  title="ethtool Development Migrates To git"
  subject="ethtool git repo created"
  archive="http://groups.google.com/group/linux.kernel/msg/034a7355bbbd0f12"
  posts="1"
  startdate="25 Oct 2005 02:38:35 -0800"
  enddate="25 Oct 2005 02:38:35 -0800"
>

<p>Jeff Garzik said, <quote who="Jeff Garzik">After sitting
around in a non-public subversion repo for far too long, I've
stuffed the latest ethtool source code into a git repository.
As soon as it finished mirroring, it will be available at
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/ethtool.git</quote></p>

</section>

<section
  title="Making gitk Play Nice With --dense"
  subject="Make &quot;gitk&quot; work better with dense revlists"
  archive="http://www.gelato.unsw.edu.au/archives/git/0510/11000.html"
  posts="5"
  startdate="25 Oct 2005 13:01:42 -0800"
  enddate="27 Oct 2005 17:04:47 -0800"
>

<mention>Junio C. Hamano</mention>

<p>On the git mailing list, Linus Torvalds said:</p>

<quote who="Linus Torvalds">

<p>To generate the diff for a commit, gitk used to do</p>

<p>        git-diff-tree -p -C $p $id</p>

<p>(and same thing to generate filenames, except using just "-r" there) which
does actually generate the diff from the parent to the $id, exactly like
it meant to do.</p>

<p>However, that really sucks with --dense, where the "parent" information
has all been rewritten to point to the previous commit. The diff actually
works exactly right, but now it's the diff of the _whole_ sequence of
commits all the way to the previous commit that last changed the file(s)
that we are looking at.</p>

<p>And that's really not what we want 99.9% of the time, even if it may be
perfectly sensible. Not only will the diff not actually match the commit
message, but it will usually be _huge_, and all of it will be totally
uninteresting to us, since we were only interested in a particular set of
files.</p>

<p>It also doesn't match what we do when we write the patch to a file.</p>

<p>So this makes gitk just show the diff of _that_ commit.</p>

<p>We might even want to have some way to limit the diff to only the
filenames we're interested in, but it's often nice to see what else
changed at the same time, so that's secondary.</p>

<p>The merge diff handling is left alone, although I think that should also
be changed to only look at what that _particular_ merge did, not what it
did when compared to the faked-out parents.</p>

</quote>

<p>Paul Mackerras, the gitk maintainer, accepted the patch and pushed out
an updated release, which Junio C. Hamano accepted into the official git
repository. Paul also remarked, <quote who="Paul Mackerras">I'm hoping to get
back to gitk hacking RSN - I've been going flat out on the ppc32/ppc64 merge.
Thanks for doing the --dense thing; I was thinking about doing something
like that inside gitk but doing it in git-rev-list is better. It does mean
that I now want to be able to get gitk to contract the view to just a given
set of files or directories and then expand back to the whole tree view,
which means running git-rev-list multiple times, which gitk can't do at the
moment...</quote> Linus replied, <quote who="Linus Torvalds">Yes. And please
also give the option to contract the diffs to a set of files (I think that
should be independently controlled, although perhaps with some way to set
them both at the same time).</quote></p>

</section>

<section
  title="Swap-Based Page Migration"
  subject="[PATCH 0/5] Swap Migration V4: Overview"
  archive="http://groups.google.com/group/linux.kernel/msg/873ee4f5ef20f016"
  posts="10"
  startdate="25 Oct 2005 12:30:23 -0800"
  enddate="26 Oct 2005 11:31:23 -0800"
>
<topic>Hot-Plugging</topic>

<p>Christoph Lameter said, <quote who="Christoph Lameter">This is a
patchset intended to introduce page migration into the kernel through
a simple implementation of swap based page migration. The aim is to
be minimally intrusive in order to have some hopes for inclusion into
2.6.15. A separate direct page migration patch is being developed
that applies on top of this patch. The direct migration patch is
being discussed on &lt;lhms-devel@lists.sourceforge.net&gt;.
Much of the code is based on code that the memory hotplug
project and Ray Bryant have been working on for a long time. See <a
href="http://sourceforge.net/projects/lhms/">http://sourceforge.net/projects/lhms/</a></quote>
He posted his patches, but there was no real discussion.</p>

</section>

<section
  title="Linux 2.6.14 Released"
  subject="Linux 2.6.14"
  archive="http://groups.google.com/group/linux.kernel/msg/3b86e646f48750bc?hl=en"
  posts="16"
  startdate="27 Oct 2005 17:28:50 -0800"
  enddate="03 Nov 2005 23:07:38 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>PCI</topic>
<topic>POSIX</topic>

<mention>Oleg Nesterov</mention>
<mention>Roland McGrath</mention>

<p>Linus Torvalds announced Linux version 2.6.14, saying:</p>

<quote who="Linus Torvalds">

<p>Ok, it's finally there.</p>

<p>2.6.14 was delayed twice due to some last-minute bug-reports, some of
which ended up being false alarms (hey, I should be happy, but it was a
bit frustrating)</p>

<p>But hey, the delays - even when perhaps unnecessary - got us to look at
the code and fix some other bugs instead. So it's all good.</p>

<p>So special thanks go to Oleg Nesterov and Roland McGrath for doing some
code inspection and fixing and just making the otherwise frustrating wait
for bug resolution more productive ;^p.</p>

<p>Let's try the 2-week merge window thing again, I think it worked pretty
well despite the delays, and hopefully it will work even better this time
around.</p>

<p>The actual changes from 2.6.14-rc5 are a number of mostly one-liners, with
the ShortLog appended (full log from 2.6.13 on the normal sites together with
the release itself). The only slightly bigger ones (ie more than a handful of
lines) is a kernel parameter doc update, and the PIIX4 PCI quirk printouts,
and the cleanups/fixes for the posix cpu timers.</p>

<p>(In fact, according to diffstat, about half the diff is that one
documentation update, and most of that is whitespace cleanups)</p>

</quote>

</section>

<section
  title="Status Of Native POSIX Thread Library Support In 2.4 And 2.6"
  subject="NPTL support for 2.4.31?"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/a4c9d44c31a8254e"
  posts="3"
  startdate="28 Oct 2005 07:21:32 -0800"
  enddate="28 Oct 2005 08:55:07 -0800"
>
<topic>POSIX</topic>

<p>Harald Dunkel asked about the status of <a
href="http://en.wikipedia.org/wiki/NPTL">Native POSIX Thread Library</a> (NPTL)
support in the 2.4 tree, adding, <quote who="Harald Dunkel">I know that there
is a backport in RH's 2.4.21, but obviously it didn't make it into the native
2.4 kernel.</quote> Bert Hubert replied, <quote who="Bert Hubert">I doubt
anybody else would do the work, you'll find that any NPTL patch is bound to
be huge and intrusive. Try running 2.6 if possible. A 2.4 kernel with NPTL
patched in is not going to confer any stability benefits over 2.6.</quote></p>

</section>

<section
  title="Some Discussion Of 2.6 Maintenance Patterns"
  subject="[git patches] 2.6.x libata updates"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/cc6175e8d54e3ea0"
  posts="32"
  startdate="29 Oct 2005 12:14:54 -0800"
  enddate="31 Oct 2005 19:06:25 -0800"
>
<topic>Version Control</topic>

<p>In the course of discussion, Linus Torvalds remarked:</p>

<quote who="Linus Torvalds">

<p>one of the downsides of the new "merge lots of stuff early in
the development series" approach is that the first few daily snapshots end
up being _huge_.</p>

<p>So the -git1 and -git2 patches are/will be very big indeed.</p>

<p>For example, patch-2.6.14-git1 literally ended up being a megabyte
compressed. Right now my diff to 2.6.14 (after just two days) is 1.6MB
compressed.</p>

<p>Admittedly, some of it is due to things like the MIPS merge, but the point
I'm trying to make is that it makes the daily snapshot diffs a lot less
useful to people who try to figure out where something broke.</p>

<p>Now, I've gotten several positive comments on how easy "git bisect" is to
use, and I've used it myself, but this is the first time that patch users
_really_ become very much second-class citizens, and you can't necessarily
always do useful things with just the tar-trees and patches. That's sad,
and possibly a really big downside.</p>

<p>Don't get me wrong - I personally think that the new merge policy is a
clear improvement, but it does have this downside.</p>

</quote>

<p>Jeff Garzik replied:</p>

<quote who="Jeff Garzik">

<p>Back when I did the BK snapshots, I would occasionally do a
middle-of-the-day snapshot if there were a ton of incoming merges in a
24-hour span.</p>

<p>If this "huge -git1" becomes a real problem, we could always</p>

<ul>

<li>give you a manual "do snapshot" button</li>

<li>ask the maintainers to spread out their submits across multiple days,
as I am doing now</li>

<li>sell you on capping the daily push-to-kernel.org limit. merge stuff into
"day1", "day2", etc. branches when the main branch "fills up" for the day.</li>

</ul>

<p>None of these are terribly painful, but none are terribly appealing
either.</p>

</quote>

</section>

<section
  title="Splitting The swsusp Code Into Two Subsystems"
  subject="[RFC][PATCH 0/6] swsusp: rework swap handling"
  archive="http://groups.google.com/group/linux.kernel/msg/fe1181e5f84164f2"
  posts="17"
  startdate="29 Oct 2005 21:58:10 -0800"
  enddate="30 Oct 2005 14:33:25 -0800"
>
<topic>Software Suspend</topic>

<mention>Pavel Machek</mention>

<p>Rafael J. Wysocki said:</p>

<quote who="Rafael J. Wysocki">

<p>The following series of patches divides swsusp into two functionally
independent subsystems:</p>

<ul>

<li>the snapshot-handling part responsible for creating and populating the
snapshot-related data structure which is the list of page backup entries
aka pagedir,</li>

<li>the swap-handling part responsible for writing the snapshot data to and
reading it from swap.</li>

</ul>

<p>On suspend the snapshot-handling part creates the system snapshot and
makes the data stored in the snapshot available to the swap-handling part
via an interface function allowing it to transfer the data as a series of
consecutive data pages, in a specific order. The swap-handling part writes
the data pages to a swap partition is such a way that they can be read in
exactly the same order in which they have been saved.</p>

<p>On resume the snapshot-handling part is invoked by the swap-handling part
to create the pagedir. Then, the swap-handling part is allowed to send it,
with the help of an interface function, data pages that are used to populate
the snapshot data structure. It is assumed that the data pages will be sent
in the same order in which they have been received by the swap-handling part
on suspend. Finally, the system state (from before suspend) is restored by
the snaphot-handling part from the data structure handled by it.</p>

<p>From the point of view of the swap-handling part, the contents of
the data pages provided by the snapshot-handling do not matter at all.
It handles each data page in the same way without analyzing its contents
and the snapshot-handling part is responsible for recognizing the metadata
and using them as appropriate. Consequently, in principle the swap-handling
part can be replaced with a user-space process and the interface functions
used in transferring data between the two parts of swsusp can be replaced
with a relatively simple kernel-user interface in the future.</p>

<p>The approach used in this series of patches has some additional
benefits:</p>

<ol>

<li>the size of the pagedir is reduced by 1/4 which causes some more memory
to be available on resume,</li>

<li>the amount of metadata written to swap is reduced by 3/4,</li>

<li>the artificial limitation on the pagedir size, imposed by the size of
the swsusp_info structure, is lifted,</li>

<li>the size of swsusp_info structure is reduced so it can be merged with
the swsusp_header structure in the future,</li>

<li>the swap-handling part does not use any global variables related to the
snapshot data structure,</li>

<li>the __nosavedata variables are almost eliminated (on x86-64 the last of
them is the in_suspend variable).</li>

</ol>

<p>I have divided the changes into some more or less logical steps for clarity.
Although the code has been designed as proof-of-concept, it is functional
and has been tested on x86-64, except for the cryptographic functionality
and error paths.</p>

<p>For your convenience the patches are available from: <a
href="http://www.sisk.pl/kernel/patches/2.6.14-rc5-mm1/">http://www.sisk.pl/kernel/patches/2.6.14-rc5-mm1/</a></p>

</quote>

<p>He posted each patch, and Pavel Machek went over them all, and was
generally very pleased. He had a few minor objections, to which Rafael was
very responsive, and the thread ended.</p>

</section>

<section
  title="git 0.99.9 Released; Documenting More Of git's Power"
  subject="GIT 0.99.9"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/f5f45636dc2711be"
  posts="28"
  startdate="29 Oct 2005 18:29:12 -0800"
  enddate="02 Nov 2005 23:40:21 -0800"
>

<p>On the git mailing list, Junio C. Hamano announced git 0.99.9, saying:</p>

<quote who="Junio C. Hamano">

<p>As I said in the 0.99.8 announcement, git already does
everything I want it to do, and from here on I'd like to see us
concentrate on fixes (both correctness and performance) until we
hit 1.0 which should happen shortly.</p>

<p>Many thanks to everybody who contributed the comments, extra set
of eyeballs, and code.</p>

</quote>

<p>Linus Torvalds replied, <quote who="Linus Torvalds">Congrats. I personally
think this is very much worthy of a 1.0 after just giving it some time to
shake out any possible last-minute bugs.</quote> In a later post, he added:</p>

<quote who="Linus Torvalds">

<p>one thing I'd like to see (maybe it already exists and I just have
overlooked it) is some kind of simple readme or something about the different
ways to limit the output of the various git commands.</p>

<p>I've several times been surprised to see people not realize that
"git-whatchanged" takes a file list to limit the files it is interested
in. I also suspect people don't realize that you can limit it by time and
version and file list, all at the same time.</p>

<p>IOW,</p>

<p>        git-whatchanged -p --pretty=short --since="2 weeks ago" v0.99.8..v0.99.9 Makefile</p>

<p>is a valid query: it basically asks for any change to the Makefile in
between versions v0.99.8..v0.99.9, _and_ within the last two weeks, and asks
to show it as a patch, with the shortened commit message.</p>

<p>Is it useful? The above exact line almost certainly isn't, but variations
on the above definitely are. And I suspect a lot of people never even realized
you could do something like that.</p>

<p>(The danger with date-based things is that something may be 4 months
old, but it only got _merged_ yesterday, so it may be new to _you_. And the
--since="2 weeks ago" will not show it, which can be surprising to people
who expect things that are new to _them_ to be shown).</p>

<p>The above limiters now work with "git log" and "gitk" too (they've worked
for a long time with "git-whatchanged", but only with the new git-rev-list
functionality does the name-limiting work for the other commands).</p>

<p>It would be good to make this more well-known, because a lot of people
probably end up using git not as developers, but just to follow what is going
on. And then the different limiters are some of the most important parts
(the date-one is likely the least important one, but limiting by version
and name is _very_ important).</p>

</quote>

<p>Junio replied:</p>

<quote who="Junio C. Hamano">

<p>I've somewhat updated git-rev-list documentation and tried to
categorize the options into commit selectors and presentation
modifiers.  The documentation for commands you mentioned in your
message all talk about them describing only frequently used
options, and refer the user to rev-list documentation.  I am not
sure this would be enough.</p>

<p>One good thing to have would be to add a section to Tutorial.
Currently we cover building a small project from scratch and
have the readers graduate when they learn basic commit swapping,
but we do not talk much about archaeology tools.</p>

</quote>

<p>Linus said:</p>

<quote who="Linus Torvalds">

<p>I don't think people really follow the links or think very abstractly at
all in the first place.</p>

<p>So I was thinking more of some explicit examples. I actually think every
command should have an example in the man-page, and hey, here's a patch to
start things off.</p>

<p>Of course, I'm not exactly "Mr Documentation", and I don't know that this
is the prettiest way to do this, but I checked that the resulting html and
man-page seems at least reasonable.</p>

<p>And hey, if the examples look like each other, that's just because I'm
also not "Mr Imagination".</p>

</quote>

</section>

<section
  title="Removing Obsolete OSS Sound Drivers"
  subject="[2.6 patch] schedule obsolete OSS drivers for removal"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/5442d02024a0f9ae"
  posts="19"
  startdate="30 Oct 2005 09:27:52 -0800"
  enddate="01 Nov 2005 15:55:38 -0800"
>
<topic>PCI</topic>
<topic>Sound: ALSA</topic>
<topic>Sound: OSS</topic>

<mention>Jeff Garzik</mention>
<mention>Andrew Morton</mention>

<p>Adrian Bunk said, <quote who="Adrian Bunk">This patch schedules obsolete OSS
drivers (with ALSA drivers that support the same hardware) for removal.</quote>
He added, <quote who="Adrian Bunk">Scheduling the via82cxxx driver for
removal was ACK'ed by Jeff Garzik.</quote> Andrew Morton also signed off
on the patch. And as Alistair John Strachan added a couple of posts later,
<quote who="Alistair John Strachan">Adrian plans simply to remove drivers
which have solid, known working replacements for all PCI ids in an equivalent
ALSA driver.</quote></p>

<p>Elsewhere, Kyle McMartin remarked, <quote who="Kyle McMartin">I didn't
see it here, but SOUND_AD1889 can definitely be removed as well. The driver
never worked properly to begin with. This was ACK'd by the author last time
this thread reared it's head.</quote> After a small mixup, Adrian said,
<quote who="Adrian Bunk">The ad1889 ALSA driver was not present before 2.6.14
and therefore not on my original list. Below is an updated patch that also
schedules SOUND_AD1889 for removal.</quote></p>

<p>The above-mentioned mixup involved Adrian thinking Kyle was talking
about the ad1816 driver, to which his objection was that <quote who="Adrian
Bunk"><a href="https://bugtrack.alsa-project.org/">ALSA bugs</a> #1301 and
#1302 are still open.</quote> As it turned out, the inadvertant consideration
of ad1816 was useful. Lee Revell pointed out, <quote who="Lee Revell">these
bug reports can be disregarded. The submitter never responded to requests to
retest with the latest ALSA version. #1302 is almost certainly a bug in kphone
anyway.</quote> And Adrian said, <quote who="Adrian Bunk">If these bugs will be
marked as resolved/closed when I'll send the next batch of OSS driver removals
a few months from now, SOUND_AD1816 will be part of this batch.</quote></p>

<p>Elsewhere, Andi Kleen also replied to Adrian's initial post, requesting that
<quote who="Andi Kleen">the ICH driver be kept. It works just fine on near all
my systems and has a much smaller binary size than the ALSA variant. Moving
to ALSA would bloat the kernels considerably.</quote> Lee pointed out, <quote
who="Lee Revell">The emu10k1 ALSA driver is considerably smaller than the
OSS driver and has more features, like most ALSA drivers. If the ICH driver
is really smaller I suspect it's missing some functionality.</quote> Adrian
also said that Andi should submit a proper bug and provide the bug number, if
he wanted the issue to be considered. He added, <quote who="Adrian Bunk">If
you consider ALSA too bloated you should help on solving this issue instead
of insisting on keeping OSS.</quote> At this point several other folks did
indeed begin a technical consideration of ways to reduce ALSA bloat.</p>

</section>

<section
  title="Emails Delayed From Reaching Kernel Maintainers"
  subject="[git patches] 2.6.x libata update"
  archive="http://groups.google.com/group/fa.linux.kernel/msg/b1b6310be5651bcf"
  posts="4"
  startdate="30 Oct 2005 12:39:07 -0800"
  enddate="30 Oct 2005 22:02:28 -0800"
>
<topic>Bug Tracking</topic>

<mention>Andrew Morton</mention>

<p>Jeff Garzik posted a patch, and Andrew Morton said, <quote who="Jeff
Garzik">Linus may not receive this. For me at least, large amounts of
incoming and outgoing OSDL email have been disappearing into the ether for
the past 12 hours or so.</quote> And Linus Torvalds added:</p>

<quote who="Linus Torvalds">

<p>Apparently the osdl mail server (and bugzilla etc) had a disk failure
overnight.</p>

<p>My (and yours, Andrew) mail should be starting to trickle in now. Just
a little bit delayed ;)</p>

</quote>

</section>

<section
  title="NTFS Updates; Instructions On Testing"
  subject="[2.6-GIT] NTFS: Release 2.1.25."
  archive="http://groups.google.com/group/linux.kernel/msg/71cef2eefa398e21?hl=en"
  posts="28"
  startdate="31 Oct 2005 14:22:47 -0800"
  enddate="01 Nov 2005 17:01:46 -0800"
>
<topic>FS: NTFS</topic>

<p>Anton Altaparmakov posted a bunch of NTFS patches, saying, <quote who="Anton
Altaparmakov">This is the next NTFS update containing more extended write
support (and in fact pretty much completely rewritten file write support)!
This has been in -mm for a while and at least one person (other than me that
is) tested it, found a bug which I fixed, and since then noone has reported
any bugs with the code. So I think it is definitely ready for a larger
audience, i.e. the mainline kernel.</quote> Yura Pakhuchiy reported a bug,
and it turned out he hadn't known where to get additional patches needed to
test NTFS. In a subsequent release, Anton said:</p>

<quote who="Anton Altaparmakov">

<p>If you go to a kernel.org mirror and look at:</p>

<p><a
href="http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/">http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/</a></p>

<p>And then at the kernel you are interested in, e.g. lets take the latest
-mm, then you will find the full -mm patch and the broken out bits in the
following URLs respectively:</p>

<p>full mm:<br />
<a href="http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/2.6.14-rc5-mm1/">http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/
2.6.14-rc5-mm1/</a></p>

<p>broken out:<br />
<a href="http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/2.6.14-rc5-mm1/broken-out/">http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/
2.6.14-rc5-mm1/broken-out/</a></p>

<p>And thusly, the ntfs patch from the developmental ntfs git repository
would be:<br />
<a href="http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/2.6.14-rc5-mm1/broken-out/git-ntfs.patch">http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/
2.6.14-rc5-mm1/broken-out/git-ntfs.patch</a></p>

<p>It is also worth looking in the broken out directory for other patches
with ntfs in the name, as Andrew may have other ntfs patches. In the above
-mm, there is for example:<br />
<a href="http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/2.6.14-rc5-mm1/broken-out/ntfs-printk-warning-fixes.patch">http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/
2.6.14-rc5-mm1/broken-out/ntfs-printk-warning-fixes.patch</a></p>

</quote>

</section>

<section
  title="Fresh Attempt To Remove DevFS"
  subject="[GIT PATCH] Remove devfs from 2.6.14"
  archive="http://groups.google.com/group/linux.kernel/msg/0a2f4327871dede6"
  posts="1"
  startdate="01 Nov 2005 00:13:08 -0800"
  enddate="01 Nov 2005 00:13:08 -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 at:<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>

<p>There was no reply.</p>

</section>

<section
  title="'(H)gct' git And Mercurial GUI-Enabled Commit Tool Update"
  subject="[ANNOUNCE] (H)gct 0.3"
  archive="http://www.selenic.com/pipermail/mercurial/2005-November/005303.html"
  posts="1"
  startdate="01 Nov 2005 20:37:25 -0800"
  enddate="01 Nov 2005 20:37:25 -0800"
>

<p>On the git mailing list, Fredrik Kuivinen said:</p>

<quote who="Fredrik Kuivinen">

<p>Version 0.3 of (H)gct, a GUI enabled commit tool for Git
and Mercurial, has been released and can be downloaded from <a
href="http://www.cyd.liu.se/~freku045/gct/ct-0.3.tar.gz">http://www.cyd.liu.se/~freku045/gct/ct-0.3.tar.gz</a></p>

<p>Thanks to Vincent Danjean there are Debian packages available at <a
href="http://dept-info.labri.fr/~danjean/deb.html#commit-tool">http://dept-info.labri.fr/~danjean/deb.html#commit-tool</a></p>

<p>Screen shots and a Git repository with a gitweb
interface are available at the project homepage, <a
href="http://www.cyd.liu.se/~freku045/gct">http://www.cyd.liu.se/~freku045/gct</a></p>

<p>The major changes compared to v0.2 are:</p>

<ul>

<li>File filter, show only file names which contain a specified string.</li>

<li>Make ignoring files actually work.</li>

<li>A new option, --one-shot, which makes (h)gct exit after the first
commit.</li>

<li>Support for new versions of git.</li>

<li>An Hg extension which makes hgct better integrated with Hg. See README.HG
for details.</li>

</ul>

</quote>

</section>

<section
  title="git 0.99.9b In Use On kernel.org Machines"
  subject="git 0.99.9b installed on kernel.org"
  archive="http://www.gelato.unsw.edu.au/archives/git/0511/11415.html"
  posts="1"
  startdate="02 Nov 2005 08:52:23 -0800"
  enddate="02 Nov 2005 08:52:23 -0800"
>

<p>On the git mailing list, H. Peter Anvin said, <quote who="H. Peter
Anvin">git 0.99.9b is now installed on all kernel.org machines.</quote></p>

</section>

</kc>

