Re: [PATCH] execute kvm_init_vcpu in the end of pc_new_cpu

Glauber Costa
2009-05-06T13:58:25Z

On Wed, May 06, 2009 at 10:53:06AM -0300, Marcelo Tosatti wrote:
> 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.
Explicit is good. Not needed is even better.

If we make sure to call kvm_vcpu_init() after everything is already initialized,
we avoid the need to have any kind of sync at all, since it serializes
naturally.

>
> Isnt your current solution somewhat trickier?
I believe it is simpler.

>
> 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.
I can do that happily (both disagreeing with you, and regenerating the patch)