On Aug 21, 2014, at 3:31 PM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > Il 21/08/2014 14:19, Nadav Amit ha scritto: >>>> >>>> He meant they are passed as zero in the WRMSR but actually they're not >>>> zeroed. They're set to the value that is passed to kvm_set_shared_msr, >>>> and this value is massaged elsewhere to do mix guest and host bugs. See >>>> update_transition_efer. >>>> >>>> So I'm removing this patch, it's wrong. >> I stand corrected - they are massaged in update_transition_efer. >> >> The question is whether this massaging is specific to EFER, or a general one. >> Currently update_transition_efer does: >> >> guest_efer &= ~ignore_bits; >> guest_efer |= host_efer & ignore_bits; >> vmx->guest_msrs[efer_offset].data = guest_efer; >> >> I think this is a general behaviour - taking the masked bits from the >> host, and the rest from the guest. Therefore, it makes sense to put >> this logic into kvm_set_shared_msr. I understand the EFER is >> currently the only MSR which is only partially masked. Nonetheless, >> kvm_set_shared_msr can be useful for other purposes. > > Yes, I agree. But right now it's not particularly interesting to do it: > you're not using the functionality in e.g. the MISC_ENABLE patch, so > it's just a matter of defining the semantics of the .data field, basically. No problem. Once I release a patch that needs this functionality, I’ll resubmit this one (while updating update_transition_efer). Thanks, Nadav
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail