Subject: Re: vmalloc limits in PPC kernels ?

From: Matt Porter <[email-masked]>
Date: Thu, 13 Feb 2003 15:40:40 -0700

On Thu, Feb 13, 2003 at 02:19:41PM -0600, vinai wrote:
> I've been doing a little work trying to update an in-house custom driver
> for x86.  We acquired fairly large chunks of data, and we can't afford
> to lose any of it. To do this, we reserve a fairly large chunk of memory
> in which the data can be stored, as we can't afford system latencies
> when writing to disk.  We were able to this in 2.2 without any problems,
> but in 2.4, a new "feature" was introduced to x86 that limited how much
> memory one can "vmalloc".  I did a quick check, but didn't find anything
> in the ppc asm directory.  Do we have such a limit ?

All architectures have a limit.  Its size is defined by
VMALLOC_END-VMALLOC_START and further limited by the size of each
preceding allocation (+ a PAGE_SIZE pad) before the allocation in
question.  Allocations also include ioremaps and on some architectures
consistent memory allocations absorb vmalloc space.

You can see the constraints in asm-ppc/pgtable.h.  On PPC, it is
possible to change the default parameters in order to expand the
amount of vmalloc space available.  This is accomplished via
config options under the advanced kernel options menu.  With
PAGE_OFFSET at 0x40000000 and highmem, I've run a system with
nearly 3GB of vmalloc space.

Regards,
--
Matt Porter
[email-masked]
This is Linux Country. On a quiet night, you can hear Windows reboot.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/