<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>codemonkey.org.uk &#187; kernel</title>
	<atom:link href="http://www.codemonkey.org.uk/tag/kernel/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codemonkey.org.uk</link>
	<description>Dave Jones' Linux &#38; opensource stuff.</description>
	<lastBuildDate>Sat, 03 Jul 2010 23:33:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>An annoying kernel packaging bug.</title>
		<link>http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/</link>
		<comments>http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 23:32:25 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dracut]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[initramfs]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[packaging]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=275</guid>
		<description><![CDATA[The kernel rpm package creates an initramfs file that gets dropped in /boot at install time. Creation of this file is the responsibility of dracut (or mkinitrd in older releases), called from the kernels %post script. Because we want removal of a kernel to also remove its associated initrd file (or else /boot would fill [...]<p><a href="http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/">An annoying kernel packaging bug.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<p>The kernel rpm package creates an initramfs file that gets dropped in /boot at install time. Creation of this file is the responsibility of dracut (or mkinitrd in older releases), called from the kernels %post script. Because we want removal of a kernel to also remove its associated initrd file (or else /boot would fill up), we used to list the initramfs file in rpms database as a %ghost file owned by the kernel.</p>
<p>For a long time, this hasn&#8217;t been a problem.  Now that dracut creates more feature-heavy initramfs files, people were noticing that they were running out of space in /boot during the installation of the kernel rpm. People were asking <a href="https://bugzilla.redhat.com/show_bug.cgi?id=530778">&#8220;why doesn&#8217;t rpm check for sufficient diskspace before it tries to install ?&#8221;</a>  Well, it does.  The problem is that for %ghost files, it has no way of knowing how big they are going to be.</p>
<p>So for Fedora 12, we ended up with an ugly hack. Instead of listing the file as a ghost, we create a 20MB empty file, owned by the kernel, which gets overwritten during %post by dracut with the real initramfs.</p>
<p>The big problem with this, is that it destroys the possibility for deltarpms to work. (It also guarantees that signature verification using rpm&#8217;s database will fail)</p>
<p>Something better needs to happen, but at this stage, I&#8217;m not entirely sure what that will be. </p>
<p><a href="http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/">An annoying kernel packaging bug.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When acpi-cpufreq fails.</title>
		<link>http://www.codemonkey.org.uk/2009/07/21/acpicpufreq-fails/</link>
		<comments>http://www.codemonkey.org.uk/2009/07/21/acpicpufreq-fails/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 23:17:56 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[acpi]]></category>
		<category><![CDATA[acpi-cpufreq]]></category>
		<category><![CDATA[bios]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[cpufreq]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=208</guid>
		<description><![CDATA[The majority of modern CPUs that support CPU scaling now use a common driver (acpi-cpufreq). Judging by the search queries that hit my blog, and the amount of mail I get on the subject, there is a failure mode of this driver that many people are hitting, that there isn&#8217;t a great deal of information [...]<p><a href="http://www.codemonkey.org.uk/2009/07/21/acpicpufreq-fails/">When acpi-cpufreq fails.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<p>The majority of modern CPUs that support CPU scaling now use a common driver (acpi-cpufreq).  Judging by the search queries that hit my blog, and the amount of mail I get on the subject, there is a failure mode of this driver that many people are hitting, that there isn&#8217;t a great deal of information on.</p>
<p>The failure mode looks like this:</p>
<blockquote><p>
$ modprobe acpi-cpufreq<br />
FATAL: Error inserting (/lib/modules/&#8230;/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device
</p></blockquote>
<p>Not particularly informative.  We don&#8217;t spit out anything helpful to dmesg either. So what is the cause of this problem?<br />
In many cases, /proc/cpuinfo shows the cpu supports speedstep (the &#8216;est&#8217; flag). The answer in nearly all of these cases is.. The BIOS.  The ACPI tables in the BIOS list which P-states a particular CPU supports.  If your CPU was manufactured after your BIOS was written, you&#8217;re probably going to be out of luck.  Sometimes, there are BIOS updates on the motherboard manufacturers website that will add support for newer processors.  Sometimes we aren&#8217;t so lucky. In these cases, we&#8217;re out of luck, there&#8217;s nothing we can do.</p>
<p>There is another possibility for the error message above: kernel bugs.  We have introduced bugs in the ACPI interpretor in the past which have broken parsing of the P-states on some platforms.  These kinds of bugs tend to get noticed very quickly, and fixed in equally short time, but it&#8217;s worth making a point that it&#8217;s important to be running on the last kernel version before reporting bugs.</p>
<p><a href="http://www.codemonkey.org.uk/2009/07/21/acpicpufreq-fails/">When acpi-cpufreq fails.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/07/21/acpicpufreq-fails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>x86-32 PAE gotchas.</title>
		<link>http://www.codemonkey.org.uk/2009/07/10/x8632-pae-gotchas/</link>
		<comments>http://www.codemonkey.org.uk/2009/07/10/x8632-pae-gotchas/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 15:42:24 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[PAE]]></category>
		<category><![CDATA[x86]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=203</guid>
		<description><![CDATA[The x86-32 Fedora kernel comes in two flavours. &#8216;normal&#8217; and &#8216;PAE&#8217;. (There are -debug flavours of both of these two, but ignore those for the purpose of this blog post). The common wisdom surrounding &#8216;which kernel do I use&#8217; has for the longest time been &#8220;How much RAM do you have?&#8221; The kernel offers several [...]<p><a href="http://www.codemonkey.org.uk/2009/07/10/x8632-pae-gotchas/">x86-32 PAE gotchas.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<p>The x86-32 Fedora kernel comes in two flavours.  &#8216;normal&#8217; and &#8216;PAE&#8217;.  (There are -debug flavours of both of these two, but ignore those for the purpose of this blog post).  The common wisdom surrounding &#8216;which kernel do I use&#8217; has for the longest time been &#8220;How much RAM do you have?&#8221;</p>
<p>The kernel offers several configuration options to satisy this question.  If you have less than 1G of ram, you don&#8217;t need anything special.  After 1G, you need to enable CONFIG_HIGHMEM4G. (In actuality, it&#8217;s something like 960MB).  As the name suggests, this allows you to run kernels that can see up to 4G of RAM. It does this by mapping in/out &#8216;highmem&#8217; pages (those after the 1G mark) as they are needed.  The &#8216;normal&#8217; kernel for Fedora is HIGHMEM4G.</p>
<p>This sounds like all you&#8217;d ever need. Who has more than 4G of RAM ? Even today, typically only servers. However, that mapping/unmapping comes with some overhead, and if you&#8217;re using a lot of highmem, you may be better off with the third choice..</p>
<p>Enter PAE (Page Address Extensions). This option is enabled by the kernel config option CONFIG_HIGHMEM64G. Its name tellingly indicates it can support up to 64G of RAM in theory.  I say in theory, because there are still a number of really nasty cases that need to be taken care of (Like: the pagetables need to fit in non-highmem memory, and by filling up lowmem with pagetables, you don&#8217;t leave much for other purposes).  After a point, it just makes more sense to go to x86-64.  PAE also gives us the ability to do hardware NX due to it having a wider PTE (page table entry) format.</p>
<p>But there&#8217;s another case where PAE is desirable which seems to catch out some people.<br />
If you have exactly 4G of RAM, you may not be able to address it all, even with a CONFIG_HIGHMEM4G kernel.</p>
<p>PCI devices need some physical address space. How much, depends on what PCI devices are present, and how they are configured.  This address space needs to live in the lower 4G of memory. So the BIOS carves out a hole in the memory map and says &#8220;PCI lives here&#8221;. If you had 4G of RAM, you may find the memory map now looks like..</p>
<p>3G RAM : 1G PCI &#8216;hole&#8217; : 1G RAM</p>
<p>See the problem? To address that top 1G of RAM, we need to use addresses past 4G. And to use those, we need PAE.</p>
<p><a href="http://www.codemonkey.org.uk/2009/07/10/x8632-pae-gotchas/">x86-32 PAE gotchas.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/07/10/x8632-pae-gotchas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Increasing testing of unreleased kernels.</title>
		<link>http://www.codemonkey.org.uk/2009/06/29/increasing-testing-unreleased-kernels/</link>
		<comments>http://www.codemonkey.org.uk/2009/06/29/increasing-testing-unreleased-kernels/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 21:58:59 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Fedora kernel]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=198</guid>
		<description><![CDATA[This past weekend I&#8217;ve been thinking of reviving an idea that has come up countless times. Producing RPM builds of the rawhide kernel for our already released Fedoras. The reason for not doing them so far has come down to bandwidth. (in terms of build system throughput, disk space, mirroring, and people bandwidth). What I&#8217;m [...]<p><a href="http://www.codemonkey.org.uk/2009/06/29/increasing-testing-unreleased-kernels/">Increasing testing of unreleased kernels.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<p>This past weekend I&#8217;ve been thinking of reviving an idea that has come up countless times. Producing RPM builds of the rawhide kernel for our already released Fedoras.  The reason for not doing them so far has come down to bandwidth. (in terms of build system throughput, disk space, mirroring, and people bandwidth).</p>
<p>What I&#8217;m toying with doing is some devel kernels for Fedora 11 that are built outside of the Fedora build system. The Fedora kernel team now has enough build bandwidth for x86-[64] that we can actually get builds for those architectures done faster than koji.</p>
<p>Disk space &#8211; I&#8217;m thinking of just keeping the last 2-3 builds available.</p>
<p>Mirroring &#8211; Instead of having these be part of Fedora proper, I think an external repo on something like fedorapeople.org will suffice.</p>
<p>Which just leaves people bandwidth.  For the most part the work is going to be just regularly syncing the devel/ branch with a CVS branch of F-11/   For some of this work, some scripting could be done to alleviate some of the pain.  Also the frequency at which we push out these builds will determine the pain point.  Perhaps every -git isn&#8217;t particularly valuable anyway. One build every handful of -git&#8217;s should be sufficient for bisecting.</p>
<p>There does remain one additional barrier.  Occasionally we introduce something in rawhide builds which just won&#8217;t work on F11. For example, the kernel modesetting patches are tied closely to Xorg packages.  Sometimes upstream changes require changes in mkinitrd or udev or some other &#8216;plumbing&#8217;.  Some of these are regressions, and hopefully by identifying them sooner we can get them reverted/fixed upstream.  Sometimes however, things get deprecated, and we need to change these packages.  I&#8217;m not sure how to cope with this yet in a devel-for-F11 scenario.</p>
<p>One other thing that might be fun to throw into this would be the generation of -vanilla packages. The only reasons we don&#8217;t do these as part of the regular kernel builds is the various bandwidth concerns above. The specfile copes with spitting out RPMs with very little work needed.  Josh Boyer has been occasionally doing these builds, though there hasn&#8217;t been a huge uptake.  It&#8217;s unclear if this is due to lack of interest, or just a lack of publicity.</p>
<p>Another question to be answered is whether we go the route of enabling debugging in all builds as we do in rawhide, or do separate -debug builds.  I&#8217;m leaning towards the latter.</p>
<p>I&#8217;m not committing anything to this for sure just yet, but it&#8217;s something I&#8217;ve been giving quite a bit of thought. There are still a bunch of unanswered questions.</p>
<p><a href="http://www.codemonkey.org.uk/2009/06/29/increasing-testing-unreleased-kernels/">Increasing testing of unreleased kernels.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/06/29/increasing-testing-unreleased-kernels/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fedora 11 released, onwards to F12.</title>
		<link>http://www.codemonkey.org.uk/2009/06/19/fedora-11-released-onwards-f12/</link>
		<comments>http://www.codemonkey.org.uk/2009/06/19/fedora-11-released-onwards-f12/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 15:36:49 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=183</guid>
		<description><![CDATA[With the release of Fedora 11 recently, we are now back in the position of looking onwards to the next release. F11 released with a 2.6.29 kernel, and we&#8217;re already looking at doing a .30 rebase for it soon. (I was hesitant to type that, because the last time I blogged about doing a rebase, [...]<p><a href="http://www.codemonkey.org.uk/2009/06/19/fedora-11-released-onwards-f12/">Fedora 11 released, onwards to F12.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/11/25/exploded-fedora-devel-tree/' rel='bookmark' title='Permanent Link: exploded Fedora devel tree.'>exploded Fedora devel tree.</a> <small>I did a make prep of every package in the...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>With the release of Fedora 11 recently, we are now back in the position of looking onwards to the next release. F11 released with a 2.6.29 kernel, and we&#8217;re already looking at doing a .30 rebase for it soon. (I was hesitant to type that, because the last time I blogged about doing a rebase, we hit some troubles and ended up skipping the 2.6.28 release for F10).  While F11 was stabilising before release, devel/ had continued on, being rebased up to 2.6.30.  Yesterday Kyle committed the the first rebase to get us back up to Linus&#8217; tree of the day.</p>
<p>So we&#8217;re looking at 2.6.31 for F12. (With various conferences coming up over the next few months, it seems infeasible that .32 will land in time for F12&#8242;s release).</p>
<p>Other planned changes? We&#8217;ve talked about dropping the exec shield patch that we&#8217;ve been carrying since Fedora Core 1.<br />
It&#8217;s a pain to have to keep carrying it, and rebasing it, and occasionally fixing it, just to add a poor emulation of a feature that has been in all CPUs for the last five years.  The decision isn&#8217;t final yet, but it&#8217;s something that&#8217;s being considered.</p>
<p>Some of the other patches we&#8217;ve been carrying (like modesetting drm) are now starting to find their way upstream too, which is obviously a good thing.  The only really big thing we&#8217;re still carrying that struggles to get upstream is utrace.</p>
<p><a href="http://www.codemonkey.org.uk/2009/06/19/fedora-11-released-onwards-f12/">Fedora 11 released, onwards to F12.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/11/25/exploded-fedora-devel-tree/' rel='bookmark' title='Permanent Link: exploded Fedora devel tree.'>exploded Fedora devel tree.</a> <small>I did a make prep of every package in the...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/06/19/fedora-11-released-onwards-f12/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>execshield split-up.</title>
		<link>http://www.codemonkey.org.uk/2009/03/11/execshield-splitup/</link>
		<comments>http://www.codemonkey.org.uk/2009/03/11/execshield-splitup/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 19:28:13 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Fedora kernel]]></category>
		<category><![CDATA[execshield]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=148</guid>
		<description><![CDATA[One of the longest living patchsets we&#8217;ve carried in the Fedora kernel is that of execshield. Over time, bits of it have gone upstream (in particular, some of the randomisation bits). In F11, it&#8217;s still a 1000 line 30K diff, touching all manner of core kernel functionality. To try and get more of it pushed [...]<p><a href="http://www.codemonkey.org.uk/2009/03/11/execshield-splitup/">execshield split-up.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<p>One of the longest living patchsets we&#8217;ve carried in the Fedora kernel is that of execshield.  Over time, bits of it have gone upstream (in particular, some of the randomisation bits). In F11, it&#8217;s still a 1000 line 30K diff, touching all manner of core kernel functionality. To try and get more of it pushed upstream, I&#8217;ve been working on splitting it up into its component parts.</p>
<p>The current state of the diffs is at <a href="http://www.codemonkey.org.uk/projects/execshield/">http://www.codemonkey.org.uk/projects/execshield/</a>.</p>
<p>The emulate-NX-with-segment-limits chunk is unlikely to ever go upstream. A bit of a shame given it&#8217;s the largest part of execshield remaining.  Linus wasn&#8217;t thrilled by it, and it is a pretty nasty hack.<br />
Also, with modern CPUs having hardware-NX, it becomes less useful over time. (Though we still need to carry it judging by the number of old-school 686 users we still have).</p>
<p>So if we do have to keep execshield, we should at least try to make it cleaner and smaller.  Every time I poke at it, I manage to shave off another hundred lines or so.</p>
<p><a href="http://www.codemonkey.org.uk/2009/03/11/execshield-splitup/">execshield split-up.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/03/11/execshield-splitup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora kernel packaging changes</title>
		<link>http://www.codemonkey.org.uk/2009/02/09/fedora-kernel-packaging/</link>
		<comments>http://www.codemonkey.org.uk/2009/02/09/fedora-kernel-packaging/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 18:50:49 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=142</guid>
		<description><![CDATA[We recently made a change in Fedora kernel packaging, to drop the regular 686 kernels. As of Fedora 11, the only 32-bit kernels built are &#8217;586&#8242; and &#8217;686-PAE&#8217; (and their -debug variants). In F11, at install-time, Anaconda will install the PAE kernel if the CPU is capable of using it, and otherwise, will fall back [...]<p><a href="http://www.codemonkey.org.uk/2009/02/09/fedora-kernel-packaging/">Fedora kernel packaging changes</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/' rel='bookmark' title='Permanent Link: An annoying kernel packaging bug.'>An annoying kernel packaging bug.</a> <small>The kernel rpm package creates an initramfs file that gets...</small></li>
<li><a href='http://www.codemonkey.org.uk/2009/11/25/exploded-fedora-devel-tree/' rel='bookmark' title='Permanent Link: exploded Fedora devel tree.'>exploded Fedora devel tree.</a> <small>I did a make prep of every package in the...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>We recently made a change in Fedora kernel packaging, to drop the regular 686 kernels.  As of Fedora 11, the only 32-bit kernels built are &#8217;586&#8242; and &#8217;686-PAE&#8217; (and their -debug variants).</p>
<p>In F11, at install-time, Anaconda will install the PAE kernel if the CPU is capable of using it, and otherwise, will fall back to the 586 kernel. (Users upgrading with yum will see a 686->586 transition unless they are already using the -PAE flavour)</p>
<p>Both kernels actually have instruction scheduling optimised for 686 (Using gcc&#8217;s -mtune=generic, which optimises for the popular CPUs of the time).</p>
<p>The actual differences between the two builds:</p>
<p>586:</p>
<ul>
<li>Uses only up to the i586 ISA </p>
<li>Supports up to 4GB of RAM.
<li>Will use segment limits to approximate NX.
</ul>
<p>686-PAE:</p>
<ul>
<li>Uses the 686 ISA including CMOV.</p>
<li>Uses 3-level page-tables allowing >4GB RAM.
<li>Where possible, uses hardware NX instead of segment limits. (faster)
<li>Has Xen virtualisation enabled.
</ul>
<p>Processors that will need to use the 586 kernel include..</p>
<ul>
<li>all AMD CPUs prior to the Athlon</p>
<li>Intel Pentiums prior to the Pentium Pro
<li>Some subset of Intel Pentium M&#8217;s (These are the only &#8216;modern&#8217; CPUs)
<li>All Cyrix and Transmeta
<li>All VIA prior to Esther
</ul>
<p><a href="http://www.codemonkey.org.uk/2009/02/09/fedora-kernel-packaging/">Fedora kernel packaging changes</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/' rel='bookmark' title='Permanent Link: An annoying kernel packaging bug.'>An annoying kernel packaging bug.</a> <small>The kernel rpm package creates an initramfs file that gets...</small></li>
<li><a href='http://www.codemonkey.org.uk/2009/11/25/exploded-fedora-devel-tree/' rel='bookmark' title='Permanent Link: exploded Fedora devel tree.'>exploded Fedora devel tree.</a> <small>I did a make prep of every package in the...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/02/09/fedora-kernel-packaging/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dracut status</title>
		<link>http://www.codemonkey.org.uk/2009/02/02/dracut-status/</link>
		<comments>http://www.codemonkey.org.uk/2009/02/02/dracut-status/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 18:59:13 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dracut]]></category>
		<category><![CDATA[early-init]]></category>
		<category><![CDATA[initramfs]]></category>
		<category><![CDATA[initrd]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[mkinitrd]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=133</guid>
		<description><![CDATA[I figured I&#8217;d drop a quick &#8216;howto&#8217; to get up and running with dracut, the shiny new initramfs creation tool. Right now, it&#8217;s still very Fedora-centric, with a few hardcoded assumptions in there, so it&#8217;ll likely fall over on other distros, but most of those are silly things like pathnames, which I&#8217;m sure we&#8217;ll eventually [...]<p><a href="http://www.codemonkey.org.uk/2009/02/02/dracut-status/">Dracut status</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/' rel='bookmark' title='Permanent Link: An annoying kernel packaging bug.'>An annoying kernel packaging bug.</a> <small>The kernel rpm package creates an initramfs file that gets...</small></li>
<li><a href='http://www.codemonkey.org.uk/2010/03/29/spot-shell-bug/' rel='bookmark' title='Permanent Link: Spot the shell bug.'>Spot the shell bug.</a> <small>This is bugging me. I&#8217;m missing something obvious here, and...</small></li>
<li><a href='http://www.codemonkey.org.uk/2009/09/16/bootinit-miniconf-plumbers-week/' rel='bookmark' title='Permanent Link: boot/init miniconf at plumbers next week.'>boot/init miniconf at plumbers next week.</a> <small>I&#8217;m MC&#8217;ing the boot/init miniconf next week at the Linux...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I figured I&#8217;d drop a quick &#8216;howto&#8217; to get up and running with dracut, the shiny new initramfs creation tool. Right now, it&#8217;s still very Fedora-centric, with a few hardcoded assumptions in there, so it&#8217;ll likely fall over on other distros, but most of those are silly things like pathnames, which I&#8217;m sure we&#8217;ll eventually come to some agreement over.</p>
<p>So to begin with, clone the git repo from git://fedorapeople.org/~katzj/dracut.git   (This will move soon, as Jeremy asked me to take over the lead on dracut, but until there&#8217;s additional changes, go there).</p>
<p>After a brief cloning, you&#8217;ll be left with a dracut directory containing a bunch of interesting files..</p>
<p>&#8216;dracut&#8217; is the shell script that will actually generate an initramfs image.  It sources the &#8216;dracut-functions&#8217; script to do some of the trickier things like working out module dependancies.  This script will eventually get called by the kernel during its build process as part of &#8216;make initramfs&#8217;.</p>
<p>dracut.spec is an RPM spec file, handy for testing on Fedora systems until we get the kernel bits hooked up.</p>
<p>&#8216;init&#8217; is the actual init script that ends up in the initramfs.<br />
It achieves quite a lot in its 119 lines.</p>
<ul>
<li>Sets up device nodes</p>
<li>starts up udev
<li>figures out from the command line what kind of root device we&#8217;re expecting
<li>waits for it to show up in /dev, and mounts it
<li>mounts /proc and /sys
<li>If anything goes wrong at all during mounting of the root filesystem, it drops you to a shell.
<li>If plymouth is present, it starts it, so it can show splash screens, or prompt for an encrypted disk password etc.
<li>Right now it&#8217;s also loading the default selinux policy, though there seems to be agreement that the right place for this to happen is in the real rootfs, in /sbin/init.
</ul>
<p>There&#8217;s a makefile that will install things in the right places if you&#8217;re on a Fedora system. (libexec, ugh).  If you don&#8217;t do this, you can still run dracut directly from the checked out tree, by passing it the option -l</p>
<p>rules.d contains two udev rules. One which scans for LVM volumes when it gets a notification that a new block device has been added to the system, and another which handles encrypted block devices should one show up.  Both of these rules are not shining examples of how this should be done, and could use improving.</p>
<p>&#8216;switch_root&#8217; is the sole surviving piece of &#8216;nash&#8217;. Its job is fairly simple. Switch to new root directory and start init from that new root.  Right now, we&#8217;re calling the nash tool from the existing mkinitrd implementation.  The code for the replacement of this currently lives at http://pjones.fedorapeople.org/mkstart/usr/lib/mkstart/switchroot.c  It is hoped that this will get included as a util-linux utility soon, so that nash can finally be put to rest.</p>
<p>Finally there&#8217;s all the usual things you&#8217;d expect to see in a project, COPYING, HACKING, README and a healthy looking TODO.</p>
<p>The interesting parts (the shell scripts) are currently only just over 600 lines, making it a fairly easy to understand project.   Removing some of the redhat&#8217;isms is definitely one of the things that needs to happen before it can be headed upstream.  I hope to get around to trying it out on some other distros later this week.</p>
<p>So with the overview out of the way..  Run the generator directly, with a target filename as a parameter. (Remember to specify -l unless you&#8217;ve done &#8216;make install&#8217;), and you should get a compressed cpio archive created in the name you chose.</p>
<p>Currently, dracut supports root on raw disks (/dev/sda), lvm (/dev/mapper&#8230;), and mounting root by label or uuid.<br />
If you have a more esoteric rootfs setup, such as root-on-nfs, right now it&#8217;ll fail horribly.</p>
<p>That&#8217;s the quick braindump that should be enough to get people playing with it.  There is a very low traffic mailing list initramfs at vger.kernel.org,  (send &#8216;subscribe initramfs&#8217; to majordomo@vger to get subscribed).</p>
<p><a href="http://www.codemonkey.org.uk/2009/02/02/dracut-status/">Dracut status</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/' rel='bookmark' title='Permanent Link: An annoying kernel packaging bug.'>An annoying kernel packaging bug.</a> <small>The kernel rpm package creates an initramfs file that gets...</small></li>
<li><a href='http://www.codemonkey.org.uk/2010/03/29/spot-shell-bug/' rel='bookmark' title='Permanent Link: Spot the shell bug.'>Spot the shell bug.</a> <small>This is bugging me. I&#8217;m missing something obvious here, and...</small></li>
<li><a href='http://www.codemonkey.org.uk/2009/09/16/bootinit-miniconf-plumbers-week/' rel='bookmark' title='Permanent Link: boot/init miniconf at plumbers next week.'>boot/init miniconf at plumbers next week.</a> <small>I&#8217;m MC&#8217;ing the boot/init miniconf next week at the Linux...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/02/02/dracut-status/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forthcoming p4-clockmod changes.</title>
		<link>http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/</link>
		<comments>http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 04:37:51 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cpufreq]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[p4-clockmod]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=86</guid>
		<description><![CDATA[In 2.6.29, the p4-clockmod cpufreq driver has been changed so that it no longer exports a cpufreq interface to sysfs. This will no doubt have some people complaining that they can no longer change their CPU frequency. The thing is, they never could. From a recent posting to the cpufreq list: I have a laptop [...]<p><a href="http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/">Forthcoming p4-clockmod changes.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<p>In 2.6.29, the p4-clockmod cpufreq driver has been changed so that it no longer exports a cpufreq interface to sysfs.<br />
This will no doubt have some people complaining that they can no longer change their CPU frequency.</p>
<p>The thing is, they never could.</p>
<p>From a recent posting to the cpufreq list:</p>
<blockquote><p>
I have a laptop (ASUS W7J) with an Intel Core2 T7200 2GHz.<br />
&#8230;<br />
When I use the p4-clockmod, I get:</p>
<p>available frequency steps: 250 MHz, 500 MHz, 750 MHz, 1.00 GHz, 1.25 GHz, 1.50 GHz, 1.75 GHz, 2.00 GHz<br />
&#8230;</p></blockquote>
<p>For every one of those &#8216;frequency&#8217; options, the CPU is actually running at 2GHz. It never changes speed. Not at all.<br />
The p4-clockmod driver abuses the cpufreq interface to expose a clock modulation feature that has been in processors for a long time. (Even the earlier pentiums had a variant of it).  The driver modulates the clock applied to the processor so that instead of every clock cycle meaning the processor gets do some work, only a percentage of the clocks make the CPU do real work.  The remainder of the time, the processor just sits there.</p>
<p>So the 1.00GHz &#8216;frequency&#8217; is actually &#8220;run at 2GHz, but only do work 50% of the time&#8221;.</p>
<p>On the surface, this sounds like a good idea.  The other 50%, the CPU is idle, so you&#8217;re saving power, right?<br />
Not so much.  In fact, you could be burning <b>more</b> power.  The reason for this is that when the processor is sitting there doing nothing, it isn&#8217;t lower frequency, and more importantly, it very likely isn&#8217;t entering C states. So you&#8217;re burning the same amount of power, but now you&#8217;re only doing work for 50% of the time. As a result of this, your workload takes twice as long to complete.</p>
<p>If it isn&#8217;t saving any power, what is the point of this at all ?<br />
A clue is revealed by reading the Intel programmers guide for this feature; it&#8217;s closely tied to the processors thermal monitoring feature.  The idea of this feature is that when the CPU overheats, it can &#8216;back off&#8217; a little, to prevent overheating. The temperature of a processor isn&#8217;t constant. When running flat out, it will generate more heat.  So by modulating the clock, the maximum amount of heat possible to generate decreases.</p>
<p>The changes merged into the 2.6.29rc kernel remove the user-visible interface, and replace it with direct calls from the ACPI code that gets triggered on thermal events.  It&#8217;s all entirely automatic now.</p>
<p><a href="http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/">Forthcoming p4-clockmod changes.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Building a kernel on the eeepc.</title>
		<link>http://www.codemonkey.org.uk/2009/01/07/building-kernel-eeepc/</link>
		<comments>http://www.codemonkey.org.uk/2009/01/07/building-kernel-eeepc/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 01:00:02 +0000</pubDate>
		<dc:creator>davej</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eeepc]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.codemonkey.org.uk/?p=57</guid>
		<description><![CDATA[Don&#8217;t try this at home. For the record: It takes an eeepc 901 just under nine hours to build a Fedora kernel. Yes, dumb idea, but I just had to know. Building a kernel on the eeepc. is a post from: codemonkey.org.uk Related posts:Not attending kernel summit. Tomorrow, I should have been getting on a [...]<p><a href="http://www.codemonkey.org.uk/2009/01/07/building-kernel-eeepc/">Building a kernel on the eeepc.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>



Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/10/13/attending-kernel-summit/' rel='bookmark' title='Permanent Link: Not attending kernel summit.'>Not attending kernel summit.</a> <small>Tomorrow, I should have been getting on a plane, and...</small></li>
<li><a href='http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/' rel='bookmark' title='Permanent Link: An annoying kernel packaging bug.'>An annoying kernel packaging bug.</a> <small>The kernel rpm package creates an initramfs file that gets...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t try this at home.</p>
<p>For the record: It takes an eeepc 901 just under nine hours to build a Fedora kernel.</p>
<p>Yes, dumb idea, but I just had to know.</p>
<p><a href="http://www.codemonkey.org.uk/2009/01/07/building-kernel-eeepc/">Building a kernel on the eeepc.</a> is a post from: <a href="http://www.codemonkey.org.uk">codemonkey.org.uk</a></p>


<p>Related posts:<ol><li><a href='http://www.codemonkey.org.uk/2009/10/13/attending-kernel-summit/' rel='bookmark' title='Permanent Link: Not attending kernel summit.'>Not attending kernel summit.</a> <small>Tomorrow, I should have been getting on a plane, and...</small></li>
<li><a href='http://www.codemonkey.org.uk/2009/12/10/annoying-kernel-packaging-bug/' rel='bookmark' title='Permanent Link: An annoying kernel packaging bug.'>An annoying kernel packaging bug.</a> <small>The kernel rpm package creates an initramfs file that gets...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.codemonkey.org.uk/2009/01/07/building-kernel-eeepc/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
