On 14/03/19 13:37, Xiaoyao Li wrote: >> Adding a RDMSR for this to each vmentry is too heavy. Since we emulate >> MSR_MISC_FEATURES_ENABLES, you can just clear the MSR on vcpu_load and >> restore it on vcpu_put. > One question here. Just clear the MSR on vcpu_load instead of writing the > emulated value to MSR? > > I think writing the emulated value to MSR is better. As I mentioned in case 3, > if hardware has cpuid faulting feature. Using hardware capability is more > efficient than emulation that the emulation solution needs VM exit to inject > #GP. You can do that too, yes. You can add it to vmx_msr_index and it will be handled like that. However, that wouldn't work on AMD (which doesn't use the kvm_define_shared_msr infrastructure) and also on hosts that don't have MSR_MISC_FEATURES_ENABLES, so my suggestion is to add this optimization as a separate patch. Paolo