• Zeng Guang's avatar
    KVM: Move kvm_arch_vcpu_precreate() under kvm->lock · 1d5e740d
    Zeng Guang authored
    kvm_arch_vcpu_precreate() targets to handle arch specific VM resource
    to be prepared prior to the actual creation of vCPU. For example, x86
    platform may need do per-VM allocation based on max_vcpu_ids at the
    first vCPU creation. It probably leads to concurrency control on this
    allocation as multiple vCPU creation could happen simultaneously. From
    the architectual point of view, it's necessary to execute
    kvm_arch_vcpu_precreate() under protect of kvm->lock.
    
    Currently only arm64, x86 and s390 have non-nop implementations at the
    stage of vCPU pre-creation. Remove the lock acquiring in s390's design
    and make sure all architecture can run kvm_arch_vcpu_precreate() safely
    under kvm->lock without recrusive lock issue.
    Suggested-by: default avatarSean Christopherson <seanjc@google.com>
    Signed-off-by: default avatarZeng Guang <guang.zeng@intel.com>
    Message-Id: <20220419154409.11842-1-guang.zeng@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    1d5e740d
x86.c 343 KB