[SRU][D / B aws-edge][aws][PULL v3] proper hibernation support

Andrea Righi andrea.righi at canonical.com
Thu Feb 13 10:36:26 UTC 2020


On Wed, Feb 12, 2020 at 05:23:10PM -0500, Khaled Elmously wrote:
> I don't think the following points are necessarily "mistakes", but a few things looked a little strange so I thought I'd point them out:
>  1- In "UBUNTU SAUCE [aws]: mm: swap: improve swap readahead heuristic", the refactored function "static unsigned long swapin_nr_pages(unsigned long offset)" no longer uses 'offset' at all. Is that expected? Why not change the function signature then?

I actually thought about changing the signature, but maintaining the
same prototype reduces the risk of breaking other potential users of
this function, making the patch easier to maintain.

>  2- In "UBUNTU SAUCE [aws]: PM / hibernate: make sure pm_async is always disabled", you changed "int pm_async_enabled = 1;" to make it "int pm_async_enabled;" in order to "make sure that pm_async is never enabled" - yet you don't explicitly set it to 0 on initialization. I assume that it will default to 0 (due to BSS initialization?), but I wasn't sure if maybe you had different intentions.

Yeah.. the comment of this patch is a bit misleading, we actually want
to set the default to be off, we don't necessarily want to prevent
having pm_async enabled. Probably a better title would have been:
"PM / hibernate: make pm_async disabled by default".

I can change the description and send another pull request.

>  3- In "UBUNTU SAUCE [aws]: PM / hibernate: set image_size to 0 by default", the patch description says "Set image_size to 0 by default so that..." yet the patch doesn't set image_size to 0 or to any value at all. Maybe by removing the assignment you are ensuring that it will always remain 0 but in that case then the patch description is inaccurate/misleading.

Removing the code that initializes image_size guarantees that the value
will be 0 by default, because of bss initialization. I could have added
an explicit "image_size = 0", but I don't think it's necessary.
Moreover, like pm_async, we don't want to prevent changing this value,
we just want to change the default.

> 
> 
> If you can please confirm that you're aware of and OK with those issues, you have my ACK :)
> 
> Thanks
> Khaled

Thanks for the review!

-Andrea

> 
> On 2020-02-11 08:33:35 , Andrea Righi wrote:
> > BugLink: https://bugs.launchpad.net/bugs/1858618
> > BugLink: https://bugs.launchpad.net/bugs/1831940
> > 
> > The following patches are required to properly support hibernation with
> > bionic:linux-aws-edge / disco:linux-aws.
> > 
> > The most important patch is "PM / hibernate: memory_bm_find_bit():
> > Tighten node optimisation": this is a very critical bug fix for
> > hibernation that prevents potential memory corruptions on resume.
> > 
> > All the other hibernation-related SAUCE patches are required to improve
> > swapoff performance after a successful resume.
> > 
> > Moreover, some Xen-related patches have been included (ported from
> > bionic:linux-aws).
> > 
> > All these patches have been tested in the AWS environment with positive
> > results.
> > 
> > Changes in v3:
> >  - added missing BugLink information
> >  - added "cherry picked" lines for upstream patches
> > 
> > Changes in v2:
> >  - added missing Xen-related patches
> >  - added pm_async and image_size tunings
> > 
> > The following changes since commit 0f84693e79c7c596ac56d952851e0b9527679689:
> > 
> >   UBUNTU: Ubuntu-aws-edge-5.0.0-1019.21~18.04.1 (2019-10-03 00:49:16 -0400)
> > 
> > are available in the Git repository at:
> > 
> >   git://git.launchpad.net/~arighi/+git/bionic-linux aws-edge-arighi
> > 
> > for you to fetch changes up to b4aa4088c1582fa27c63532788b4d7087b1bbafa:
> > 
> >   UBUNTU SAUCE [aws]: xen: Only restore the ACPI SCI interrupt in xen_restore_pirqs. (2020-02-11 08:32:11 +0100)
> > 
> > ----------------------------------------------------------------
> > Anchal Agarwal (1):
> >       UBUNTU SAUCE [aws]: ACPICA: Enable sleep button on ACPI legacy wake
> > 
> > Andrea Righi (4):
> >       UBUNTU SAUCE [aws] PM / hibernate: reduce memory pressure during image writing
> >       UBUNTU SAUCE [aws]: mm: swap: improve swap readahead heuristic
> >       UBUNTU SAUCE [aws]: PM / hibernate: make sure pm_async is always disabled
> >       UBUNTU SAUCE [aws]: PM / hibernate: set image_size to 0 by default
> > 
> > Andy Whitcroft (1):
> >       PM / hibernate: memory_bm_find_bit(): Tighten node optimisation
> > 
> > Eduardo Valentin (1):
> >       UBUNTU SAUCE [aws]: block: xen-blkfront: consider new dom0 features on restore
> > 
> > Frank van der Linden (2):
> >       UBUNTU SAUCE [aws]: xen: restore pirqs on resume from hibernation.
> >       UBUNTU SAUCE [aws]: xen: Only restore the ACPI SCI interrupt in xen_restore_pirqs.
> > 
> > Vineeth Remanan Pillai (2):
> >       mm: refactor swap-in logic out of shmem_getpage_gfp
> >       mm: rid swapoff of quadratic complexity
> > 
> >  arch/x86/xen/suspend.c           |   2 +
> >  drivers/acpi/acpica/hwsleep.c    |  11 +
> >  drivers/block/xen-blkfront.c     |   3 +
> >  drivers/xen/events/events_base.c |  45 +++
> >  include/linux/frontswap.h        |   7 +
> >  include/linux/shmem_fs.h         |   3 +-
> >  include/xen/events.h             |   1 +
> >  kernel/power/main.c              |   4 +-
> >  kernel/power/snapshot.c          |  10 +-
> >  kernel/power/swap.c              |  24 +-
> >  mm/shmem.c                       | 716 +++++++++++++++++++++------------------
> >  mm/swap.c                        |   2 +-
> >  mm/swap_state.c                  |  60 +---
> >  mm/swapfile.c                    | 433 +++++++++--------------
> >  14 files changed, 646 insertions(+), 675 deletions(-)
> > 
> > -- 
> > kernel-team mailing list
> > kernel-team at lists.ubuntu.com
> > https://lists.ubuntu.com/mailman/listinfo/kernel-team



More information about the kernel-team mailing list