On Wed, Aug 02, 2006 at 03:11:35PM -0700, Srinivas Kommu wrote:
> 1. If I have 1 gig physical memory and CONFIG_HIGHMEM disabled, would
> the user processes be able to see the high memory?
> Only 256 meg (this is on BCM1250; so 256 meg is expected) shows up in
> /proc/meminfo and I couldn't malloc more than that much from user processes.
While I've originally implemented highmem for the BCM1250 in early 2002
highmem is and stays the same stupid idea it was back then. Go for a
64-bit kernel, it's far less headache. If you don't want to run 64-bit
binaries applications, run a standard 32-bit distribution.
> 2. With highmem enabled, is there a penalty to the user processes? From
> what I understood, highmem mappings are needed for the kernel to access
> that memory. For the pages belonging to user processes, does it still
> use pkmaps?
User process performance is identical. The performance penalty is on I/O
or any sort of kernel activity on highmem pages..
> 3. How do I measure the penalty of highmem on kernel modules? Since the
> code and data for modules resides in highmem, the kernel has to
> constantly map and unmap while running inside the modules? Is there a
> way to quantify the overhead of running with highmem enabled versus not?
The physical address of modules does not make any difference.
Highmem, just say no.