Thread (51 messages) 51 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 08:50:19
Also in: linux-pm, lkml

On Tuesday, 4 of November 2008, Dave Hansen wrote:
On Tue, 2008-11-04 at 08:08 +0100, Rafael J. Wysocki wrote:
quoted
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.
Part of this problem is getting out of the old zone mindset.  It used to
be that there were one, two, or three zones, set up at boot, with static
ranges.  These never had holes, never changed, and were always stacked
up nice and tightly on top of one another.  It ain't that way no more.
In fact there were two assumptions about zones in the hibernation code,
that they are static and that they don't overlap.  The second one may be
removed by the patch I sent before, but there still is a problem related to
the first one, which is that the memory management structures (bitmaps) used
by us depend on the zones being static.

Of course, we create the image atomically, but the bitmaps are created earlier
with the assumption that the zones won't change aferwards.  Also, if memory
hotplugging is used _after_ the image has been created, the zones may change
in a way that's not compatible with the structure of the bitmaps.

To handle this, I need to know two things:
1) what changes of the zones are possible due to memory hotplugging (i.e.
   can they grow, shring, change boundaries etc.)
2) what kind of locking is needed to prevent zones from changing.

Thanks,
Rafael

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help