xref: /linux/arch/s390/kvm/gmap/trace_gmap.h (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #if !defined(GMAP_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
3 #define GMAP_TRACE_KVM_H
4 
5 #include <linux/tracepoint.h>
6 
7 #undef TRACE_SYSTEM
8 #define TRACE_SYSTEM kvm
9 #undef TRACE_INCLUDE_PATH
10 #define TRACE_INCLUDE_PATH ../gmap
11 #undef TRACE_INCLUDE_FILE
12 #define TRACE_INCLUDE_FILE trace_gmap
13 
14 #define __KVM_FIELDS \
15 	__field(unsigned long, pswmask) \
16 	__field(unsigned long, pswaddr)
17 #define __KVM_ASSIGN ({\
18 	__entry->pswmask = vcpu->arch.sie_block->gpsw.mask; \
19 	__entry->pswaddr = vcpu->arch.sie_block->gpsw.addr; \
20 	})
21 #define __KVM_PRINT \
22 	__entry->pswmask,\
23 	__entry->pswaddr
24 
25 TRACE_EVENT(kvm_s390_major_guest_pfault,
26 	    TP_PROTO(struct kvm_vcpu *vcpu),
27 	    TP_ARGS(vcpu),
28 
29 	    TP_STRUCT__entry(
30 		__field(int, id)
31 		__KVM_FIELDS
32 		),
33 
34 	    TP_fast_assign(
35 		__entry->id = vcpu->vcpu_id;
36 		__KVM_ASSIGN
37 		),
38 	    TP_printk("%02d[%016lx-%016lx]: major fault, maybe applicable for pfault",
39 		__entry->id,
40 		__KVM_PRINT
41 		)
42 	    );
43 
44 #endif /* GMAP_TRACE_KVM_H */
45 
46 /* This part must be outside protection */
47 #include <trace/define_trace.h>
48