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

Roman Zippel
2002-05-06T08:54:20Z

Hi,

On Mon, 6 May 2002, Daniel Phillips wrote:

> I must be guilty of not explaining clearly. Suppose you have the following
> physical memory map:
>
> 0: 128 MB
> 8000,0000: 128 MB
> 1,0000,0000: 128 MB
> 1,8000,0000: 128 MB
> 2,0000,0000: 128 MB
> 2,8000,0000: 128 MB
> 3,0000,0000: 128 MB
> 3,8000,0000: 128 MB
>
> The total is 1 GB of installed ram. Yet the kernel's 1G virtual space,
> can only handle 128 MB of it. The rest falls out of the addressable range and
> has to be handled as highmem, that is if you preserve the linear relationship
> between kernel virtual memory and physical memory, as config_discontigmem does.
> Even if you go to 2G of kernel memory (restricting user space to 2G of virtual)
> you can only handle 256 MB.

Why do you want to preserve the linear relationship between virtual and
physical memory? There is little common code (and only during
initialization), which assumes a direct mapping. I can send you the
patches to fix this. Then you can map as much physical memory as you want
into a single virtual area and you only need a single pgdat.

bye, Roman