Message ID | 20241021042358.2200586-1-vicamo.yang@canonical.com |
---|---|
Headers | show |
Series | Intel(R) PRO/1000 I219 ethernet adapter [8086:550c] may block entrance of modern standby | expand |
On 10/21/24 12:23, You-Sheng Yang wrote: > 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 No need to add "SAUCE" for the 3rd one since it has been merged into 6.12-rc4. Acked-by: Guoqing Jiang <guoqing.jiang@canonical.com> Thanks, Guoqing > 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(-) >
Acked-by: Jian Hui Lee <jianhui.lee@canonical.com> On Mon, Oct 21, 2024 at 12:25 PM You-Sheng Yang <vicamo.yang@canonical.com> wrote: > > 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 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
On 21.10.24 06:23, You-Sheng Yang wrote: > 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(-) > Applied to oracular:linux/master-next, fixing sha1 reference and removing SAUCE. Thanks. -Stefan