Messages in this thread |  | | Date | Tue, 16 Jan 2018 18:16:51 +0100 | From | Radim Krčmář <> | Subject | Re: [RFC 0/6] Enlightened VMCS support for KVM on Hyper-V |
| |
2018-01-15 18:30+0100, Vitaly Kuznetsov: > 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
Nice!
> checkpatch.pl errors/warnings and possible 32bit brokenness are known > things. > > Main RFC questions I have are: > - Do we want to have this per L2 VM or per L1 host?
IIUC, eVMCS replaces VMCS when enabled, hence doing it for all VMs would be simplest -- we wouldn't need to setup VMCS nor reconfigure Hyper-V on the fly. (I'm thinking we could have a union in loaded_vmcs for actually used type of VMCS.)
> - How can we achieve zero overhead for non-Hyper-V deployments? Use static > keys? But this will only work if we decide to do eVMCS per host.
Static keys seem like a good choice.
> - Can we do better than a big switch in evmcs_read()/evmcs_write()? And > probably don't use 'case' defines which checkpatch.pl hates.
I'd go for a separate mapping from Intel VMCS into its MS eVMCS and dirty bit, something like vmcs_field_to_offset_table.
Thanks.
|  |