From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756199AbdCGVR7 (ORCPT ); Tue, 7 Mar 2017 16:17:59 -0500 Received: from relay1.sgi.com ([192.48.180.66]:53817 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755807AbdCGVR6 (ORCPT ); Tue, 7 Mar 2017 16:17:58 -0500 Message-Id: <20170307210841.730959611@asylum.americas.sgi.com> References: <20170307210841.541407747@asylum.americas.sgi.com> User-Agent: quilt/0.46-1 Date: Tue, 07 Mar 2017 15:08:42 -0600 From: Mike Travis To: Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Don Zickus , Peter Zijlstra Cc: Dimitri Sivanich , Frank Ramsay , Russ Anderson , Tony Ernst , x86@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/1] x86/platform: Remove warning message for duplicate NMI handlers Content-Disposition: inline; filename=x86_remove_nmi_warning Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Remove the WARNING message associated with multiple NMI handlers as there are at least two that are legitimate. These are the KGDB and the UV handlers and both want to be called if the NMI has not been claimed by any other NMI handler. Use of the UNKNOWN NMI call chain dramatically lowers the NMI call rate when high frequency NMI tools are in use, notably the perf tools. It is required on systems that cannot sustain a high NMI call rate without adversely affecting the system operation. Signed-off-by: Mike Travis Reviewed-by: Dimitri Sivanich --- arch/x86/kernel/nmi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- linux.orig/arch/x86/kernel/nmi.c +++ linux/arch/x86/kernel/nmi.c @@ -166,11 +166,9 @@ int __register_nmi_handler(unsigned int spin_lock_irqsave(&desc->lock, flags); /* - * most handlers of type NMI_UNKNOWN never return because - * they just assume the NMI is theirs. Just a sanity check - * to manage expectations + * Indicate if there are multiple registrations on the + * internal NMI handler call chains (SERR and IO_CHECK). */ - WARN_ON_ONCE(type == NMI_UNKNOWN && !list_empty(&desc->head)); WARN_ON_ONCE(type == NMI_SERR && !list_empty(&desc->head)); WARN_ON_ONCE(type == NMI_IO_CHECK && !list_empty(&desc->head)); --