1*4882a593Smuzhiyun #undef TRACE_SYSTEM 2*4882a593Smuzhiyun #define TRACE_SYSTEM hyperv 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun #if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ) 5*4882a593Smuzhiyun #define _TRACE_HYPERV_H 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #include <linux/tracepoint.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #if IS_ENABLED(CONFIG_HYPERV) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun TRACE_EVENT(hyperv_mmu_flush_tlb_others, 12*4882a593Smuzhiyun TP_PROTO(const struct cpumask *cpus, 13*4882a593Smuzhiyun const struct flush_tlb_info *info), 14*4882a593Smuzhiyun TP_ARGS(cpus, info), 15*4882a593Smuzhiyun TP_STRUCT__entry( 16*4882a593Smuzhiyun __field(unsigned int, ncpus) 17*4882a593Smuzhiyun __field(struct mm_struct *, mm) 18*4882a593Smuzhiyun __field(unsigned long, addr) 19*4882a593Smuzhiyun __field(unsigned long, end) 20*4882a593Smuzhiyun ), 21*4882a593Smuzhiyun TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 22*4882a593Smuzhiyun __entry->mm = info->mm; 23*4882a593Smuzhiyun __entry->addr = info->start; 24*4882a593Smuzhiyun __entry->end = info->end; 25*4882a593Smuzhiyun ), 26*4882a593Smuzhiyun TP_printk("ncpus %d mm %p addr %lx, end %lx", 27*4882a593Smuzhiyun __entry->ncpus, __entry->mm, 28*4882a593Smuzhiyun __entry->addr, __entry->end) 29*4882a593Smuzhiyun ); 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun TRACE_EVENT(hyperv_nested_flush_guest_mapping, 32*4882a593Smuzhiyun TP_PROTO(u64 as, int ret), 33*4882a593Smuzhiyun TP_ARGS(as, ret), 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun TP_STRUCT__entry( 36*4882a593Smuzhiyun __field(u64, as) 37*4882a593Smuzhiyun __field(int, ret) 38*4882a593Smuzhiyun ), 39*4882a593Smuzhiyun TP_fast_assign(__entry->as = as; 40*4882a593Smuzhiyun __entry->ret = ret; 41*4882a593Smuzhiyun ), 42*4882a593Smuzhiyun TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 43*4882a593Smuzhiyun ); 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun TRACE_EVENT(hyperv_nested_flush_guest_mapping_range, 46*4882a593Smuzhiyun TP_PROTO(u64 as, int ret), 47*4882a593Smuzhiyun TP_ARGS(as, ret), 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun TP_STRUCT__entry( 50*4882a593Smuzhiyun __field(u64, as) 51*4882a593Smuzhiyun __field(int, ret) 52*4882a593Smuzhiyun ), 53*4882a593Smuzhiyun TP_fast_assign(__entry->as = as; 54*4882a593Smuzhiyun __entry->ret = ret; 55*4882a593Smuzhiyun ), 56*4882a593Smuzhiyun TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 57*4882a593Smuzhiyun ); 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun TRACE_EVENT(hyperv_send_ipi_mask, 60*4882a593Smuzhiyun TP_PROTO(const struct cpumask *cpus, 61*4882a593Smuzhiyun int vector), 62*4882a593Smuzhiyun TP_ARGS(cpus, vector), 63*4882a593Smuzhiyun TP_STRUCT__entry( 64*4882a593Smuzhiyun __field(unsigned int, ncpus) 65*4882a593Smuzhiyun __field(int, vector) 66*4882a593Smuzhiyun ), 67*4882a593Smuzhiyun TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 68*4882a593Smuzhiyun __entry->vector = vector; 69*4882a593Smuzhiyun ), 70*4882a593Smuzhiyun TP_printk("ncpus %d vector %x", 71*4882a593Smuzhiyun __entry->ncpus, __entry->vector) 72*4882a593Smuzhiyun ); 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun TRACE_EVENT(hyperv_send_ipi_one, 75*4882a593Smuzhiyun TP_PROTO(int cpu, 76*4882a593Smuzhiyun int vector), 77*4882a593Smuzhiyun TP_ARGS(cpu, vector), 78*4882a593Smuzhiyun TP_STRUCT__entry( 79*4882a593Smuzhiyun __field(int, cpu) 80*4882a593Smuzhiyun __field(int, vector) 81*4882a593Smuzhiyun ), 82*4882a593Smuzhiyun TP_fast_assign(__entry->cpu = cpu; 83*4882a593Smuzhiyun __entry->vector = vector; 84*4882a593Smuzhiyun ), 85*4882a593Smuzhiyun TP_printk("cpu %d vector %x", 86*4882a593Smuzhiyun __entry->cpu, __entry->vector) 87*4882a593Smuzhiyun ); 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun #endif /* CONFIG_HYPERV */ 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun #undef TRACE_INCLUDE_PATH 92*4882a593Smuzhiyun #define TRACE_INCLUDE_PATH asm/trace/ 93*4882a593Smuzhiyun #undef TRACE_INCLUDE_FILE 94*4882a593Smuzhiyun #define TRACE_INCLUDE_FILE hyperv 95*4882a593Smuzhiyun #endif /* _TRACE_HYPERV_H */ 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun /* This part must be outside protection */ 98*4882a593Smuzhiyun #include <trace/define_trace.h> 99