On Mon, 9 Oct 2023 11:32:53 +0200 Nico Boehr <nrb@xxxxxxxxxxxxx> wrote: > 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: Nico Boehr <nrb@xxxxxxxxxxxxx> > Acked-by: David Hildenbrand <david@xxxxxxxxxx> Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > --- > arch/s390/kvm/kvm-s390.c | 2 ++ > arch/s390/kvm/trace-s390.h | 23 +++++++++++++++++++++++ > 2 files changed, 25 insertions(+) > > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c > index b42493110d76..11676b81e6bf 100644 > --- a/arch/s390/kvm/kvm-s390.c > +++ b/arch/s390/kvm/kvm-s390.c > @@ -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) > diff --git a/arch/s390/kvm/trace-s390.h b/arch/s390/kvm/trace-s390.h > index 6f0209d45164..9ac92dbf680d 100644 > --- a/arch/s390/kvm/trace-s390.h > +++ b/arch/s390/kvm/trace-s390.h > @@ -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 */ >