x86/tracing: Disentangle pagefault and resched IPI tracing key

The pagefault and the resched IPI handler are the only ones where it is
worth to optimize the code further in case tracepoints are disabled. But it
makes no sense to have a single static key for both.

Seperate the static keys so the facilities are handled seperately.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/20170828064957.536699116@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Thomas Gleixner
2017-08-28 08:47:33 +02:00
committed by Ingo Molnar
parent 6f54f3ec6c
commit 809547472e
6 changed files with 59 additions and 22 deletions

View File

@@ -10,15 +10,32 @@
#include <asm/hw_irq.h>
#include <asm/desc.h>
DEFINE_STATIC_KEY_FALSE(trace_irqvectors_key);
DEFINE_STATIC_KEY_FALSE(trace_pagefault_key);
int trace_irq_vector_regfunc(void)
int trace_pagefault_reg(void)
{
static_branch_inc(&trace_irqvectors_key);
static_branch_inc(&trace_pagefault_key);
return 0;
}
void trace_irq_vector_unregfunc(void)
void trace_pagefault_unreg(void)
{
static_branch_dec(&trace_irqvectors_key);
static_branch_dec(&trace_pagefault_key);
}
#ifdef CONFIG_SMP
DEFINE_STATIC_KEY_FALSE(trace_resched_ipi_key);
int trace_resched_ipi_reg(void)
{
static_branch_inc(&trace_resched_ipi_key);
return 0;
}
void trace_resched_ipi_unreg(void)
{
static_branch_dec(&trace_resched_ipi_key);
}
#endif