Red Hat Bugzilla – Bug 11464
kernel compiled for 2GB RAM won't run executables over 400Mb
Last modified: 2008-05-01 11:37:55 EDT
default kernel for machine uses 1Gb system RAM. this kernel will happily
run executables up to around 1Gb size, as you might expect. these
executables are from fortran77 source, on f77 compiler or pgf77 compiler.
however with a kernel compiled for 2Gb RAM in xconfig, linux runs OK and
recognises that it has 2GB system RAM but will only run executables of up
to around 400Mb. this isn't a fortran problem, all programs have the same
error, and i've checked the code and debug reports with xxgdb.
Please update to the latest kernel release. The 400MB application size limit is
partly due to library mapping locations and other similar fixed address
allocations. The latest Red Hat kernels include the 4GB BIGMEM patch so that
they can access 4GB of RAM *and* still provide a 3-1 split of virtual address to
kernel mapped memory space. This should solve your problem. The issue you are
reporting isn't actually a bug, it's a side effect of the 2-2 split option in
bigmem patch in 2.2.12-5.0 seems to not solve this problem. compiles & boots OK,
same memory error.
bigmem patch in 2.2.14-12 still not solving problem. machine memory recognised
OK, memory split only slightly improved (can now run up to about 600Mb).
C library issue
in kernel 2.4.0-test4, with HIGHMEM support enabled, the problem solved by
adjusting the TASK_UNMAPPED_BASE definition line in processor.h. normally
defined as 'TASK_SIZE/3', i set to 'TASK_SIZE/1.5'. i would expect HIGHMEM patch
to do this anyway though, patch doesn't solve problem without this fix. (fix
discussed with ingo molnar email@example.com).