[PATCH 0/3][SRU][Oracular] Intel(R) PRO/1000 I219 ethernet adapter [8086:550c] may block entrance of modern standby

You-Sheng Yang vicamo.yang at canonical.com
Mon Oct 21 04:23:55 UTC 2024


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

[Impact]

Systems with Intel(R) PRO/1000 I219 ethernet adapter [8086:550c] may block
entrance of modern standby.

[Fix]

This is a composition of multiple factors. For the e1000e driver to suspend
correctly, it takes:
* v6.12-rc1 commit [cedf233530cc3](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cedf233530cc375343c5a0b612fe94392f246c99) ("platform/x86: intel/pmc: Ignore all LTRs during suspend")
* v6.12-rc3 commit [9d9e5347b0354](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9d9e5347b035412daa844f884b94a05bac94f864) ("e1000e: change I219 (19) devices to ADP")

And there is also a problem in APIC working in deadline mode. When shutting down
the APIC timer, both APIC_LVT_MASKED and clear the counter register should be
done, and this takes:
* https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=x86/urgent&id=ffd95846c6ec6cf1f93da411ea10d504036cab42 ("x86/apic: Always explicitly disarm TSC-deadline timer")

[Test Case]

```
$ sudo cat /sys/power/suspend_stats/total_hw_sleep
0
$ sudo rtcwake -m freeze -s 120
# wait ...
$ sudo cat /sys/power/suspend_stats/total_hw_sleep
117855416
$ sudo cat /sys/kernel/debug/pmc_core/package_cstate_show
...
Package C10 : 117924661
```

[Where problems could occur]

The first part can be treated as a new hardware support. The APIC timer part is
a common issue probably tracing back to the Nehalem microm architecture. It has
been landed to x86/urgent tree and will be in v6.12-rc4. It's also cc-stabled.

[Other Info]

This is cc-stabled. We're probably going to meet it again for maybe 6.8 LTS
kernels. Before that, SRU for OEM-6.11 hardware enablement.

Vitaly Lifshits (1):
  e1000e: change I219 (19) devices to ADP

Xi Pardee (1):
  platform/x86: intel/pmc: Ignore all LTRs during suspend

Zhang Rui (1):
  UBUNTU: SAUCE: x86/apic: Always explicitly disarm TSC-deadline timer

 arch/x86/kernel/apic/apic.c                | 14 +++++-
 drivers/net/ethernet/intel/e1000e/hw.h     |  4 +-
 drivers/net/ethernet/intel/e1000e/netdev.c |  4 +-
 drivers/platform/x86/intel/pmc/core.c      | 53 ++++++++++++++++++++++
 drivers/platform/x86/intel/pmc/core.h      |  2 +
 5 files changed, 72 insertions(+), 5 deletions(-)

-- 
2.45.2




More information about the kernel-team mailing list