KVM: s390: add exit io request stats and simplify code
We want to count IO exit requests in kvm_stat. At the same time we can get rid of the handle_noop function. Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
Родитель
5c2b4d5b78
Коммит
a5e0acea9e
|
@ -294,6 +294,7 @@ struct kvm_vcpu_stat {
|
||||||
u64 exit_userspace;
|
u64 exit_userspace;
|
||||||
u64 exit_null;
|
u64 exit_null;
|
||||||
u64 exit_external_request;
|
u64 exit_external_request;
|
||||||
|
u64 exit_io_request;
|
||||||
u64 exit_external_interrupt;
|
u64 exit_external_interrupt;
|
||||||
u64 exit_stop_request;
|
u64 exit_stop_request;
|
||||||
u64 exit_validity;
|
u64 exit_validity;
|
||||||
|
|
|
@ -50,18 +50,6 @@ u8 kvm_s390_get_ilen(struct kvm_vcpu *vcpu)
|
||||||
return ilen;
|
return ilen;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_noop(struct kvm_vcpu *vcpu)
|
|
||||||
{
|
|
||||||
switch (vcpu->arch.sie_block->icptcode) {
|
|
||||||
case 0x10:
|
|
||||||
vcpu->stat.exit_external_request++;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break; /* nothing */
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int handle_stop(struct kvm_vcpu *vcpu)
|
static int handle_stop(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
|
struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
|
||||||
|
@ -465,8 +453,11 @@ int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
switch (vcpu->arch.sie_block->icptcode) {
|
switch (vcpu->arch.sie_block->icptcode) {
|
||||||
case ICPT_EXTREQ:
|
case ICPT_EXTREQ:
|
||||||
|
vcpu->stat.exit_external_request++;
|
||||||
|
return 0;
|
||||||
case ICPT_IOREQ:
|
case ICPT_IOREQ:
|
||||||
return handle_noop(vcpu);
|
vcpu->stat.exit_io_request++;
|
||||||
|
return 0;
|
||||||
case ICPT_INST:
|
case ICPT_INST:
|
||||||
rc = handle_instruction(vcpu);
|
rc = handle_instruction(vcpu);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -64,6 +64,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
|
||||||
{ "exit_validity", VCPU_STAT(exit_validity) },
|
{ "exit_validity", VCPU_STAT(exit_validity) },
|
||||||
{ "exit_stop_request", VCPU_STAT(exit_stop_request) },
|
{ "exit_stop_request", VCPU_STAT(exit_stop_request) },
|
||||||
{ "exit_external_request", VCPU_STAT(exit_external_request) },
|
{ "exit_external_request", VCPU_STAT(exit_external_request) },
|
||||||
|
{ "exit_io_request", VCPU_STAT(exit_io_request) },
|
||||||
{ "exit_external_interrupt", VCPU_STAT(exit_external_interrupt) },
|
{ "exit_external_interrupt", VCPU_STAT(exit_external_interrupt) },
|
||||||
{ "exit_instruction", VCPU_STAT(exit_instruction) },
|
{ "exit_instruction", VCPU_STAT(exit_instruction) },
|
||||||
{ "exit_pei", VCPU_STAT(exit_pei) },
|
{ "exit_pei", VCPU_STAT(exit_pei) },
|
||||||
|
|
Загрузка…
Ссылка в новой задаче