162306a36Sopenharmony_ci#undef TRACE_SYSTEM 262306a36Sopenharmony_ci#define TRACE_SYSTEM hyperv 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ) 562306a36Sopenharmony_ci#define _TRACE_HYPERV_H 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/tracepoint.h> 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#if IS_ENABLED(CONFIG_HYPERV) 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciTRACE_EVENT(hyperv_mmu_flush_tlb_multi, 1262306a36Sopenharmony_ci TP_PROTO(const struct cpumask *cpus, 1362306a36Sopenharmony_ci const struct flush_tlb_info *info), 1462306a36Sopenharmony_ci TP_ARGS(cpus, info), 1562306a36Sopenharmony_ci TP_STRUCT__entry( 1662306a36Sopenharmony_ci __field(unsigned int, ncpus) 1762306a36Sopenharmony_ci __field(struct mm_struct *, mm) 1862306a36Sopenharmony_ci __field(unsigned long, addr) 1962306a36Sopenharmony_ci __field(unsigned long, end) 2062306a36Sopenharmony_ci ), 2162306a36Sopenharmony_ci TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 2262306a36Sopenharmony_ci __entry->mm = info->mm; 2362306a36Sopenharmony_ci __entry->addr = info->start; 2462306a36Sopenharmony_ci __entry->end = info->end; 2562306a36Sopenharmony_ci ), 2662306a36Sopenharmony_ci TP_printk("ncpus %d mm %p addr %lx, end %lx", 2762306a36Sopenharmony_ci __entry->ncpus, __entry->mm, 2862306a36Sopenharmony_ci __entry->addr, __entry->end) 2962306a36Sopenharmony_ci ); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciTRACE_EVENT(hyperv_nested_flush_guest_mapping, 3262306a36Sopenharmony_ci TP_PROTO(u64 as, int ret), 3362306a36Sopenharmony_ci TP_ARGS(as, ret), 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci TP_STRUCT__entry( 3662306a36Sopenharmony_ci __field(u64, as) 3762306a36Sopenharmony_ci __field(int, ret) 3862306a36Sopenharmony_ci ), 3962306a36Sopenharmony_ci TP_fast_assign(__entry->as = as; 4062306a36Sopenharmony_ci __entry->ret = ret; 4162306a36Sopenharmony_ci ), 4262306a36Sopenharmony_ci TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 4362306a36Sopenharmony_ci ); 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ciTRACE_EVENT(hyperv_nested_flush_guest_mapping_range, 4662306a36Sopenharmony_ci TP_PROTO(u64 as, int ret), 4762306a36Sopenharmony_ci TP_ARGS(as, ret), 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci TP_STRUCT__entry( 5062306a36Sopenharmony_ci __field(u64, as) 5162306a36Sopenharmony_ci __field(int, ret) 5262306a36Sopenharmony_ci ), 5362306a36Sopenharmony_ci TP_fast_assign(__entry->as = as; 5462306a36Sopenharmony_ci __entry->ret = ret; 5562306a36Sopenharmony_ci ), 5662306a36Sopenharmony_ci TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 5762306a36Sopenharmony_ci ); 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ciTRACE_EVENT(hyperv_send_ipi_mask, 6062306a36Sopenharmony_ci TP_PROTO(const struct cpumask *cpus, 6162306a36Sopenharmony_ci int vector), 6262306a36Sopenharmony_ci TP_ARGS(cpus, vector), 6362306a36Sopenharmony_ci TP_STRUCT__entry( 6462306a36Sopenharmony_ci __field(unsigned int, ncpus) 6562306a36Sopenharmony_ci __field(int, vector) 6662306a36Sopenharmony_ci ), 6762306a36Sopenharmony_ci TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 6862306a36Sopenharmony_ci __entry->vector = vector; 6962306a36Sopenharmony_ci ), 7062306a36Sopenharmony_ci TP_printk("ncpus %d vector %x", 7162306a36Sopenharmony_ci __entry->ncpus, __entry->vector) 7262306a36Sopenharmony_ci ); 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciTRACE_EVENT(hyperv_send_ipi_one, 7562306a36Sopenharmony_ci TP_PROTO(int cpu, 7662306a36Sopenharmony_ci int vector), 7762306a36Sopenharmony_ci TP_ARGS(cpu, vector), 7862306a36Sopenharmony_ci TP_STRUCT__entry( 7962306a36Sopenharmony_ci __field(int, cpu) 8062306a36Sopenharmony_ci __field(int, vector) 8162306a36Sopenharmony_ci ), 8262306a36Sopenharmony_ci TP_fast_assign(__entry->cpu = cpu; 8362306a36Sopenharmony_ci __entry->vector = vector; 8462306a36Sopenharmony_ci ), 8562306a36Sopenharmony_ci TP_printk("cpu %d vector %x", 8662306a36Sopenharmony_ci __entry->cpu, __entry->vector) 8762306a36Sopenharmony_ci ); 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci#endif /* CONFIG_HYPERV */ 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 9262306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH asm/trace/ 9362306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE 9462306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE hyperv 9562306a36Sopenharmony_ci#endif /* _TRACE_HYPERV_H */ 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci/* This part must be outside protection */ 9862306a36Sopenharmony_ci#include <trace/define_trace.h> 99