From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754857AbcJNMVv (ORCPT ); Fri, 14 Oct 2016 08:21:51 -0400 Received: from terminus.zytor.com ([198.137.202.10]:49160 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754396AbcJNMVl (ORCPT ); Fri, 14 Oct 2016 08:21:41 -0400 Date: Fri, 14 Oct 2016 05:19:32 -0700 From: tip-bot for Wanpeng Li Message-ID: Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org, kernellwp@gmail.com, tglx@linutronix.de, peterz@infradead.org, wanpeng.li@hotmail.com, efault@gmx.de Reply-To: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org, kernellwp@gmail.com, peterz@infradead.org, tglx@linutronix.de, efault@gmx.de, wanpeng.li@hotmail.com In-Reply-To: <1476409733-5133-1-git-send-email-wanpeng.li@hotmail.com> References: <1476409733-5133-1-git-send-email-wanpeng.li@hotmail.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/urgent] x86/smp: Add irq_enter/exit() in smp_reschedule_interrupt() Git-Commit-ID: 1ec6ec14a2943f6f611fc1d5fb2d4eaa85bd9d72 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: 1ec6ec14a2943f6f611fc1d5fb2d4eaa85bd9d72 Gitweb: http://git.kernel.org/tip/1ec6ec14a2943f6f611fc1d5fb2d4eaa85bd9d72 Author: Wanpeng Li AuthorDate: Fri, 14 Oct 2016 09:48:53 +0800 Committer: Thomas Gleixner CommitDate: Fri, 14 Oct 2016 14:14:20 +0200 x86/smp: Add irq_enter/exit() in smp_reschedule_interrupt() =============================== [ INFO: suspicious RCU usage. ] 4.8.0+ #24 Not tainted ------------------------------- ./arch/x86/include/asm/msr-trace.h:47 suspicious rcu_dereference_check() usage! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 1, debug_locks = 0 RCU used illegally from extended quiescent state! no locks held by swapper/1/0. [] do_trace_write_msr+0x135/0x140 [] native_write_msr+0x20/0x30 [] native_apic_msr_eoi_write+0x1d/0x30 [] smp_reschedule_interrupt+0x1d/0x30 [] reschedule_interrupt+0x96/0xa0 Reschedule interrupt may be called in cpu idle state. This causes lockdep check warning above. Add irq_enter/exit() in smp_reschedule_interrupt(), irq_enter() tells the RCU subsystems to end the extended quiescent state, so the following trace call in ack_APIC_irq() works correctly. Signed-off-by: Wanpeng Li Cc: Peter Zijlstra Cc: Mike Galbraith Link: http://lkml.kernel.org/r/1476409733-5133-1-git-send-email-wanpeng.li@hotmail.com Signed-off-by: Thomas Gleixner --- 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 658777c..ac2ee87 100644 --- a/arch/x86/kernel/smp.c +++ b/arch/x86/kernel/smp.c @@ -259,8 +259,10 @@ static inline void __smp_reschedule_interrupt(void) __visible void smp_reschedule_interrupt(struct pt_regs *regs) { + irq_enter(); ack_APIC_irq(); __smp_reschedule_interrupt(); + irq_exit(); /* * KVM uses this interrupt to force a cpu out of guest mode */