From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cornelia Huck Date: Fri, 20 Dec 2019 09:50:49 +0000 Subject: Re: [PATCH v2 32/45] KVM: Move initialization of preempt notifier to kvm_vcpu_init() Message-Id: <20191220105049.3fbdbbcc.cohuck@redhat.com> List-Id: References: <20191218215530.2280-1-sean.j.christopherson@intel.com> <20191218215530.2280-33-sean.j.christopherson@intel.com> In-Reply-To: <20191218215530.2280-33-sean.j.christopherson@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Sean Christopherson Cc: Marc Zyngier , James Hogan , Paul Mackerras , Christian Borntraeger , Janosch Frank , Paolo Bonzini , James Morse , Julien Thierry , Suzuki K Poulose , David Hildenbrand , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, linux-mips@vger.kernel.org, kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kurz On Wed, 18 Dec 2019 13:55:17 -0800 Sean Christopherson 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 > Signed-off-by: Sean Christopherson > --- > virt/kvm/kvm_main.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) Reviewed-by: Cornelia Huck