Re: [PATCH v2 6/6] KVM: nVMX: optimize prepare_vmcs02{,_full} for Enlightened VMCS case

From: Paolo Bonzini
Date: Wed Jul 25 2018 - 10:39:20 EST


On 25/07/2018 16:13, Vitaly Kuznetsov wrote:
> Paolo Bonzini <pbonzini@xxxxxxxxxx> writes:
>
>> On 25/07/2018 15:26, Vitaly Kuznetsov wrote:
>>
>>> The other place where we set dirty_vmcs12 is the newly introduced
>>> vmx_set_nested_state() but I think I'm going to add support for eVMCS
>>> there later and just return something like -ENOTSUPP for now. Too many
>>> people work on nested simultaneously :-)
>>
>> Hmm, I think that means you have to put the clean fields in the
>> vmx_nested struct. Then it's really easy in vmx_set_nested_state to
>> clear all the clean bits. Touching memory in vmx_set_nested_state is...
>> *puts on sunglasses* a touchy subject (see comment in kvm/queue's
>> enter_vmx_non_root_mode).
>>
>
> Not only clean fields, in case we can't touch memory in
> vmx_set_nested_state I guess we'll need to cache the whole eVMCS, just
> like we save cached_shadow_vmcs12. Anyway, let's eat the elephant one
> bite at a time :-)

You're right, but do we actually need to save the vmcs12 if eVMCS is
active? The format would be different, but the size wouldn't.

Paolo