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