On Wed, Jul 20, 2011 at 11:59 PM, mindentropy <mindentropy@xxxxxxxxx> wrote: >>>huge range means you already have huge physical memory to be mapped >>>and user space process has huge virtual memory area to accomodate >>>that. Note that is mapping is specific to one particular process (or >>>threads sharing process address space) so it is fairly possible to >>>establish mmap. > >>Assuming you have 1 single page size of physical memory. Now when you mmap a >>huge size would all the different virtual addresses be mapping onto the same >>physical page frame? > > Apologize for multiple messages. > > On my x86_64 machine with 3GB of RAM I cannot mmap a of len=16*1024*1024. So I > am assuming it did not find contiguous pages or has run out of contiguous > pages(Again assuming that the amount of pages reserved for this is small > either the memory hole or the high memory). > > So your question is rather more confined : Whether you can allocate physically cotigous memory of 16MB, right? Mapping is not an issue here. proper error handling will anyways tell you whether you succeeded or not. I think with kmalloc, you may not get memory larger than 4MB. You can definitely maintain allocation in smaller chunks and maintain a pool on top of them (simple array). with some linear one-to-one scheme between virtual address and your pool, you can assign them to vma. -Rajat _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies