]> xenbits.xensource.com Git - xen.git/commit
x86/intel: workaround several MONITOR/MWAIT errata
authorRoger Pau Monne <roger.pau@citrix.com>
Thu, 17 Apr 2025 10:35:28 +0000 (12:35 +0200)
committerRoger Pau Monne <roger.pau@citrix.com>
Wed, 23 Apr 2025 14:12:25 +0000 (16:12 +0200)
commit4aae4452efeee3d3bba092b875e37d1e7c8f6db9
treef26a434183fae9b7c756a5602926d33a20f16030
parentfcc44f8548b89a649003c4348702e04e0c20b205
x86/intel: workaround several MONITOR/MWAIT errata

There are several errata on Intel regarding the usage of the MONITOR/MWAIT
instructions, all having in common that stores to the monitored region
might not wake up the CPU.

Fix them by forcing the sending of an IPI for the affected models.

The Ice Lake issue has been reproduced internally on XenServer hardware,
and the fix does seem to prevent it.  The symptom was APs getting stuck in
the idle loop immediately after bring up, which in turn prevented the BSP
from making progress.  This would happen before the watchdog was
initialized, and hence the whole system would get stuck.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/acpi/cpu_idle.c
xen/arch/x86/cpu/intel.c
xen/arch/x86/include/asm/mwait.h