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

From: Andrea Arcangeli (andrea@suse.de)
Date: Sun May 05 2002 - 20:20:54 EST


On Mon, May 06, 2002 at 03:07:07AM +0200, Daniel Phillips wrote:
> On Monday 06 May 2002 02:55, Russell King wrote:
> > On Mon, May 06, 2002 at 01:54:52AM +0200, 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.
> >
> > I see no problem with the above with the existing discontigmem stuff.
> > discontigmem does *not* require a linear relationship between kernel
> > virtual and physical memory. I've been running kernels for a while
> > on such systems.
>
> Look, you've got this:
>
> #define __phys_to_virt(ppage) ((unsigned long)(ppage) + PAGE_OFFSET - PHYS_OFFSET)
>
> So, since __phys_to_virt (and hence phys_to_virt and __va) is clearly linear, the
> relation __pa(__va(kva)) == kva cannot hold. Perhaps that doesn't bother you?

Check my previous email:

        [..] They will all be normal zones provided you implement a static
        view of them in the kernel virtual address space, and you also
        cover page_address/virt_to_page [..]

Depending on the kind of coalescing of those chunks in the direct
mapping virt_to_page/page_address will vary. virt_to_page and
page_address will have all the necessary internal knowledge in order to
make it all zone_normal.

Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue May 07 2002 - 22:00:25 EST