[RFC][PATCH 0/6] PM/Hibernate: Rework memory shrinking (rev. 3)

From: Rafael J. Wysocki
Date: Sun May 10 2009 - 10:13:30 EST


On Thursday 07 May 2009, Rafael J. Wysocki wrote:
> On Thursday 07 May 2009, Rafael J. Wysocki wrote:
> > Hi,
> >
> > The following patchset is an attempt to rework the memory shrinking mechanism
> > used during hibernation to make room for the image. It is a work in progress
> > and most likely it's going to be modified, but it has been discussed recently
> > and I'd like to get comments on the current version.
> >
> > [1/5] - disable the OOM kernel after freezing tasks (this will be dropped if
> > it's verified that we can avoid the OOM killing by using
> > __GFP_FS|__GFP_WAIT|__GFP_NORETRY|__GFP_NOWARN
> > in the next patches).
> >
> > [2/5] - drop memory shrinking from the suspend (to RAM) code path
> >
> > [3/5] - move swsusp_shrink_memory() to snapshot.c
> >
> > [4/5] - rework swsusp_shrink_memory() (to use memory allocations for applying
> > memory pressure)
> >
> > [5/5] - allocate image pages along with the shrinking.
>
> Updated patchset follows.

I the meantime I added a patch that attempts to computer the size of the hard
core working set. I also had to rework the patch reworking
swsusp_shrink_memory() so that it takes highmem into account.

Currently, the patchset consists of the following patches:

[1/6] - disable the OOM kernel after freezing tasks (this will be dropped if
it's verified that we can avoid the OOM killing by using
__GFP_FS|__GFP_WAIT|__GFP_NORETRY|__GFP_NOWARN
in the next patches).

[2/6] - drop memory shrinking from the suspend (to RAM) code path

[3/6] - move swsusp_shrink_memory() to snapshot.c

[4/6] - rework swsusp_shrink_memory() (to use memory allocations for applying
memory pressure)

[5/6] - allocate image pages along with the shrinking

[6/6] - estimate the size of the hard core working set and use it as the lower
limit of the image size.

Comments welcome.

Thanks,
Rafael

--
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/