diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 752d5141bb..9ec0fb0bed 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -248,6 +248,20 @@ config X2APIC_MIXED endchoice +config MCE_NONFATAL + bool "Check for non-fatal MCEs" if EXPERT + default y + help + Check for non-fatal MCE errors. + + When this option is on (default), Xen regularly checks for + non-fatal MCEs potentially occurring on all physical CPUs. The + checking is done via timers and IPI interrupts, which is + acceptable in most configurations, but not for real-time. + + Turn this option off if you plan on deploying real-time workloads + on Xen. + config GUEST bool diff --git a/xen/arch/x86/cpu/mcheck/Makefile b/xen/arch/x86/cpu/mcheck/Makefile index e6cb4dd503..c70b441888 100644 --- a/xen/arch/x86/cpu/mcheck/Makefile +++ b/xen/arch/x86/cpu/mcheck/Makefile @@ -1,12 +1,12 @@ -obj-$(CONFIG_AMD) += amd_nonfatal.o +obj-$(filter $(CONFIG_AMD),$(CONFIG_MCE_NONFATAL)) += amd_nonfatal.o obj-$(CONFIG_AMD) += mce_amd.o obj-y += mcaction.o obj-y += barrier.o -obj-$(CONFIG_INTEL) += intel-nonfatal.o +obj-$(filter $(CONFIG_INTEL),$(CONFIG_MCE_NONFATAL)) += intel-nonfatal.o obj-y += mctelem.o obj-y += mce.o obj-y += mce-apei.o obj-$(CONFIG_INTEL) += mce_intel.o -obj-y += non-fatal.o +obj-$(CONFIG_MCE_NONFATAL) += non-fatal.o obj-y += util.o obj-y += vmce.o