Messages in this thread | | | Date | Fri, 20 Dec 2019 10:50:49 +0100 | From | Cornelia Huck <> | Subject | Re: [PATCH v2 32/45] KVM: Move initialization of preempt notifier to kvm_vcpu_init() |
| |
On Wed, 18 Dec 2019 13:55:17 -0800 Sean Christopherson <sean.j.christopherson@intel.com> wrote:
> Initialize the preempt notifier immediately in kvm_vcpu_init() to pave > the way for removing kvm_arch_vcpu_setup(), i.e. to allow arch specific > code to call vcpu_load() during kvm_arch_vcpu_create(). > > Back when preemption support was added, the location of the call to init > the preempt notifier was perfectly sane. The overall vCPU creation flow > featured a single arch specific hook and the preempt notifer was used > immediately after its initialization (by vcpu_load()). E.g.: > > vcpu = kvm_arch_ops->vcpu_create(kvm, n); > if (IS_ERR(vcpu)) > return PTR_ERR(vcpu); > > preempt_notifier_init(&vcpu->preempt_notifier, &kvm_preempt_ops); > > vcpu_load(vcpu); > r = kvm_mmu_setup(vcpu); > vcpu_put(vcpu); > if (r < 0) > goto free_vcpu; > > Today, the call to preempt_notifier_init() is sandwiched between two > arch specific calls, kvm_arch_vcpu_create() and kvm_arch_vcpu_setup(), > which needlessly forces x86 (and possibly others?) to split its vCPU > creation flow. Init the preempt notifier prior to any arch specific > call so that each arch can independently decide how best to organize > its creation flow. > > Acked-by: Christoffer Dall <christoffer.dall@arm.com> > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> > --- > virt/kvm/kvm_main.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-)
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
| |