18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#if !defined(_TRACE_KVMS390_H) || defined(TRACE_HEADER_MULTI_READ)
38c2ecf20Sopenharmony_ci#define _TRACE_KVMS390_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <linux/tracepoint.h>
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM
88c2ecf20Sopenharmony_ci#define TRACE_SYSTEM kvm-s390
98c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH .
108c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE
118c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE trace-s390
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci/*
148c2ecf20Sopenharmony_ci * The TRACE_SYSTEM_VAR defaults to TRACE_SYSTEM, but must be a
158c2ecf20Sopenharmony_ci * legitimate C variable. It is not exported to user space.
168c2ecf20Sopenharmony_ci */
178c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM_VAR
188c2ecf20Sopenharmony_ci#define TRACE_SYSTEM_VAR kvm_s390
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci/*
218c2ecf20Sopenharmony_ci * Trace point for the creation of the kvm instance.
228c2ecf20Sopenharmony_ci */
238c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_create_vm,
248c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned long type),
258c2ecf20Sopenharmony_ci	    TP_ARGS(type),
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
288c2ecf20Sopenharmony_ci		    __field(unsigned long, type)
298c2ecf20Sopenharmony_ci		    ),
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	    TP_fast_assign(
328c2ecf20Sopenharmony_ci		    __entry->type = type;
338c2ecf20Sopenharmony_ci		    ),
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	    TP_printk("create vm%s",
368c2ecf20Sopenharmony_ci		      __entry->type & KVM_VM_S390_UCONTROL ? " (UCONTROL)" : "")
378c2ecf20Sopenharmony_ci	);
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci/*
408c2ecf20Sopenharmony_ci * Trace points for creation and destruction of vpcus.
418c2ecf20Sopenharmony_ci */
428c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_create_vcpu,
438c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned int id, struct kvm_vcpu *vcpu,
448c2ecf20Sopenharmony_ci		     struct kvm_s390_sie_block *sie_block),
458c2ecf20Sopenharmony_ci	    TP_ARGS(id, vcpu, sie_block),
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
488c2ecf20Sopenharmony_ci		    __field(unsigned int, id)
498c2ecf20Sopenharmony_ci		    __field(struct kvm_vcpu *, vcpu)
508c2ecf20Sopenharmony_ci		    __field(struct kvm_s390_sie_block *, sie_block)
518c2ecf20Sopenharmony_ci		    ),
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci	    TP_fast_assign(
548c2ecf20Sopenharmony_ci		    __entry->id = id;
558c2ecf20Sopenharmony_ci		    __entry->vcpu = vcpu;
568c2ecf20Sopenharmony_ci		    __entry->sie_block = sie_block;
578c2ecf20Sopenharmony_ci		    ),
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci	    TP_printk("create cpu %d at 0x%pK, sie block at 0x%pK",
608c2ecf20Sopenharmony_ci		      __entry->id, __entry->vcpu, __entry->sie_block)
618c2ecf20Sopenharmony_ci	);
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_destroy_vcpu,
648c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned int id),
658c2ecf20Sopenharmony_ci	    TP_ARGS(id),
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
688c2ecf20Sopenharmony_ci		    __field(unsigned int, id)
698c2ecf20Sopenharmony_ci		    ),
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci	    TP_fast_assign(
728c2ecf20Sopenharmony_ci		    __entry->id = id;
738c2ecf20Sopenharmony_ci		    ),
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci	    TP_printk("destroy cpu %d", __entry->id)
768c2ecf20Sopenharmony_ci	);
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci/*
798c2ecf20Sopenharmony_ci * Trace point for start and stop of vpcus.
808c2ecf20Sopenharmony_ci */
818c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_vcpu_start_stop,
828c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned int id, int state),
838c2ecf20Sopenharmony_ci	    TP_ARGS(id, state),
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
868c2ecf20Sopenharmony_ci		    __field(unsigned int, id)
878c2ecf20Sopenharmony_ci		    __field(int, state)
888c2ecf20Sopenharmony_ci		    ),
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci	    TP_fast_assign(
918c2ecf20Sopenharmony_ci		    __entry->id = id;
928c2ecf20Sopenharmony_ci		    __entry->state = state;
938c2ecf20Sopenharmony_ci		    ),
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci	    TP_printk("%s cpu %d", __entry->state ? "starting" : "stopping",
968c2ecf20Sopenharmony_ci		      __entry->id)
978c2ecf20Sopenharmony_ci	);
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci/*
1008c2ecf20Sopenharmony_ci * Trace points for injection of interrupts, either per machine or
1018c2ecf20Sopenharmony_ci * per vcpu.
1028c2ecf20Sopenharmony_ci */
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci#define kvm_s390_int_type						\
1058c2ecf20Sopenharmony_ci	{KVM_S390_SIGP_STOP, "sigp stop"},				\
1068c2ecf20Sopenharmony_ci	{KVM_S390_PROGRAM_INT, "program interrupt"},			\
1078c2ecf20Sopenharmony_ci	{KVM_S390_SIGP_SET_PREFIX, "sigp set prefix"},			\
1088c2ecf20Sopenharmony_ci	{KVM_S390_RESTART, "sigp restart"},				\
1098c2ecf20Sopenharmony_ci	{KVM_S390_INT_PFAULT_INIT, "pfault init"},			\
1108c2ecf20Sopenharmony_ci	{KVM_S390_INT_PFAULT_DONE, "pfault done"},			\
1118c2ecf20Sopenharmony_ci	{KVM_S390_MCHK, "machine check"},				\
1128c2ecf20Sopenharmony_ci	{KVM_S390_INT_CLOCK_COMP, "clock comparator"},			\
1138c2ecf20Sopenharmony_ci	{KVM_S390_INT_CPU_TIMER, "cpu timer"},				\
1148c2ecf20Sopenharmony_ci	{KVM_S390_INT_VIRTIO, "virtio interrupt"},			\
1158c2ecf20Sopenharmony_ci	{KVM_S390_INT_SERVICE, "sclp interrupt"},			\
1168c2ecf20Sopenharmony_ci	{KVM_S390_INT_EMERGENCY, "sigp emergency"},			\
1178c2ecf20Sopenharmony_ci	{KVM_S390_INT_EXTERNAL_CALL, "sigp ext call"}
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci#define get_irq_name(__type) \
1208c2ecf20Sopenharmony_ci	(__type > KVM_S390_INT_IO_MAX ? \
1218c2ecf20Sopenharmony_ci	__print_symbolic(__type, kvm_s390_int_type) : \
1228c2ecf20Sopenharmony_ci		(__type & KVM_S390_INT_IO_AI_MASK ? \
1238c2ecf20Sopenharmony_ci		 "adapter I/O interrupt" : "subchannel I/O interrupt"))
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_inject_vm,
1268c2ecf20Sopenharmony_ci	    TP_PROTO(__u64 type, __u32 parm, __u64 parm64, int who),
1278c2ecf20Sopenharmony_ci	    TP_ARGS(type, parm, parm64, who),
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
1308c2ecf20Sopenharmony_ci		    __field(__u32, inttype)
1318c2ecf20Sopenharmony_ci		    __field(__u32, parm)
1328c2ecf20Sopenharmony_ci		    __field(__u64, parm64)
1338c2ecf20Sopenharmony_ci		    __field(int, who)
1348c2ecf20Sopenharmony_ci		    ),
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci	    TP_fast_assign(
1378c2ecf20Sopenharmony_ci		    __entry->inttype = type & 0x00000000ffffffff;
1388c2ecf20Sopenharmony_ci		    __entry->parm = parm;
1398c2ecf20Sopenharmony_ci		    __entry->parm64 = parm64;
1408c2ecf20Sopenharmony_ci		    __entry->who = who;
1418c2ecf20Sopenharmony_ci		    ),
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci	    TP_printk("inject%s: type:%x (%s) parm:%x parm64:%llx",
1448c2ecf20Sopenharmony_ci		      (__entry->who == 1) ? " (from kernel)" :
1458c2ecf20Sopenharmony_ci		      (__entry->who == 2) ? " (from user)" : "",
1468c2ecf20Sopenharmony_ci		      __entry->inttype, get_irq_name(__entry->inttype),
1478c2ecf20Sopenharmony_ci		      __entry->parm, __entry->parm64)
1488c2ecf20Sopenharmony_ci	);
1498c2ecf20Sopenharmony_ci
1508c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_inject_vcpu,
1518c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned int id, __u64 type, __u32 parm, __u64 parm64),
1528c2ecf20Sopenharmony_ci	    TP_ARGS(id, type, parm, parm64),
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
1558c2ecf20Sopenharmony_ci		    __field(int, id)
1568c2ecf20Sopenharmony_ci		    __field(__u32, inttype)
1578c2ecf20Sopenharmony_ci		    __field(__u32, parm)
1588c2ecf20Sopenharmony_ci		    __field(__u64, parm64)
1598c2ecf20Sopenharmony_ci		    ),
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci	    TP_fast_assign(
1628c2ecf20Sopenharmony_ci		    __entry->id = id;
1638c2ecf20Sopenharmony_ci		    __entry->inttype = type & 0x00000000ffffffff;
1648c2ecf20Sopenharmony_ci		    __entry->parm = parm;
1658c2ecf20Sopenharmony_ci		    __entry->parm64 = parm64;
1668c2ecf20Sopenharmony_ci		    ),
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci	    TP_printk("inject (vcpu %d): type:%x (%s) parm:%x parm64:%llx",
1698c2ecf20Sopenharmony_ci		      __entry->id, __entry->inttype,
1708c2ecf20Sopenharmony_ci		      get_irq_name(__entry->inttype), __entry->parm,
1718c2ecf20Sopenharmony_ci		      __entry->parm64)
1728c2ecf20Sopenharmony_ci	);
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci/*
1758c2ecf20Sopenharmony_ci * Trace point for the actual delivery of interrupts.
1768c2ecf20Sopenharmony_ci */
1778c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_deliver_interrupt,
1788c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned int id, __u64 type, __u64 data0, __u64 data1),
1798c2ecf20Sopenharmony_ci	    TP_ARGS(id, type, data0, data1),
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
1828c2ecf20Sopenharmony_ci		    __field(int, id)
1838c2ecf20Sopenharmony_ci		    __field(__u32, inttype)
1848c2ecf20Sopenharmony_ci		    __field(__u64, data0)
1858c2ecf20Sopenharmony_ci		    __field(__u64, data1)
1868c2ecf20Sopenharmony_ci		    ),
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci	    TP_fast_assign(
1898c2ecf20Sopenharmony_ci		    __entry->id = id;
1908c2ecf20Sopenharmony_ci		    __entry->inttype = type & 0x00000000ffffffff;
1918c2ecf20Sopenharmony_ci		    __entry->data0 = data0;
1928c2ecf20Sopenharmony_ci		    __entry->data1 = data1;
1938c2ecf20Sopenharmony_ci		    ),
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci	    TP_printk("deliver interrupt (vcpu %d): type:%x (%s) "	\
1968c2ecf20Sopenharmony_ci		      "data:%08llx %016llx",
1978c2ecf20Sopenharmony_ci		      __entry->id, __entry->inttype,
1988c2ecf20Sopenharmony_ci		      get_irq_name(__entry->inttype), __entry->data0,
1998c2ecf20Sopenharmony_ci		      __entry->data1)
2008c2ecf20Sopenharmony_ci	);
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci/*
2038c2ecf20Sopenharmony_ci * Trace point for resets that may be requested from userspace.
2048c2ecf20Sopenharmony_ci */
2058c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_request_resets,
2068c2ecf20Sopenharmony_ci	    TP_PROTO(__u64 resets),
2078c2ecf20Sopenharmony_ci	    TP_ARGS(resets),
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
2108c2ecf20Sopenharmony_ci		    __field(__u64, resets)
2118c2ecf20Sopenharmony_ci		    ),
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci	    TP_fast_assign(
2148c2ecf20Sopenharmony_ci		    __entry->resets = resets;
2158c2ecf20Sopenharmony_ci		    ),
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci	    TP_printk("requesting userspace resets %llx",
2188c2ecf20Sopenharmony_ci		      __entry->resets)
2198c2ecf20Sopenharmony_ci	);
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci/*
2228c2ecf20Sopenharmony_ci * Trace point for a vcpu's stop requests.
2238c2ecf20Sopenharmony_ci */
2248c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_stop_request,
2258c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned char stop_irq, unsigned char flags),
2268c2ecf20Sopenharmony_ci	    TP_ARGS(stop_irq, flags),
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
2298c2ecf20Sopenharmony_ci		    __field(unsigned char, stop_irq)
2308c2ecf20Sopenharmony_ci		    __field(unsigned char, flags)
2318c2ecf20Sopenharmony_ci		    ),
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ci	    TP_fast_assign(
2348c2ecf20Sopenharmony_ci		    __entry->stop_irq = stop_irq;
2358c2ecf20Sopenharmony_ci		    __entry->flags = flags;
2368c2ecf20Sopenharmony_ci		    ),
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci	    TP_printk("stop request, stop irq = %u, flags = %08x",
2398c2ecf20Sopenharmony_ci		      __entry->stop_irq, __entry->flags)
2408c2ecf20Sopenharmony_ci	);
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci/*
2448c2ecf20Sopenharmony_ci * Trace point for enabling channel I/O instruction support.
2458c2ecf20Sopenharmony_ci */
2468c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_enable_css,
2478c2ecf20Sopenharmony_ci	    TP_PROTO(void *kvm),
2488c2ecf20Sopenharmony_ci	    TP_ARGS(kvm),
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
2518c2ecf20Sopenharmony_ci		    __field(void *, kvm)
2528c2ecf20Sopenharmony_ci		    ),
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ci	    TP_fast_assign(
2558c2ecf20Sopenharmony_ci		    __entry->kvm = kvm;
2568c2ecf20Sopenharmony_ci		    ),
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci	    TP_printk("enabling channel I/O support (kvm @ %pK)\n",
2598c2ecf20Sopenharmony_ci		      __entry->kvm)
2608c2ecf20Sopenharmony_ci	);
2618c2ecf20Sopenharmony_ci
2628c2ecf20Sopenharmony_ci/*
2638c2ecf20Sopenharmony_ci * Trace point for enabling and disabling interlocking-and-broadcasting
2648c2ecf20Sopenharmony_ci * suppression.
2658c2ecf20Sopenharmony_ci */
2668c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_enable_disable_ibs,
2678c2ecf20Sopenharmony_ci	    TP_PROTO(unsigned int id, int state),
2688c2ecf20Sopenharmony_ci	    TP_ARGS(id, state),
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
2718c2ecf20Sopenharmony_ci		    __field(unsigned int, id)
2728c2ecf20Sopenharmony_ci		    __field(int, state)
2738c2ecf20Sopenharmony_ci		    ),
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_ci	    TP_fast_assign(
2768c2ecf20Sopenharmony_ci		    __entry->id = id;
2778c2ecf20Sopenharmony_ci		    __entry->state = state;
2788c2ecf20Sopenharmony_ci		    ),
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci	    TP_printk("%s ibs on cpu %d",
2818c2ecf20Sopenharmony_ci		      __entry->state ? "enabling" : "disabling", __entry->id)
2828c2ecf20Sopenharmony_ci	);
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_ci/*
2858c2ecf20Sopenharmony_ci * Trace point for modifying ais mode for a given isc.
2868c2ecf20Sopenharmony_ci */
2878c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_modify_ais_mode,
2888c2ecf20Sopenharmony_ci	    TP_PROTO(__u8 isc, __u16 from, __u16 to),
2898c2ecf20Sopenharmony_ci	    TP_ARGS(isc, from, to),
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
2928c2ecf20Sopenharmony_ci		    __field(__u8, isc)
2938c2ecf20Sopenharmony_ci		    __field(__u16, from)
2948c2ecf20Sopenharmony_ci		    __field(__u16, to)
2958c2ecf20Sopenharmony_ci		    ),
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ci	    TP_fast_assign(
2988c2ecf20Sopenharmony_ci		    __entry->isc = isc;
2998c2ecf20Sopenharmony_ci		    __entry->from = from;
3008c2ecf20Sopenharmony_ci		    __entry->to = to;
3018c2ecf20Sopenharmony_ci		    ),
3028c2ecf20Sopenharmony_ci
3038c2ecf20Sopenharmony_ci	    TP_printk("for isc %x, modifying interruption mode from %s to %s",
3048c2ecf20Sopenharmony_ci		      __entry->isc,
3058c2ecf20Sopenharmony_ci		      (__entry->from == KVM_S390_AIS_MODE_ALL) ?
3068c2ecf20Sopenharmony_ci		      "ALL-Interruptions Mode" :
3078c2ecf20Sopenharmony_ci		      (__entry->from == KVM_S390_AIS_MODE_SINGLE) ?
3088c2ecf20Sopenharmony_ci		      "Single-Interruption Mode" : "No-Interruptions Mode",
3098c2ecf20Sopenharmony_ci		      (__entry->to == KVM_S390_AIS_MODE_ALL) ?
3108c2ecf20Sopenharmony_ci		      "ALL-Interruptions Mode" :
3118c2ecf20Sopenharmony_ci		      (__entry->to == KVM_S390_AIS_MODE_SINGLE) ?
3128c2ecf20Sopenharmony_ci		      "Single-Interruption Mode" : "No-Interruptions Mode")
3138c2ecf20Sopenharmony_ci	);
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci/*
3168c2ecf20Sopenharmony_ci * Trace point for suppressed adapter I/O interrupt.
3178c2ecf20Sopenharmony_ci */
3188c2ecf20Sopenharmony_ciTRACE_EVENT(kvm_s390_airq_suppressed,
3198c2ecf20Sopenharmony_ci	    TP_PROTO(__u32 id, __u8 isc),
3208c2ecf20Sopenharmony_ci	    TP_ARGS(id, isc),
3218c2ecf20Sopenharmony_ci
3228c2ecf20Sopenharmony_ci	    TP_STRUCT__entry(
3238c2ecf20Sopenharmony_ci		    __field(__u32, id)
3248c2ecf20Sopenharmony_ci		    __field(__u8, isc)
3258c2ecf20Sopenharmony_ci		    ),
3268c2ecf20Sopenharmony_ci
3278c2ecf20Sopenharmony_ci	    TP_fast_assign(
3288c2ecf20Sopenharmony_ci		    __entry->id = id;
3298c2ecf20Sopenharmony_ci		    __entry->isc = isc;
3308c2ecf20Sopenharmony_ci		    ),
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_ci	    TP_printk("adapter I/O interrupt suppressed (id:%x isc:%x)",
3338c2ecf20Sopenharmony_ci		      __entry->id, __entry->isc)
3348c2ecf20Sopenharmony_ci	);
3358c2ecf20Sopenharmony_ci
3368c2ecf20Sopenharmony_ci
3378c2ecf20Sopenharmony_ci#endif /* _TRACE_KVMS390_H */
3388c2ecf20Sopenharmony_ci
3398c2ecf20Sopenharmony_ci/* This part must be outside protection */
3408c2ecf20Sopenharmony_ci#include <trace/define_trace.h>
341