Commit 70fea301 authored by Nico Boehr's avatar Nico Boehr Committed by Janosch Frank
Browse files

KVM: s390: add tracepoint in gmap notifier



The gmap notifier is called for changes in table entries with the
notifier bit set. To diagnose performance issues, it can be useful to
see what causes certain changes in the gmap.

Hence, add a tracepoint in the gmap notifier.

Signed-off-by: default avatarNico Boehr <nrb@linux.ibm.com>
Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
Reviewed-by: default avatarClaudio Imbrenda <imbrenda@linux.ibm.com>
Acked-by: default avatarJanosch Frank <frankja@linux.ibm.com>
Signed-off-by: default avatarJanosch Frank <frankja@linux.ibm.com>
Link: https://lore.kernel.org/r/20231009093304.2555344-3-nrb@linux.ibm.com
Message-Id: <20231009093304.2555344-3-nrb@linux.ibm.com>
parent c3235e2d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -4060,6 +4060,8 @@ static void kvm_gmap_notifier(struct gmap *gmap, unsigned long start,
	unsigned long prefix;
	unsigned long i;

	trace_kvm_s390_gmap_notifier(start, end, gmap_is_shadow(gmap));

	if (gmap_is_shadow(gmap))
		return;
	if (start >= 1UL << 31)
+23 −0
Original line number Diff line number Diff line
@@ -333,6 +333,29 @@ TRACE_EVENT(kvm_s390_airq_suppressed,
		      __entry->id, __entry->isc)
	);

/*
 * Trace point for gmap notifier calls.
 */
TRACE_EVENT(kvm_s390_gmap_notifier,
	    TP_PROTO(unsigned long start, unsigned long end, unsigned int shadow),
	    TP_ARGS(start, end, shadow),

	    TP_STRUCT__entry(
		    __field(unsigned long, start)
		    __field(unsigned long, end)
		    __field(unsigned int, shadow)
		    ),

	    TP_fast_assign(
		    __entry->start = start;
		    __entry->end = end;
		    __entry->shadow = shadow;
		    ),

	    TP_printk("gmap notified (start:0x%lx end:0x%lx shadow:%d)",
		      __entry->start, __entry->end, __entry->shadow)
	);


#endif /* _TRACE_KVMS390_H */