[PATCH v6 12/33] KVM: s390: Extract gmap tracing to a separate header
Christian Borntraeger
borntraeger at linux.ibm.com
Wed Aug 12 10:13:43 PDT 2026
Am 12.08.26 um 17:36 schrieb Steffen Eiden:
> Move the kvm_s390_major_guest_pfault trace event from trace.h to a new
> trace_gmap.h header. This separates gmap-specific tracing from general
> KVM/s390 tracing, preparing for code sharing between multiple KVM
> implementations.
>
> The trace event definition is updated to use local defines for
> parameters so that they can be replaced later with ease for when another
> KVM implementation uses these traces.
>
> No functional change.
>
> Signed-off-by: Steffen Eiden <seiden at linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger at linux.ibm.com>
> ---
> arch/s390/kvm/faultin.c | 3 ++-
> arch/s390/kvm/trace.h | 14 ------------
> arch/s390/kvm/trace_gmap.h | 47 ++++++++++++++++++++++++++++++++++++++
> 3 files changed, 49 insertions(+), 15 deletions(-)
> create mode 100644 arch/s390/kvm/trace_gmap.h
>
> diff --git a/arch/s390/kvm/faultin.c b/arch/s390/kvm/faultin.c
> index 3cc45f7f5b2d..1dc79807012c 100644
> --- a/arch/s390/kvm/faultin.c
> +++ b/arch/s390/kvm/faultin.c
> @@ -9,10 +9,11 @@
> #include <linux/kvm_host.h>
>
> #include "gmap.h"
> -#include "trace.h"
> #include "faultin.h"
>
> bool kvm_arch_setup_async_pf(struct kvm_vcpu *vcpu);
> +#define CREATE_TRACE_POINTS
> +#include "trace_gmap.h"
>
> /*
> * kvm_s390_faultin_gfn() - handle a dat fault.
> diff --git a/arch/s390/kvm/trace.h b/arch/s390/kvm/trace.h
> index dd2685c7df5b..3d2fffb1555a 100644
> --- a/arch/s390/kvm/trace.h
> +++ b/arch/s390/kvm/trace.h
> @@ -45,20 +45,6 @@ TRACE_EVENT(kvm_s390_skey_related_inst,
> VCPU_TP_PRINTK("%s", "storage key related instruction")
> );
>
> -TRACE_EVENT(kvm_s390_major_guest_pfault,
> - TP_PROTO(VCPU_PROTO_COMMON),
> - TP_ARGS(VCPU_ARGS_COMMON),
> -
> - TP_STRUCT__entry(
> - VCPU_FIELD_COMMON
> - ),
> -
> - TP_fast_assign(
> - VCPU_ASSIGN_COMMON
> - ),
> - VCPU_TP_PRINTK("%s", "major fault, maybe applicable for pfault")
> - );
> -
> TRACE_EVENT(kvm_s390_pfault_init,
> TP_PROTO(VCPU_PROTO_COMMON, long pfault_token),
> TP_ARGS(VCPU_ARGS_COMMON, pfault_token),
> diff --git a/arch/s390/kvm/trace_gmap.h b/arch/s390/kvm/trace_gmap.h
> new file mode 100644
> index 000000000000..a3cad705021b
> --- /dev/null
> +++ b/arch/s390/kvm/trace_gmap.h
> @@ -0,0 +1,47 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#if !defined(GMAP_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define GMAP_TRACE_KVM_H
> +
> +#include <linux/tracepoint.h>
> +
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM kvm
> +#undef TRACE_INCLUDE_PATH
> +#define TRACE_INCLUDE_PATH .
> +#undef TRACE_INCLUDE_FILE
> +#define TRACE_INCLUDE_FILE trace_gmap
> +
> +#define __KVM_FIELDS \
> + __field(unsigned long, pswmask) \
> + __field(unsigned long, pswaddr)
> +#define __KVM_ASSIGN ({\
> + __entry->pswmask = vcpu->arch.sie_block->gpsw.mask; \
> + __entry->pswaddr = vcpu->arch.sie_block->gpsw.addr; \
> + })
> +#define __KVM_PRINT \
> + __entry->pswmask,\
> + __entry->pswaddr
> +
> +TRACE_EVENT(kvm_s390_major_guest_pfault,
> + TP_PROTO(struct kvm_vcpu *vcpu),
> + TP_ARGS(vcpu),
> +
> + TP_STRUCT__entry(
> + __field(int, id)
> + __KVM_FIELDS
> + ),
> +
> + TP_fast_assign(
> + __entry->id = vcpu->vcpu_id;
> + __KVM_ASSIGN
> + ),
> + TP_printk("%02d[%016lx-%016lx]: major fault, maybe applicable for pfault",
> + __entry->id,
> + __KVM_PRINT
> + )
> + );
> +
> +#endif /* GMAP_TRACE_KVM_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
More information about the linux-arm-kernel
mailing list