Variable isolation results (as requested)
Following the request to isolate which parameter actually fixes the issue, I
ran the kernel with only `retbleed=off`, re-enabling both the SRSO mitigation
and the deep C-states that were previously disabled.
Result: the system is stable. `retbleed=off` alone is sufficient. Uptime is
currently 3 days 8 hours (since 2026-07-23 11:37:25 UTC-3) with zero errors in
`dmesg -l err,crit,alert,emerg`. For reference, the original crashes occurred
every 12-36 hours, so this window is well past the failure threshold.
Test matrix
| # | Boot parameters | Result |
|---|---|---|
| 1 | `processor.max_cstate=1` | Still crashed — trace in `srso_safe_ret` |
| 2 | `processor.max_cstate=1 spec_rstack_overflow=off` | Still crashed —
trace moved to `retbleed_return_thunk` |
| 3 | `processor.max_cstate=1 spec_rstack_overflow=off retbleed=off` |
Stable, 7d 16h |
| 4 | **`retbleed=off`** (current) | **Stable, 3d 8h and counting** |
Test 2 is the informative one: with SRSO mitigation disabled the crash did not
go away, it simply relocated to the RETBleed return thunk. Test 4 then confirms
the inverse — with SRSO mitigation active and all C-states available, the
system does not crash.
This rules out both `processor.max_cstate=1` and `spec_rstack_overflow=off`
as necessary parts of the workaround. The problem is specific to the RETBleed
return thunk.
Current state
$ uname -rv
7.0.0-28-generic #28-Ubuntu SMP PREEMPT_DYNAMIC Sun Jun 21 01:01:36 UTC 2026
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-7.0.0-28-generic root=UUID=... ro quiet splash
retbleed=off nmi_watchdog=1 crashkernel=...
$ cat /sys/devices/system/cpu/vulnerabilities/retbleed
Vulnerable
$ cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
Mitigation: Safe RET
SRSO mitigation is **enabled** and the system is stable — confirming SRSO was
never the
trigger.
Deep C-states are active and in heavy use
$ for s in /sys/devices/system/cpu/cpu0/cpuidle/state*/; do
echo "$(cat $s/name) latency=$(cat $s/latency)us usage=$(cat $s/usage)";
done
POLL latency=0us usage=48906
C1 latency=1us usage=28471209
C2 latency=350us usage=6195986
C3 latency=400us usage=50968085
driver: acpi_idle
governor: menu
C3 has been entered ~51 million times over this uptime. The original crash
signature was in the `cpuidle` → `sched_tick` path (`kick_ilb`), so if deep
C-state entry were part of the trigger, this workload would have reproduced it
many times over.
Independent confirmation: I monitor this machine's power draw through a smart
plug, and idle consumption dropped to 8-10W once the C-state restriction was
lifted. The deep C-states are genuinely being entered, not merely advertised.
Environment
| | |
|---|---|
| CPU | AMD Ryzen 7 4800U with Radeon Graphics (family 23, model 96, stepping
1 — Zen2) |
| Microcode | 0x860010d |
| System | Beelink SER, BIOS SER_V1.14_P3C6M43_B_Link (2022-03-24) |
| OS | Ubuntu 26.04 LTS |
| Kernel | 7.0.0-28-generic |
Note the BIOS dates from 2022 and no newer release is available from the
vendor for this board, so the AGESA/microcode level cannot be raised further on
my side.
Summary
The workaround for this hardware reduces to a single parameter,
`retbleed=off`. Neither disabling the SRSO mitigation nor restricting C-states
is required. Happy to run further tests or collect additional data if that
would help narrow down the return thunk interaction.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2160457
Title:
Kernel panic in srso_safe_ret / kick_ilb during sched_tick on AMD
Ryzen 7 4800U (Zen2)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2160457/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs