xref: /linux/arch/x86/kernel/tracepoint.c (revision 37744feebc086908fd89760650f458ab19071750)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Code for supporting irq vector tracepoints.
4  *
5  * Copyright (C) 2013 Seiji Aguchi <seiji.aguchi@hds.com>
6  *
7  */
8 #include <linux/jump_label.h>
9 #include <linux/atomic.h>
10 
11 #include <asm/hw_irq.h>
12 #include <asm/desc.h>
13 #include <asm/trace/exceptions.h>
14 #include <asm/trace/irq_vectors.h>
15 
16 DEFINE_STATIC_KEY_FALSE(trace_pagefault_key);
17 
18 int trace_pagefault_reg(void)
19 {
20 	static_branch_inc(&trace_pagefault_key);
21 	return 0;
22 }
23 
24 void trace_pagefault_unreg(void)
25 {
26 	static_branch_dec(&trace_pagefault_key);
27 }
28 
29 #ifdef CONFIG_SMP
30 
31 DEFINE_STATIC_KEY_FALSE(trace_resched_ipi_key);
32 
33 int trace_resched_ipi_reg(void)
34 {
35 	static_branch_inc(&trace_resched_ipi_key);
36 	return 0;
37 }
38 
39 void trace_resched_ipi_unreg(void)
40 {
41 	static_branch_dec(&trace_resched_ipi_key);
42 }
43 
44 #endif
45