[PATCH v2 1/3] x86: Use HALT in default_idle when idle=nomwait cmdline arg is passed

From: Wyes Karny
Date: Thu May 05 2022 - 06:49:53 EST


When kernel is booted with idle=nomwait avoid selecting MWAIT
as the default idle state.

If the user boots the kernel with idle=nomwait, it is a clear
indication that they do not prefer the use of mwait as the default
idle state. However, the current code does not take this into
consideration while selecting the default idle state on x86.

This patch fixes it by checking for the idle=nomwait boot option in
prefer_mwait_c1_over_halt().

Signed-off-by: Wyes Karny <wyes.karny@xxxxxxx>
---
Maintainers,
Should this be marked to stable ?

arch/x86/kernel/process.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index b370767f5b19..49b915d1b7b4 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -824,6 +824,10 @@ static void amd_e400_idle(void)
*/
static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c)
{
+ /* User has disallowed the use of MWAIT. Fallback to HALT */
+ if (boot_option_idle_override == IDLE_NOMWAIT)
+ return 0;
+
if (c->x86_vendor != X86_VENDOR_INTEL)
return 0;

--
2.27.0