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

sandeep kumar coolsandyforyou at gmail.com
Tue May 31 04:09:37 EDT 2011


>> 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...

Not the device memory map..others also like vmalloc()/ioremap region,
dma_alloc() (refer that link)
these regions.

i refered to qualcomm chipset memory map(based on ARM9). They just mentioned
only where different devices were mapped.
They doesnt have this specifc adress space constraints for vmalloc,
ioremap,dma_alloc etc.,
So i thought it is taken care by kernel.

Please tell me where these constraints will be implemented?

Another clarification, while assigning memory through vmalloc(), dma_alloc()
kernel first
should check the available address space 'taking the constraints into
consideration' before returning the addresses, right?




On Tue, May 31, 2011 at 12:32 PM, Mulyadi Santosa <mulyadi.santosa at gmail.com
> wrote:

> 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
>



-- 
With regards,
Sandeep Kumar Anantapalli,
Senior Software Engineer,
Samsung India Software Operations,
Bangalore.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110531/06a06561/attachment.html 


More information about the Kernelnewbies mailing list