From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S943532AbdDTLV3 (ORCPT ); Thu, 20 Apr 2017 07:21:29 -0400 Received: from terminus.zytor.com ([65.50.211.136]:48935 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S942327AbdDTLVZ (ORCPT ); Thu, 20 Apr 2017 07:21:25 -0400 Date: Thu, 20 Apr 2017 04:16:49 -0700 From: tip-bot for Tiantian Feng Message-ID: Cc: linux-kernel@vger.kernel.org, fengtiantian@huawei.com, hpa@zytor.com, tglx@linutronix.de, pbonzini@redhat.com, qiuxishi@huawei.com, peterz@infradead.org, mingo@kernel.org, torvalds@linux-foundation.org Reply-To: tglx@linutronix.de, pbonzini@redhat.com, torvalds@linux-foundation.org, mingo@kernel.org, peterz@infradead.org, qiuxishi@huawei.com, fengtiantian@huawei.com, linux-kernel@vger.kernel.org, hpa@zytor.com In-Reply-To: <20170419161839.30550-1-pbonzini@redhat.com> References: <20170419161839.30550-1-pbonzini@redhat.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/boot] x86/reboot: Turn off KVM when halting a CPU Git-Commit-ID: fba4f472b33aa81ca1836f57d005455261e9126f X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: fba4f472b33aa81ca1836f57d005455261e9126f Gitweb: http://git.kernel.org/tip/fba4f472b33aa81ca1836f57d005455261e9126f Author: Tiantian Feng AuthorDate: Wed, 19 Apr 2017 18:18:39 +0200 Committer: Ingo Molnar CommitDate: Thu, 20 Apr 2017 10:06:57 +0200 x86/reboot: Turn off KVM when halting a CPU A CPU in VMX root mode will ignore INIT signals and will fail to bring up the APs after reboot. Therefore, on a panic we disable VMX on all CPUs before rebooting or triggering kdump. Do this when halting the machine as well, in case a firmware-level reboot does not perform a cold reset for all processors. Without doing this, rebooting the host may hang. Signed-off-by: Tiantian Feng Signed-off-by: Xishi Qiu [ Rewritten commit message. ] Signed-off-by: Paolo Bonzini Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: kvm@vger.kernel.org Link: http://lkml.kernel.org/r/20170419161839.30550-1-pbonzini@redhat.com Signed-off-by: Ingo Molnar --- arch/x86/kernel/smp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c index d3c66a1..9d7223c 100644 --- a/arch/x86/kernel/smp.c +++ b/arch/x86/kernel/smp.c @@ -33,6 +33,7 @@ #include #include #include +#include /* * Some notes on x86 processor bugs affecting SMP operation: @@ -162,6 +163,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 +176,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(); }