Not able to enter s2idle state on AMD platforms

Bug #1961121 reported by Alex Hung
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
linux (Ubuntu)
Fix Released
High
Alex Hung
Focal
Invalid
Undecided
Unassigned
Jammy
Fix Released
High
Alex Hung
linux-oem-5.14 (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
High
Unassigned
Jammy
Invalid
Undecided
Unassigned

Bug Description

[Impact]

AMD Systems don't enter PC6 at runtime and cause failures to enter s2idle.

Currently the fix is from kernel driver rather than MP2 firmware, which disable interrupts from kernel driver to fix MP2 firmware blocking CPUOFF.

[Fix]

The fixes involve 1) cancelling delayed work when entering s0ix and re-scheduling it when resuming from s0ix, and 2) clearing interrupts during the driver initialization and sensor command operations.

[Test]

This is requested by AMD and was tested on AMD CRB.

[Where problems could occur]

Risk is low to medium. Some code flow changes are guarded by reasonable conditions, but the fixes introduced additional suspend and resume operations.

Having said that, clearing interrupts before driver initialization and cancelling work before entering sleeping states are standard approaches are usually safe.

Alex Hung (alexhung)
tags: added: amd oem-priority originate-from-1960434
Changed in hwe-next:
assignee: nobody → Alex Hung (alexhung)
status: New → In Progress
Alex Hung (alexhung)
description: updated
You-Sheng Yang (vicamo)
Changed in linux (Ubuntu Focal):
status: New → Invalid
Changed in linux-oem-5.14 (Ubuntu Jammy):
status: New → Invalid
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 1961121

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
You-Sheng Yang (vicamo)
Changed in linux-oem-5.14 (Ubuntu Focal):
status: New → In Progress
importance: Undecided → High
assignee: nobody → Alex Hung (alexhung)
Changed in linux (Ubuntu Jammy):
status: Incomplete → In Progress
importance: Undecided → High
assignee: nobody → Alex Hung (alexhung)
Timo Aaltonen (tjaalton)
Changed in linux-oem-5.14 (Ubuntu Focal):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-oem-5.14/5.14.0-1025.27 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
Alex Hung (alexhung)
tags: added: verification-done-focal
removed: verification-needed-focal
Changed in hwe-next:
assignee: Alex Hung (alexhung) → nobody
Alex Hung (alexhung)
Changed in linux-oem-5.14 (Ubuntu Focal):
assignee: Alex Hung (alexhung) → nobody
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (31.6 KiB)

This bug was fixed in the package linux-oem-5.14 - 5.14.0-1027.30

---------------
linux-oem-5.14 (5.14.0-1027.30) focal; urgency=medium

  * CVE-2022-0001
    - x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
    - SAUCE: x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
    - SAUCE: x86/speculation: Add eIBRS + Retpoline options
    - SAUCE: Documentation/hw-vuln: Update spectre doc

linux-oem-5.14 (5.14.0-1025.27) focal; urgency=medium

  * focal/linux-oem-5.14: 5.14.0-1025.27 -proposed tracker (LP: #1961265)

  * Packaging resync (LP: #1786013)
    - debian/dkms-versions -- update from kernel-versions (main/2022.02.21)
    - [Config] Update config to match upstream stable release

  * Disable iwlwifi UHB (ultra high band) channels if we don't support wifi 6e
    currently (LP: #1961971)
    - SAUCE: iwlwifi: disable 6-7 GHz channels

  * Fix With 20.04d kernel and WX3200, unit freezes on resume (LP: #1961855)
    - SAUCE: drm/amd: Check if ASPM is enabled from PCIe subsystem

  * CVE-2022-25636
    - netfilter: nf_tables_offload: incorrect flow offload action array size

  * Focal update: upstream stable patchset 2022-02-22 (LP: #1961793)
    - PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
    - selftests: mptcp: fix ipv6 routing setup
    - net: ipa: use a bitmap for endpoint replenish_enabled
    - net: ipa: prevent concurrent replenish
    - drm/vc4: hdmi: Make sure the device is powered with CEC
    - net/mlx5e: IPsec: Fix tunnel mode crypto offload for non TCP/UDP traffic
    - net/mlx5: Bridge, take rtnl lock in init error handler
    - net/mlx5: Bridge, ensure dev_name is null-terminated
    - net/mlx5e: Fix handling of wrong devices during bond netevent
    - net/mlx5: Use del_timer_sync in fw reset flow of halting poll
    - net/mlx5e: Fix module EEPROM query
    - net/mlx5: Fix offloading with ESWITCH_IPV4_TTL_MODIFY_ENABLE
    - net/mlx5e: Don't treat small ceil values as unlimited in HTB offload
    - net/mlx5: Bridge, Fix devlink deadlock on net namespace deletion
    - net/mlx5: E-Switch, Fix uninitialized variable modact
    - ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
    - i40e: Fix reset bw limit when DCB enabled with 1 TC
    - i40e: Fix reset path while removing the driver
    - net: amd-xgbe: ensure to reset the tx_timer_active flag
    - net: amd-xgbe: Fix skb data length underflow
    - fanotify: Fix stale file descriptor in copy_event_to_user()
    - net: sched: fix use-after-free in tc_new_tfilter()
    - rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink()
    - cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask()
    - af_packet: fix data-race in packet_setsockopt / packet_setsockopt
    - tcp: add missing tcp_skb_can_collapse() test in tcp_shift_skb_data()
    - Revert "drm/vc4: hdmi: Make sure the device is powered with CEC"
    - Revert "drm/vc4: hdmi: Make sure the device is powered with CEC" again
    - drm/i915: Disable DSB usage for now
    - selinux: fix double free of cond_list on error paths
    - audit: improve audit queue handling when "audit=1" on cmdline
    - ipc/sem: do not sleep with a spin lock held
    - spi: stm32-qs...

Changed in linux-oem-5.14 (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (67.6 KiB)

This bug was fixed in the package linux - 5.15.0-23.23

---------------
linux (5.15.0-23.23) jammy; urgency=medium

  * jammy/linux: 5.15.0-23.23 -proposed tracker (LP: #1964573)

  * Packaging resync (LP: #1786013)
    - [Packaging] resync dkms-build{,--nvidia-N} from LRMv5
    - debian/dkms-versions -- update from kernel-versions (main/master)

  * [22.04 FEAT] KVM: Enable GISA support for Secure Execution guests
    (LP: #1959977)
    - KVM: s390: pv: make use of ultravisor AIV support

  * intel_iommu breaks Intel IPU6 camera: isys port open ready failed -16
    (LP: #1958004)
    - SAUCE: iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs

  * CVE-2022-23960
    - ARM: report Spectre v2 status through sysfs
    - ARM: early traps initialisation
    - ARM: use LOADADDR() to get load address of sections
    - ARM: Spectre-BHB workaround
    - ARM: include unprivileged BPF status in Spectre V2 reporting
    - arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
    - arm64: Add HWCAP for self-synchronising virtual counter
    - arm64: Add Cortex-X2 CPU part definition
    - arm64: add ID_AA64ISAR2_EL1 sys register
    - arm64: cpufeature: add HWCAP for FEAT_AFP
    - arm64: cpufeature: add HWCAP for FEAT_RPRES
    - arm64: entry.S: Add ventry overflow sanity checks
    - arm64: spectre: Rename spectre_v4_patch_fw_mitigation_conduit
    - KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3A
    - arm64: entry: Make the trampoline cleanup optional
    - arm64: entry: Free up another register on kpti's tramp_exit path
    - arm64: entry: Move the trampoline data page before the text page
    - arm64: entry: Allow tramp_alias to access symbols after the 4K boundary
    - arm64: entry: Don't assume tramp_vectors is the start of the vectors
    - arm64: entry: Move trampoline macros out of ifdef'd section
    - arm64: entry: Make the kpti trampoline's kpti sequence optional
    - arm64: entry: Allow the trampoline text to occupy multiple pages
    - arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
    - arm64: entry: Add vectors that have the bhb mitigation sequences
    - arm64: entry: Add macro for reading symbol addresses from the trampoline
    - arm64: Add percpu vectors for EL1
    - arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2
    - arm64: Mitigate spectre style branch history side channels
    - KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
    - arm64: Use the clearbhb instruction in mitigations
    - arm64: proton-pack: Include unprivileged eBPF status in Spectre v2
      mitigation reporting
    - ARM: fix build error when BPF_SYSCALL is disabled

  * CVE-2021-26401
    - x86/speculation: Use generic retpoline by default on AMD
    - x86/speculation: Update link to AMD speculation whitepaper
    - x86/speculation: Warn about Spectre v2 LFENCE mitigation
    - x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT

  * CVE-2022-0001
    - x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
    - x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
    - x86/speculation: Add eIBRS + Retpoline options
    - Document...

Changed in linux (Ubuntu Jammy):
status: In Progress → Fix Released
Timo Aaltonen (tjaalton)
Changed in hwe-next:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.