Comment 549 for bug 1690085

Revision history for this message
In , bluescarni (bluescarni-linux-kernel-bugs) wrote :

My understanding is that idle=nomwait disables the use of the MWAIT instruction in the kernel implementation of the CPU idle state.

I also *think* that, under the hood, disabling C6 and the "Typical Power idle" option also have a similar (or perhaps the same?) effect of reducing the use of MWAIT. E.g., since I started enabling the "Typical Power idle" option in my BIOS, at every boot I have the following message showing up in the kernel logs:

[Firmware Bug]: ACPI MWAIT C-state 0x0 not supported by HW (0x0)

However, because the MWAIT instruction is part of SSE3 [1], it might end up being executed by any software which was compiled with support for SSE3. So I believe that disabling MWAIT for idle states greatly reduces the risk of getting these MWAIT hangs (simply because the instruction will end up being executed much less), but it will not completely eliminate them. Thus, it seems like the only bulletproof solution is either to upgrade to Ryzen+/Ryzen2, or to disable hypterthreading.

[1] https://en.wikipedia.org/wiki/SSE3