Re: Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?]

Daniel Phillips
2002-05-02T02:40:57Z

On Thursday 02 May 2002 03:43, Andrea Arcangeli wrote:
> On Wed, May 01, 2002 at 03:26:22AM +0200, Daniel Phillips wrote:
> > For your information, the mem_map lives in *virtual* memory, it does not
> > need to change location, only the kernel page tables need to be updated,
> > to allow a section of kernel memory to be moved to a different physical
> > location. For user memory, this was always possible, now it is possible
> > for kernel memory as well. Naturally, it's not all you have to do to get
> > hotplug memory, but it's a big step in that direction.
>
> what kernel pagetables?

The normal page tables that are used to map kernel memory.

> pagetables for space that you left free for what?

These page tables have not been left free for anything. The nice thing about
page tables is that you can change the page table entries to point wherever
you want. (I know you know this.) This is what config_nonlinear supports,
and that is why it's called config_nonlinear. When we want to remap part of
the kernel memory to a different piece of physical memory, we just need to
fill in some pte's. The tricky part is knowing how to fill in the ptes, and
config_nonlinear takes care of that.

> You waste virtual space for that at the very least on x86 that is
> just very tigh, at this point kernel virtual space is more costly than
> physical space these days. And nevertheless most archs doesn't have
> pagetables at all to read and write the page structures. yes it's
> virtual memory but it's a direct mapping.

Most architectures? That's quite possibly an exaggeration. Some
architectures - MIPS32 for example - make this difficult or impossible,
and so what? Those can't do software hotplug memory, sorry.

--
Daniel