mirror of https://gitee.com/openkylin/linux.git
KVM: SVM: Move guest register save out of interrupts disabled section
Saving guest registers is just a memory copy, and does not need to be in the critical section. Move outside the critical section to improve latency a bit. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
d4c90b0043
commit
13c34e073b
|
@ -3412,11 +3412,6 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
vcpu->arch.cr2 = svm->vmcb->save.cr2;
|
|
||||||
vcpu->arch.regs[VCPU_REGS_RAX] = svm->vmcb->save.rax;
|
|
||||||
vcpu->arch.regs[VCPU_REGS_RSP] = svm->vmcb->save.rsp;
|
|
||||||
vcpu->arch.regs[VCPU_REGS_RIP] = svm->vmcb->save.rip;
|
|
||||||
|
|
||||||
load_host_msrs(vcpu);
|
load_host_msrs(vcpu);
|
||||||
kvm_load_ldt(ldt_selector);
|
kvm_load_ldt(ldt_selector);
|
||||||
loadsegment(fs, fs_selector);
|
loadsegment(fs, fs_selector);
|
||||||
|
@ -3433,6 +3428,11 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
stgi();
|
stgi();
|
||||||
|
|
||||||
|
vcpu->arch.cr2 = svm->vmcb->save.cr2;
|
||||||
|
vcpu->arch.regs[VCPU_REGS_RAX] = svm->vmcb->save.rax;
|
||||||
|
vcpu->arch.regs[VCPU_REGS_RSP] = svm->vmcb->save.rsp;
|
||||||
|
vcpu->arch.regs[VCPU_REGS_RIP] = svm->vmcb->save.rip;
|
||||||
|
|
||||||
sync_cr8_to_lapic(vcpu);
|
sync_cr8_to_lapic(vcpu);
|
||||||
|
|
||||||
svm->next_rip = 0;
|
svm->next_rip = 0;
|
||||||
|
|
Loading…
Reference in New Issue