1 #undef TRACE_SYSTEM 2 #define TRACE_SYSTEM hyperv 3 4 #if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ) 5 #define _TRACE_HYPERV_H 6 7 #include <linux/tracepoint.h> 8 9 #if IS_ENABLED(CONFIG_HYPERV) 10 11 TRACE_EVENT(hyperv_mmu_flush_tlb_others, 12 TP_PROTO(const struct cpumask *cpus, 13 const struct flush_tlb_info *info), 14 TP_ARGS(cpus, info), 15 TP_STRUCT__entry( 16 __field(unsigned int, ncpus) 17 __field(struct mm_struct *, mm) 18 __field(unsigned long, addr) 19 __field(unsigned long, end) 20 ), 21 TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 22 __entry->mm = info->mm; 23 __entry->addr = info->start; 24 __entry->end = info->end; 25 ), 26 TP_printk("ncpus %d mm %p addr %lx, end %lx", 27 __entry->ncpus, __entry->mm, 28 __entry->addr, __entry->end) 29 ); 30 31 TRACE_EVENT(hyperv_send_ipi_mask, 32 TP_PROTO(const struct cpumask *cpus, 33 int vector), 34 TP_ARGS(cpus, vector), 35 TP_STRUCT__entry( 36 __field(unsigned int, ncpus) 37 __field(int, vector) 38 ), 39 TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 40 __entry->vector = vector; 41 ), 42 TP_printk("ncpus %d vector %x", 43 __entry->ncpus, __entry->vector) 44 ); 45 46 #endif /* CONFIG_HYPERV */ 47 48 #undef TRACE_INCLUDE_PATH 49 #define TRACE_INCLUDE_PATH asm/trace/ 50 #undef TRACE_INCLUDE_FILE 51 #define TRACE_INCLUDE_FILE hyperv 52 #endif /* _TRACE_HYPERV_H */ 53 54 /* This part must be outside protection */ 55 #include <trace/define_trace.h> 56