aws: disable CONFIG_DMA_CMA

Bug #1879711 reported by Andrea Righi on 2020-05-20
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-aws (Ubuntu)
Undecided
Unassigned
Eoan
High
Andrea Righi
Focal
High
Andrea Righi

Bug Description

[Impact]

The option CONFIG_DMA_CMA seems to cause hibernation failures on the t2.* instance types (Xen).

With this option enabled device drivers are allowed to use the Contiguous Memory Allocator (CMA) for DMA operations. So, drivers can allocate large physically-contiguous blocks of memory, instead of relying on the I/O map or scatter-gather support.

However, on resume, the memory used by DMA needs to be re-initialized / re-allocated, but it may fail to allocate large chunks of contiguous memory due to the fact that we also need to restore the hibernation image, using more memory and causing a system hang during the resume process.

[Test case]

Hibernate / resume any t2.* instance (especially t2.nano, where the problem seems to happen 100% of the times after 2 consecutive hibernate/resume cycles).

[Fix]

Disable CONFIG_DMA_CMA.

NOTE: this option is already disabled in the generic kernel (see LP: #1362261).

With this option disabled the success rate of hibernation on the t2.*
instance types during our tests jumped to 100%.

[Regression potential]

It is a .config change, no regression potential except for the fact that disabling this option also disables the module 'etnaviv' (Vivante graphic card), that is not really needed in the aws kernel.

CVE References

Andrea Righi (arighi) on 2020-05-20
affects: linux (Ubuntu) → linux-aws (Ubuntu)
Changed in linux-aws (Ubuntu Focal):
importance: Undecided → High
assignee: nobody → Andrea Righi (arighi)
Andrea Righi (arighi) on 2020-05-20
description: updated
description: updated
description: updated
Stefan Bader (smb) on 2020-05-25
Changed in linux-aws (Ubuntu Eoan):
importance: Undecided → High
status: New → In Progress
Changed in linux-aws (Ubuntu Focal):
status: New → In Progress
Changed in linux-aws (Ubuntu):
status: New → Invalid
Andrea Righi (arighi) on 2020-06-03
Changed in linux-aws (Ubuntu Eoan):
assignee: nobody → Andrea Righi (arighi)
Changed in linux-aws (Ubuntu Eoan):
status: In Progress → Fix Committed
Changed in linux-aws (Ubuntu Focal):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :
Download full text (33.6 KiB)

This bug was fixed in the package linux-aws - 5.4.0-1018.18

---------------
linux-aws (5.4.0-1018.18) focal; urgency=medium

  * focal/linux-aws: 5.4.0-1016.16 -proposed tracker (LP: #1882686)

  * ASoC/amd: add audio driver for amd renoir (LP: #1881046)
    - [Config] aws: do not enable amd renoir ASoC audio

  * Focal update: v5.4.42 upstream stable release (LP: #1879759)
    - [Config] updateconfigs for CC_HAS_WARN_MAYBE_UNINITIALIZED

  * linux-aws: Xen / hibernation: xen-netfront panic + resume hangs
    (LP: #1881869)
    - 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]: block: xen-blkfront: consider new dom0 features
      on restore"
    - 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: xen-blkfront: Fixed blkfront_restore to remove a call
      to negotiate_mq"
    - Revert "UBUNTU: SAUCE: xen-blkfront: add callbacks for PM suspend and
      hibernation"
    - 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"
    - xen/blkfront: fix ring info addressing
    - [Config] aws: compile xen-netfront as module
    - SAUCE: mm: swap: properly update readahead statistics in unuse_pte_range()
    - UBUNTU SAUCE [aws]: mm: swap: increase default swap readahead size
    - [Config] aws: compile xen-netfront as module (update the right config)

  * Restore request-based mode to xen-blkfront for AWS kernels (LP: #1801305)
    - SAUCE: xen/manage: keep track of the on-going suspend mode
    - SAUCE: xenbus: add freeze/thaw/restore callbacks support
    - SAUCE: x86/xen: Introduce new function to map HYPERVISOR_shared_info on
      Resume
    - SAUCE: x86/xen: add system core suspend and resume callbacks
    - SAUCE: genirq: Shutdown irq chips in suspend/resume during hibernation
    - SAUCE: xen-blkfront: add callbacks for PM suspend and hibernation
    - SAUCE: xen-netfront: add callbacks for PM suspend and hibernation
    - SAUCE: xen/time: introduce xen_{save,restore}...

Changed in linux-aws (Ubuntu Focal):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers