x86: possibly bring up all CPUs even if not all are supposed to be used
authorJan Beulich <jbeulich@suse.com>
Mon, 30 Jul 2018 09:25:38 +0000 (11:25 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 30 Jul 2018 09:25:38 +0000 (11:25 +0200)
commit75313e478e894176056e1fc5852136b344a0dc70
tree5599bc04ea056933e231287f9f023aacf38f48d4
parent5908b4866b682d9189c36eddf7c898fd95b27ec1
x86: possibly bring up all CPUs even if not all are supposed to be used

Reportedly Intel CPUs which can't broadcast #MC to all targeted
cores/threads because some have CR4.MCE clear will shut down. Therefore
we want to keep CR4.MCE enabled when offlining a CPU, and we need to
bring up all CPUs in order to be able to set CR4.MCE in the first place.

The use of clear_in_cr4() in cpu_mcheck_disable() was ill advised
anyway, and to avoid future similar mistakes I'm removing clear_in_cr4()
altogether right here.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
master commit: 8797d20a6ec2dd75195585a107ce345c51c0a59a
master date: 2018-07-19 13:43:33 +0100
xen/arch/x86/cpu/common.c
xen/arch/x86/cpu/mcheck/mce_intel.c
xen/arch/x86/mpparse.c
xen/arch/x86/setup.c
xen/include/asm-x86/processor.h