Op 26-08-09 12:29, Avi Kivity schreef: > Instead of calling vmx_get_segment() (which reads a whole bunch of > vmcs fields), read only the cs selector which contains the cpl. > > Signed-off-by: Avi Kivity <avi@xxxxxxxxxx> Can't we also optimise cs_ss_rpl_check()? (Please review, untested.) ------------- >8 ---------------------- 8< -------------------- Instead of calling vmx_get_segment() (which reads a whole bunch of vmcs fields), read only the cs/ss selectors which contains the rpls. Signed-off-by: Roel Kluin <roel.kluin@xxxxxxxxx> --- diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 29f9129..5d8512a 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -1932,13 +1932,8 @@ static bool ldtr_valid(struct kvm_vcpu *vcpu) static bool cs_ss_rpl_check(struct kvm_vcpu *vcpu) { - struct kvm_segment cs, ss; - - vmx_get_segment(vcpu, &cs, VCPU_SREG_CS); - vmx_get_segment(vcpu, &ss, VCPU_SREG_SS); - - return ((cs.selector & SELECTOR_RPL_MASK) == - (ss.selector & SELECTOR_RPL_MASK)); + return ((vmcs_read16(GUEST_CS_SELECTOR) & SELECTOR_RPL_MASK) == + (vmcs_read16(GUEST_SS_SELECTOR) & SELECTOR_RPL_MASK)); } /* -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html