generic kernels should support 4 GB RAM
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-meta (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: linux-image-generic
For some months now developer machines (desktop and laptop) are available and bought with more than 2 GB of RAM, say 4 GB.
Unfortunately, the -generic kernel of Ubuntu x86 only uses up to 3 GB (at least that's /proc/meminfo tells), which is unsatisfying.
As the -server kernel of the very same distribution does support 4 GB, this seems to be a kernel option issue.
After a look in /boot/config* I believe the key options are CONFIG_PAE and/or CONFIG_HIGHMEM64G which are set to no or not at all for -generic.
I believe this options should be enabled for -generic also.
(This is obviously a wish, not a bug)
Remark 1:
As CONFIG_HIGHMEM4G is set to yes in -generic kernel, it might be that the kernel uses the 4th GB, for kernel space only (I once found a bigmem discussion that suggested this special memory split for 4 GB situations). Assuming this is true, sharing all 4 GB dynamically still would be better.
Remark 2:
Most of the new "common" 4 GB machines are amd64 capable, so one might suggest using the amd64 distribution.
Unfortunately, many 3rd party applications are not available for amd64, and the ia32/linux32 subsystem is far from complete (yes, I'd like all libs beeing doubled), so this is not a real option, not even for servers where >4 GB are common for some time now, even on pure 32bit CPUs.
Remark 3:
Some manufacturers, including the "small" company continueing big blue's ThinkPad series, had obvious problems writing correct firmware for recent intel chipsets or don't know of PAE at all (or both) and therefore officially (!) (on their 4 GB laptops' product data sheets) claim that 32bit operating systems in general could only use 3 GB.
I laugh at that now ...
+1 vote on making this happen. I also have a workstation with 4GB ram that I would like to fully utilize on the 32bit generic kernel.