Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */
2 : : #undef TRACE_SYSTEM
3 : : #define TRACE_SYSTEM ipi
4 : :
5 : : #if !defined(_TRACE_IPI_H) || defined(TRACE_HEADER_MULTI_READ)
6 : : #define _TRACE_IPI_H
7 : :
8 : : #include <linux/tracepoint.h>
9 : :
10 : : /**
11 : : * ipi_raise - called when a smp cross call is made
12 : : *
13 : : * @mask: mask of recipient CPUs for the IPI
14 : : * @reason: string identifying the IPI purpose
15 : : *
16 : : * It is necessary for @reason to be a static string declared with
17 : : * __tracepoint_string.
18 : : */
19 [ # # # # : 9492143 : TRACE_EVENT(ipi_raise,
# # # # #
# # # - +
# # # # #
# # # #
# ]
20 : :
21 : : TP_PROTO(const struct cpumask *mask, const char *reason),
22 : :
23 : : TP_ARGS(mask, reason),
24 : :
25 : : TP_STRUCT__entry(
26 : : __bitmask(target_cpus, nr_cpumask_bits)
27 : : __field(const char *, reason)
28 : : ),
29 : :
30 : : TP_fast_assign(
31 : : __assign_bitmask(target_cpus, cpumask_bits(mask), nr_cpumask_bits);
32 : : __entry->reason = reason;
33 : : ),
34 : :
35 : : TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason)
36 : : );
37 : :
38 [ # # # # : 207 : DECLARE_EVENT_CLASS(ipi_handler,
# # # # #
# # # ]
39 : :
40 : : TP_PROTO(const char *reason),
41 : :
42 : : TP_ARGS(reason),
43 : :
44 : : TP_STRUCT__entry(
45 : : __field(const char *, reason)
46 : : ),
47 : :
48 : : TP_fast_assign(
49 : : __entry->reason = reason;
50 : : ),
51 : :
52 : : TP_printk("(%s)", __entry->reason)
53 : : );
54 : :
55 : : /**
56 : : * ipi_entry - called immediately before the IPI handler
57 : : *
58 : : * @reason: string identifying the IPI purpose
59 : : *
60 : : * It is necessary for @reason to be a static string declared with
61 : : * __tracepoint_string, ideally the same as used with trace_ipi_raise
62 : : * for that IPI.
63 : : */
64 [ - + # # : 9494256 : DEFINE_EVENT(ipi_handler, ipi_entry,
# # # # #
# # # ]
65 : :
66 : : TP_PROTO(const char *reason),
67 : :
68 : : TP_ARGS(reason)
69 : : );
70 : :
71 : : /**
72 : : * ipi_exit - called immediately after the IPI handler returns
73 : : *
74 : : * @reason: string identifying the IPI purpose
75 : : *
76 : : * It is necessary for @reason to be a static string declared with
77 : : * __tracepoint_string, ideally the same as used with trace_ipi_raise for
78 : : * that IPI.
79 : : */
80 [ - + # # : 9489175 : DEFINE_EVENT(ipi_handler, ipi_exit,
# # # # #
# # # ]
81 : :
82 : : TP_PROTO(const char *reason),
83 : :
84 : : TP_ARGS(reason)
85 : : );
86 : :
87 : : #endif /* _TRACE_IPI_H */
88 : :
89 : : /* This part must be outside protection */
90 : : #include <trace/define_trace.h>
|