[opensuse] 11.1 and PAE Kernel
Ok, on 11.0 the pae kernel install seems to have been a mistake, but on the two 11.1 install, both have been pae kernels, which leavse me wondering why a simple 32bit AMD Athlon system requires anything other than the default kernel. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, Dec 22, 2008 at 01:03:31AM -0500, Mike McMullin wrote:
Ok, on 11.0 the pae kernel install seems to have been a mistake, but on the two 11.1 install, both have been pae kernels, which leavse me wondering why a simple 32bit AMD Athlon system requires anything other than the default kernel.
PAE kernel is used to get more than 3GB memory support and also to get "NX" (no execute) page protection abilities against some kinds of heap and stack overflow security issues. Ciao, Marcus -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, 2008-12-22 at 10:56 +0100, Marcus Meissner wrote:
On Mon, Dec 22, 2008 at 01:03:31AM -0500, Mike McMullin wrote:
Ok, on 11.0 the pae kernel install seems to have been a mistake, but on the two 11.1 install, both have been pae kernels, which leavse me wondering why a simple 32bit AMD Athlon system requires anything other than the default kernel.
PAE kernel is used to get more than 3GB memory support and also to get "NX" (no execute) page protection abilities against some kinds of heap and stack overflow security issues.
PAE-kernels are also needed to run 32-bit virtual hosts (XEN-domu) on an 64-bit host (DOM-0) -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, Dec 22, 2008 at 1:03 AM, Mike McMullin
Ok, on 11.0 the pae kernel install seems to have been a mistake, but on the two 11.1 install, both have been pae kernels, which leavse me wondering why a simple 32bit AMD Athlon system requires anything other than the default kernel.
PAE stands for Physical Address Extension. It was introduced in the Pentium Pro and basically changes the process to use a 36bit memory address size. This allows you to use up to 64GB on a 32bit system. See here: http://en.wikipedia.org/wiki/Physical_Address_Extension Generally, this isn't very relevant outside of servers that have more than 4GB of RAM. Also, it enables the NX or XD bit to be enabled like Marcus pointed out. The NX bit is bit 63, so you have to have access to that space to use it. As for why it is enabled by default on 32bit systems, from my understanding it is so that if your processor supports the NX bit, like 64bit cpus and the intel Core Solo and Core Duos, then it can be enabled. If you don't have these processors, or more than 4GB RAM, then there should be no reason why you can't run the default kernel. However, I don't think that the PAE stuff takes up any space or cycles if you don't have the RAM or NX bit, so it shouldn't be a problem. The Default Kernel would be required for a Pentium or K6 chip. Here's a quote: Another example, BTW, is PAE. You'd think that, since all Intel processors since Pentium Pro supported PAE, CPUs that does not support PAE would be nowadays be completely obsolete. Except that AMD's CPUs did not implement PAE until the Athlon, and VIA's CPUs did not support PAE until VIA C7, and Transmeta's older Crusue CPU did not support PAE, only the newer Efficion did support PAE. In fact even AMD's own Geode GX and LX and versions of Intel's own Pentium M and Celeron M without NX support did not support PAE! I think NX was what pushed VIA and Transmeta to add PAE support into their CPUs. Also even if the CPU problem were solved, I am sure there are some buggy BIOSes that can crash when PAE is on. That is why most Linux distros does not make the PAE kernel the default just to take advantage of NX. Windows by default automaticly select a kernel based on whether PAE is going to be on or not, Linux can't do this. BTW, see this blog article for more info on the relationship between PAE and NX in Windows XP SP2 and later: http://yuhong386.spaces.live.com/blog/cn.. from here: http://www.virtualdub.org/blog/pivot/entry.php?id=30 -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, 22 Dec 2008 12:07:08 -0500, Larry Stotler wrote:
As for why it is enabled by default on 32bit systems, from my understanding it is so that if your processor supports the NX bit, like 64bit cpus and the intel Core Solo and Core Duos, then it can be enabled. If you don't have these processors, or more than 4GB RAM, then there should be no reason why you can't run the default kernel.
My understanding was that there was also a simplicity in just providing a PAE kernel for 32-bit systems rather than two different kernels. From a performance standpoint, they perform equally, and it simplifies maintenance. At least that's what I'd heard. Jim -- Jim Henderson Please keep on-topic replies on the list so everyone benefits -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, Dec 22, 2008 at 05:47:31PM +0000, Jim Henderson wrote:
On Mon, 22 Dec 2008 12:07:08 -0500, Larry Stotler wrote:
As for why it is enabled by default on 32bit systems, from my understanding it is so that if your processor supports the NX bit, like 64bit cpus and the intel Core Solo and Core Duos, then it can be enabled. If you don't have these processors, or more than 4GB RAM, then there should be no reason why you can't run the default kernel.
My understanding was that there was also a simplicity in just providing a PAE kernel for 32-bit systems rather than two different kernels. From a performance standpoint, they perform equally, and it simplifies maintenance.
At least that's what I'd heard.
No, x86 32bit still has both -default and -pae (and -xen, -xenpae). Ciao, Marcus -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, 22 Dec 2008 19:15:41 +0100, Marcus Meissner wrote:
My understanding was that there was also a simplicity in just providing a PAE kernel for 32-bit systems rather than two different kernels. From a performance standpoint, they perform equally, and it simplifies maintenance.
At least that's what I'd heard.
No, x86 32bit still has both -default and -pae (and -xen, -xenpae).
That'll teach me to talk before I've completed my installation. ;-) Jim -- Jim Henderson Please keep on-topic replies on the list so everyone benefits -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, 2008-12-22 at 19:15 +0100, Marcus Meissner wrote:
On Mon, Dec 22, 2008 at 05:47:31PM +0000, Jim Henderson wrote:
On Mon, 22 Dec 2008 12:07:08 -0500, Larry Stotler wrote:
As for why it is enabled by default on 32bit systems, from my understanding it is so that if your processor supports the NX bit, like 64bit cpus and the intel Core Solo and Core Duos, then it can be enabled. If you don't have these processors, or more than 4GB RAM, then there should be no reason why you can't run the default kernel.
My understanding was that there was also a simplicity in just providing a PAE kernel for 32-bit systems rather than two different kernels. From a performance standpoint, they perform equally, and it simplifies maintenance.
At least that's what I'd heard.
No, x86 32bit still has both -default and -pae (and -xen, -xenpae).
When i look at: http://ftp5.gwdg.de/pub/opensuse/distribution/10.3/repo/oss/boot/i386/ It has both vmlinux-xen, vmlinux-xenpae, initrd-xen and initrd-xenpae While on http://ftp5.gwdg.de/pub/opensuse/distribution/11.0/repo/oss/boot/i386/ and http://ftp5.gwdg.de/pub/opensuse/distribution/11.1/repo/oss/boot/i386/ I only see vmlinux-xen, initrd-xen and initrd-xenpae The vmlinux-xenpae has gone (Or is the default already pae) hw -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, Dec 22, 2008 at 5:41 PM, Hans Witvliet
The vmlinux-xenpae has gone (Or is the default already pae)
Found this: http://www.novell.com/products/linuxpackages/opensuse11/kernel-pae.html It even states that: This kernel supports up to 64GB of main memory. It requires Physical Addressing Extensions (PAE), which were introduced with the Pentium Pro processor. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
2008/12/22 Larry Stotler
On Mon, Dec 22, 2008 at 1:03 AM, Mike McMullin
wrote:
As for why it is enabled by default on 32bit systems, from my understanding it is so that if your processor supports the NX bit, like 64bit cpus and the intel Core Solo and Core Duos, then it can be enabled. If you don't have these processors, or more than 4GB RAM, then there should be no reason why you can't run the default kernel.
However, I don't think that the PAE stuff takes up any space or cycles if you don't have the RAM or NX bit, so it shouldn't be a problem.
The PAE works but starts to melt down at over 8GiB according to one LKML thread in which Linus called it a big mistake ever accepting it into the kernel. The SuSE pae kernel, appears to have similar config to the old SMP kernel "bigsmp". There's a lot of options chosen, which apply to medium-big server systems and not a typical dual core, or dual CPU box, with <= 4GiB RAM for unusual server (some very old) boxen. That server also features over-sized data structures because the max CPUs is increased to 32, last year there were some articles on LWN, where a lot of per CPU structures were exploding the memory usage linearly with maxcpus. There's going to be overhead managing the larger memory addresses, and sometimes copying buffers into areas that 32bit PCI cards can read for DMA. The code complexity, must impact performance in the area of managing the VM page tables, it cannot be a 'Free Lunch' over simpler code. So actually on a machine with 4GiB, I actually for 10.3, switched to the default kernel, yes some memory was wasted but it was more compatible with some add ons needing kernel modules (Virtual Box IIRC), and the relatively small amount of memory lost was probably compensated by the smaller per CPU data structures. Given all that, since the default kernel, gained the clever hack to patch in/out SMP or uniprocessor support, I've preferred to use that. I wonder what's compelling to make -pae the default, I suspect it's more that it'll work on more systemsm, rather than maximise performance for the majority of systems. Those NX capable CPUs have 64bit extentions, why not run them in that mode, and make use of extra registers and lose some of compatability cruft of i386? -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
On Mon, Dec 22, 2008 at 12:49 PM, Rob OpenSuSE
The PAE works but starts to melt down at over 8GiB according to one LKML thread in which Linus called it a big mistake ever accepting it into the kernel. The SuSE pae kernel, appears to have similar config to the old SMP kernel "bigsmp". There's a lot of options chosen, which apply to medium-big server systems and not a typical dual core, or dual CPU box, with <= 4GiB RAM for unusual server (some very old) boxen.
Yeah, I remember using the SMP kernels back with 2.4.x IIRC. I have an old Dell Dual P3/Xeon machine that loaded it. Never needed the big kernel, so never played with it.
There's going to be overhead managing the larger memory addresses, and sometimes copying buffers into areas that 32bit PCI cards can read for DMA. The code complexity, must impact performance in the area of managing the VM page tables, it cannot be a 'Free Lunch' over simpler code.
That what I point out with 64bit systems. I remember back when some hand tuned 16bit code was faster than the new 32bit code.
Given all that, since the default kernel, gained the clever hack to patch in/out SMP or uniprocessor support, I've preferred to use that. I wonder what's compelling to make -pae the default, I suspect it's more that it'll work on more systemsm, rather than maximise performance for the majority of systems. Those NX capable CPUs have 64bit extentions, why not run them in that mode, and make use of extra registers and lose some of compatability cruft of i386?
Well, the Core Solo and Core Duos do support the NX bit and are 32bit. I probably need to do some benchmarks with both kernels on my P3 laptops to see what the difference is. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
participants (6)
-
Hans Witvliet
-
Jim Henderson
-
Larry Stotler
-
Marcus Meissner
-
Mike McMullin
-
Rob OpenSuSE