Re: [RFC 0/6] Enlightened VMCS support for KVM on Hyper-V

From: David Hildenbrand
Date: Tue Jan 16 2018 - 08:39:41 EST


On 16.01.2018 13:05, Vitaly Kuznetsov wrote:
> Wanpeng Li <kernellwp@xxxxxxxxx> writes:
>
>> 2018-01-16 1:30 GMT+08:00 Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>:
>>> Early RFC. I'll refer to this patchset in my DevConf/FOSDEM
>>> presentations.
>>>
>>> When running nested KVM on Hyper-V it's possible to use so called
>>> 'Enlightened VMCS' and do normal memory reads/writes instead of
>>> doing VMWRITE/VMREAD instructions. Tests show that this speeds up
>>> tight CPUID loop almost 3 times:
>>>
>>> Before:
>>> ./cpuid_tight
>>> 20459
>>>
>>> After:
>>> ./cpuid_tight
>>> 7698
>>
>> Maybe you can apply a similar idea to kvm nested on kvm.
>>
>
> Yes we can. Basically, that would mean directly accessing 'struct
> vmcs12' from L1 hypervisor.
>

Haven't looked into the details, but we have to watch out for other
VCPUs trying to modify that vmcs12.

Basically because other VCPUs could try to modify values in vmcs12 while
we are currently building vmcs02. Nasty races could result in us copying
stuff (probably unchecked) into vmcs02 and therefore running something
that was not intended.

If this is not possible with the current design, perfect :)

--

Thanks,

David / dhildenb