2 #define TRACE_SYSTEM hyperv
4 #if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_HYPERV_H
7 #include <linux/tracepoint.h>
9 #if IS_ENABLED(CONFIG_HYPERV)
11 TRACE_EVENT(hyperv_mmu_flush_tlb_others
,
12 TP_PROTO(const struct cpumask
*cpus
,
13 const struct flush_tlb_info
*info
),
16 __field(unsigned int, ncpus
)
17 __field(struct mm_struct
*, mm
)
18 __field(unsigned long, addr
)
19 __field(unsigned long, end
)
21 TP_fast_assign(__entry
->ncpus
= cpumask_weight(cpus
);
22 __entry
->mm
= info
->mm
;
23 __entry
->addr
= info
->start
;
24 __entry
->end
= info
->end
;
26 TP_printk("ncpus %d mm %p addr %lx, end %lx",
27 __entry
->ncpus
, __entry
->mm
,
28 __entry
->addr
, __entry
->end
)
31 TRACE_EVENT(hyperv_nested_flush_guest_mapping
,
32 TP_PROTO(u64 as
, int ret
),
39 TP_fast_assign(__entry
->as
= as
;
42 TP_printk("address space %llx ret %d", __entry
->as
, __entry
->ret
)
45 TRACE_EVENT(hyperv_nested_flush_guest_mapping_range
,
46 TP_PROTO(u64 as
, int ret
),
53 TP_fast_assign(__entry
->as
= as
;
56 TP_printk("address space %llx ret %d", __entry
->as
, __entry
->ret
)
59 TRACE_EVENT(hyperv_send_ipi_mask
,
60 TP_PROTO(const struct cpumask
*cpus
,
62 TP_ARGS(cpus
, vector
),
64 __field(unsigned int, ncpus
)
67 TP_fast_assign(__entry
->ncpus
= cpumask_weight(cpus
);
68 __entry
->vector
= vector
;
70 TP_printk("ncpus %d vector %x",
71 __entry
->ncpus
, __entry
->vector
)
74 TRACE_EVENT(hyperv_send_ipi_one
,
82 TP_fast_assign(__entry
->cpu
= cpu
;
83 __entry
->vector
= vector
;
85 TP_printk("cpu %d vector %x",
86 __entry
->cpu
, __entry
->vector
)
89 #endif /* CONFIG_HYPERV */
91 #undef TRACE_INCLUDE_PATH
92 #define TRACE_INCLUDE_PATH asm/trace/
93 #undef TRACE_INCLUDE_FILE
94 #define TRACE_INCLUDE_FILE hyperv
95 #endif /* _TRACE_HYPERV_H */
97 /* This part must be outside protection */
98 #include <trace/define_trace.h>