From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH] execute kvm_init_vcpu in the end of pc_new_cpu Date: Wed, 6 May 2009 10:53:06 -0300 Message-ID: <20090506135306.GC10705@amt.cnet> References: <1241579779-17974-1-git-send-email-glommer@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, avi@redhat.com To: Glauber Costa Return-path: Received: from mx2.redhat.com ([66.187.237.31]:39074 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755490AbZEFNxt (ORCPT ); Wed, 6 May 2009 09:53:49 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n46DroQx032660 for ; Wed, 6 May 2009 09:53:50 -0400 Content-Disposition: inline In-Reply-To: <1241579779-17974-1-git-send-email-glommer@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, May 05, 2009 at 11:16:19PM -0400, Glauber Costa wrote: > When we create a new vcpu, we need to make sure that > all of the state it is going to use (apic state, for example) > already exists. We can do it nicely by making sure kvm_init_vcpu > is executed after everything else in cpu creation. > > After that, the first call to KVM_SET_LAPIC ioctl will not find an > existant vcpu. So we introduce a function that tell us that the vcpu > is already initialized, and is it safe to call the ioctl. Otherwise, > just don't botter. Why did you decide to drop the additional wait vcpu->inited thing you had in the previous patch? I think its nice to make the synchronization explicit. Isnt your current solution somewhat trickier? And if you disagree with me (which you should avoid for safety reasons), you need to regenerate the patch since it'll reject against qemu-kvm.git as of today. > We then force the execution of the KVM_SET_LAPIC from within the new > vcpu thread. > > Signed-off-by: Glauber Costa > --- > hw/apic.c | 21 +++++++++++---------- > hw/pc.c | 2 ++ > qemu-kvm.c | 10 ++++++++++ > qemu-kvm.h | 4 ++++ > target-i386/helper.c | 2 -- > 5 files changed, 27 insertions(+), 12 deletions(-) >