提交 0a434bb2 编写于 作者: A Avi Kivity

KVM: VMX: Avoid reading %rip unnecessarily when handling exceptions

Avoids a VMREAD.
Signed-off-by: NAvi Kivity <avi@redhat.com>
上级 ae8cc059
......@@ -3170,7 +3170,6 @@ static int handle_exception(struct kvm_vcpu *vcpu)
}
error_code = 0;
rip = kvm_rip_read(vcpu);
if (intr_info & INTR_INFO_DELIVER_CODE_MASK)
error_code = vmcs_read32(VM_EXIT_INTR_ERROR_CODE);
if (is_page_fault(intr_info)) {
......@@ -3217,6 +3216,7 @@ static int handle_exception(struct kvm_vcpu *vcpu)
vmx->vcpu.arch.event_exit_inst_len =
vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
kvm_run->exit_reason = KVM_EXIT_DEBUG;
rip = kvm_rip_read(vcpu);
kvm_run->debug.arch.pc = vmcs_readl(GUEST_CS_BASE) + rip;
kvm_run->debug.arch.exception = ex_no;
break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册