Message ID | 20231009093304.2555344-3-nrb@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: s390: add counters for vsie performance | expand |
On Mon, 9 Oct 2023 11:32:53 +0200 Nico Boehr <nrb@linux.ibm.com> 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@linux.ibm.com> > Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> > --- > 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 */ >
On 10/9/23 11:32, Nico Boehr 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@linux.ibm.com> > Acked-by: David Hildenbrand <david@redhat.com> Acked-by: Janosch Frank <frankja@linux.ibm.com>
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 */