From: Mario Limonciello <mario.limonciello@amd.com>
To: Fourhundred Thecat <400thecat@ik.me>,
platform-driver-x86@vger.kernel.org
Cc: linux-pm@vger.kernel.org, Shyam-sundar.S-k@amd.com,
hansg@kernel.org, ilpo.jarvinen@linux.intel.com,
rafael@kernel.org
Subject: Re: [BUG] s2idle: unrecoverable sleep on ThinkPad P16s Gen 4 AMD, (Strix Point) when more than 16 logical CPUs are online
Date: Fri, 25 Sep 2026 08:30:45 -0500 [thread overview]
Message-ID: <b2e13400-d1b7-4a9f-b7bc-a2d1dc7a4912@amd.com> (raw)
In-Reply-To: <3a080b50-6396-bf8f-2e70-011b85c15fe2@ik.me>
On 9/25/26 02:05, Fourhundred Thecat wrote:
> resolved by resetting BIOS to factory defaults
>
> after that, I tried painstakingly to enable/disable one by one
>
> The cause is two BIOS settings, and the reason it took so long to find
> is that they are independently sufficient:
>
> AmdVt (AMD virtualization) Disable -> breaks s2idle wake
> PlutonSecurityProcessor Disable -> breaks s2idle wake
>
> Either one alone is enough. Both must be enabled for the machine to
> resume. The full matrix, all with the IOMMU enabled and 24 CPUs online:
>
> AmdVt Pluton result
> Enable Disable no wake
> Disable Enable no wake
> Disable Disable no wake
> Enable Enable wakes normally
>
> I had both disabled.
> It also explains the confusing bisect: when I tested AmdVt=Enable with
> everything else at my settings it still hung, and when I tested
> Pluton=Enable with everything else at my settings it still hung, so I
> eliminated both. Each test only showed the setting was not necessary;
> neither showed it was not sufficient. With two independent triggers
> those observations are both true at once and single-setting elimination
> gives nothing.
>
> So amd_iommu=off and nr_cpus=16 were both masking this rather than
> telling us anything about the kernel.
Well this is a great outcome. Would you mind opening a pull request to
amd-debug-tools and adding a case to this to test for this issue? That
would help anyone else that encounters this in the future and save us
effort drilling down again.
You should be able to add a new check that verified the value of these
BIOS settings using the think-lmi driver sysfs interface.
My thought on the logic would be something like this:
1) Check whether think-lmi directory exists, skip the check if it doesn't.
2) Check whether both of those attributes exist. If they don't, skip
the check.
3) Check the values of both of those attributes. If there is a failure
report it. If it's a pass report it.
It can generally apply to all Lenovo systems that offer these settings
then (It's more likely a "generic" BIOS bug).
>
> this is clearly a Lenovo BIOS bug. should this be reported to them ?
Before you report this to them, can you diff some acpidumps from the two
changes that break things?
I would have "expected" that turning off this AmdVt BIOS option stopped
the IVRS table from being created, but that seems not to be the case.
I just wonder if we should be keying off anything else in Linux for this
case to avoid the issue.
next prev parent reply other threads:[~2026-09-25 13:30 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-22 13:43 [BUG] s2idle: unrecoverable sleep on ThinkPad P16s Gen 4 AMD, (Strix Point) when more than 16 logical CPUs are online Fourhundred Thecat
2026-09-22 14:47 ` Mario Limonciello
2026-09-23 5:58 ` Fourhundred Thecat
2026-09-23 12:41 ` Mario Limonciello
2026-09-23 13:51 ` Fourhundred Thecat
2026-09-23 14:36 ` Mario Limonciello
2026-09-23 16:12 ` Fourhundred Thecat
2026-09-23 16:15 ` Mario Limonciello
2026-09-23 16:20 ` Mario Limonciello
2026-09-23 16:37 ` Fourhundred Thecat
2026-09-23 16:41 ` Mario Limonciello
2026-09-23 16:54 ` Fourhundred Thecat
2026-09-23 16:59 ` Mario Limonciello
2026-09-23 18:02 ` Fourhundred Thecat
2026-09-23 18:11 ` Mario Limonciello
2026-09-23 18:14 ` Fourhundred Thecat
2026-09-23 18:25 ` Mario Limonciello
2026-09-23 18:39 ` Fourhundred Thecat
2026-09-23 18:57 ` Mario Limonciello
2026-09-23 19:13 ` Fourhundred Thecat
2026-09-23 19:20 ` Mario Limonciello
2026-09-23 20:26 ` Fourhundred Thecat
2026-09-23 20:48 ` Fourhundred Thecat
2026-09-23 21:10 ` Mario Limonciello
2026-09-24 5:36 ` Fourhundred Thecat
2026-09-25 7:05 ` Fourhundred Thecat
2026-09-25 13:30 ` Mario Limonciello [this message]
2026-09-26 4:13 ` Fourhundred Thecat
2026-09-26 18:29 ` Mario Limonciello
2026-09-29 5:43 ` Fourhundred Thecat
2026-09-29 5:57 ` Fourhundred Thecat
2026-09-29 13:37 ` Mario Limonciello
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b2e13400-d1b7-4a9f-b7bc-a2d1dc7a4912@amd.com \
--to=mario.limonciello@amd.com \
--cc=400thecat@ik.me \
--cc=Shyam-sundar.S-k@amd.com \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-pm@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rafael@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox