1773b79f7SVitaly Kuznetsov #undef TRACE_SYSTEM 2773b79f7SVitaly Kuznetsov #define TRACE_SYSTEM hyperv 3773b79f7SVitaly Kuznetsov 4773b79f7SVitaly Kuznetsov #if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ) 5773b79f7SVitaly Kuznetsov #define _TRACE_HYPERV_H 6773b79f7SVitaly Kuznetsov 7773b79f7SVitaly Kuznetsov #include <linux/tracepoint.h> 8773b79f7SVitaly Kuznetsov 9773b79f7SVitaly Kuznetsov #if IS_ENABLED(CONFIG_HYPERV) 10773b79f7SVitaly Kuznetsov 11*4ce94eabSNadav Amit TRACE_EVENT(hyperv_mmu_flush_tlb_multi, 12773b79f7SVitaly Kuznetsov TP_PROTO(const struct cpumask *cpus, 13773b79f7SVitaly Kuznetsov const struct flush_tlb_info *info), 14773b79f7SVitaly Kuznetsov TP_ARGS(cpus, info), 15773b79f7SVitaly Kuznetsov TP_STRUCT__entry( 16773b79f7SVitaly Kuznetsov __field(unsigned int, ncpus) 17773b79f7SVitaly Kuznetsov __field(struct mm_struct *, mm) 18773b79f7SVitaly Kuznetsov __field(unsigned long, addr) 19773b79f7SVitaly Kuznetsov __field(unsigned long, end) 20773b79f7SVitaly Kuznetsov ), 21773b79f7SVitaly Kuznetsov TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 22773b79f7SVitaly Kuznetsov __entry->mm = info->mm; 23773b79f7SVitaly Kuznetsov __entry->addr = info->start; 24773b79f7SVitaly Kuznetsov __entry->end = info->end; 25773b79f7SVitaly Kuznetsov ), 26773b79f7SVitaly Kuznetsov TP_printk("ncpus %d mm %p addr %lx, end %lx", 27773b79f7SVitaly Kuznetsov __entry->ncpus, __entry->mm, 28773b79f7SVitaly Kuznetsov __entry->addr, __entry->end) 29773b79f7SVitaly Kuznetsov ); 30773b79f7SVitaly Kuznetsov 3160cfce4cSTianyu Lan TRACE_EVENT(hyperv_nested_flush_guest_mapping, 3260cfce4cSTianyu Lan TP_PROTO(u64 as, int ret), 3360cfce4cSTianyu Lan TP_ARGS(as, ret), 3460cfce4cSTianyu Lan 3560cfce4cSTianyu Lan TP_STRUCT__entry( 3660cfce4cSTianyu Lan __field(u64, as) 3760cfce4cSTianyu Lan __field(int, ret) 3860cfce4cSTianyu Lan ), 3960cfce4cSTianyu Lan TP_fast_assign(__entry->as = as; 4060cfce4cSTianyu Lan __entry->ret = ret; 4160cfce4cSTianyu Lan ), 4260cfce4cSTianyu Lan TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 4360cfce4cSTianyu Lan ); 4460cfce4cSTianyu Lan 45cc4edae4SLan Tianyu TRACE_EVENT(hyperv_nested_flush_guest_mapping_range, 46cc4edae4SLan Tianyu TP_PROTO(u64 as, int ret), 47cc4edae4SLan Tianyu TP_ARGS(as, ret), 48cc4edae4SLan Tianyu 49cc4edae4SLan Tianyu TP_STRUCT__entry( 50cc4edae4SLan Tianyu __field(u64, as) 51cc4edae4SLan Tianyu __field(int, ret) 52cc4edae4SLan Tianyu ), 53cc4edae4SLan Tianyu TP_fast_assign(__entry->as = as; 54cc4edae4SLan Tianyu __entry->ret = ret; 55cc4edae4SLan Tianyu ), 56cc4edae4SLan Tianyu TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 57cc4edae4SLan Tianyu ); 58cc4edae4SLan Tianyu 5958ec5e9cSVitaly Kuznetsov TRACE_EVENT(hyperv_send_ipi_mask, 6058ec5e9cSVitaly Kuznetsov TP_PROTO(const struct cpumask *cpus, 6158ec5e9cSVitaly Kuznetsov int vector), 6258ec5e9cSVitaly Kuznetsov TP_ARGS(cpus, vector), 6358ec5e9cSVitaly Kuznetsov TP_STRUCT__entry( 6458ec5e9cSVitaly Kuznetsov __field(unsigned int, ncpus) 6558ec5e9cSVitaly Kuznetsov __field(int, vector) 6658ec5e9cSVitaly Kuznetsov ), 6758ec5e9cSVitaly Kuznetsov TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 6858ec5e9cSVitaly Kuznetsov __entry->vector = vector; 6958ec5e9cSVitaly Kuznetsov ), 7058ec5e9cSVitaly Kuznetsov TP_printk("ncpus %d vector %x", 7158ec5e9cSVitaly Kuznetsov __entry->ncpus, __entry->vector) 7258ec5e9cSVitaly Kuznetsov ); 7358ec5e9cSVitaly Kuznetsov 74b264f57fSVitaly Kuznetsov TRACE_EVENT(hyperv_send_ipi_one, 75b264f57fSVitaly Kuznetsov TP_PROTO(int cpu, 76b264f57fSVitaly Kuznetsov int vector), 77b264f57fSVitaly Kuznetsov TP_ARGS(cpu, vector), 78b264f57fSVitaly Kuznetsov TP_STRUCT__entry( 79b264f57fSVitaly Kuznetsov __field(int, cpu) 80b264f57fSVitaly Kuznetsov __field(int, vector) 81b264f57fSVitaly Kuznetsov ), 82b264f57fSVitaly Kuznetsov TP_fast_assign(__entry->cpu = cpu; 83b264f57fSVitaly Kuznetsov __entry->vector = vector; 84b264f57fSVitaly Kuznetsov ), 85b264f57fSVitaly Kuznetsov TP_printk("cpu %d vector %x", 86b264f57fSVitaly Kuznetsov __entry->cpu, __entry->vector) 87b264f57fSVitaly Kuznetsov ); 88b264f57fSVitaly Kuznetsov 89773b79f7SVitaly Kuznetsov #endif /* CONFIG_HYPERV */ 90773b79f7SVitaly Kuznetsov 91773b79f7SVitaly Kuznetsov #undef TRACE_INCLUDE_PATH 92773b79f7SVitaly Kuznetsov #define TRACE_INCLUDE_PATH asm/trace/ 93773b79f7SVitaly Kuznetsov #undef TRACE_INCLUDE_FILE 94773b79f7SVitaly Kuznetsov #define TRACE_INCLUDE_FILE hyperv 95773b79f7SVitaly Kuznetsov #endif /* _TRACE_HYPERV_H */ 96773b79f7SVitaly Kuznetsov 97773b79f7SVitaly Kuznetsov /* This part must be outside protection */ 98773b79f7SVitaly Kuznetsov #include <trace/define_trace.h> 99