diff options
author | Christian Borntraeger <borntraeger@de.ibm.com> | 2015-07-10 09:27:20 -0400 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2015-07-29 05:02:33 -0400 |
commit | 71db35d26dbacd3d165522022ecb757ddc1529ea (patch) | |
tree | 8004e64773cf8cd1e340ab166e597a80ff2d530c /arch/s390/kvm | |
parent | 15e8b5daabe37b56e8117957ea1a10e99d380ac4 (diff) |
KVM: s390: VCPU_EVENT cleanup for prefix changes
SPX (SET PREFIX) and SIGP (Set prefix) can change the prefix
register of a CPU. As sigp set prefix may be handled in user
space (KVM_CAP_S390_USER_SIGP), we would not log the changes
triggered via SIGP in that case. Let's have just one VCPU_EVENT
at the central location that tracks prefix changes.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Diffstat (limited to 'arch/s390/kvm')
-rw-r--r-- | arch/s390/kvm/interrupt.c | 1 | ||||
-rw-r--r-- | arch/s390/kvm/kvm-s390.h | 2 | ||||
-rw-r--r-- | arch/s390/kvm/priv.c | 2 | ||||
-rw-r--r-- | arch/s390/kvm/sigp.c | 3 |
4 files changed, 2 insertions, 6 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index c98d89708e99..8b3a1178cb0b 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c | |||
@@ -427,7 +427,6 @@ static int __must_check __deliver_set_prefix(struct kvm_vcpu *vcpu) | |||
427 | clear_bit(IRQ_PEND_SET_PREFIX, &li->pending_irqs); | 427 | clear_bit(IRQ_PEND_SET_PREFIX, &li->pending_irqs); |
428 | spin_unlock(&li->lock); | 428 | spin_unlock(&li->lock); |
429 | 429 | ||
430 | VCPU_EVENT(vcpu, 4, "interrupt: set prefix to %x", prefix.address); | ||
431 | vcpu->stat.deliver_prefix_signal++; | 430 | vcpu->stat.deliver_prefix_signal++; |
432 | trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, | 431 | trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, |
433 | KVM_S390_SIGP_SET_PREFIX, | 432 | KVM_S390_SIGP_SET_PREFIX, |
diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h index 81de2af28c9c..0ee5db11598b 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h | |||
@@ -65,6 +65,8 @@ static inline u32 kvm_s390_get_prefix(struct kvm_vcpu *vcpu) | |||
65 | 65 | ||
66 | static inline void kvm_s390_set_prefix(struct kvm_vcpu *vcpu, u32 prefix) | 66 | static inline void kvm_s390_set_prefix(struct kvm_vcpu *vcpu, u32 prefix) |
67 | { | 67 | { |
68 | VCPU_EVENT(vcpu, 3, "set prefix of cpu %03u to 0x%x", vcpu->vcpu_id, | ||
69 | prefix); | ||
68 | vcpu->arch.sie_block->prefix = prefix >> GUEST_PREFIX_SHIFT; | 70 | vcpu->arch.sie_block->prefix = prefix >> GUEST_PREFIX_SHIFT; |
69 | kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); | 71 | kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); |
70 | kvm_make_request(KVM_REQ_MMU_RELOAD, vcpu); | 72 | kvm_make_request(KVM_REQ_MMU_RELOAD, vcpu); |
diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c index 1b95d2934472..2658a7919c5e 100644 --- a/arch/s390/kvm/priv.c +++ b/arch/s390/kvm/priv.c | |||
@@ -98,8 +98,6 @@ static int handle_set_prefix(struct kvm_vcpu *vcpu) | |||
98 | return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); | 98 | return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); |
99 | 99 | ||
100 | kvm_s390_set_prefix(vcpu, address); | 100 | kvm_s390_set_prefix(vcpu, address); |
101 | |||
102 | VCPU_EVENT(vcpu, 5, "setting prefix to %x", address); | ||
103 | trace_kvm_s390_handle_prefix(vcpu, 1, address); | 101 | trace_kvm_s390_handle_prefix(vcpu, 1, address); |
104 | return 0; | 102 | return 0; |
105 | } | 103 | } |
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c index 72e58bd2bee7..5318ea3ad1d3 100644 --- a/arch/s390/kvm/sigp.c +++ b/arch/s390/kvm/sigp.c | |||
@@ -205,9 +205,6 @@ static int __sigp_set_prefix(struct kvm_vcpu *vcpu, struct kvm_vcpu *dst_vcpu, | |||
205 | *reg &= 0xffffffff00000000UL; | 205 | *reg &= 0xffffffff00000000UL; |
206 | *reg |= SIGP_STATUS_INCORRECT_STATE; | 206 | *reg |= SIGP_STATUS_INCORRECT_STATE; |
207 | return SIGP_CC_STATUS_STORED; | 207 | return SIGP_CC_STATUS_STORED; |
208 | } else if (rc == 0) { | ||
209 | VCPU_EVENT(vcpu, 4, "set prefix of cpu %02x to %x", | ||
210 | dst_vcpu->vcpu_id, irq.u.prefix.address); | ||
211 | } | 208 | } |
212 | 209 | ||
213 | return rc; | 210 | return rc; |