diff options
author | Eric Farman <farman@linux.vnet.ibm.com> | 2015-02-12 09:06:34 -0500 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2015-03-06 07:49:34 -0500 |
commit | cd7b4b61063eb55ab7a5f96523e028c9e0914694 (patch) | |
tree | b48d1d01e9fddd46311ef08e9296dd5d8904bf08 /arch | |
parent | 403c8648cb191ef88555bfa72deaa969c0367f41 (diff) |
KVM: s390: Add new SIGP order to kernel counters
The new SIGP order Store Additional Status at Address is totally
handled by user space, but we should still record the occurrence
of this order in the kernel code.
Signed-off-by: Eric Farman <farman@linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/include/asm/kvm_host.h | 1 | ||||
-rw-r--r-- | arch/s390/kvm/kvm-s390.c | 1 | ||||
-rw-r--r-- | arch/s390/kvm/sigp.c | 3 |
3 files changed, 5 insertions, 0 deletions
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h index fb1fd39dfacd..3fe2597e4a4e 100644 --- a/arch/s390/include/asm/kvm_host.h +++ b/arch/s390/include/asm/kvm_host.h | |||
@@ -244,6 +244,7 @@ struct kvm_vcpu_stat { | |||
244 | u32 instruction_sigp_stop; | 244 | u32 instruction_sigp_stop; |
245 | u32 instruction_sigp_stop_store_status; | 245 | u32 instruction_sigp_stop_store_status; |
246 | u32 instruction_sigp_store_status; | 246 | u32 instruction_sigp_store_status; |
247 | u32 instruction_sigp_store_adtl_status; | ||
247 | u32 instruction_sigp_arch; | 248 | u32 instruction_sigp_arch; |
248 | u32 instruction_sigp_prefix; | 249 | u32 instruction_sigp_prefix; |
249 | u32 instruction_sigp_restart; | 250 | u32 instruction_sigp_restart; |
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index a8fe3ab76d68..c0ae03aa0dff 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c | |||
@@ -87,6 +87,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = { | |||
87 | { "instruction_sigp_stop", VCPU_STAT(instruction_sigp_stop) }, | 87 | { "instruction_sigp_stop", VCPU_STAT(instruction_sigp_stop) }, |
88 | { "instruction_sigp_stop_store_status", VCPU_STAT(instruction_sigp_stop_store_status) }, | 88 | { "instruction_sigp_stop_store_status", VCPU_STAT(instruction_sigp_stop_store_status) }, |
89 | { "instruction_sigp_store_status", VCPU_STAT(instruction_sigp_store_status) }, | 89 | { "instruction_sigp_store_status", VCPU_STAT(instruction_sigp_store_status) }, |
90 | { "instruction_sigp_store_adtl_status", VCPU_STAT(instruction_sigp_store_adtl_status) }, | ||
90 | { "instruction_sigp_set_arch", VCPU_STAT(instruction_sigp_arch) }, | 91 | { "instruction_sigp_set_arch", VCPU_STAT(instruction_sigp_arch) }, |
91 | { "instruction_sigp_set_prefix", VCPU_STAT(instruction_sigp_prefix) }, | 92 | { "instruction_sigp_set_prefix", VCPU_STAT(instruction_sigp_prefix) }, |
92 | { "instruction_sigp_restart", VCPU_STAT(instruction_sigp_restart) }, | 93 | { "instruction_sigp_restart", VCPU_STAT(instruction_sigp_restart) }, |
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c index 23b1e86b2122..755a7330d361 100644 --- a/arch/s390/kvm/sigp.c +++ b/arch/s390/kvm/sigp.c | |||
@@ -393,6 +393,9 @@ static int handle_sigp_order_in_user_space(struct kvm_vcpu *vcpu, u8 order_code) | |||
393 | case SIGP_STORE_STATUS_AT_ADDRESS: | 393 | case SIGP_STORE_STATUS_AT_ADDRESS: |
394 | vcpu->stat.instruction_sigp_store_status++; | 394 | vcpu->stat.instruction_sigp_store_status++; |
395 | break; | 395 | break; |
396 | case SIGP_STORE_ADDITIONAL_STATUS: | ||
397 | vcpu->stat.instruction_sigp_store_adtl_status++; | ||
398 | break; | ||
396 | case SIGP_SET_PREFIX: | 399 | case SIGP_SET_PREFIX: |
397 | vcpu->stat.instruction_sigp_prefix++; | 400 | vcpu->stat.instruction_sigp_prefix++; |
398 | break; | 401 | break; |