Originally Posted by Zssfssz
If that's the case then why don't distros like Ubuntu use the PAE version as their default?
I think most people with 4GB or more ram on a Linux system use or should use a 64 bit version of Linux.
There are various tiny overheads to each of PAE and 64-bit compared to non-PAE 32-bit (extra time on each TLB miss, extra kernel code size, extra memory mapping table size). Those normally don't add up to enough for anyone to worry about, but if you have a 32 bit system with too little ram to need PAE, why should a distribution default to including even tiny overhead that you don't need.
If you have a slightly older 32 bit CPU the performance differences of TLB misses will be a larger fraction of total performance. If you have a much older 32 bit CPU, a PAE kernel won't work at all.
If you have extremely little ram, the small difference in kernel code size and memory table size may matter.
Most distributions default to including SMP support in every kernel, even though many users have single thread hardware. That also adds some tiny overhead in kernel code size and performance. But at least the SMP kernel doesn't fail on a system with no hardware support for SMP the way a PAE kernel fails on a system with too old a 32 bit CPU.
The distribution needs to make their best estimate of what will be acceptable for a lot of users: SMP whether you need it or not, PAE typically only is you install the PAE package to replace the default kernel, other kernel build options no pre built choice at all.
If you want a kernel exactly to your specifications, Linux is open source so you can compile your own.