On 7/18/05, Thomas Petazzoni <thomas.petazzoni@xxxxxxxx> wrote: > > > Since kernel space is 1GB so why only 896 MB . where the 128MB is going for? > > I think it's some space for the bounce buffers. Maybe other things, but > I don't know what exactly. > This 0 - 896MB is the physical memory space on which kernel keeps directly mappings from 0xC8000000 virtual address as the above memory AFAIK is reserved by the boot time memory allocations and other stuffs, so thats y kernels 1GB Virtual Space (from 3GB to 4GB, for 3G/1G memory split) becomes less due to this memory reservation like (1GB - (0xC8000000 - 3GB)) = 896MB ...... So this is the virtual address limitation of direct memory mappings ..... > > Another thing is, can i allocate only 896MB from kmalloc at the max. > > No, you can't. First of all, because on the 896MB, a couple of megabytes > is used to store the kernel and its data structures. And then, because > kmalloc() only allows you to allocate 128 Kb at once. > its true, kmalloc can't give you more space than 128KB of so ..... but vmalloc can give u at most upto 128MB or so ........ > Again, I *strongly* advise you to read Mel Gorman's book, where such > questions are answered in detail. > Understanding the Linux VM by Mel Gorman is the best book for Memory Management stuffs understanding ...... -- Fawad Lateef -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/