diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2015-07-20 04:33:03 -0400 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2015-07-29 05:02:33 -0400 |
commit | ed2afcfa13e9c44340780123a07350e14bacd4b5 (patch) | |
tree | ff196f6874512f09adee187734501b7055041596 /arch/s390/kvm | |
parent | 71db35d26dbacd3d165522022ecb757ddc1529ea (diff) |
KVM: s390: remove "from (user|kernel)" from irq injection messages
The "from user"/"from kernel" part of the log/trace messages is not
always correct anymore and therefore not really helpful.
Let's remove that part from the log + trace messages. For program
interrupts, we can now move the logging/tracing part into the real
injection function, as already done for the other injection functions.
Reviewed-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
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.c | 33 | ||||
-rw-r--r-- | arch/s390/kvm/trace-s390.h | 11 |
2 files changed, 17 insertions, 27 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index 8b3a1178cb0b..a5acaccca753 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c | |||
@@ -967,6 +967,10 @@ static int __inject_prog(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) | |||
967 | { | 967 | { |
968 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; | 968 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; |
969 | 969 | ||
970 | VCPU_EVENT(vcpu, 3, "inject: program irq code 0x%x", irq->u.pgm.code); | ||
971 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_PROGRAM_INT, | ||
972 | irq->u.pgm.code, 0); | ||
973 | |||
970 | li->irq.pgm = irq->u.pgm; | 974 | li->irq.pgm = irq->u.pgm; |
971 | set_bit(IRQ_PEND_PROG, &li->pending_irqs); | 975 | set_bit(IRQ_PEND_PROG, &li->pending_irqs); |
972 | return 0; | 976 | return 0; |
@@ -977,9 +981,6 @@ int kvm_s390_inject_program_int(struct kvm_vcpu *vcpu, u16 code) | |||
977 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; | 981 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; |
978 | struct kvm_s390_irq irq; | 982 | struct kvm_s390_irq irq; |
979 | 983 | ||
980 | VCPU_EVENT(vcpu, 3, "inject: program check %d (from kernel)", code); | ||
981 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_PROGRAM_INT, code, | ||
982 | 0, 1); | ||
983 | spin_lock(&li->lock); | 984 | spin_lock(&li->lock); |
984 | irq.u.pgm.code = code; | 985 | irq.u.pgm.code = code; |
985 | __inject_prog(vcpu, &irq); | 986 | __inject_prog(vcpu, &irq); |
@@ -995,10 +996,6 @@ int kvm_s390_inject_prog_irq(struct kvm_vcpu *vcpu, | |||
995 | struct kvm_s390_irq irq; | 996 | struct kvm_s390_irq irq; |
996 | int rc; | 997 | int rc; |
997 | 998 | ||
998 | VCPU_EVENT(vcpu, 3, "inject: prog irq %d (from kernel)", | ||
999 | pgm_info->code); | ||
1000 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_PROGRAM_INT, | ||
1001 | pgm_info->code, 0, 1); | ||
1002 | spin_lock(&li->lock); | 999 | spin_lock(&li->lock); |
1003 | irq.u.pgm = *pgm_info; | 1000 | irq.u.pgm = *pgm_info; |
1004 | rc = __inject_prog(vcpu, &irq); | 1001 | rc = __inject_prog(vcpu, &irq); |
@@ -1015,7 +1012,7 @@ static int __inject_pfault_init(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) | |||
1015 | irq->u.ext.ext_params, irq->u.ext.ext_params2); | 1012 | irq->u.ext.ext_params, irq->u.ext.ext_params2); |
1016 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_PFAULT_INIT, | 1013 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_PFAULT_INIT, |
1017 | irq->u.ext.ext_params, | 1014 | irq->u.ext.ext_params, |
1018 | irq->u.ext.ext_params2, 2); | 1015 | irq->u.ext.ext_params2); |
1019 | 1016 | ||
1020 | li->irq.ext = irq->u.ext; | 1017 | li->irq.ext = irq->u.ext; |
1021 | set_bit(IRQ_PEND_PFAULT_INIT, &li->pending_irqs); | 1018 | set_bit(IRQ_PEND_PFAULT_INIT, &li->pending_irqs); |
@@ -1047,7 +1044,7 @@ static int __inject_extcall(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) | |||
1047 | VCPU_EVENT(vcpu, 3, "inject: external call source-cpu:%u", | 1044 | VCPU_EVENT(vcpu, 3, "inject: external call source-cpu:%u", |
1048 | src_id); | 1045 | src_id); |
1049 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_EXTERNAL_CALL, | 1046 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_EXTERNAL_CALL, |
1050 | src_id, 0, 2); | 1047 | src_id, 0); |
1051 | 1048 | ||
1052 | /* sending vcpu invalid */ | 1049 | /* sending vcpu invalid */ |
1053 | if (src_id >= KVM_MAX_VCPUS || | 1050 | if (src_id >= KVM_MAX_VCPUS || |
@@ -1069,10 +1066,10 @@ static int __inject_set_prefix(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) | |||
1069 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; | 1066 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; |
1070 | struct kvm_s390_prefix_info *prefix = &li->irq.prefix; | 1067 | struct kvm_s390_prefix_info *prefix = &li->irq.prefix; |
1071 | 1068 | ||
1072 | VCPU_EVENT(vcpu, 3, "inject: set prefix to %x (from user)", | 1069 | VCPU_EVENT(vcpu, 3, "inject: set prefix to %x", |
1073 | irq->u.prefix.address); | 1070 | irq->u.prefix.address); |
1074 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_SIGP_SET_PREFIX, | 1071 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_SIGP_SET_PREFIX, |
1075 | irq->u.prefix.address, 0, 2); | 1072 | irq->u.prefix.address, 0); |
1076 | 1073 | ||
1077 | if (!is_vcpu_stopped(vcpu)) | 1074 | if (!is_vcpu_stopped(vcpu)) |
1078 | return -EBUSY; | 1075 | return -EBUSY; |
@@ -1089,7 +1086,7 @@ static int __inject_sigp_stop(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) | |||
1089 | struct kvm_s390_stop_info *stop = &li->irq.stop; | 1086 | struct kvm_s390_stop_info *stop = &li->irq.stop; |
1090 | int rc = 0; | 1087 | int rc = 0; |
1091 | 1088 | ||
1092 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_SIGP_STOP, 0, 0, 2); | 1089 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_SIGP_STOP, 0, 0); |
1093 | 1090 | ||
1094 | if (irq->u.stop.flags & ~KVM_S390_STOP_SUPP_FLAGS) | 1091 | if (irq->u.stop.flags & ~KVM_S390_STOP_SUPP_FLAGS) |
1095 | return -EINVAL; | 1092 | return -EINVAL; |
@@ -1114,7 +1111,7 @@ static int __inject_sigp_restart(struct kvm_vcpu *vcpu, | |||
1114 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; | 1111 | struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; |
1115 | 1112 | ||
1116 | VCPU_EVENT(vcpu, 3, "inject: restart type %llx", irq->type); | 1113 | VCPU_EVENT(vcpu, 3, "inject: restart type %llx", irq->type); |
1117 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_RESTART, 0, 0, 2); | 1114 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_RESTART, 0, 0); |
1118 | 1115 | ||
1119 | set_bit(IRQ_PEND_RESTART, &li->pending_irqs); | 1116 | set_bit(IRQ_PEND_RESTART, &li->pending_irqs); |
1120 | return 0; | 1117 | return 0; |
@@ -1128,7 +1125,7 @@ static int __inject_sigp_emergency(struct kvm_vcpu *vcpu, | |||
1128 | VCPU_EVENT(vcpu, 3, "inject: emergency %u\n", | 1125 | VCPU_EVENT(vcpu, 3, "inject: emergency %u\n", |
1129 | irq->u.emerg.code); | 1126 | irq->u.emerg.code); |
1130 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_EMERGENCY, | 1127 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_EMERGENCY, |
1131 | irq->u.emerg.code, 0, 2); | 1128 | irq->u.emerg.code, 0); |
1132 | 1129 | ||
1133 | set_bit(irq->u.emerg.code, li->sigp_emerg_pending); | 1130 | set_bit(irq->u.emerg.code, li->sigp_emerg_pending); |
1134 | set_bit(IRQ_PEND_EXT_EMERGENCY, &li->pending_irqs); | 1131 | set_bit(IRQ_PEND_EXT_EMERGENCY, &li->pending_irqs); |
@@ -1144,7 +1141,7 @@ static int __inject_mchk(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) | |||
1144 | VCPU_EVENT(vcpu, 5, "inject: machine check parm64:%llx", | 1141 | VCPU_EVENT(vcpu, 5, "inject: machine check parm64:%llx", |
1145 | irq->u.mchk.mcic); | 1142 | irq->u.mchk.mcic); |
1146 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_MCHK, 0, | 1143 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_MCHK, 0, |
1147 | irq->u.mchk.mcic, 2); | 1144 | irq->u.mchk.mcic); |
1148 | 1145 | ||
1149 | /* | 1146 | /* |
1150 | * Because repressible machine checks can be indicated along with | 1147 | * Because repressible machine checks can be indicated along with |
@@ -1173,7 +1170,7 @@ static int __inject_ckc(struct kvm_vcpu *vcpu) | |||
1173 | 1170 | ||
1174 | VCPU_EVENT(vcpu, 3, "inject: type %x", KVM_S390_INT_CLOCK_COMP); | 1171 | VCPU_EVENT(vcpu, 3, "inject: type %x", KVM_S390_INT_CLOCK_COMP); |
1175 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_CLOCK_COMP, | 1172 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_CLOCK_COMP, |
1176 | 0, 0, 2); | 1173 | 0, 0); |
1177 | 1174 | ||
1178 | set_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs); | 1175 | set_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs); |
1179 | atomic_set_mask(CPUSTAT_EXT_INT, li->cpuflags); | 1176 | atomic_set_mask(CPUSTAT_EXT_INT, li->cpuflags); |
@@ -1186,7 +1183,7 @@ static int __inject_cpu_timer(struct kvm_vcpu *vcpu) | |||
1186 | 1183 | ||
1187 | VCPU_EVENT(vcpu, 3, "inject: type %x", KVM_S390_INT_CPU_TIMER); | 1184 | VCPU_EVENT(vcpu, 3, "inject: type %x", KVM_S390_INT_CPU_TIMER); |
1188 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_CPU_TIMER, | 1185 | trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_CPU_TIMER, |
1189 | 0, 0, 2); | 1186 | 0, 0); |
1190 | 1187 | ||
1191 | set_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs); | 1188 | set_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs); |
1192 | atomic_set_mask(CPUSTAT_EXT_INT, li->cpuflags); | 1189 | atomic_set_mask(CPUSTAT_EXT_INT, li->cpuflags); |
@@ -1534,8 +1531,6 @@ static int do_inject_vcpu(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq) | |||
1534 | 1531 | ||
1535 | switch (irq->type) { | 1532 | switch (irq->type) { |
1536 | case KVM_S390_PROGRAM_INT: | 1533 | case KVM_S390_PROGRAM_INT: |
1537 | VCPU_EVENT(vcpu, 3, "inject: program check %d (from user)", | ||
1538 | irq->u.pgm.code); | ||
1539 | rc = __inject_prog(vcpu, irq); | 1534 | rc = __inject_prog(vcpu, irq); |
1540 | break; | 1535 | break; |
1541 | case KVM_S390_SIGP_SET_PREFIX: | 1536 | case KVM_S390_SIGP_SET_PREFIX: |
diff --git a/arch/s390/kvm/trace-s390.h b/arch/s390/kvm/trace-s390.h index 3208d33a48cb..4f373c50c264 100644 --- a/arch/s390/kvm/trace-s390.h +++ b/arch/s390/kvm/trace-s390.h | |||
@@ -137,16 +137,14 @@ TRACE_EVENT(kvm_s390_inject_vm, | |||
137 | ); | 137 | ); |
138 | 138 | ||
139 | TRACE_EVENT(kvm_s390_inject_vcpu, | 139 | TRACE_EVENT(kvm_s390_inject_vcpu, |
140 | TP_PROTO(unsigned int id, __u64 type, __u32 parm, __u64 parm64, \ | 140 | TP_PROTO(unsigned int id, __u64 type, __u32 parm, __u64 parm64), |
141 | int who), | 141 | TP_ARGS(id, type, parm, parm64), |
142 | TP_ARGS(id, type, parm, parm64, who), | ||
143 | 142 | ||
144 | TP_STRUCT__entry( | 143 | TP_STRUCT__entry( |
145 | __field(int, id) | 144 | __field(int, id) |
146 | __field(__u32, inttype) | 145 | __field(__u32, inttype) |
147 | __field(__u32, parm) | 146 | __field(__u32, parm) |
148 | __field(__u64, parm64) | 147 | __field(__u64, parm64) |
149 | __field(int, who) | ||
150 | ), | 148 | ), |
151 | 149 | ||
152 | TP_fast_assign( | 150 | TP_fast_assign( |
@@ -154,12 +152,9 @@ TRACE_EVENT(kvm_s390_inject_vcpu, | |||
154 | __entry->inttype = type & 0x00000000ffffffff; | 152 | __entry->inttype = type & 0x00000000ffffffff; |
155 | __entry->parm = parm; | 153 | __entry->parm = parm; |
156 | __entry->parm64 = parm64; | 154 | __entry->parm64 = parm64; |
157 | __entry->who = who; | ||
158 | ), | 155 | ), |
159 | 156 | ||
160 | TP_printk("inject%s (vcpu %d): type:%x (%s) parm:%x parm64:%llx", | 157 | TP_printk("inject (vcpu %d): type:%x (%s) parm:%x parm64:%llx", |
161 | (__entry->who == 1) ? " (from kernel)" : | ||
162 | (__entry->who == 2) ? " (from user)" : "", | ||
163 | __entry->id, __entry->inttype, | 158 | __entry->id, __entry->inttype, |
164 | __print_symbolic(__entry->inttype, kvm_s390_int_type), | 159 | __print_symbolic(__entry->inttype, kvm_s390_int_type), |
165 | __entry->parm, __entry->parm64) | 160 | __entry->parm, __entry->parm64) |