1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #if !defined(_TRACE_CPUHP_H) || defined(TRACE_HEADER_MULTI_READ) 3 #define _TRACE_CPUHP_H 4 5 #undef TRACE_SYSTEM 6 #define TRACE_SYSTEM cpuhp 7 8 #include <linux/tracepoint.h> 9 10 TRACE_EVENT(cpuhp_enter, 11 12 TP_PROTO(unsigned int cpu, int target, int idx, int (*fun)(unsigned int)), 13 14 TP_ARGS(cpu, target, idx, fun), 15 16 TP_STRUCT__entry(__field(unsigned int, cpu) __field(int, target) __field(int, idx) __field(void *, fun)), 17 18 TP_fast_assign(__entry->cpu = cpu; __entry->target = target; __entry->idx = idx; __entry->fun = fun;), 19 20 TP_printk("cpu: %04u target: %3d step: %3d (%ps)", __entry->cpu, __entry->target, __entry->idx, 21 __entry->fun)); 22 23 TRACE_EVENT(cpuhp_multi_enter, 24 25 TP_PROTO(unsigned int cpu, int target, int idx, int (*fun)(unsigned int, struct hlist_node *), 26 struct hlist_node *node), 27 28 TP_ARGS(cpu, target, idx, fun, node), 29 30 TP_STRUCT__entry(__field(unsigned int, cpu) __field(int, target) __field(int, idx) __field(void *, fun)), 31 32 TP_fast_assign(__entry->cpu = cpu; __entry->target = target; __entry->idx = idx; __entry->fun = fun;), 33 34 TP_printk("cpu: %04u target: %3d step: %3d (%ps)", __entry->cpu, __entry->target, __entry->idx, 35 __entry->fun)); 36 37 TRACE_EVENT(cpuhp_exit, 38 39 TP_PROTO(unsigned int cpu, int state, int idx, int ret), 40 41 TP_ARGS(cpu, state, idx, ret), 42 43 TP_STRUCT__entry(__field(unsigned int, cpu) __field(int, state) __field(int, idx) __field(int, ret)), 44 45 TP_fast_assign(__entry->cpu = cpu; __entry->state = state; __entry->idx = idx; __entry->ret = ret;), 46 47 TP_printk(" cpu: %04u state: %3d step: %3d ret: %d", __entry->cpu, __entry->state, __entry->idx, 48 __entry->ret)); 49 50 TRACE_EVENT(cpuhp_pause, TP_PROTO(struct cpumask *cpus, u64 start_time, unsigned char pause), 51 52 TP_ARGS(cpus, start_time, pause), 53 54 TP_STRUCT__entry(__field(unsigned int, cpus) __field(unsigned int, active_cpus) __field(unsigned int, time) 55 __field(unsigned char, pause)), 56 57 TP_fast_assign(__entry->cpus = cpumask_bits(cpus)[0]; 58 __entry->active_cpus = cpumask_bits(cpu_active_mask)[0]; 59 __entry->time = div64_u64(sched_clock() - start_time, 1000); __entry->pause = pause;), 60 61 TP_printk("req_cpus=0x%x act_cpus=0x%x time=%u us paused=%d", __entry->cpus, __entry->active_cpus, 62 __entry->time, __entry->pause)); 63 #endif 64 65 /* This part must be outside protection */ 66 #include <trace/define_trace.h> 67