• Vitaly Kuznetsov's avatar
    KVM: x86: hyper-v: Allocate Hyper-V context lazily · fc08b628
    Vitaly Kuznetsov authored
    Hyper-V context is only needed for guests which use Hyper-V emulation in
    KVM (e.g. Windows/Hyper-V guests) so we don't actually need to allocate
    it in kvm_arch_vcpu_create(), we can postpone the action until Hyper-V
    specific MSRs are accessed or SynIC is enabled.
    
    Once allocated, let's keep the context alive for the lifetime of the vCPU
    as an attempt to free it would require additional synchronization with
    other vCPUs and normally it is not supposed to happen.
    
    Note, Hyper-V style hypercall enablement is done by writing to
    HV_X64_MSR_GUEST_OS_ID so we don't need to worry about allocating Hyper-V
    context from kvm_hv_hypercall().
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20210126134816.1880136-15-vkuznets@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    fc08b628
x86.c 304 KB