From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752676AbdH2LLs (ORCPT ); Tue, 29 Aug 2017 07:11:48 -0400 Received: from terminus.zytor.com ([65.50.211.136]:51579 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751926AbdH2LLo (ORCPT ); Tue, 29 Aug 2017 07:11:44 -0400 Date: Tue, 29 Aug 2017 04:07:02 -0700 From: tip-bot for Thomas Gleixner Message-ID: Cc: mingo@kernel.org, bp@alien8.de, linux-kernel@vger.kernel.org, luto@kernel.org, tglx@linutronix.de, rostedt@goodmis.org, torvalds@linux-foundation.org, peterz@infradead.org, hpa@zytor.com Reply-To: mingo@kernel.org, bp@alien8.de, linux-kernel@vger.kernel.org, luto@kernel.org, tglx@linutronix.de, torvalds@linux-foundation.org, rostedt@goodmis.org, hpa@zytor.com, peterz@infradead.org In-Reply-To: <20170828064956.751247330@linutronix.de> References: <20170828064956.751247330@linutronix.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/apic] x86/apic: Remove the duplicated tracing version of local_timer_interrupt() Git-Commit-ID: 302a98f896bbd2feb1393d98e8b9febeb101db6e 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: 302a98f896bbd2feb1393d98e8b9febeb101db6e Gitweb: http://git.kernel.org/tip/302a98f896bbd2feb1393d98e8b9febeb101db6e Author: Thomas Gleixner AuthorDate: Mon, 28 Aug 2017 08:47:23 +0200 Committer: Ingo Molnar CommitDate: Tue, 29 Aug 2017 11:42:24 +0200 x86/apic: Remove the duplicated tracing version of local_timer_interrupt() The two NOP5s are noise in the rest of the work which is done by the timer interrupt and modern CPUs are pretty good in optimizing NOPs anyway. Get rid of the interrupt handler duplication and move the tracepoints into the regular handler. Signed-off-by: Thomas Gleixner Reviewed-by: Steven Rostedt (VMware) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20170828064956.751247330@linutronix.de Signed-off-by: Ingo Molnar --- arch/x86/include/asm/hw_irq.h | 2 +- arch/x86/kernel/apic/apic.c | 19 ------------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h index d6dbafb..44137bb 100644 --- a/arch/x86/include/asm/hw_irq.h +++ b/arch/x86/include/asm/hw_irq.h @@ -48,7 +48,6 @@ extern asmlinkage void call_function_single_interrupt(void); #ifdef CONFIG_TRACING /* Interrupt handlers registered during init_IRQ */ -extern void trace_apic_timer_interrupt(void); extern void trace_x86_platform_ipi(void); extern void trace_error_interrupt(void); extern void trace_irq_work_interrupt(void); @@ -59,6 +58,7 @@ extern void trace_threshold_interrupt(void); extern void trace_deferred_error_interrupt(void); extern void trace_call_function_interrupt(void); extern void trace_call_function_single_interrupt(void); +#define trace_apic_timer_interrupt apic_timer_interrupt #define trace_irq_move_cleanup_interrupt irq_move_cleanup_interrupt #define trace_reboot_interrupt reboot_interrupt #define trace_kvm_posted_intr_ipi kvm_posted_intr_ipi diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 8996ef1..7a57b54 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -1038,25 +1038,6 @@ __visible void __irq_entry smp_apic_timer_interrupt(struct pt_regs *regs) * interrupt lock, which is the WrongThing (tm) to do. */ entering_ack_irq(); - local_apic_timer_interrupt(); - exiting_irq(); - - set_irq_regs(old_regs); -} - -__visible void __irq_entry smp_trace_apic_timer_interrupt(struct pt_regs *regs) -{ - struct pt_regs *old_regs = set_irq_regs(regs); - - /* - * NOTE! We'd better ACK the irq immediately, - * because timer handling can be slow. - * - * update_process_times() expects us to have done irq_enter(). - * Besides, if we don't timer interrupts ignore the global - * interrupt lock, which is the WrongThing (tm) to do. - */ - entering_ack_irq(); trace_local_timer_entry(LOCAL_TIMER_VECTOR); local_apic_timer_interrupt(); trace_local_timer_exit(LOCAL_TIMER_VECTOR);