<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="309" date="04 Jun 2005 00:00:00 -0800" />

<mailbox-stats>
	<global-stats>
		<generated-at>Sat Jun  4 11:54:32 2005</generated-at>
		<first-message>Mon Apr 11 02:25:32 2005</first-message>
		<last-message>Fri Apr 29 11:44:56 2005</last-message>
		<totals>
			<n-messages>1166</n-messages>
			<n-is-reply>915</n-is-reply>
			<avg-resp-time>16:34:23</avg-resp-time>
			<n-pgp-signed>41</n-pgp-signed>
			<total-size>7MB</total-size>
			<avg-size>6KB</avg-size>
			<n-attachments>34</n-attachments>
			<att-size>246KB</att-size>
			<bussiest-day-in-n day="2005-04-25"><n-msgs>203</n-msgs><n-bytes>2MB</n-bytes></bussiest-day-in-n>
			<bussiest-day-in-bytes day="2005-04-25"><n-msgs>203</n-msgs><n-bytes>2MB</n-bytes></bussiest-day-in-bytes>
			<n-writers>442</n-writers>
			<wrote-more-then-1-message>169</wrote-more-then-1-message>
			<n-lines>102451</n-lines>
			<header-size>63449</header-size>
			<n-user-agents>54</n-user-agents>
			<n-organisations>34</n-organisations>
			<n-toplevel-domains>32</n-toplevel-domains>
			<avg-spam-score>-28.448199</avg-spam-score>
				<spammiest-writer><score>0.599000</score><name>lana&#32;ratliff</name></spammiest-writer>
		</totals>
		<averages>
			<lines-per-message>87</lines-per-message>
			<lines-per-header>54</lines-per-header>
			<header-percent-of-message>61.93%</header-percent-of-message>
			<header-percent-of-total>46.57%</header-percent-of-total>
			<line-length>29</line-length>
		</averages>
		<importance>
			<low>0.00%</low>
			<normal>0.34%</normal>
			<high>0.00%</high>
		</importance>

	</global-stats>
	<top-writers>
		<top-writer rank="1">
			<e-mail-addr>andrew&#32;morton</e-mail-addr>
			<n-messages>48</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>269KB</total-size>
			<mostly-written-at>12:35</mostly-written-at>
		</top-writer>
		<top-writer rank="2">
			<e-mail-addr>pavel&#32;machek</e-mail-addr>
			<n-messages>34</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>144KB</total-size>
			<mostly-written-at>11:41</mostly-written-at>
		</top-writer>
		<top-writer rank="3">
			<e-mail-addr>dmitry&#32;torokhov</e-mail-addr>
			<n-messages>32</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>214KB</total-size>
			<mostly-written-at>02:14</mostly-written-at>
		</top-writer>
		<top-writer rank="4">
			<e-mail-addr>jesper&#32;juhl</e-mail-addr>
			<n-messages>31</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>208KB</total-size>
			<mostly-written-at>13:41</mostly-written-at>
		</top-writer>
		<top-writer rank="5">
			<e-mail-addr>greg&#32;kh</e-mail-addr>
			<n-messages>25</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>102KB</total-size>
			<mostly-written-at>17:35</mostly-written-at>
		</top-writer>
	</top-writers>
	<top-subjects>
		<top-subject rank="1">
			<subject>linux&#32;2.6.12-rc3</subject>
			<n-messages>71</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>327KB</total-size>
			<mostly-written-at>13:29</mostly-written-at>
			<first-msg>1114048759</first-msg>
			<last-msg>1114539704</last-msg>
		</top-subject>
		<top-subject rank="2">
			<subject>2.6.12-rc2-mm3</subject>
			<n-messages>65</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>393KB</total-size>
			<mostly-written-at>12:23</mostly-written-at>
			<first-msg>1113211532</first-msg>
			<last-msg>1114634513</last-msg>
		</top-subject>
		<top-subject rank="3">
			<subject>git-commits&#32;mailing&#32;list&#32;feed.</subject>
			<n-messages>59</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>269KB</total-size>
			<mostly-written-at>13:33</mostly-written-at>
			<first-msg>1114100676</first-msg>
			<last-msg>1114480033</last-msg>
		</top-subject>
		<top-subject rank="4">
			<subject>[patch&#32;x86_64]&#32;live&#32;patching&#32;function&#32;on&#32;2.6.11.7</subject>
			<n-messages>54</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>303KB</total-size>
			<mostly-written-at>12:59</mostly-written-at>
			<first-msg>1113800838</first-msg>
			<last-msg>1114556747</last-msg>
		</top-subject>
		<top-subject rank="5">
			<subject>[patch]&#32;pci:&#32;add&#32;pci&#32;shutdown&#32;ability</subject>
			<n-messages>47</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>201KB</total-size>
			<mostly-written-at>14:31</mostly-written-at>
			<first-msg>1114459566</first-msg>
			<last-msg>1114582982</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>178</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>2MB</total-size>
			<mostly-written-at>13:04</mostly-written-at>
		</top-receiver>
		<top-receiver rank="2">
			<e-mail-addr>andrew&#32;morton</e-mail-addr>
			<n-messages>157</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>959KB</total-size>
			<mostly-written-at>14:18</mostly-written-at>
		</top-receiver>
		<top-receiver rank="3">
			<e-mail-addr>linus&#32;torvalds</e-mail-addr>
			<n-messages>46</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>257KB</total-size>
			<mostly-written-at>15:00</mostly-written-at>
		</top-receiver>
		<top-receiver rank="4">
			<e-mail-addr>pavel&#32;machek</e-mail-addr>
			<n-messages>37</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>161KB</total-size>
			<mostly-written-at>15:58</mostly-written-at>
		</top-receiver>
		<top-receiver rank="5">
			<e-mail-addr>dtor_core@ameritech.net</e-mail-addr>
			<n-messages>26</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>165KB</total-size>
			<mostly-written-at>14:23</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>496</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>3MB</total-size>
			<mostly-written-at>13:31</mostly-written-at>
		</top-ccers>
		<top-ccers rank="2">
			<e-mail-addr>andrew&#32;morton</e-mail-addr>
			<n-messages>137</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>825KB</total-size>
			<mostly-written-at>13:56</mostly-written-at>
		</top-ccers>
		<top-ccers rank="3">
			<e-mail-addr>greg&#32;kh</e-mail-addr>
			<n-messages>59</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>268KB</total-size>
			<mostly-written-at>13:15</mostly-written-at>
		</top-ccers>
		<top-ccers rank="4">
			<e-mail-addr>linus&#32;torvalds</e-mail-addr>
			<n-messages>54</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>229KB</total-size>
			<mostly-written-at>12:30</mostly-written-at>
		</top-ccers>
		<top-ccers rank="5">
			<e-mail-addr>simon&#32;derr</e-mail-addr>
			<n-messages>33</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>202KB</total-size>
			<mostly-written-at>13:30</mostly-written-at>
		</top-ccers>
	</top-ccers>
	<top-level-domains>
		<tld rank="1">
			<name>com</name>
			<freq>353</freq>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
		</tld>
		<tld rank="2">
			<name>org</name>
			<freq>225</freq>
			<avg-size>5KB</avg-size>
			<total-size>2MB</total-size>
		</tld>
		<tld rank="3">
			<name>de</name>
			<freq>111</freq>
			<avg-size>6KB</avg-size>
			<total-size>660KB</total-size>
		</tld>
		<tld rank="4">
			<name>net</name>
			<freq>103</freq>
			<avg-size>6KB</avg-size>
			<total-size>543KB</total-size>
		</tld>
		<tld rank="5">
			<name>cz</name>
			<freq>63</freq>
			<avg-size>5KB</avg-size>
			<total-size>293KB</total-size>
		</tld>
	</top-level-domains>
	<top-timezones>
		<tz rank="1">
			<name>+0200</name>
			<freq>414</freq>
			<avg-size>6KB</avg-size>
			<total-size>3MB</total-size>
		</tz>
		<tz rank="2">
			<name>-0700</name>
			<freq>209</freq>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
		</tz>
		<tz rank="3">
			<name>-0400</name>
			<freq>133</freq>
			<avg-size>5KB</avg-size>
			<total-size>639KB</total-size>
		</tz>
		<tz rank="4">
			<name>-0500</name>
			<freq>78</freq>
			<avg-size>6KB</avg-size>
			<total-size>444KB</total-size>
		</tz>
		<tz rank="5">
			<name>+0100</name>
			<freq>63</freq>
			<avg-size>5KB</avg-size>
			<total-size>253KB</total-size>
		</tz>
	</top-timezones>
	<top-organisations>
		<org rank="1">
			<name>sgi</name>
			<freq>24</freq>
			<bytes>128KB</bytes>
		</org>
		<org rank="2">
			<name>mipt</name>
			<freq>23</freq>
			<bytes>158KB</bytes>
		</org>
		<org rank="3">
			<name>blackdown&#32;java-linux&#32;team</name>
			<freq>10</freq>
			<bytes>51KB</bytes>
		</org>
		<org rank="4">
			<name>osdl</name>
			<freq>8</freq>
			<bytes>43KB</bytes>
		</org>
		<org rank="5">
			<name>osd</name>
			<freq>7</freq>
			<bytes>31KB</bytes>
		</org>
	</top-organisations>
	<top-user-agents>
		<useragent rank="1">
			<name>mozilla</name>
			<freq>29</freq>
			<bytes>476KB</bytes>
		</useragent>
		<useragent rank="2">
			<name>evolution</name>
			<freq>27</freq>
			<bytes>446KB</bytes>
		</useragent>
		<useragent rank="3">
			<name>mozilla/5.0</name>
			<freq>24</freq>
			<bytes>419KB</bytes>
		</useragent>
		<useragent rank="4">
			<name>mutt/1.5.6+20040907i</name>
			<freq>18</freq>
			<bytes>533KB</bytes>
		</useragent>
		<useragent rank="5">
			<name>ximian</name>
			<freq>11</freq>
			<bytes>136KB</bytes>
		</useragent>
	</top-user-agents>
	<messages-per-day>
		<Sunday><msgs>146</msgs><bytes>797KB</bytes></Sunday>
		<Monday><msgs>252</msgs><bytes>2MB</bytes></Monday>
		<Tuesday><msgs>239</msgs><bytes>2MB</bytes></Tuesday>
		<Wednesday><msgs>184</msgs><bytes>933KB</bytes></Wednesday>
		<Thursday><msgs>173</msgs><bytes>891KB</bytes></Thursday>
		<Friday><msgs>44</msgs><bytes>222KB</bytes></Friday>
		<Saturday><msgs>111</msgs><bytes>518KB</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>1150</msgs><bytes>7MB</bytes></Apr>
		<May><msgs>0</msgs><bytes>0</bytes></May>
		<Jun><msgs>0</msgs><bytes>0</bytes></Jun>
		<Jul><msgs>0</msgs><bytes>0</bytes></Jul>
		<Aug><msgs>0</msgs><bytes>0</bytes></Aug>
		<Sep><msgs>0</msgs><bytes>0</bytes></Sep>
		<Oct><msgs>0</msgs><bytes>0</bytes></Oct>
		<Nov><msgs>0</msgs><bytes>0</bytes></Nov>
		<Dec><msgs>0</msgs><bytes>0</bytes></Dec>
	</messages-per-month>
	<messages-per-day-of-month>
		<day-1><msgs>0</msgs><bytes>0</bytes></day-1>
		<day-2><msgs>0</msgs><bytes>0</bytes></day-2>
		<day-3><msgs>0</msgs><bytes>0</bytes></day-3>
		<day-4><msgs>0</msgs><bytes>0</bytes></day-4>
		<day-5><msgs>0</msgs><bytes>0</bytes></day-5>
		<day-6><msgs>0</msgs><bytes>0</bytes></day-6>
		<day-7><msgs>0</msgs><bytes>0</bytes></day-7>
		<day-8><msgs>0</msgs><bytes>0</bytes></day-8>
		<day-9><msgs>0</msgs><bytes>0</bytes></day-9>
		<day-10><msgs>0</msgs><bytes>0</bytes></day-10>
		<day-11><msgs>14</msgs><bytes>170KB</bytes></day-11>
		<day-12><msgs>24</msgs><bytes>114KB</bytes></day-12>
		<day-13><msgs>9</msgs><bytes>38KB</bytes></day-13>
		<day-14><msgs>1</msgs><bytes>3KB</bytes></day-14>
		<day-15><msgs>5</msgs><bytes>15KB</bytes></day-15>
		<day-16><msgs>3</msgs><bytes>14KB</bytes></day-16>
		<day-17><msgs>20</msgs><bytes>74KB</bytes></day-17>
		<day-18><msgs>35</msgs><bytes>226KB</bytes></day-18>
		<day-19><msgs>29</msgs><bytes>171KB</bytes></day-19>
		<day-20><msgs>21</msgs><bytes>116KB</bytes></day-20>
		<day-21><msgs>49</msgs><bytes>257KB</bytes></day-21>
		<day-22><msgs>24</msgs><bytes>112KB</bytes></day-22>
		<day-23><msgs>108</msgs><bytes>504KB</bytes></day-23>
		<day-24><msgs>126</msgs><bytes>723KB</bytes></day-24>
		<day-25><msgs>203</msgs><bytes>2MB</bytes></day-25>
		<day-26><msgs>186</msgs><bytes>931KB</bytes></day-26>
		<day-27><msgs>155</msgs><bytes>782KB</bytes></day-27>
		<day-28><msgs>123</msgs><bytes>631KB</bytes></day-28>
		<day-29><msgs>15</msgs><bytes>97KB</bytes></day-29>
		<day-30><msgs>0</msgs><bytes>0</bytes></day-30>
		<day-31><msgs>0</msgs><bytes>0</bytes></day-31>
	</messages-per-day-of-month>
	<messages-per-hour>
		<hour-1><msgs>41</msgs><bytes>321KB</bytes></hour-1>
		<hour-2><msgs>27</msgs><bytes>109KB</bytes></hour-2>
		<hour-3><msgs>12</msgs><bytes>87KB</bytes></hour-3>
		<hour-4><msgs>16</msgs><bytes>69KB</bytes></hour-4>
		<hour-5><msgs>8</msgs><bytes>30KB</bytes></hour-5>
		<hour-6><msgs>6</msgs><bytes>23KB</bytes></hour-6>
		<hour-7><msgs>21</msgs><bytes>101KB</bytes></hour-7>
		<hour-8><msgs>24</msgs><bytes>137KB</bytes></hour-8>
		<hour-9><msgs>41</msgs><bytes>188KB</bytes></hour-9>
		<hour-10><msgs>72</msgs><bytes>302KB</bytes></hour-10>
		<hour-11><msgs>70</msgs><bytes>325KB</bytes></hour-11>
		<hour-12><msgs>72</msgs><bytes>391KB</bytes></hour-12>
		<hour-13><msgs>73</msgs><bytes>365KB</bytes></hour-13>
		<hour-14><msgs>60</msgs><bytes>376KB</bytes></hour-14>
		<hour-15><msgs>53</msgs><bytes>248KB</bytes></hour-15>
		<hour-16><msgs>76</msgs><bytes>572KB</bytes></hour-16>
		<hour-17><msgs>83</msgs><bytes>392KB</bytes></hour-17>
		<hour-18><msgs>39</msgs><bytes>162KB</bytes></hour-18>
		<hour-19><msgs>37</msgs><bytes>221KB</bytes></hour-19>
		<hour-20><msgs>59</msgs><bytes>305KB</bytes></hour-20>
		<hour-21><msgs>53</msgs><bytes>256KB</bytes></hour-21>
		<hour-22><msgs>63</msgs><bytes>295KB</bytes></hour-22>
		<hour-23><msgs>68</msgs><bytes>507KB</bytes></hour-23>
	</messages-per-hour>
	<urls>
		<url-1><freq>836</freq><url>http://vger.kernel.org/majordomo-info.html</url></url-1>
		<url-2><freq>832</freq><url>http://www.tux.org/lkml/</url></url-2>
		<url-3><freq>23</freq><url>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/</url></url-3>
		<url-4><freq>6</freq><url>http://java.sun.com/docs/books/tutorial/getstarted/index.html</url></url-4>
		<url-5><freq>4</freq><url>http://pannus.sourceforge.net</url></url-5>
	</urls>
	<top-avg-resp>
		<resp-pers rank="1">
			<name>mikael&#32;pettersson</name>
			<avg-resp-time>00:00:28</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="2">
			<name>hariprasad&#32;nellitheertha</name>
			<avg-resp-time>00:01:07</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="3">
			<name>adrian&#32;bunk</name>
			<avg-resp-time>00:05:57</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="4">
			<name>lee&#32;revell</name>
			<avg-resp-time>00:07:17</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="5">
			<name>jan-benedict&#32;glaw</name>
			<avg-resp-time>00:08:37</avg-resp-time>
			<n-replies>2</n-replies>
		</resp-pers>
		<resp-pers rank="6">
			<name>yum&#32;rayan</name>
			<avg-resp-time>00:09:35</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="Linux 2.6.12-rc2-mm3 Released"
  subject="2.6.12-rc2-mm3"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/b8eca45757db6900?hl=en"
  posts="75"
  startdate="11 Apr 2005 00:25:32 -0800"
  enddate="27 Apr 2005 02:41:53 -0800"
>
<topic>Disks: SCSI</topic>
<topic>FS: sysfs</topic>
<topic>Kernel Release Announcement</topic>

<mention>Nick Piggin</mention>

<p>Andrew Morton announced Linux 2.6.12-rc2-mm3, saying:</p>

<quote who="Andrew Morton">

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

<ul>

<li>

<p>The anticipatory I/O scheduler has always been fairly useless with SCSI
disks which perform tagged command queueing.  There's a patch here from
Jens which is designed to fix that up by constraining the number of requests
which we'll leave pending in the device.</p>

<p>The depth currently defaults to 1.  Tunable in
/sys/block/hdX/queue/iosched/queue_depth</p>

<p>This patch hasn't been performance tested at all yet.  If you think it is
misbehaving (the usual symptom is processes stuck in D state) then please
report it, then boot with `elevator=cfq' or `elevator=deadline' to work
around it.</p>

</li>

<li>More CPU scheduler work.  I hope someone is testing this stuff.</li>

</ul>

</quote>

<p>Later that day, he said the anticipatory I/O scheduler patch had been
broken, and that he was working on it; he and Nick Piggin discussed the
problem, but no immediate solution came out of it.</p>

</section>

<section
  title="Isolating Sets Of CPUs For Targeted Processes"
  subject="[RFC PATCH] Dynamic sched domains aka Isolated cpusets"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/c90426fff2567311?hl=en"
  posts="35"
  startdate="18 Apr 2005 12:26:44 -0800"
  enddate="25 Apr 2005 16:59:14 -0800"
>
<topic>Hot-Plugging</topic>
<topic>Hyperthreading</topic>

<mention>Nick Piggin</mention>
<mention>Paul Jackson</mention>

<p>Dinakar Guniguntala said:</p>

<quote who="Dinakar Guniguntala">

<p>Here's an attempt at dynamic sched domains aka isolated cpusets</p>

<ul>

<li>This functionality is on top of CPUSETs and provides a way to
   completely isolate any set of CPUs dynamically.</li>

<li>There is a new cpu_isolated flag that allows users to convert
   an exclusive cpuset to an isolated one</li>

<li>The isolated CPUs are part of their own sched domain.
   This ensures that the rebalance code works within the domain,
   prevents overhead due to a cpu trying to pull tasks only to find
   that its cpus_allowed mask does not allow it to be pulled.
   However it does not kick existing processes off the isolated domain</li>

<li>

<p>There is very little code change in the scheduler sched domain
code. Most of it is just splitting up of the arch_init_sched_domains
code to be called dynamically instead of only at boot time.
It has only one API which takes in the map of all cpus affected
and the two new domains to be built</p>

<p>rebuild_sched_domains(cpumask_t change_map, cpumask_t span1, cpumask_t
span2)</p>

</li>

</ul>

<p>There are some things that may/will change</p>

<ul>

<li>This has been tested only on x86 [8 way -> 4 way with HT]. Still
   needs work on other arch's</li>

<li>I didn't get a chance to see Nick Piggin's RCU sched domains code
   as yet, but I know there would be changes here because of that...</li>

<li>This does not support CPU hotplug as yet</li>

<li>

<p>Making a cpuset isolated manipulates its parent cpus_allowed
mask. When viewed from userspace this is represented as follows</p>

<p>[root@llm11 cpusets] cat cpus<br />
0-3[4-7]</p>

<p>This indicates that CPUs 4-7 are isolated and is/are part of some
child cpuset/s</p>

</li>

</ul>

</quote>

<p>Nick Piggin was thrilled to see someone working on this, though he had
problems with Dinakar's implementation. Paul Jackson also liked the project
but had issues with the implementation. Nick, Paul, and several other folks
had a lively technical discussion, resulting in at least one revised version
of the patch by Dinakar.</p>

</section>

<section
  title="Linux 2.6.12-rc3 Released; First Release Using git"
  subject="Linux 2.6.12-rc3"
  archive=""
  posts="82"
  startdate="20 Apr 2005 16:59:19 -0800"
  enddate="26 Apr 2005 00:21:44 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>Version Control</topic>

<mention>Petr Baudis</mention>
<mention>Pierre Ossman</mention>

<p>Linus Torvalds announced Linux 2.6.12-rc3, saying:</p>

<quote who="Linus Torvalds">

<p>you know what the subject line means by now, but this release is a bit
different from the usual ones, for obvious reasons. It's the first in a
_long_ time that I've done without using BK, and it's the first one ever
that has been built up completely with "git".</p>

<p>It's available both as a patch (against 2.6.11) and as a tar-ball, and
for non-BK users the biggest difference is probably that the ChangeLog
format has changed a bit. And it will probably continue to evolve, since I
don't have my "release-script" tools set up for the new setup, so this
release was done largely manually with some ad-hoc scripting to get the
ChangeLog information etc out of git.</p>

<p>For BK users, I hope we can get a BK tree that tracks this set up soon,
and it should hopefully not be too disruptive either.</p>

<p>And for the crazy people, the git archive on kernel.org is up and running
under /pub/scm/linux/kernel/git/torvalds/linux-2.6.git. For the
adventurous of you, the name of the 2.6.12-rc3 release is a very nice and
readable:</p>

<p>        a2755a80f40e5794ddc20e00f781af9d6320fafb</p>

<p>and eventually I'll try to make sure that I actually accompany all
releases with the SHA1 git name of the release signed with a digital
signature.</p>

<p>One of the tools I don't have set up yet is the old "shortlog" script, so
I did this really hacky conversion. You don't want to know, but let's say
that I'm re-aquainting myself with 'sed' after a long time ;). But if some
lines look like they got hacked up in the middle, rest assured that that's
exactly what happened, and the long log should have the rest ...</p>

</quote>

<p>Various folks tried using git, asked usage questions, and requested
features.  Petr Baudis, the author of the Cogito version control layer above
the git filesystem, pointed out that the UI would be changing drastically
in the near future (it has since done so). At one point, Linus remarked:</p>

<quote who="Linus Torvalds">

<p>A word of warning: in many ways it's easier to work with patches. In
particular, if you want to have me merge from your tree, I require a
certain amount of cleanliness in the trees I'm pulling from. All of the
people who used to use BK to sync are already used to that, but for people
who didn't historically use BK this is going to be a learning experience.</p>

<p>The reason patches are easier is that you can start out from a messy tree,
and then whittle down the patch to just the part you want to send me, so
it doesn't actually matter how messy your original tree is, you can always
make the end result look nice.</p>

<p>One of the things a distributed SCM brings with it is that you can't edit
history after the fact, which means that if you use git and you've got a
messy tree, you can't just "clean it up". You either have to keep your
tree clean all the time, or you have to generate a new clean tree (usually
by exporting patches from your messy one) and throw the messy ones away
periodically.</p>

<p>("throw-away" git trees are actually very very useful).</p>

<p>git is actually even _more_ strict than BK in this respect, since the git
model means that everything is based on SHA1 hashes, and you can't edit
_anything_. With BK, some people were used to edit the checkin comments
after the fact, and you could do that kind of limited cleanup before you
asked me to merge. With git, that's all hashed cryptographically and is
part of the "name" of the result, so if you want to change the checkin
comments, you literally have to throw the old one (and every later checkin
that has it as its parents) away, and re-generate the whole chain.</p>

<p>This is very much by design. This is how git (and I) can trust the end
result. It is how git can know that if we have a common parent, all the
history before that common parent is guaranteed to be the same for both
you and me, and git can thus ignore it. But as mentioned, it does mean
that git history is set in stone, and the only way to "fix" things is
literally to re-create it all.</p>

</quote>

<p>Pierre Ossman asked what the main parts of the 'learning experience'
consisted of; Greg KH replied:</p>

<quote who="Greg KH">

<p>The main issue is if you want to use git for development and accepting
patches from others, you need to be used to not using that git tree to
send patches to Linus.  To send patches to him, do something like the
following:</p>

<ul>

<li>export the patches from your git tree</li>

<li>pick and choose what you want to send off, cleaning up the changelog
comments and merging patches that need to be.</li>

<li>clone the latest copy of Linus's tree.</li>

<li>apply the patches to that tree.</li>

<li>make the tree public</li>

<li>generate an email with the diffs and send that off to lkml and Linus.</li>

</ul>

<p>Because of all of this, I've found that it is easier to use quilt for
day-to-day development and acceptance of patches.  Then use git to build up
trees for Linus to pull from.</p>

<p>But you might find your workflow is different :)</p>

</quote>

<p>Pavel Machek asked, <quote who="Pavel Machek">How does Andrew fit into
this picture, btw? I thought all patches ought to go through him... Is
Andrew willing to pull from git trees? Or is it "create one version for akpm,
and when he ACKs it, create another for Linus"?</quote> Greg replied:</p>

<quote who="Greg KH">

<p>Yeah, getting Andrew into the picture is a bit different.  Previously,
with bk, I could just have him pull from my trees, and generate a patch
from that.  And actually, with git that would work just as well, so if
you make your git working trees public, he can pull from them and you're
fine.</p>

<p>But with quilt it's different.  That's why I make up a big patch which
is the sum of my individual patches and put them on a public site.
Right now you can see this at:<br />
        kernel.org/pub/linux/kernel/people/gregkh-2.6/<br />
The patches in that directory are the "rolled up" ones.  The script
there is what I use to build these patches, if you want to do something
like it.</p>

<p>In the patches/ subdir below that one, is a mirror of my quilt patches
directory, series file and all.  That way people can still see the
individual patches if they want to.</p>

<p>Does this help some?  It's all still under flux as to how this all
works, try something and go from there :)</p>

</quote>

<p>Andrew Morton said:</p>

<quote who="Andrew Morton">

<p>Andrew has some work to do before he can regain momentum:</p>

<ul>

<li>Which subsystem maintainers will have public git trees?</li>

<li>Which maintainers will continue to use bk?</li>

<li>Can Andrew legally use the bk client?</li>

<li>Can Andrew legally use a bk client which won't go phut at cset 65535?</li>

<li>How do I do a bk `gcapatch' is there is no Linus bk tree to base it
off?</li>

<li>If none of the above, which maintainers will put up-to-date raw patches
in places where Andrew can get at them?</li>

</ul>

<p>I don't know how all this will pan out.  I guess the next -mm won't have
many subsystem trees and I'll gradually add them as things get sorted out.</p>

</quote>

<p>He added:</p>

<quote who="Andrew Morton">

<p>Of course, whatever gets done, I'd selfishly prefer that most (or even all)
subsystem maintainers work the same way and adopt the same work practices.</p>

<p>I guess it's too early to think about that, but if one maintainer (hint)
were to develop and document a good methodology and toolset, others might
quickly follow.</p>

</quote>

</section>

<section
  title="Git Commits Mailing List Feed; Some Discussion Of Tagging"
  subject="Git-commits mailing list feed."
  archive="http://groups-beta.google.com/group/linux.kernel/msg/d4a7fbbe4e15dac0?hl=en"
  posts="59"
  startdate="20 Apr 2005 20:22:07 -0800"
  enddate="25 Apr 2005 07:47:13 -0800"
>
<topic>Version Control</topic>

<mention>Greg KH</mention>

<p>David Woodhouse announced that the bk-commits-head@vger.kernel.org mailing
list would begin carrying commits from Linus Torvalds's git repository. Jan
Dittmer asked if daily snapshots were in the offing, and David said he might do
it at some point. Greg KH pointed out that the scripts to so it were floating
around somewhere, and could be ported to work for git repositories. He added
that he also would love to see someone do this. Jan had trouble finding the
script, so he wrote a new one himself, and said, <quote who="Jan Dittmer">The
produced patch will create a file git-commit-id in the top-level directory
with the commit id used to create the patch.</quote></p>

<p>Jan's script had some odd dependencies (it relied on a modified version
of <a href="http://www.selenic.com/ketchup">ketchup</a>), which seemed a bit
excessive to David. David posted his own simpler version. Jan pointed out
that David's method of determining the most recent versioned release would
not work, as it relied on version tagging in the repository, which Linus did
not yet do. That was why Jan had resorted to using ketchup. But David said,
<quote who="David Woodhouse">Nah, asking Linus to tag his releases is the
most comfortable way.</quote> Linus replied:</p>

<quote who="Linus Torvalds">

<p>The reason I've not done tags yet is that I haven't decided how to do
them.</p>

<p>The git-pasky "just remember the tag name" approach certainly works,
but I was literally thinking o fsetting up some signing system, so that a
tag doesn't just say "commit 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 is
v2.6.12-rc2", but it would actually give stronger guarantees, ie it would
say "Linus says that commit 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 is his
2.6.12-rc2 release".</p>

<p>That's something fundamentally more powerful, and it's also something
that I actually can integrate better into git.</p>

<p>In other words, I actually want to create "tag objects", the same way
we have "commit objects". A tag object points to a commit object, but in
addition it contains the tag name _and_ the digital signature of whoever
created the tag.</p>

<p>Then you just distribute these tag objects along with all the other
objects, and fsck-cache can pick them up even without any other knowledge,
but normally you'd actually point to them some other way too, ie you could
have the ".git/tags/xxx" files have the pointers, but now they are _validated_
pointers.</p>

<p>That was my plan, at least. But I haven't set up any signature generation
thing, and this really isn't my area of expertise any more. But my _plan_
literally was to have the tag object look a lot like a commit object, but
instead of pointing to the tree and the commit parents, it would point to
the commit you are tagging. Somehting like</p>

<pre>        commit a2755a80f40e5794ddc20e00f781af9d6320fafb
        tag v2.6.12-rc3
        signer Linus Torvalds

        This is my official original 2.6.12-rc2 release

        -----BEGIN PGP SIGNATURE-----
        ....
        -----END PGP SIGNATURE-----</pre>

<p>with a few fixed headers and then a place for free-form commentary,
everything signed by the key (and then it ends up being encapsulated as an
object with the object type "tag", and SHA1-csummed and compressed, ie it
ends up being just another object as far as git is concerned, but now it's
an object that tells you about _trust_)</p>

<p>(The "signer" field is just a way to easily figure out which public key
to check the signature against, so that you don't have to try them all. Or
something. My point being that I know what I want, but because I normally
don't actually ever _use_ PGP etc, I don't know the scripts to create these,
so I've been punting on it all).</p>

<p>If somebody writes a script to generate the above kind of thing (and
tells me how to validate it), I'll do the rest, and start tagging things
properly. Oh, and make sure the above sounds sane (ie if somebody has a
better idea for how to more easily identify how to find the public key to
check against, please speak up).</p>

</quote>

<p>He replied to himself a few minutes later:</p>

<quote who="Linus Torvalds">

<p>Btw, in case it wasn't clear, one of the advantages of this is that these
objects are really _not_ versioned themselves, and that they are totally
independent of the objects that they actually tag.</p>

<p>They spread together with all the other objects, so they fit very well
into the whole git infrastructure, but the real commit objects don't have
any linkages to the tag and the tag objects themselves don't have any history
amongst themselves, so you can create a tag at any (later) time, and it doesn't
actually change the commit in any way or affect other tags in any way.</p>

<p>In particular, many different people can tag the same commit, and they
don't even need to tage their _own_ commit - you can use this tag objects
to show that you trust somebody elses commit. You can also throw the tag
objects away, since nothing else depends on them and they have nothing
linking to them - so you can make a "one-time" tag object that you can pass
off to somebody else, and then delete it, and now it's just a "temporary
tag"  that tells the recipient _something_ about the commit you tagged,
but that doesn't stay around in the archive.</p>

<p>That's important, because I actually want to have the ability for people
who want me to pull from their archive to send me a message that says "pull
from this archive, and btw, here's the tag that not only tells you which
head to merge, but also proves that it was me who created it".</p>

<p>Will we use this? Maybe not. Quite frankly, I think human trust is much
more important than automated trust through some technical means, but I
think it's good to have the _support_ for this kind of trust mechanism built
into the system. And I think it's a good way for distributors etc to say:
"this is the source code we used to build the kernel that we released,
and we tagged it 'v2.6.11-mm6-crazy-fixes-3.96'".</p>

<p>And if my key gets stolen, I can re-generate all the tags (from my archive
of tags that I trust), and sign them with a new key, and revoke the trust of
my old key. This is why it's important that tags don't have interdependencies,
they are just a one-way "this key trusts that release and calls it xyzzy".</p>

</quote>

<p>In the course of discussion, Jan pointed out that with Linus's solution,
the only way to truly clone a repository would be to use rsync. The tag
objects would not be directly connected to the history of the repository, and
so any more sophisticated mechanism of synchronizing repositories by grabbing
any missing patches would not work here. The repository itself would not be
aware of the tags, and so the synchronization tools would not see the tags
in order to pull them into the target repository. Linus replied:</p>

<quote who="Linus Torvalds">

<p>But this is a _feature_.</p>

<p>Other people normally shouldn't be interested in your tags. I think it's
a mistake to make everybody care.</p>

<p>So you normally would fetch only tags you _know_ about. For example, one
of the reasons we've been _avoiding_ personal tags in teh BK trees is that
it just gets really ugly really quickly because they get percolated up to
everybody else. That means that in a BK tree, you can't sanely use tags for
"private" stuff, like telling somebody else "please sync with this tag".</p>

<p>So having the tag in the object database means that fsck etc will notice
these things, and can build up a list of tags you know about. It also means
that you can have tag-aware synchronization tools, ie exactly the kind of
tools that only grab missing commits can also then be used to select missing
tags according to some _private_ understanding of what tags you might want
to find..</p>

</quote>

<p>Elsewhere, in the course of discussion, the location of the signature came
up. It would be easier to put the PGP header around the full entry, instead of
just at the end as Linus had proposed. Thomas Glanzmann said:</p>

<quote who="Thomas Glanzmann">

<p># This creates the signature.<br />
gpg --clearsign &lt; sign_this &gt; signature</p>

<p># And this verifies it.<br />
gpg --verify &lt; signature &amp;&amp; echo valid</p>

</quote>

<p>But Linus replied:</p>

<quote who="Linus Torvalds">

<p>This really doesn't work for me - I do not want to have the gpg header
above it, only the signature below. Since I want git to actually understand
the tags, but do _not_ want git to have to know about whatever signing method
was used, I really want the resulting file to look like</p>

<blockquote>

<p>        commit ....<br />
        tag ...</p>

<p>        here goes comment<br />
        here goes signature</p>

</blockquote>

<p>and no headers.</p>

<p>Whether that can be faked by always forcing SHA1 as the hash, and
then just removing the top lines, and re-inserting them when verifying,
or whether there is some mode to make gpg not do the header crud at all,
I don't know. Which is exactly why I never even got started.</p>

</quote>

<p>Sean Estabrooks replied, <quote who="Sean Estabrooks">A script that knows
how to validate signed tags, can easly strip off all the signing overhead
for display.   Users of scripts that don't understand will see the cruft,
but at least it will still be usable.</quote> Linus said:</p>

<quote who="Linus Torvalds">

<p>NO.</p>

<p>Guys, I will say this once more: git will not look at the signature.</p>

<p>That means that we don't "strip them off", because dammit, they DO NOT EXIST
as far as git is concerned. This is why a tag-file will _always_ start with</p>

<blockquote>

<p>        commit &lt;commit-sha1&gt;<br />
        tag &lt;tag-name&gt;</p>

</blockquote>

<p>because that way we can use fsck and validate reachability and have
things that want trees (or commits) take tag-files instead, and git will
automatically look up the associated tree/commit. And it will do so _without_
having to understand about signing, since signing is for trust between _people_
not for git.</p>

<p>And that is why I from the very beginning tried to make ti very clear
that the signature goes at the end. Not at the beginning, not in the middle,
and not in a different file. IT GOES AT THE END.</p>

</quote>

<p>Sean replied, <quote who="Sean Estabrooks">Okay now you're just being
difficult &lt;g&gt; You're acting like it's impossible for git to grab the
SHA1 out of the clear text message if there is signing overhead above the
tag reference.   That is nonesense.   You simply state that tag must include
a SHA1 object reference preceded by "REF:" in the comment.   Git can surely
use this regardless of what signing overhead is above, below or beside it.
The suggestion for stripping out the signing overhead was for _human_
readability; git won't care a gnit.</quote> But Linus said:</p>

<quote who="Linus Torvalds">

<p>No. It's not "impossible" for git to parse crap. But git won't.</p>

<p>There are two ways you can write programs:</p>

<ul>

<li>reliably</li>
<li>unreliably</li>

</ul>

<p>and I do the first one. That means that a program I write does something
_repeatable_. It does the same thing, regardless of whether a human happened
to write "REF:" in the comment section, or anything else.</p>

<p>The thing is, great programs come not out of great coding, but out of
great data structures. The whole git philosophy bases itself on getting the
data structure right.</p>

<p>And what you are asking for is doing it _wrong_. So in git I don't just
parse random free-form text and guess that a line that starts with REF: is a
reference to a commit. It has very rigid and well-specified data structures,
and that's how you make reliable programs.</p>

<p>I don't care what anybody else does on top of git, but dammit, I'll make
sure that the core infrastructure is designed the right way.</p>

<p>And that means that we don't guess, and that we don't parse random ASCII
blobs. It means that we have very very fixed formats so that programs can
either do the right thing or unambiguously say "that's crap".</p>

<p>I've said it before, and I'll say it again: we have enough crap that
calls itself SCM's out there already. I want git to be reliable and _simple_,
not a collection of crap that just happens to work.</p>

</quote>

</section>

<section
  title="Increasing The Limit Of e820 Entries From 32 To 128"
  subject="[PATCH] Increase number of e820 entries hard limit from 32 to 128"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/0fc3136c46da48c6?hl=en"
  posts="6"
  startdate="22 Apr 2005 17:14:41 -0800"
  enddate="26 Apr 2005 16:40:42 -0800"
>

<p>Venkatesh Pallipadi said, <quote who="Venkatesh Pallipadi">The
specifications that talk about E820 map doesn't have an upper limit on
the number of E820 entries. But, today's kernel has a hard limit of 32.
With increase in memory size, we are seeing the number of E820 entries
reaching close to 32. Patch below bumps the number upto 128</quote> for i386
and x86-64. Linus Torvalds remarked, <quote who="Linus Torvalds">Hmm. Anything
that changes setup.S tends to have bootloader dependencies.  I worry whether
this one does too..</quote> Venkatesh replied:</p>

<quote who="Venkatesh Pallipadi">

<p>The setup.S change in this patch should be OK. As it is adding to the
existing zero-page and keeping it within one page. I tested it on systems
with grub, adding some dummy E820 entries and it worked fine.</p>

<p>However, there is another place that needs to be changed. Boot loaders
also calls E820 while booting directly with vmlinux (instead of usual bzImage
- which is handled by this patch) and that needs to change to incorporate
more E820 entries. But, there we may need more changes, to the boot protocol
version and the like. On a side note, looking at the grub source, it seems to
have a limit of 50 entries today, which doesn't agree with current 32 entry
limit in the kernel. Not sure why grub has this different limit though.</p>

</quote>

<p>Andi Kleen remarked, <quote who="Andi Kleen">The last time I tried to
extend the zero page (with a longer command line) it broke lilo on systems with
EDID support and CONFIG_EDID enabled.  Make sure you test that case.</quote>
Venkatesh replied:</p>

<quote who="Venkatesh Pallipadi">

<p>Tested this patch with some more configuration and I did not see any
breakage.</p>

<ul>
<li>LILO with EDID enabled</li>
<li>pxeboot</li>
</ul>

<p>And in the current zero-page, EDID info is at a lower address (before
E820MAP).  So, there should not be any issues with EDID info. Only field (other
than E820) that is changing in zero page is EDDBUF (that comes after E820MAP).
The patch changes the reference to EDDBUF inside kernel to new position in
zero page. And I don't see EDDBUF being used by boot loader anywhere. So,
we should be OK with that change.</p>

</quote>

</section>

<section
  title="Linux 2.4.31-pre1 Released; 2.4 Tree To Migrate To git"
  subject="Linux 2.4.31-pre1"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/d1890d6398312d9a?hl=en"
  posts="1"
  startdate="25 Apr 2005 06:21:16 -0800"
>

<p>Marcelo Tosatti announced Linux 2.4.31-pre1, saying, <quote who="Marcelo
Tosatti">Here goes the first pre of v2.4.31.  It contains a very small number
of changes, mostly an x86_64 update.  Side note: I'm planning on moving the
v2.4 repository along with the full history information to a git repository
soon.</quote></p>

</section>

<section
  title="git-pasky Renamed To Cogito; Version 0.8 Released"
  subject="[ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/13803542ed7461c8?hl=en"
  posts="10"
  startdate="25 Apr 2005 19:24:22 -0800"
  enddate="26 Apr 2005 12:43:57 -0800"
>

<p>Petr Baudis announced:</p>

<quote who="Petr Baudis">

<p>here goes Cogito-0.8, my SCMish layer over Linus Torvald's git tree
history tracker. This package was formerly called git-pasky, however
this release brings big changes. The usage is significantly different,
as well as some basic concepts; the history changed again (hopefully the
last time?) because of fixing dates of some old commits. The .git/
directory layout changed too.</p>

<p>Upgrading through pull is possible, but rather difficult and requires
some intimacy with both git, git-pasky and Cogito. So probably the best
way to go is to just get cogito-0.8 tarball at</p>

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

<p>or</p>

<p>        <a href="ftp://ftp.kernel.org/pub/software/scm/cogito/">ftp://ftp.kernel.org/pub/software/scm/cogito/</a></p>

<p>build and install it, and do</p>

<p>        cg-clone rsync://rsync.kernel.org/pub/scm/cogito/cogito.git</p>

<p>Yes, this is a huge change. No, I don't expect any further changes of
similar scale. I think the new interface is significantly simpler _and_
cleaner than the old one.</p>

<p>First for the concept changes. There is no concept of tracking
anymore; you just do either cg-pull to just fetch the changes, or
cg-update to fetch them as well as merge them to your working tree.
Even more significant change is that Cogito does not directly support
local branches anymore - git fork is gone, you just go to new directory
and do</p>

<p>        cg-init ~/path/to/your/original/repository</p>

<p>(or cg-clone, which will try to create a new subdirectory for itself).
This now acts as a separate repository, except that it is hardlinked
with the original one; therefore you get no additional disk usage.  To
get new changes to it from the original repository, you have to
cg-update origin. If you decide you want to merge back, go to the
original repository, add your new one as a branch and pull/update from
it.</p>

<p>As for the interface changes, you will probably find out on your own;
cg-help should be of some help. All the scripts now start with 'cg-',
and you should ignore the 'cg-X*' ones. The non-trivial mapping is:</p>

<p>        git addremote -&gt; cg-branch-add<br />
        git lsremote -&gt; cg-branch-ls<br />
        git patch -&gt; cg-mkpatch<br />
        git apply -&gt; cg-patch<br />
        git lsobj -&gt; cg-admin-lsobj</p>

<p>  Commands that are gone:</p>

<p>        git fork<br />
        git track</p>

<p>  New commands:</p>

<p>        cg-clone<br />
        cg-update</p>

<p>Of course other changes include various bugfixes, and latest Linus' stuff
(although we do not make use of Linus' tags yet).</p>

<p>Note that I don't know how many time will I have for hacking Cogito until
the next Sunday/Monday. I hope I will get some time to at least apply bugfixes
etc, but I don't know how much more will I be able to do.  You would make me
a happy man if you could please port your pending patches from git-pasky to
Cogito; I promise to apply them and I hope there isn't going to be another
so big change in the foreseeable future, which would cause major conflicts
for your patches etc.</p>

</quote>

</section>

<section
  title="OpenSSI 1.9.0 Released"
  subject="[ANNOUNCE] OpenSSI 1.9.0 released"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/e15a44efd9f39e46?hl=en"
  posts="1"
  startdate="28 Apr 2005 04:05:59 -0800"
>

<p>Aneesh Kumar said:</p>

<quote who="Aneesh Kumar">

<p>OpenSSI 1.9.0 is a development release. For a stable release, download
OpenSSI 1.2.2 instead. This is the first release based on a 2.6
kernel, 2.6.10 to be precise.</p>

<p>To know more about OpenSSI visit <a
href="http://www.openssi.org">www.openssi.org</a>.</p>

<p>To download and install</p>

<p><a
href="http://www.openssi.org/cgi-bin/view?page=docs2/1.9/debian/INSTALL.html">http://www.openssi.org/cgi-bin/view?page=docs2/1.9/debian/INSTALL.html</a></p>

</quote>

</section>

<section
  title="Umbrella 0.7 Released And Feature Complete"
  subject="[RELEASE] Umbrella is now feature complete! (v0.7 released)"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/671f3301b01a84e6?hl=en"
  posts="1"
  startdate="28 Apr 2005 05:07:40 -0800"
>

<p>Kristian S&#248;rensen said:</p>

<quote who="Kristian S&#248;rensen">

<p>Finally, we now present you with a feature complete version of Umbrella,
namely version 0.7.</p>

<p>Followin is the main major changes:</p>

<ul>
<li>Implementation of a kernel keyring to handle keys from trusted vendors</li>
<li>The FSR implementation is replaced and optimized</li>
<li>Umbrella has been profiled and optimized all over</li>
</ul>

<p>For instructions on how to try out the Process-Based Access Control and
Digitally Signed Binaries in Umbrella, please download the complete 0.7
tarball from SourceForge:
<a href="http://prdownloads.sourceforge.net/umbrella/umbrella-0.7.tar.bz">http://prdownloads.sourceforge.net/umbrella/umbrella-0.7.tar.bz</a></p>

<p>Please refer to the README file in the tarball for further instructions.</p>

<p>As always we appreciate any comments, suggestions etc. you may have :-)</p>

</quote>

</section>

</kc>

