提交 f11c3a8d 编写于 作者: A Amit Shah 提交者: Avi Kivity

KVM: Add stat counter for hypercalls

Signed-off-by: NAmit Shah <amit.shah@qumranet.com>
Signed-off-by: NAvi Kivity <avi@qumranet.com>
上级 a5f61300
...@@ -72,6 +72,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = { ...@@ -72,6 +72,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
{ "irq_window", VCPU_STAT(irq_window_exits) }, { "irq_window", VCPU_STAT(irq_window_exits) },
{ "halt_exits", VCPU_STAT(halt_exits) }, { "halt_exits", VCPU_STAT(halt_exits) },
{ "halt_wakeup", VCPU_STAT(halt_wakeup) }, { "halt_wakeup", VCPU_STAT(halt_wakeup) },
{ "hypercalls", VCPU_STAT(hypercalls) },
{ "request_irq", VCPU_STAT(request_irq_exits) }, { "request_irq", VCPU_STAT(request_irq_exits) },
{ "irq_exits", VCPU_STAT(irq_exits) }, { "irq_exits", VCPU_STAT(irq_exits) },
{ "host_state_reload", VCPU_STAT(host_state_reload) }, { "host_state_reload", VCPU_STAT(host_state_reload) },
...@@ -2405,6 +2406,7 @@ int kvm_emulate_hypercall(struct kvm_vcpu *vcpu) ...@@ -2405,6 +2406,7 @@ int kvm_emulate_hypercall(struct kvm_vcpu *vcpu)
} }
vcpu->arch.regs[VCPU_REGS_RAX] = ret; vcpu->arch.regs[VCPU_REGS_RAX] = ret;
kvm_x86_ops->decache_regs(vcpu); kvm_x86_ops->decache_regs(vcpu);
++vcpu->stat.hypercalls;
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(kvm_emulate_hypercall); EXPORT_SYMBOL_GPL(kvm_emulate_hypercall);
......
...@@ -328,6 +328,7 @@ struct kvm_vcpu_stat { ...@@ -328,6 +328,7 @@ struct kvm_vcpu_stat {
u32 fpu_reload; u32 fpu_reload;
u32 insn_emulation; u32 insn_emulation;
u32 insn_emulation_fail; u32 insn_emulation_fail;
u32 hypercalls;
}; };
struct descriptor_table { struct descriptor_table {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册