Message ID | 20231205103630.1391318-1-vkuznets@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | KVM: x86: Make Hyper-V emulation optional | expand |
On Tue, 05 Dec 2023 11:36:14 +0100, Vitaly Kuznetsov wrote: > v1: > https://lore.kernel.org/kvm/20231025152406.1879274-1-vkuznets@redhat.com/ > > Changes since RFC: > - "KVM: x86: hyper-v: Split off nested_evmcs_handle_vmclear()" patch added > [Sean] > - "KVM: nVMX: Move guest_cpuid_has_evmcs() to hyperv.h" patch added [Sean] > - Use evmptr_is_set()/nested_vmx_is_evmptr12_set() helpers instead of > nested_vmx_evmptr12() [Sean] > - Move "#ifdef CONFIG_KVM_HYPERV" inside certain functions instead of > adding stubs for !CONFIG_KVM_HYPERV case [Sean] > - Minor code re-shuffling [Sean] > - Collect R-b tags [Max] > > [...] Applied to kvm-x86 hyperv. I massaged a lot of the shortlogs to adjust the scope, shorten line lengths, and rephrase things using more conversational language. Re: the scopes, while I like the idea of "KVM: x86/hyper-v:", e.g. to pair with "KVM: x86/xen:", I think we should forego it for now. The Xen code is fairly well contained and doesn't have VMX or SVM code, let alone nVMX and nSVM code. Hyper-V... not so much. It has its greedy little hands in everything :-) That makes it rather difficult to have consistency and correctness, e.g. these three are all nVMX+hyper-v specific, yet managed to end up with three different scopes. KVM: nVMX: Move guest_cpuid_has_evmcs() to hyperv.h KVM: nVMX: hyper-v: Introduce nested_vmx_evmcs() accessor KVM: x86: hyper-v: Split off nested_evmcs_handle_vmclear() And things only get more confusing when KVM-on-Hyper-V comes into play. So kinda like we do with the TDP MMU, which is too intertwined with the regular/common MMU code to get its own scope, I think we should use existing scopes and then explicitly talk about Hyper-V in the shortlog to make up for the lack of precision. Please speak up if you disagree! I don't expect to apply any other patches to this branch, i.e. further massaging the shortlogs isn't a problem. [1/16] KVM: x86/xen: Remove unneeded xen context from kvm_arch when !CONFIG_KVM_XEN https://github.com/kvm-x86/linux/commit/87562052c965 [2/16] KVM: x86: Move Hyper-V partition assist page out of Hyper-V emulation context https://github.com/kvm-x86/linux/commit/cfef5af3cb0e [3/16] KVM: VMX: Split off vmx_onhyperv.{ch} from hyperv.{ch} https://github.com/kvm-x86/linux/commit/50a82b0eb88c [4/16] KVM: x86: Introduce helper to check if auto-EOI is set in Hyper-V SynIC https://github.com/kvm-x86/linux/commit/16e880bfa637 [5/16] KVM: x86: Introduce helper to check if vector is set in Hyper-V SynIC https://github.com/kvm-x86/linux/commit/0659262a2625 [6/16] KVM: VMX: Split off hyperv_evmcs.{ch} https://github.com/kvm-x86/linux/commit/e7ad84db4d71 [7/16] KVM: x86: Introduce helper to handle Hyper-V paravirt TLB flush requests https://github.com/kvm-x86/linux/commit/af9d544a4521 [8/16] KVM: nVMX: Split off helper for emulating VMCLEAR on Hyper-V eVMCS https://github.com/kvm-x86/linux/commit/b2e02f82b7f7 [9/16] KVM: selftests: Make Hyper-V tests explicitly require KVM Hyper-V support https://github.com/kvm-x86/linux/commit/6dac1195181c [10/16] KVM: selftests: Fix vmxon_pa == vmcs12_pa == -1ull nVMX testcase for !eVMCS https://github.com/kvm-x86/linux/commit/225b7c1117b2 [11/16] KVM: nVMX: Move guest_cpuid_has_evmcs() to hyperv.h https://github.com/kvm-x86/linux/commit/f97314626734 [12/16] KVM: x86: Make Hyper-V emulation optional https://github.com/kvm-x86/linux/commit/b4f69df0f65e [13/16] KVM: nVMX: Introduce helpers to check if Hyper-V evmptr12 is valid/set https://github.com/kvm-x86/linux/commit/453e42b05571 [14/16] KVM: nVMX: Introduce accessor to get Hyper-V eVMCS pointer https://github.com/kvm-x86/linux/commit/c98842b26c23 [15/16] KVM: nVMX: Hide more stuff under CONFIG_KVM_HYPERV https://github.com/kvm-x86/linux/commit/5a30f97683af [16/16] KVM: nSVM: Hide more stuff under CONFIG_KVM_HYPERV/CONFIG_HYPERV https://github.com/kvm-x86/linux/commit/017a99a966f1 -- https://github.com/kvm-x86/linux/tree/next