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

Rafael J. Wysocki
2008-11-04T08:54:33Z

On Tuesday, 4 of November 2008, Dave Hansen wrote:
> On Tue, 2008-11-04 at 08:08 +0100, Rafael J. Wysocki wrote:
> > 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