From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756567AbbJINO6 (ORCPT ); Fri, 9 Oct 2015 09:14:58 -0400 Received: from terminus.zytor.com ([198.137.202.10]:46194 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754300AbbJINOz (ORCPT ); Fri, 9 Oct 2015 09:14:55 -0400 Date: Fri, 9 Oct 2015 06:14:05 -0700 From: tip-bot for Andy Lutomirski Message-ID: Cc: bp@alien8.de, tglx@linutronix.de, brgerst@gmail.com, peterz@infradead.org, luto@amacapital.net, hpa@zytor.com, dvlasenk@redhat.com, torvalds@linux-foundation.org, luto@kernel.org, linux-kernel@vger.kernel.org, mingo@kernel.org Reply-To: mingo@kernel.org, torvalds@linux-foundation.org, luto@kernel.org, linux-kernel@vger.kernel.org, dvlasenk@redhat.com, hpa@zytor.com, luto@amacapital.net, peterz@infradead.org, brgerst@gmail.com, bp@alien8.de, tglx@linutronix.de In-Reply-To: References: To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/asm] x86/entry: Make irqs_disabled checks in exit code depend on lockdep Git-Commit-ID: 460d12453e1afe20416ce9536cfecb31d17a9abd 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: 460d12453e1afe20416ce9536cfecb31d17a9abd Gitweb: http://git.kernel.org/tip/460d12453e1afe20416ce9536cfecb31d17a9abd Author: Andy Lutomirski AuthorDate: Mon, 5 Oct 2015 17:48:18 -0700 Committer: Ingo Molnar CommitDate: Fri, 9 Oct 2015 09:41:11 +0200 x86/entry: Make irqs_disabled checks in exit code depend on lockdep These checks are quite slow. Disable them in non-lockdep kernels to reduce the performance hit. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/eccff2a154ae6fb50f40228901003a6e9c24f3d0.1444091585.git.luto@kernel.org Signed-off-by: Ingo Molnar --- arch/x86/entry/common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 0d1c842..03aacd1 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -219,7 +219,7 @@ static struct thread_info *pt_regs_to_thread_info(struct pt_regs *regs) /* Called with IRQs disabled. */ __visible void prepare_exit_to_usermode(struct pt_regs *regs) { - if (WARN_ON(!irqs_disabled())) + if (IS_ENABLED(CONFIG_PROVE_LOCKING) && WARN_ON(!irqs_disabled())) local_irq_disable(); lockdep_sys_exit(); @@ -281,8 +281,8 @@ __visible void syscall_return_slowpath(struct pt_regs *regs) CT_WARN_ON(ct_state() != CONTEXT_KERNEL); - if (WARN(irqs_disabled(), "syscall %ld left IRQs disabled", - regs->orig_ax)) + if (IS_ENABLED(CONFIG_PROVE_LOCKING) && + WARN(irqs_disabled(), "syscall %ld left IRQs disabled", regs->orig_ax)) local_irq_enable(); /*