Re: [PATCH] Skip memory holes in FLATMEM when reading /proc/pagetypeinfo (resend)

From: Mel Gorman
Date: Fri Aug 22 2008 - 10:49:53 EST


On (21/08/08 17:56), Russell King - ARM Linux didst pronounce:
> On Thu, Aug 21, 2008 at 09:34:00AM -0700, Andrew Morton wrote:
> > On Thu, 21 Aug 2008 14:28:05 +0100 Mel Gorman <mel@xxxxxxxxx> wrote:
> > > This patch lets architectures say when FLATMEM can have holes in the
> > > memmap. Rather than an expensive check for valid memory, /proc/pagetypeinfo
> > > will confirm that the page linkages are still valid by checking page->zone
> > > is still the expected zone. The lookup of page_zone is safe as there is a
> > > limited range of memory that is accessed when calling page_zone. Even if
> > > page_zone happens to return the correct zone, the impact is that the counters
> > > in /proc/pagetypeinfo are slightly off but fragmentation monitoring is
> > > unlikely to be relevant on an embedded system.
> >
> > Sounds like this might fix an oops. Does it?
> >

Yes, it does. Sorry for not being clear on that.

> > The patch applies to 2.6.25 and to 2.6.26. Should it be backported?
>

It wouldn't hurt. It's not a critical functionality failure and only affects
ARM but being able to generate oops from userspace is a bit of a loss.

> The only concern there is with this patch is that we're still walking
> over the memory, which could contain anything. We could be unlucky
> and end up with page_zone(page) == zone.
>

If you do, the impact is that the counters are slightly off which is not
that big of a deal. To avoid doing it, information would have to be kept
around that might end up being larger than the memmap freed.

> It'll do as a stop gap, but I think the real solution is to switch over
> to using sparsemem, and get rid of ARMs private version (which even
> pre-dates discontigmem.) That first assumes that we have sparsemem
> working on ARM - however folk seem to prefer discontigmem over
> sparsemem so I don't know what state sparsemem on ARM is in. :(
>

No idea. I know that SPARSEMEM would be preferred as a memory model as
it is a lot less arch-specific than DISCONTIG is.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/