Re: [PATCH v6 12/33] KVM: s390: Extract gmap tracing to a separate header

Christian Borntraeger <[email protected]>
Newsgroups dev.linux.lists.kvmarm,org.infradead.lists.linux-arm-kernel,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-s390
Message-ID <[email protected]>

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 <[email protected]>

Reviewed-by: Christian Borntraeger <[email protected]>

> ---
>   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>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.