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