^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define _TRACE_KVM_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <asm/sie.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <asm/debug.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <asm/dis.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define TRACE_SYSTEM kvm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define TRACE_INCLUDE_PATH .
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #undef TRACE_INCLUDE_FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define TRACE_INCLUDE_FILE trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * Helpers for vcpu-specific tracepoints containing the same information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) * as s390dbf VCPU_EVENTs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define VCPU_PROTO_COMMON struct kvm_vcpu *vcpu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define VCPU_ARGS_COMMON vcpu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #define VCPU_FIELD_COMMON __field(int, id) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __field(unsigned long, pswmask) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) __field(unsigned long, pswaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define VCPU_ASSIGN_COMMON do { \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) __entry->id = vcpu->vcpu_id; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) __entry->pswmask = vcpu->arch.sie_block->gpsw.mask; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) __entry->pswaddr = vcpu->arch.sie_block->gpsw.addr; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) } while (0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #define VCPU_TP_PRINTK(p_str, p_args...) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) TP_printk("%02d[%016lx-%016lx]: " p_str, __entry->id, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) __entry->pswmask, __entry->pswaddr, p_args)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) TRACE_EVENT(kvm_s390_skey_related_inst,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) TP_PROTO(VCPU_PROTO_COMMON),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) TP_ARGS(VCPU_ARGS_COMMON),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) VCPU_TP_PRINTK("%s", "storage key related instruction")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) TRACE_EVENT(kvm_s390_major_guest_pfault,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) TP_PROTO(VCPU_PROTO_COMMON),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) TP_ARGS(VCPU_ARGS_COMMON),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) VCPU_TP_PRINTK("%s", "major fault, maybe applicable for pfault")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) TRACE_EVENT(kvm_s390_pfault_init,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) TP_PROTO(VCPU_PROTO_COMMON, long pfault_token),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) TP_ARGS(VCPU_ARGS_COMMON, pfault_token),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) __field(long, pfault_token)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) __entry->pfault_token = pfault_token;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) VCPU_TP_PRINTK("init pfault token %ld", __entry->pfault_token)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) TRACE_EVENT(kvm_s390_pfault_done,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) TP_PROTO(VCPU_PROTO_COMMON, long pfault_token),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) TP_ARGS(VCPU_ARGS_COMMON, pfault_token),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) __field(long, pfault_token)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) __entry->pfault_token = pfault_token;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) VCPU_TP_PRINTK("done pfault token %ld", __entry->pfault_token)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) * Tracepoints for SIE entry and exit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) TRACE_EVENT(kvm_s390_sie_enter,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) TP_PROTO(VCPU_PROTO_COMMON, int cpuflags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) TP_ARGS(VCPU_ARGS_COMMON, cpuflags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) __field(int, cpuflags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) __entry->cpuflags = cpuflags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) VCPU_TP_PRINTK("entering sie flags %x", __entry->cpuflags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) TRACE_EVENT(kvm_s390_sie_fault,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) TP_PROTO(VCPU_PROTO_COMMON),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) TP_ARGS(VCPU_ARGS_COMMON),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) VCPU_TP_PRINTK("%s", "fault in sie instruction")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) TRACE_EVENT(kvm_s390_sie_exit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) TP_PROTO(VCPU_PROTO_COMMON, u8 icptcode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) TP_ARGS(VCPU_ARGS_COMMON, icptcode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) __field(u8, icptcode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) __entry->icptcode = icptcode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) VCPU_TP_PRINTK("exit sie icptcode %d (%s)", __entry->icptcode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) __print_symbolic(__entry->icptcode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) sie_intercept_code))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) * Trace point for intercepted instructions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) TRACE_EVENT(kvm_s390_intercept_instruction,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) TP_PROTO(VCPU_PROTO_COMMON, __u16 ipa, __u32 ipb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) TP_ARGS(VCPU_ARGS_COMMON, ipa, ipb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) __field(__u64, instruction)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) __entry->instruction = ((__u64)ipa << 48) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) ((__u64)ipb << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) VCPU_TP_PRINTK("intercepted instruction %016llx (%s)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) __entry->instruction,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) __print_symbolic(icpt_insn_decoder(__entry->instruction),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) icpt_insn_codes))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) * Trace point for intercepted program interruptions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) TRACE_EVENT(kvm_s390_intercept_prog,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) TP_PROTO(VCPU_PROTO_COMMON, __u16 code),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) TP_ARGS(VCPU_ARGS_COMMON, code),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) __field(__u16, code)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) __entry->code = code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) VCPU_TP_PRINTK("intercepted program interruption %04x (%s)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) __entry->code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) __print_symbolic(__entry->code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) icpt_prog_codes))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) * Trace point for validity intercepts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) TRACE_EVENT(kvm_s390_intercept_validity,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) TP_PROTO(VCPU_PROTO_COMMON, __u16 viwhy),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) TP_ARGS(VCPU_ARGS_COMMON, viwhy),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) __field(__u16, viwhy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) __entry->viwhy = viwhy;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) VCPU_TP_PRINTK("got validity intercept %04x", __entry->viwhy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) * Trace points for instructions that are of special interest.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) TRACE_EVENT(kvm_s390_handle_sigp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) TP_PROTO(VCPU_PROTO_COMMON, __u8 order_code, __u16 cpu_addr, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) __u32 parameter),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) TP_ARGS(VCPU_ARGS_COMMON, order_code, cpu_addr, parameter),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) __field(__u8, order_code)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) __field(__u16, cpu_addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) __field(__u32, parameter)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) __entry->order_code = order_code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) __entry->cpu_addr = cpu_addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) __entry->parameter = parameter;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) VCPU_TP_PRINTK("handle sigp order %02x (%s), cpu address %04x, " \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) "parameter %08x", __entry->order_code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) __print_symbolic(__entry->order_code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) sigp_order_codes),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) __entry->cpu_addr, __entry->parameter)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) TRACE_EVENT(kvm_s390_handle_sigp_pei,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) TP_PROTO(VCPU_PROTO_COMMON, __u8 order_code, __u16 cpu_addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) TP_ARGS(VCPU_ARGS_COMMON, order_code, cpu_addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) __field(__u8, order_code)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) __field(__u16, cpu_addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) __entry->order_code = order_code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) __entry->cpu_addr = cpu_addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) VCPU_TP_PRINTK("handle sigp pei order %02x (%s), cpu address %04x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) __entry->order_code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) __print_symbolic(__entry->order_code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) sigp_order_codes),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) __entry->cpu_addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) TRACE_EVENT(kvm_s390_handle_diag,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) TP_PROTO(VCPU_PROTO_COMMON, __u16 code),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) TP_ARGS(VCPU_ARGS_COMMON, code),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) __field(__u16, code)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) __entry->code = code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) VCPU_TP_PRINTK("handle diagnose call %04x (%s)", __entry->code,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) __print_symbolic(__entry->code, diagnose_codes))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) TRACE_EVENT(kvm_s390_handle_lctl,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) TP_PROTO(VCPU_PROTO_COMMON, int g, int reg1, int reg3, u64 addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) TP_ARGS(VCPU_ARGS_COMMON, g, reg1, reg3, addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) __field(int, g)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) __field(int, reg1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) __field(int, reg3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) __field(u64, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) __entry->g = g;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) __entry->reg1 = reg1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) __entry->reg3 = reg3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) __entry->addr = addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) VCPU_TP_PRINTK("%s: loading cr %x-%x from %016llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) __entry->g ? "lctlg" : "lctl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) __entry->reg1, __entry->reg3, __entry->addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) TRACE_EVENT(kvm_s390_handle_stctl,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) TP_PROTO(VCPU_PROTO_COMMON, int g, int reg1, int reg3, u64 addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) TP_ARGS(VCPU_ARGS_COMMON, g, reg1, reg3, addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) __field(int, g)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) __field(int, reg1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) __field(int, reg3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) __field(u64, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) __entry->g = g;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) __entry->reg1 = reg1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) __entry->reg3 = reg3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) __entry->addr = addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) VCPU_TP_PRINTK("%s: storing cr %x-%x to %016llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) __entry->g ? "stctg" : "stctl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) __entry->reg1, __entry->reg3, __entry->addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) TRACE_EVENT(kvm_s390_handle_prefix,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) TP_PROTO(VCPU_PROTO_COMMON, int set, u32 address),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) TP_ARGS(VCPU_ARGS_COMMON, set, address),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) __field(int, set)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) __field(u32, address)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) __entry->set = set;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) __entry->address = address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) VCPU_TP_PRINTK("%s prefix to %08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) __entry->set ? "setting" : "storing",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) __entry->address)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) TRACE_EVENT(kvm_s390_handle_stap,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) TP_PROTO(VCPU_PROTO_COMMON, u64 address),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) TP_ARGS(VCPU_ARGS_COMMON, address),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) __field(u64, address)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) __entry->address = address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) VCPU_TP_PRINTK("storing cpu address to %016llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) __entry->address)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) TRACE_EVENT(kvm_s390_handle_stfl,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) TP_PROTO(VCPU_PROTO_COMMON, unsigned int facility_list),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) TP_ARGS(VCPU_ARGS_COMMON, facility_list),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) __field(unsigned int, facility_list)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) __entry->facility_list = facility_list;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) VCPU_TP_PRINTK("store facility list value %08x",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) __entry->facility_list)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) TRACE_EVENT(kvm_s390_handle_stsi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) TP_PROTO(VCPU_PROTO_COMMON, int fc, int sel1, int sel2, u64 addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) TP_ARGS(VCPU_ARGS_COMMON, fc, sel1, sel2, addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) __field(int, fc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) __field(int, sel1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) __field(int, sel2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) __field(u64, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) __entry->fc = fc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) __entry->sel1 = sel1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) __entry->sel2 = sel2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) __entry->addr = addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) VCPU_TP_PRINTK("STSI %d.%d.%d information stored to %016llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) __entry->fc, __entry->sel1, __entry->sel2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) __entry->addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) TRACE_EVENT(kvm_s390_handle_operexc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) TP_PROTO(VCPU_PROTO_COMMON, __u16 ipa, __u32 ipb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) TP_ARGS(VCPU_ARGS_COMMON, ipa, ipb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) __field(__u64, instruction)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) __entry->instruction = ((__u64)ipa << 48) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) ((__u64)ipb << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) VCPU_TP_PRINTK("operation exception on instruction %016llx (%s)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) __entry->instruction,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) __print_symbolic(icpt_insn_decoder(__entry->instruction),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) icpt_insn_codes))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) TRACE_EVENT(kvm_s390_handle_sthyi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) TP_PROTO(VCPU_PROTO_COMMON, u64 code, u64 addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) TP_ARGS(VCPU_ARGS_COMMON, code, addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) VCPU_FIELD_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) __field(u64, code)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) __field(u64, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) VCPU_ASSIGN_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) __entry->code = code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) __entry->addr = addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) VCPU_TP_PRINTK("STHYI fc: %llu addr: %016llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) __entry->code, __entry->addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) #endif /* _TRACE_KVM_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) #include <trace/define_trace.h>