ACK: [SRU][E][aws][PULL v2] Xen / hibernation: xen-netfront panic + resume hangs

Kamal Mostafa kamal at canonical.com
Fri Jun 5 16:31:04 UTC 2020


LGTM.

Acked-by: Kamal Mostafa <kamal at canonical.com>

 -Kamal

On Fri, Jun 05, 2020 at 06:20:28PM +0200, Andrea Righi wrote:
> BugLink: https://bugs.launchpad.net/bugs/1881869
> 
> [Impact]
> 
> During our AWS testing we were able to trigger some hibernation failures
> in some Xen instance types.
> 
> One problem is a kernel panic in the resume callback of the xen-netfront
> driver. A workaround to this problem is to compile the driver as a
> module and reload it at resume (we were already doing this reload with
> the bionic kernel that had this driver compiled as a module, but for
> some reasons eoan and focal had this statically compiled).
> 
> Other issues were showing up as hangs on resume, these seem to be
> prevented by using the new Xen/hibernation patch set posted by Anchal to
> the LKML:
> https://lore.kernel.org/lkml/cover.1589926004.git.anchalag@amazon.com/
> 
> This new patch set is still being reviewed, but according to our tests
> it really seems to fix some of these hangs on resume.
> 
> In addition to that we can improve hibernation reliability and
> performance even more by applying the updated swapoff optimization patch
> (that has been merged upstream).
> 
> [Test case]
> 
> Create a Xen instance in AWS, hibernate/resume multiple times.
> 
> [Fix]
> 
> The following set of fixes can be used to improve hibernation
> performance and reliability:
>  - new Xen/hibernation patch set from the LKML (see link above)
>  - config change to compile xen-netfront as a module
>  - new swapoff optimization patch
> 
> [Regression potential]
> 
> The xen-netfront config change and the new swapoff optimization patch
> are pretty safe (one is a config change that affects only the
> xen-netfront driver, the other is a clean cherry-pick of an upstream
> commit).
> 
> The new Xen/hibernation update is pretty big and the new patches are
> still under review, however according to our tests it really seems to
> fix some of the hang issues (it definitely makes things better).
> Moreover, all the changes are affecting Xen and they are restricted to
> the hibernation/resume code paths, so, in conclusion, the overall
> regression potential is minimal.
> 
> [See also]
> 
> NOTE: the fix mentioned in LP: #1879711 (disable CONFIG_DMA_CMA) was
> also applied during our tests and it is also required to make
> hibernation stable in Xen.
> 
> Changes in v2:
>  - fixed git repository URL
>  - fixed glitched pull request
> 
> ----------------------------------------------------------------
> The following changes since commit d59828b58949abaac0cd4c769d547d841d48b33e:
> 
>   UBUNTU: Ubuntu-aws-5.3.0-1020.22 (2020-05-27 17:15:03 -0500)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~arighi/+git/eoan-linux aws-arighi
> 
> for you to fetch changes up to 3c99292a75a9b318b5aba5b0da3b453741e0925c:
> 
>   UBUNTU SAUCE [aws]: mm: swap: increase default swap readahead size (2020-06-05 18:17:13 +0200)
> 
> ----------------------------------------------------------------
> Anchal Agarwal (4):
>       UBUNTU: SAUCE: x86/xen: Introduce new function to map HYPERVISOR_shared_info on Resume
>       UBUNTU: SAUCE: genirq: Shutdown irq chips in suspend/resume during hibernation
>       UBUNTU: SAUCE: xen: Introduce wrapper for save/restore sched clock offset
>       UBUNTU: SAUCE: xen: Update sched clock offset to avoid system instability in hibernation
> 
> Andrea Righi (18):
>       Revert "UBUNTU SAUCE [aws]: xen: Only restore the ACPI SCI interrupt in xen_restore_pirqs."
>       Revert "UBUNTU SAUCE [aws]: xen: restore pirqs on resume from hibernation."
>       Revert "UBUNTU SAUCE [aws]: ACPICA: Enable sleep button on ACPI legacy wake"
>       Revert "UBUNTU SAUCE [aws]: mm: swap: improve swap readahead heuristic"
>       Revert "UBUNTU SAUCE [aws] PM / hibernate: reduce memory pressure during image writing"
>       Revert "UBUNTU: SAUCE [aws] x86/xen: close event channels for PIRQs in system core suspend callback"
>       Revert "UBUNTU: SAUCE [aws] xen/events: add xen_shutdown_pirqs helper function"
>       Revert "UBUNTU: SAUCE [aws] x86/xen: save and restore steal clock"
>       Revert "UBUNTU: SAUCE [aws] xen-time-introduce-xen_-save-restore-_steal_clock"
>       Revert "UBUNTU: SAUCE [aws] xen-netfront: add callbacks for PM suspend and hibernation support"
>       Revert "UBUNTU: SAUCE [aws] x86/xen: add system core suspend and resume callbacks"
>       Revert "UBUNTU: SAUCE [aws] x86/xen: Introduce new function to map HYPERVISOR_shared_info on Resume"
>       Revert "UBUNTU: SAUCE: xenbus: add freeze/thaw/restore callbacks support"
>       Revert "UBUNTU: SAUCE: xen/manage: introduce helper function to know the on-going suspend mode"
>       Revert "UBUNTU: SAUCE: xen/manage: keep track of the on-going suspend mode"
>       UBUNTU: [Config] aws: compile xen-netfront as module
>       mm: swap: properly update readahead statistics in unuse_pte_range()
>       UBUNTU SAUCE [aws]: mm: swap: increase default swap readahead size
> 
> Juergen Gross (1):
>       xen/blkfront: fix ring info addressing
> 
> Munehisa Kamata (7):
>       UBUNTU: SAUCE: xen/manage: keep track of the on-going suspend mode
>       UBUNTU: SAUCE: xenbus: add freeze/thaw/restore callbacks support
>       UBUNTU: SAUCE: x86/xen: add system core suspend and resume callbacks
>       UBUNTU: SAUCE: xen-blkfront: add callbacks for PM suspend and hibernation
>       UBUNTU: SAUCE: xen-netfront: add callbacks for PM suspend and hibernation
>       UBUNTU: SAUCE: xen/time: introduce xen_{save,restore}_steal_clock
>       UBUNTU: SAUCE: x86/xen: save and restore steal clock
> 
>  arch/x86/xen/suspend.c                    |  12 +-
>  arch/x86/xen/time.c                       |  15 ++-
>  arch/x86/xen/xen-ops.h                    |   2 +
>  debian.aws/config/annotations             |   2 +-
>  debian.master/config/config.common.ubuntu |   2 +-
>  drivers/acpi/acpica/hwsleep.c             |  11 --
>  drivers/block/xen-blkfront.c              | 197 +++++++++++++++++++++++-------
>  drivers/net/xen-netfront.c                |  21 ++--
>  drivers/xen/events/events_base.c          |  58 +--------
>  drivers/xen/manage.c                      |   8 +-
>  drivers/xen/time.c                        |   7 +-
>  drivers/xen/xenbus/xenbus_probe.c         |  47 +++----
>  include/linux/irq.h                       |   2 +
>  include/xen/events.h                      |   2 -
>  kernel/irq/chip.c                         |   2 +-
>  kernel/irq/internals.h                    |   1 +
>  kernel/irq/pm.c                           |  31 +++--
>  kernel/power/swap.c                       |  24 +++-
>  mm/swap_state.c                           |  60 +++++++--
>  mm/swapfile.c                             |  12 +-
>  20 files changed, 327 insertions(+), 189 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