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 <[email protected]>
---
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
On 5/5/2022 10:43 PM, Dave Hansen wrote:
> On 5/5/22 03:48, Wyes Karny wrote:
>> 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().
>
> There are a couple of places in the existing documentation that talk
> about idle=nomwait. Could you please fix those up to make it clear that
> the option is no longer specific to intel_idle? We don't need a rewrite
> or anything, just some small tweaks in the language.
Sure, will do. Thanks!
On 5/5/22 03:48, Wyes Karny wrote:
> 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().
There are a couple of places in the existing documentation that talk
about idle=nomwait. Could you please fix those up to make it clear that
the option is no longer specific to intel_idle? We don't need a rewrite
or anything, just some small tweaks in the language.