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

From: Vitaly Kuznetsov
Date: Tue Jan 16 2018 - 08:59:08 EST


David Hildenbrand <david@xxxxxxxxxx> writes:

> 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.
>

I don't think we share VMCS among vCPUs, do we?

--
Vitaly