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

Reply via email to