| #undef TRACE_SYSTEM | |
| #define TRACE_SYSTEM hyperv | |
| #if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ) | |
| #define _TRACE_HYPERV_H | |
| #include <linux/tracepoint.h> | |
| #if IS_ENABLED(CONFIG_HYPERV) | |
| TRACE_EVENT(hyperv_mmu_flush_tlb_others, | |
| TP_PROTO(const struct cpumask *cpus, | |
| const struct flush_tlb_info *info), | |
| TP_ARGS(cpus, info), | |
| TP_STRUCT__entry( | |
| __field(unsigned int, ncpus) | |
| __field(struct mm_struct *, mm) | |
| __field(unsigned long, addr) | |
| __field(unsigned long, end) | |
| ), | |
| TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); | |
| __entry->mm = info->mm; | |
| __entry->addr = info->start; | |
| __entry->end = info->end; | |
| ), | |
| TP_printk("ncpus %d mm %p addr %lx, end %lx", | |
| __entry->ncpus, __entry->mm, | |
| __entry->addr, __entry->end) | |
| ); | |
| TRACE_EVENT(hyperv_nested_flush_guest_mapping, | |
| TP_PROTO(u64 as, int ret), | |
| TP_ARGS(as, ret), | |
| TP_STRUCT__entry( | |
| __field(u64, as) | |
| __field(int, ret) | |
| ), | |
| TP_fast_assign(__entry->as = as; | |
| __entry->ret = ret; | |
| ), | |
| TP_printk("address space %llx ret %d", __entry->as, __entry->ret) | |
| ); | |
| TRACE_EVENT(hyperv_nested_flush_guest_mapping_range, | |
| TP_PROTO(u64 as, int ret), | |
| TP_ARGS(as, ret), | |
| TP_STRUCT__entry( | |
| __field(u64, as) | |
| __field(int, ret) | |
| ), | |
| TP_fast_assign(__entry->as = as; | |
| __entry->ret = ret; | |
| ), | |
| TP_printk("address space %llx ret %d", __entry->as, __entry->ret) | |
| ); | |
| TRACE_EVENT(hyperv_send_ipi_mask, | |
| TP_PROTO(const struct cpumask *cpus, | |
| int vector), | |
| TP_ARGS(cpus, vector), | |
| TP_STRUCT__entry( | |
| __field(unsigned int, ncpus) | |
| __field(int, vector) | |
| ), | |
| TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); | |
| __entry->vector = vector; | |
| ), | |
| TP_printk("ncpus %d vector %x", | |
| __entry->ncpus, __entry->vector) | |
| ); | |
| TRACE_EVENT(hyperv_send_ipi_one, | |
| TP_PROTO(int cpu, | |
| int vector), | |
| TP_ARGS(cpu, vector), | |
| TP_STRUCT__entry( | |
| __field(int, cpu) | |
| __field(int, vector) | |
| ), | |
| TP_fast_assign(__entry->cpu = cpu; | |
| __entry->vector = vector; | |
| ), | |
| TP_printk("cpu %d vector %x", | |
| __entry->cpu, __entry->vector) | |
| ); | |
| #endif /* CONFIG_HYPERV */ | |
| #undef TRACE_INCLUDE_PATH | |
| #define TRACE_INCLUDE_PATH asm/trace/ | |
| #undef TRACE_INCLUDE_FILE | |
| #define TRACE_INCLUDE_FILE hyperv | |
| #endif /* _TRACE_HYPERV_H */ | |
| /* This part must be outside protection */ | |
| #include <trace/define_trace.h> |