Public bug reported: Impact] NVMe with HMB may still do DMA during suspend, so there was a commit that put the NVMe to PCI D3 during suspend to prevent DMA activities. However, this makes them consumes much more power because modern NVMe requires to stay at PCI D0 to make its natve power control work.
[Fix] Instead of put the NVMe to PCI D3 and reset it afterward, simply disable HMB and re-enable HMB, for suspend and resume respectively. [Test] On affected system, Intel SoC can only reach PC3 during suspend. With the SRU applied, the Intel SoC can reach PC10 and SLP_S0 and use significant less power. [Where problems could occur] The original approach, i.e. disable NVMe and put it to PCI D3 to prevent DMA activies, was just a precaution. There wasn't any case that indicates it happens in practice. This is a different approach to the same problem, which is a theoretical problem. ** Affects: hwe-next Importance: Undecided Status: New ** Affects: linux (Ubuntu) Importance: Undecided Status: New ** Affects: linux-oem-5.10 (Ubuntu) Importance: Undecided Status: New ** Affects: linux-oem-5.13 (Ubuntu) Importance: Undecided Status: New ** Affects: linux-oem-5.14 (Ubuntu) Importance: Undecided Status: New ** Affects: linux (Ubuntu Focal) Importance: Undecided Status: Won't Fix ** Affects: linux-oem-5.10 (Ubuntu Focal) Importance: Medium Status: Confirmed ** Affects: linux-oem-5.13 (Ubuntu Focal) Importance: Medium Status: Confirmed ** Affects: linux-oem-5.14 (Ubuntu Focal) Importance: Medium Status: Confirmed ** Affects: linux (Ubuntu Hirsute) Importance: Medium Status: Confirmed ** Affects: linux-oem-5.10 (Ubuntu Hirsute) Importance: Undecided Status: Invalid ** Affects: linux-oem-5.13 (Ubuntu Hirsute) Importance: Undecided Status: Invalid ** Affects: linux-oem-5.14 (Ubuntu Hirsute) Importance: Undecided Status: Invalid ** Affects: linux (Ubuntu Impish) Importance: Medium Status: Confirmed ** Affects: linux-oem-5.10 (Ubuntu Impish) Importance: Undecided Status: Invalid ** Affects: linux-oem-5.13 (Ubuntu Impish) Importance: Undecided Status: Invalid ** Affects: linux-oem-5.14 (Ubuntu Impish) Importance: Undecided Status: Invalid ** Tags: oem-priority originate-from-1949545 somerville ** Also affects: linux (Ubuntu Focal) Importance: Undecided Status: New ** Also affects: linux (Ubuntu Hirsute) Importance: Undecided Status: New ** Also affects: linux (Ubuntu Impish) Importance: Undecided Status: New ** Changed in: linux (Ubuntu Focal) Status: New => Won't Fix ** Changed in: linux (Ubuntu Hirsute) Status: New => Confirmed ** Changed in: linux (Ubuntu Impish) Status: New => Confirmed ** Changed in: linux (Ubuntu Hirsute) Importance: Undecided => Medium ** Changed in: linux (Ubuntu Impish) Importance: Undecided => Medium ** Also affects: linux-oem-5.10 (Ubuntu) Importance: Undecided Status: New ** Changed in: linux-oem-5.10 (Ubuntu Focal) Status: New => Confirmed ** Changed in: linux-oem-5.10 (Ubuntu Hirsute) Status: New => Invalid ** Changed in: linux-oem-5.10 (Ubuntu Impish) Status: New => Invalid ** Also affects: linux-oem-5.13 (Ubuntu) Importance: Undecided Status: New ** Changed in: linux-oem-5.13 (Ubuntu Focal) Importance: Undecided => Medium ** Changed in: linux-oem-5.13 (Ubuntu Focal) Status: New => Confirmed ** Changed in: linux-oem-5.10 (Ubuntu Focal) Importance: Undecided => Medium ** Changed in: linux-oem-5.13 (Ubuntu Hirsute) Status: New => Invalid ** Changed in: linux-oem-5.13 (Ubuntu Impish) Status: New => Invalid ** Also affects: linux-oem-5.14 (Ubuntu) Importance: Undecided Status: New ** Changed in: linux-oem-5.14 (Ubuntu Focal) Importance: Undecided => Medium ** Changed in: linux-oem-5.14 (Ubuntu Focal) Status: New => Confirmed ** Changed in: linux-oem-5.14 (Ubuntu Hirsute) Status: New => Invalid ** Changed in: linux-oem-5.14 (Ubuntu Impish) Status: New => Invalid ** Tags added: oem-priority originate-from-1949545 somerville -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1950042 Title: Let NVMe with HMB use native power control again Status in HWE Next: New Status in linux package in Ubuntu: New Status in linux-oem-5.10 package in Ubuntu: New Status in linux-oem-5.13 package in Ubuntu: New Status in linux-oem-5.14 package in Ubuntu: New Status in linux source package in Focal: Won't Fix Status in linux-oem-5.10 source package in Focal: Confirmed Status in linux-oem-5.13 source package in Focal: Confirmed Status in linux-oem-5.14 source package in Focal: Confirmed Status in linux source package in Hirsute: Confirmed Status in linux-oem-5.10 source package in Hirsute: Invalid Status in linux-oem-5.13 source package in Hirsute: Invalid Status in linux-oem-5.14 source package in Hirsute: Invalid Status in linux source package in Impish: Confirmed Status in linux-oem-5.10 source package in Impish: Invalid Status in linux-oem-5.13 source package in Impish: Invalid Status in linux-oem-5.14 source package in Impish: Invalid Bug description: Impact] NVMe with HMB may still do DMA during suspend, so there was a commit that put the NVMe to PCI D3 during suspend to prevent DMA activities. However, this makes them consumes much more power because modern NVMe requires to stay at PCI D0 to make its natve power control work. [Fix] Instead of put the NVMe to PCI D3 and reset it afterward, simply disable HMB and re-enable HMB, for suspend and resume respectively. [Test] On affected system, Intel SoC can only reach PC3 during suspend. With the SRU applied, the Intel SoC can reach PC10 and SLP_S0 and use significant less power. [Where problems could occur] The original approach, i.e. disable NVMe and put it to PCI D3 to prevent DMA activies, was just a precaution. There wasn't any case that indicates it happens in practice. This is a different approach to the same problem, which is a theoretical problem. To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1950042/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp