0001 #undef TRACE_SYSTEM
0002 #define TRACE_SYSTEM hyperv
0003
0004 #if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ)
0005 #define _TRACE_HYPERV_H
0006
0007 #include <linux/tracepoint.h>
0008
0009 #if IS_ENABLED(CONFIG_HYPERV)
0010
0011 TRACE_EVENT(hyperv_mmu_flush_tlb_multi,
0012 TP_PROTO(const struct cpumask *cpus,
0013 const struct flush_tlb_info *info),
0014 TP_ARGS(cpus, info),
0015 TP_STRUCT__entry(
0016 __field(unsigned int, ncpus)
0017 __field(struct mm_struct *, mm)
0018 __field(unsigned long, addr)
0019 __field(unsigned long, end)
0020 ),
0021 TP_fast_assign(__entry->ncpus = cpumask_weight(cpus);
0022 __entry->mm = info->mm;
0023 __entry->addr = info->start;
0024 __entry->end = info->end;
0025 ),
0026 TP_printk("ncpus %d mm %p addr %lx, end %lx",
0027 __entry->ncpus, __entry->mm,
0028 __entry->addr, __entry->end)
0029 );
0030
0031 TRACE_EVENT(hyperv_nested_flush_guest_mapping,
0032 TP_PROTO(u64 as, int ret),
0033 TP_ARGS(as, ret),
0034
0035 TP_STRUCT__entry(
0036 __field(u64, as)
0037 __field(int, ret)
0038 ),
0039 TP_fast_assign(__entry->as = as;
0040 __entry->ret = ret;
0041 ),
0042 TP_printk("address space %llx ret %d", __entry->as, __entry->ret)
0043 );
0044
0045 TRACE_EVENT(hyperv_nested_flush_guest_mapping_range,
0046 TP_PROTO(u64 as, int ret),
0047 TP_ARGS(as, ret),
0048
0049 TP_STRUCT__entry(
0050 __field(u64, as)
0051 __field(int, ret)
0052 ),
0053 TP_fast_assign(__entry->as = as;
0054 __entry->ret = ret;
0055 ),
0056 TP_printk("address space %llx ret %d", __entry->as, __entry->ret)
0057 );
0058
0059 TRACE_EVENT(hyperv_send_ipi_mask,
0060 TP_PROTO(const struct cpumask *cpus,
0061 int vector),
0062 TP_ARGS(cpus, vector),
0063 TP_STRUCT__entry(
0064 __field(unsigned int, ncpus)
0065 __field(int, vector)
0066 ),
0067 TP_fast_assign(__entry->ncpus = cpumask_weight(cpus);
0068 __entry->vector = vector;
0069 ),
0070 TP_printk("ncpus %d vector %x",
0071 __entry->ncpus, __entry->vector)
0072 );
0073
0074 TRACE_EVENT(hyperv_send_ipi_one,
0075 TP_PROTO(int cpu,
0076 int vector),
0077 TP_ARGS(cpu, vector),
0078 TP_STRUCT__entry(
0079 __field(int, cpu)
0080 __field(int, vector)
0081 ),
0082 TP_fast_assign(__entry->cpu = cpu;
0083 __entry->vector = vector;
0084 ),
0085 TP_printk("cpu %d vector %x",
0086 __entry->cpu, __entry->vector)
0087 );
0088
0089 #endif
0090
0091 #undef TRACE_INCLUDE_PATH
0092 #define TRACE_INCLUDE_PATH asm/trace/
0093 #undef TRACE_INCLUDE_FILE
0094 #define TRACE_INCLUDE_FILE hyperv
0095 #endif
0096
0097
0098 #include <trace/define_trace.h>