[SRU] [PULL] [B/C/D/OEM-B/OEM-OSP1-B] [PATCH 00/10] Fix NVMe high power consumption under S2Idle

Kai-Heng Feng kai.heng.feng at canonical.com
Fri Jun 14 08:33:07 UTC 2019


BugLink: https://bugs.launchpad.net/bugs/1808957

[Impact]
NVMe controllers drains substantial power during S2Idle.
Some NVMe controllers even freeze the system upon suspending/resuming.

[Fix]
- Make sure all I/Os on NVMe are quiesced so it can stay at deepest
  power saving state.
- Let NVMe controller stays at D0 and handles its own power management.
- Let PCI devices keep at D0 if there's early wakeup event wakes the
  system up.

[Test]
Once the fix is applied the power consumption changes from 3~4W to 0.9W
during S2Idle. System freeze can no longer be observed.

[Regression Potential]
Low. Multiple NVMe vendors verified the fix.

[Pull]
- Bionic:
The following changes since commit edaa4ede0ca39f3578255fbe06a9db53df1d87f1:

  drm/i915/gvt: Fix aperture read/write emulation when enable x-no-mmap=on (2019-06-11 17:58:47 +0200)

are available in the Git repository at:

  https://git.launchpad.net/~kaihengfeng/linux lp1808129-bionic

for you to fetch changes up to e77708b1d7887897d73769a3d23083aa898f942d:

  nvme-pci: Use host managed power state for suspend (2019-06-14 16:16:48 +0800)

- Cosmic:
The following changes since commit 76d5b0cd28d1e5e8ce70c1799b655953df82478e:

  Bluetooth: hidp: fix buffer overflow (2019-06-11 09:09:03 +0200)

are available in the Git repository at:

  https://git.launchpad.net/~kaihengfeng/linux lp1808129-cosmic

for you to fetch changes up to 69b94bef5cce1326905eb560124e3d9ddffad7ea:

  nvme-pci: Use host managed power state for suspend (2019-06-14 16:18:17 +0800)

- Disco:
The following changes since commit e09b10154342311687d18701eaf705c8872690b4:

  spi: Add missing error handling for CS GPIOs (2019-06-05 17:38:46 +0200)

are available in the Git repository at:

  https://git.launchpad.net/~kaihengfeng/linux lp1808129-disco

for you to fetch changes up to 7b96a5954629bd6a14328c92a64bafe4ddee7389:

  nvme-pci: Use host managed power state for suspend (2019-06-14 16:19:15 +0800)

- OEM-B:
The following changes since commit a09891a3075879434b70517fd178f66dee2ddf5b:

  UBUNTU: Ubuntu-oem-4.15.0-1039.44 (2019-05-19 15:05:06 +0800)

are available in the Git repository at:

  https://git.launchpad.net/~kaihengfeng/linux lp1808129-oem-b

for you to fetch changes up to d599e3dcdeed4ee3dbc07b990ef60c6c5a21f010:

  nvme-pci: Use host managed power state for suspend (2019-06-14 16:22:34 +0800)

- OEM-OSP1-B:
The following changes since commit 3e73c1d558edf70f0186fd03cebd7892df4081b1:

  UBUNTU: Ubuntu-oem-osp1-5.0.0-1008.9 (2019-05-26 21:58:43 +0300)

are available in the Git repository at:

  https://git.launchpad.net/~kaihengfeng/linux lp1808129-oem-osp1

for you to fetch changes up to b360584e42dd1147bdec1b0c45cf34c53fccc7b0:

  nvme-pci: Use host managed power state for suspend (2019-06-14 16:19:48 +0800)

----------------------------------------------------------------
Kai-Heng Feng (5):
      Revert "UBUNTU: SAUCE: pci/nvme: prevent WDC PC SN720 NVMe from entering D3 and being disabled"
      Revert "UBUNTU: SAUCE: nvme: add quirk to not call disable function when suspending"
      Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3"
      Revert "UBUNTU: SAUCE: nvme: add quirk to not call disable function when suspending"
      Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3"

Keith Busch (3):
      nvme-pci: Sync queues on reset
      nvme: Export get and set features
      nvme-pci: Use host managed power state for suspend

Rafael J. Wysocki (2):
      PCI: PM: Avoid possible suspend-to-idle issue
      UBUNTU: SAUCE: PCI: PM: Skip devices in D0 for suspend-to-idle

 drivers/nvme/host/core.c |  35 ++++++++++++++--
 drivers/nvme/host/nvme.h |  12 +++---
 drivers/nvme/host/pci.c  | 104 ++++++++++++++++++++++++++++++++++++++++++-----
 drivers/pci/pci-driver.c |  44 ++++++++++++++++++--
 drivers/pci/quirks.c     |   3 --
 include/linux/pci.h      |   1 +
 include/linux/pci_ids.h  |   2 -
 7 files changed, 174 insertions(+), 27 deletions(-)



More information about the kernel-team mailing list