Thread (53 messages) 53 messages, 9 authors, 2008-11-07

Re: [linux-pm] [PATCH] hibernation should work ok with memory hotplug

From: Rafael J. Wysocki <hidden>
Date: 2008-11-04 07:04:19
Also in: linux-mm, lkml

On Tuesday, 4 of November 2008, Nigel Cunningham wrote:
Hi.

On Mon, 2008-11-03 at 14:34 -0800, Dave Hansen wrote:
quoted
A node might have a node_start_pfn=0 and a node_end_pfn=100 (and it may
have only one zone).  But, there may be another node with
node_start_pfn=10 and a node_end_pfn=20.  This loop:

        for_each_zone(zone) {
		...
                for (pfn = zone->zone_start_pfn; pfn < max_zone_pfn; pfn++)
                        if (page_is_saveable(zone, pfn))
                                memory_bm_set_bit(orig_bm, pfn);
        }

will walk over the smaller node's pfn range multiple times.  Is this OK?

I think all you have to do to fix it is check page_zone(page) == zone
and skip out if they don't match.
So pfn 10 in the first node refers to the same memory as pfn 10 in the
second node?
A pfn always refers to specific page frame and/or struct page, so yes.
However, in one of the nodes these pfns are sort of "invalid" (they point
to struct pages belonging to other zones).  AFAICS.

Thanks,
Rafael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help