Ubuntu 32-bit, 32-bit PAE, 64-bit Benchmarks

Written By
ML
Michael Larabel
Dec 31, 2009

[ Thanks to Michael Larabel for
this link. ]

“Coming up in our forums was a testing request to
compare the performance of Linux between using 32-bit, 32-bit PAE,
and 64-bit kernels. This is coming after Linus Torvalds has spoke
of 25% performance differences between kernels using
CONFIG_HIGHMEM4G and those without this option that allows 32-bit
builds to address up to 4GB of physical RAM on a system. We decided
to compare the performance of the 32-bit, 32-bit PAE, and 64-bit
kernels on a modern desktop system and here are the results.

“For this comparison we used Ubuntu 9.10 on a Lenovo ThinkPad
T61 notebook running an Intel Core 2 Duo T9300 processor, 4GB of
system memory, a 100GB Hitachi HTS7220 SATA HDD, and a NVIDIA
Quadro NVS 140M. We were using the Ubuntu-supplied kernels that are
based off the Linux 2.6.31 kernel in Ubuntu Karmic. Other packages
that were maintained included GNOME 2.28.1, X Server 1.6.4, NVIDIA
195.22 display driver, GCC 4.4.1, and we were using the default
EXT4 file-system with all other defaults. With Ubuntu to properly
address 4GB or greater of system memory you need to use a PAE
kernel as the Physical Address Extension support through the
kernel’s high-mem configuration options are not enabled in the
default 32-bit kernels. CONFIG_HIGHMEM4G is enabled in the default
Ubuntu kernel, but the Ubuntu PAE kernel uses CONFIG_HIGHMEM64G
(and other build options) for handling up to 64GB of system memory.
Of course, with 64-bit addressing there is not this greater than
4GB RAM limitation. Though even with a 32-bit non-PAE kernel the
system will only report 3GB of system memory by default due to 1GB
of that being reserved for kernel virtual addresses while the 3GB
is available to user-space addresses.

“The only differences in the kernel configuration between
Ubuntu’s PAE and non-PAE 32-bit kernels are enabling the
CONFIG_X86_CMPXCHG64, CONFIG_HIGHMEM64G instead of
CONFIG_HIGHMEM4G, CONFIG_X86_PAE, CONFIG_ARCH_PHYS_ADDR_T_64BIT,
CONFIG_PHYS_ADDR_T_64BIT, CONFIG_I2O_EXT_ADAPTEC_DMA64, and
disabling CONFIG_ASYNC_TX_DMA. The rest of the kernel configuration
is the same. The Linux kernel also requires that the CPU itself
supports PAE, but these days that is practically all Intel and AMD
processors.”


Complete Story

ML

Michael Larabel

Linux Today Logo

LinuxToday is a trusted, contributor-driven news resource supporting all types of Linux users. Our thriving international community engages with us through social media and frequent content contributions aimed at solving problems ranging from personal computing to enterprise-level IT operations. LinuxToday serves as a home for a community that struggles to find comparable information elsewhere on the web.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.