18c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM 28c2ecf20Sopenharmony_ci#define TRACE_SYSTEM hyperv 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ) 58c2ecf20Sopenharmony_ci#define _TRACE_HYPERV_H 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include <linux/tracepoint.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#if IS_ENABLED(CONFIG_HYPERV) 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciTRACE_EVENT(hyperv_mmu_flush_tlb_others, 128c2ecf20Sopenharmony_ci TP_PROTO(const struct cpumask *cpus, 138c2ecf20Sopenharmony_ci const struct flush_tlb_info *info), 148c2ecf20Sopenharmony_ci TP_ARGS(cpus, info), 158c2ecf20Sopenharmony_ci TP_STRUCT__entry( 168c2ecf20Sopenharmony_ci __field(unsigned int, ncpus) 178c2ecf20Sopenharmony_ci __field(struct mm_struct *, mm) 188c2ecf20Sopenharmony_ci __field(unsigned long, addr) 198c2ecf20Sopenharmony_ci __field(unsigned long, end) 208c2ecf20Sopenharmony_ci ), 218c2ecf20Sopenharmony_ci TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 228c2ecf20Sopenharmony_ci __entry->mm = info->mm; 238c2ecf20Sopenharmony_ci __entry->addr = info->start; 248c2ecf20Sopenharmony_ci __entry->end = info->end; 258c2ecf20Sopenharmony_ci ), 268c2ecf20Sopenharmony_ci TP_printk("ncpus %d mm %p addr %lx, end %lx", 278c2ecf20Sopenharmony_ci __entry->ncpus, __entry->mm, 288c2ecf20Sopenharmony_ci __entry->addr, __entry->end) 298c2ecf20Sopenharmony_ci ); 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ciTRACE_EVENT(hyperv_nested_flush_guest_mapping, 328c2ecf20Sopenharmony_ci TP_PROTO(u64 as, int ret), 338c2ecf20Sopenharmony_ci TP_ARGS(as, ret), 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci TP_STRUCT__entry( 368c2ecf20Sopenharmony_ci __field(u64, as) 378c2ecf20Sopenharmony_ci __field(int, ret) 388c2ecf20Sopenharmony_ci ), 398c2ecf20Sopenharmony_ci TP_fast_assign(__entry->as = as; 408c2ecf20Sopenharmony_ci __entry->ret = ret; 418c2ecf20Sopenharmony_ci ), 428c2ecf20Sopenharmony_ci TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 438c2ecf20Sopenharmony_ci ); 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ciTRACE_EVENT(hyperv_nested_flush_guest_mapping_range, 468c2ecf20Sopenharmony_ci TP_PROTO(u64 as, int ret), 478c2ecf20Sopenharmony_ci TP_ARGS(as, ret), 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci TP_STRUCT__entry( 508c2ecf20Sopenharmony_ci __field(u64, as) 518c2ecf20Sopenharmony_ci __field(int, ret) 528c2ecf20Sopenharmony_ci ), 538c2ecf20Sopenharmony_ci TP_fast_assign(__entry->as = as; 548c2ecf20Sopenharmony_ci __entry->ret = ret; 558c2ecf20Sopenharmony_ci ), 568c2ecf20Sopenharmony_ci TP_printk("address space %llx ret %d", __entry->as, __entry->ret) 578c2ecf20Sopenharmony_ci ); 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ciTRACE_EVENT(hyperv_send_ipi_mask, 608c2ecf20Sopenharmony_ci TP_PROTO(const struct cpumask *cpus, 618c2ecf20Sopenharmony_ci int vector), 628c2ecf20Sopenharmony_ci TP_ARGS(cpus, vector), 638c2ecf20Sopenharmony_ci TP_STRUCT__entry( 648c2ecf20Sopenharmony_ci __field(unsigned int, ncpus) 658c2ecf20Sopenharmony_ci __field(int, vector) 668c2ecf20Sopenharmony_ci ), 678c2ecf20Sopenharmony_ci TP_fast_assign(__entry->ncpus = cpumask_weight(cpus); 688c2ecf20Sopenharmony_ci __entry->vector = vector; 698c2ecf20Sopenharmony_ci ), 708c2ecf20Sopenharmony_ci TP_printk("ncpus %d vector %x", 718c2ecf20Sopenharmony_ci __entry->ncpus, __entry->vector) 728c2ecf20Sopenharmony_ci ); 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ciTRACE_EVENT(hyperv_send_ipi_one, 758c2ecf20Sopenharmony_ci TP_PROTO(int cpu, 768c2ecf20Sopenharmony_ci int vector), 778c2ecf20Sopenharmony_ci TP_ARGS(cpu, vector), 788c2ecf20Sopenharmony_ci TP_STRUCT__entry( 798c2ecf20Sopenharmony_ci __field(int, cpu) 808c2ecf20Sopenharmony_ci __field(int, vector) 818c2ecf20Sopenharmony_ci ), 828c2ecf20Sopenharmony_ci TP_fast_assign(__entry->cpu = cpu; 838c2ecf20Sopenharmony_ci __entry->vector = vector; 848c2ecf20Sopenharmony_ci ), 858c2ecf20Sopenharmony_ci TP_printk("cpu %d vector %x", 868c2ecf20Sopenharmony_ci __entry->cpu, __entry->vector) 878c2ecf20Sopenharmony_ci ); 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci#endif /* CONFIG_HYPERV */ 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH 928c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH asm/trace/ 938c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE 948c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE hyperv 958c2ecf20Sopenharmony_ci#endif /* _TRACE_HYPERV_H */ 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci/* This part must be outside protection */ 988c2ecf20Sopenharmony_ci#include <trace/define_trace.h> 99