Can i allocate 4GB virtual addresses (more than a certain limit) using vmalloc?

Mulyadi Santosa mulyadi.santosa at gmail.com
Tue May 31 03:02:49 EDT 2011


Hi...

I am not ARM guy, but I'll see what I can share here..... hold your breath :)

On Tue, May 31, 2011 at 12:54, sandeep kumar <coolsandyforyou at gmail.com> wrote:
> Hi all,
> The following link gives the memory map for the arm architecture.
> http://www.arm.linux.org.uk/developer/memory.txt
>
> I have the following doubts..
> 1) Any chipset(based on arm) manufacturer(qualcom,samsung..) should follow
> the same memory map.
> Is it hardly constrained or can be changed?
> Where are this constraints are implemented in the kernel source tree?

you mean, device memory map? well AFAIK that is dictated by
BIOS....kernel simply just follow along...

>
> 2) while i was student, i read in OS concepts that, "Virtual memory gives an
> illusion to a process,
> that it has always a larger continuous address space (even more than RAM)
> available to it."

that's true... but you need to count another limitation: addressable
or not by the MMU or at least processor itself?

let's say you have 16 GiB of virtual memory, composed of 4 GiB of RAM
+ 12 GiB swap. Theoritically, a single process should be able to use
them all, but assuming we have no PAE enabled, an 32 bit system could
only address up to 4 GiB

> So i thought i could allocate howmuch ever memory i want.

Also think about fragmentation...

> But seeing the above link,i observed there is some limitation in the address
> space created by the vmalloc().
> So i m now thinking that vmalloc has some limit.

Yup.....

maybe my old article could shed a light further for you:
http://linuxdevcenter.com/pub/a/linux/2006/11/30/linux-out-of-memory.html

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com



More information about the Kernelnewbies mailing list