aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm
diff options
context:
space:
mode:
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>2014-11-21 07:45:08 -0500
committerChristian Borntraeger <borntraeger@de.ibm.com>2015-07-29 05:02:34 -0400
commita37281b63681015b12c3b7322e6bd681c0ea1ef4 (patch)
tree157c2e0becd99e25eba60c605c4931043d6d4c6f /arch/s390/kvm
parent3f24ba150cb6be11222ced427f2997c33fbd665e (diff)
KVM: s390: more irq names for trace events
This patch adds names for missing irq types to the trace events. In order to identify adapter irqs, the define is moved from interrupt.c to the other basic irq defines in uapi/linux/kvm.h. Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm')
-rw-r--r--arch/s390/kvm/interrupt.c3
-rw-r--r--arch/s390/kvm/trace-s390.h22
2 files changed, 17 insertions, 8 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 6c98fb61d154..a5781404b83f 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -30,7 +30,6 @@
30#define IOINT_SCHID_MASK 0x0000ffff 30#define IOINT_SCHID_MASK 0x0000ffff
31#define IOINT_SSID_MASK 0x00030000 31#define IOINT_SSID_MASK 0x00030000
32#define IOINT_CSSID_MASK 0x03fc0000 32#define IOINT_CSSID_MASK 0x03fc0000
33#define IOINT_AI_MASK 0x04000000
34#define PFAULT_INIT 0x0600 33#define PFAULT_INIT 0x0600
35#define PFAULT_DONE 0x0680 34#define PFAULT_DONE 0x0680
36#define VIRTIO_PARAM 0x0d00 35#define VIRTIO_PARAM 0x0d00
@@ -1447,7 +1446,7 @@ int kvm_s390_inject_vm(struct kvm *kvm,
1447 inti->mchk.mcic = s390int->parm64; 1446 inti->mchk.mcic = s390int->parm64;
1448 break; 1447 break;
1449 case KVM_S390_INT_IO_MIN...KVM_S390_INT_IO_MAX: 1448 case KVM_S390_INT_IO_MIN...KVM_S390_INT_IO_MAX:
1450 if (inti->type & IOINT_AI_MASK) 1449 if (inti->type & KVM_S390_INT_IO_AI_MASK)
1451 VM_EVENT(kvm, 5, "%s", "inject: I/O (AI)"); 1450 VM_EVENT(kvm, 5, "%s", "inject: I/O (AI)");
1452 else 1451 else
1453 VM_EVENT(kvm, 5, "inject: I/O css %x ss %x schid %04x", 1452 VM_EVENT(kvm, 5, "inject: I/O css %x ss %x schid %04x",
diff --git a/arch/s390/kvm/trace-s390.h b/arch/s390/kvm/trace-s390.h
index 4f373c50c264..cc1d6c68356f 100644
--- a/arch/s390/kvm/trace-s390.h
+++ b/arch/s390/kvm/trace-s390.h
@@ -105,11 +105,22 @@ TRACE_EVENT(kvm_s390_vcpu_start_stop,
105 {KVM_S390_PROGRAM_INT, "program interrupt"}, \ 105 {KVM_S390_PROGRAM_INT, "program interrupt"}, \
106 {KVM_S390_SIGP_SET_PREFIX, "sigp set prefix"}, \ 106 {KVM_S390_SIGP_SET_PREFIX, "sigp set prefix"}, \
107 {KVM_S390_RESTART, "sigp restart"}, \ 107 {KVM_S390_RESTART, "sigp restart"}, \
108 {KVM_S390_INT_PFAULT_INIT, "pfault init"}, \
109 {KVM_S390_INT_PFAULT_DONE, "pfault done"}, \
110 {KVM_S390_MCHK, "machine check"}, \
111 {KVM_S390_INT_CLOCK_COMP, "clock comparator"}, \
112 {KVM_S390_INT_CPU_TIMER, "cpu timer"}, \
108 {KVM_S390_INT_VIRTIO, "virtio interrupt"}, \ 113 {KVM_S390_INT_VIRTIO, "virtio interrupt"}, \
109 {KVM_S390_INT_SERVICE, "sclp interrupt"}, \ 114 {KVM_S390_INT_SERVICE, "sclp interrupt"}, \
110 {KVM_S390_INT_EMERGENCY, "sigp emergency"}, \ 115 {KVM_S390_INT_EMERGENCY, "sigp emergency"}, \
111 {KVM_S390_INT_EXTERNAL_CALL, "sigp ext call"} 116 {KVM_S390_INT_EXTERNAL_CALL, "sigp ext call"}
112 117
118#define get_irq_name(__type) \
119 (__type > KVM_S390_INT_IO_MAX ? \
120 __print_symbolic(__type, kvm_s390_int_type) : \
121 (__type & KVM_S390_INT_IO_AI_MASK ? \
122 "adapter I/O interrupt" : "subchannel I/O interrupt"))
123
113TRACE_EVENT(kvm_s390_inject_vm, 124TRACE_EVENT(kvm_s390_inject_vm,
114 TP_PROTO(__u64 type, __u32 parm, __u64 parm64, int who), 125 TP_PROTO(__u64 type, __u32 parm, __u64 parm64, int who),
115 TP_ARGS(type, parm, parm64, who), 126 TP_ARGS(type, parm, parm64, who),
@@ -131,8 +142,7 @@ TRACE_EVENT(kvm_s390_inject_vm,
131 TP_printk("inject%s: type:%x (%s) parm:%x parm64:%llx", 142 TP_printk("inject%s: type:%x (%s) parm:%x parm64:%llx",
132 (__entry->who == 1) ? " (from kernel)" : 143 (__entry->who == 1) ? " (from kernel)" :
133 (__entry->who == 2) ? " (from user)" : "", 144 (__entry->who == 2) ? " (from user)" : "",
134 __entry->inttype, 145 __entry->inttype, get_irq_name(__entry->inttype),
135 __print_symbolic(__entry->inttype, kvm_s390_int_type),
136 __entry->parm, __entry->parm64) 146 __entry->parm, __entry->parm64)
137 ); 147 );
138 148
@@ -156,8 +166,8 @@ TRACE_EVENT(kvm_s390_inject_vcpu,
156 166
157 TP_printk("inject (vcpu %d): type:%x (%s) parm:%x parm64:%llx", 167 TP_printk("inject (vcpu %d): type:%x (%s) parm:%x parm64:%llx",
158 __entry->id, __entry->inttype, 168 __entry->id, __entry->inttype,
159 __print_symbolic(__entry->inttype, kvm_s390_int_type), 169 get_irq_name(__entry->inttype), __entry->parm,
160 __entry->parm, __entry->parm64) 170 __entry->parm64)
161 ); 171 );
162 172
163/* 173/*
@@ -184,8 +194,8 @@ TRACE_EVENT(kvm_s390_deliver_interrupt,
184 TP_printk("deliver interrupt (vcpu %d): type:%x (%s) " \ 194 TP_printk("deliver interrupt (vcpu %d): type:%x (%s) " \
185 "data:%08llx %016llx", 195 "data:%08llx %016llx",
186 __entry->id, __entry->inttype, 196 __entry->id, __entry->inttype,
187 __print_symbolic(__entry->inttype, kvm_s390_int_type), 197 get_irq_name(__entry->inttype), __entry->data0,
188 __entry->data0, __entry->data1) 198 __entry->data1)
189 ); 199 );
190 200
191/* 201/*