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