Hey Xiao, last 128MB is not used for highmem. last 128MB is used for data structures(page tables etc.) to support highmem . Highmem is not something which is "INSIDE" Kernel's Virtual Address space. Highmem refers to a region of "Physical memory" which can be mapped into kernel's virtual address space through page tables.
Regards, Venkatram Tummala On Tue, Apr 6, 2010 at 6:47 PM, Xianghua Xiao <[email protected]>wrote: > If the last 128MB out of the kernel 1GB space is used to for highmen, > meanwhile it's also used for IO/vmalloc, how does this work? > > Xianghua > > On Tue, Apr 6, 2010 at 6:32 PM, H. Peter Anvin <[email protected]> wrote: > > On 04/06/2010 04:27 PM, Youngwhan Song wrote: > >> Nice explanation, Venkatram, > >> > >> Just one question pop up mind. > >> > >> What if actual physical memory is only 256MB? How does kernel divide > >> virtual memory? Do we need to specify the region to kernel? Or will > >> kernel itself decide it automatically? > >> > > > > If there is less than 896 MB of physical memory, the vmalloc region is > > automatically extended (in your case, it will be 768 MB in size.) There > > will be no HIGHMEM in such a case, and if you are compiling your own > > kernel you will gain considerable speed by disabling HIGHMEM support > > completely. > > > > This, of course, was the norm back when Linux was first created, and a > > typical amount of memory was 8 MB or so. That we'd have gigabytes of > > memory seemed very distant at the time. > > > > -hpa > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" > in > > the body of a message to [email protected] > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > >
