Re: [PATCH] x86: call smp vmxoff in smp stop
From: Xishi Qiu
Date:  Fri Jan 13 2017 - 20:42:51 EST
On 2017/1/14 9:36, Xishi Qiu wrote:
> From: Tiantian Feng <fengtiantian@xxxxxxxxxx>
> 
> We need to disable VMX on all CPUs before stop cpu when OS panic, otherwisewe
> risk hanging up the machine, because the CPU ignore INIT signals when VMX is enabled.
> In kernel mainline this issue existence.
> 
> Signed-off-by: Tiantian Feng <fengtiantian@xxxxxxxxxx>
> ---
Sorry, I missed something, please ignore this one, thanks.
>  arch/x86/kernel/smp.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
> index 68f8cc2..6b64c6b 100644
> --- a/arch/x86/kernel/smp.c
> +++ b/arch/x86/kernel/smp.c
> @@ -162,6 +162,7 @@ static int smp_stop_nmi_callback(unsigned int val, struct pt_regs *regs)
>  	if (raw_smp_processor_id() == atomic_read(&stopping_cpu))
>  		return NMI_HANDLED;
>  
> +	cpu_emergency_vmxoff();
>  	stop_this_cpu(NULL);
>  
>  	return NMI_HANDLED;
> @@ -174,6 +175,7 @@ static int smp_stop_nmi_callback(unsigned int val, struct pt_regs *regs)
>  asmlinkage __visible void smp_reboot_interrupt(void)
>  {
>  	ipi_entering_ack_irq();
> +	cpu_emergency_vmxoff();
>  	stop_this_cpu(NULL);
>  	irq_exit();
>  }