From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: x86 Maintainers <x86@kernel.org>, Linux PM <linux-pm@vger.kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>, Len Brown <lenb@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>,
"Gautham R. Shenoy" <gautham.shenoy@amd.com>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Linux ACPI <linux-acpi@vger.kernel.org>
Subject: [PATCH v1 0/5] x86/smp: Restore the elimination of mwait_play_dead_cpuid_hint()
Date: Thu, 05 Jun 2025 17:03:01 +0200 [thread overview]
Message-ID: <2226957.irdbgypaU6@rjwysocki.net> (raw)
Hi Everyone,
The purpose of this series is to reapply the code changes from commit
96040f7273e2 ("x86/smp: Eliminate mwait_play_dead_cpuid_hint()") that
has been reverted because of an issue introduced by it. This takes
place in the last patch ([5/5]) and the previous patches make
preparatory changes needed to avoid breaking systems in the field
once again.
The problem with commit 96040f7273e2 was that on SMT-capable systems
booting with "nosmt" in the kernel command line, the "dead" SMT siblings
were stuck in idle state C1 after initialization because they were
initialized before a proper cpuidle driver for the given platform got
ready. That prevented the whole processor from entering deep package
C-states later on and pretty much ruined idle power (including power
in suspend-to-idle).
To prevent that from happening, patches [1-4/5] use the approach that
has been used for some time to address an analogous issue during resume
from hibernation, in which case the "dead" SMT siblings are also in C1
when the image kernel gets control back and they need to be put into
sufficiently deep C-states. Namely, they are taken online and then
back offline immediately to make that happen.
The general idea is to take the "dead" SMT siblings online and then
back offline immediately when a proper cpuidle driver gets ready, but
some changes are made to avoid doing that twice in a row in vain.
For this purpose, the intel_idle driver initialization is pushed
to an earlier initialization phase (patch [1/5]) and the ACPI
processor driver only "rescans" the "dead" SMT siblings when
the ACPI idle driver is the current cpuidle driver. It also
avoids doing this on architectures other than x86 (patch [4/5]).
Thanks!
next reply other threads:[~2025-06-05 15:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-05 15:03 Rafael J. Wysocki [this message]
2025-06-05 15:04 ` [PATCH v1 1/5] intel_idle: Use subsys_initcall_sync() for initialization Rafael J. Wysocki
2025-06-05 15:05 ` [PATCH v1 2/5] x86/smp: PM/hibernate: Split arch_resume_nosmt() Rafael J. Wysocki
2025-06-05 15:06 ` [PATCH v1 3/5] intel_idle: Rescan "dead" SMT siblings during initialization Rafael J. Wysocki
2025-06-05 15:07 ` [PATCH v1 4/5] ACPI: processor: " Rafael J. Wysocki
2025-06-05 16:14 ` Dave Hansen
2025-06-05 18:20 ` Rafael J. Wysocki
2025-06-05 15:09 ` [PATCH v1 5/5] Reapply "x86/smp: Eliminate mwait_play_dead_cpuid_hint()" Rafael J. Wysocki
2025-06-06 10:51 ` [PATCH v1 0/5] x86/smp: Restore the elimination of mwait_play_dead_cpuid_hint() Artem Bityutskiy
2025-06-06 10:53 ` Rafael J. Wysocki
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=2226957.irdbgypaU6@rjwysocki.net \
--to=rjw@rjwysocki.net \
--cc=artem.bityutskiy@linux.intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=gautham.shenoy@amd.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=x86@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