• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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