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_nested_flush_guest_mapping, 32 TP_PROTO(u64 as, int ret), 33 TP_ARGS(as, ret), 34 35 TP_STRUCT__entry( 36 __field(u64, as) 37 __field(int, ret) 38 ), 39 TP_fast_assign(__entry->as = as; 40 __entry->ret = ret; 41 ), 42 TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 43 ); 44 45 TRACE_EVENT(hyperv_send_ipi_mask, 46 TP_PROTO(const struct cpumask *cpus, 47 int vector), 48 TP_ARGS(cpus, vector), 49 TP_STRUCT__entry( 50 __field(unsigned int, ncpus) 51 __field(int, vector) 52 ), 53 TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 54 __entry->vector = vector; 55 ), 56 TP_printk("ncpus %d vector %x", 57 __entry->ncpus, __entry->vector) 58 ); 59 60 #endif /* CONFIG_HYPERV */ 61 62 #undef TRACE_INCLUDE_PATH 63 #define TRACE_INCLUDE_PATH asm/trace/ 64 #undef TRACE_INCLUDE_FILE 65 #define TRACE_INCLUDE_FILE hyperv 66 #endif /* _TRACE_HYPERV_H */ 67 68 /* This part must be outside protection */ 69 #include <trace/define_trace.h> 70