On Thu, 8 Mar 2018 13:30:09 +0000 Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote: > For testing the exitless interrupt support it turned out useful to > have separate counters for inject and delivery of I/O interrupt. > While at it do the same for all interrupt types. For timer > related interrupts (clock comparator and cpu timer) we even had > no delivery counters. Fix this as well. On this way some counters > are being renamed to have a similar name. Seems reasonable if you rely on the counters to have them cover everything. Some meta-questions, though: - A lot of the places are also covered by trace events and/or dbf events. These can add more information (like payload etc.), but are not as lightweight as the counters. Does it also make sense to fill in any gaps in that infrastructure? Or aren't they used as much? (I haven't done much kvm debugging recently, so I'm probably not the person to judge their usefulness.) (more below...) > > Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > --- > arch/s390/include/asm/kvm_host.h | 25 +++++++++++++++++++++---- > arch/s390/kvm/interrupt.c | 25 +++++++++++++++++++++---- > arch/s390/kvm/kvm-s390.c | 24 +++++++++++++++++++++--- > 3 files changed, 63 insertions(+), 11 deletions(-) (...) > @@ -1328,6 +1332,7 @@ static int __inject_extcall(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) > struct kvm_s390_extcall_info *extcall = &li->irq.extcall; > uint16_t src_id = irq->u.extcall.code; > > + vcpu->stat.inject_external_call++; > VCPU_EVENT(vcpu, 4, "inject: external call source-cpu:%u", > src_id); > trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_EXTERNAL_CALL, Some of the injection functions (like this one) can return an error. There does not seem to be any tracing of those failures, though. Would it be helpful for at least some cases, or is that overkill? Patch looks good to me, so Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>