1/* SPDX-License-Identifier: GPL-2.0 */
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM csd
4
5#if !defined(_TRACE_CSD_H) || defined(TRACE_HEADER_MULTI_READ)
6#define _TRACE_CSD_H
7
8#include <linux/tracepoint.h>
9
10TRACE_EVENT(csd_queue_cpu,
11
12 TP_PROTO(const unsigned int cpu,
13 unsigned long callsite,
14 smp_call_func_t func,
15 call_single_data_t *csd),
16
17 TP_ARGS(cpu, callsite, func, csd),
18
19 TP_STRUCT__entry(
20 __field(unsigned int, cpu)
21 __field(void *, callsite)
22 __field(void *, func)
23 __field(void *, csd)
24 ),
25
26 TP_fast_assign(
27 __entry->cpu = cpu;
28 __entry->callsite = (void *)callsite;
29 __entry->func = func;
30 __entry->csd = csd;
31 ),
32
33 TP_printk("cpu=%u callsite=%pS func=%ps csd=%p",
34 __entry->cpu, __entry->callsite, __entry->func, __entry->csd)
35 );
36
37/*
38 * Tracepoints for a function which is called as an effect of smp_call_function.*
39 */
40DECLARE_EVENT_CLASS(csd_function,
41
42 TP_PROTO(smp_call_func_t func, call_single_data_t *csd),
43
44 TP_ARGS(func, csd),
45
46 TP_STRUCT__entry(
47 __field(void *, func)
48 __field(void *, csd)
49 ),
50
51 TP_fast_assign(
52 __entry->func = func;
53 __entry->csd = csd;
54 ),
55
56 TP_printk("func=%ps, csd=%p", __entry->func, __entry->csd)
57);
58
59DEFINE_EVENT(csd_function, csd_function_entry,
60 TP_PROTO(smp_call_func_t func, call_single_data_t *csd),
61 TP_ARGS(func, csd)
62);
63
64DEFINE_EVENT(csd_function, csd_function_exit,
65 TP_PROTO(smp_call_func_t func, call_single_data_t *csd),
66 TP_ARGS(func, csd)
67);
68
69#endif /* _TRACE_CSD_H */
70
71/* This part must be outside protection */
72#include <trace/define_trace.h>
73

source code of linux/include/trace/events/csd.h