[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 04/12] xen/arm: support for guest SGI



On Mon, 29 Apr 2013, Ian Campbell wrote:
> On Mon, 2013-04-29 at 16:47 +0100, Stefano Stabellini wrote:
> > On Mon, 29 Apr 2013, Ian Campbell wrote:
> > > On Sun, 2013-04-28 at 15:26 +0100, Stefano Stabellini wrote:
> > > > On Fri, 26 Apr 2013, Ian Campbell wrote:
> > > > > > +
> > > > > > +
> > > > > > +    for_each_set_bit( vcpuid, &vcpu_mask, d->max_vcpus )
> > > > > > +    {
> > > > > > +        if ( vcpuid >= d->max_vcpus || (vt = d->vcpu[vcpuid]) == 
> > > > > > NULL )
> > > > > 
> > > > > Is d->vcpu[vcpuid] == NULL sufficient here? A vcpu which exists but 
> > > > > has
> > > > > not been PSCI'd up will pass this -- what do we do to them? Hopefully 
> > > > > we
> > > > > don't wake them up? Do we not want to check something like _VPF_down
> > > > > too?
> > > > 
> > > > I think you are right, we should test for _VPF_down too
> > > 
> > > Are there any interesting races here? Seems like there should be, unless
> > > we hold the domain lock or something?
> > 
> > 
> > Considering that max_vcpus is static, d->vcpu[vcpuid] has been
> > allocated at domain creation and that test_bit should be atomic, I don't
> > think there are any races here.
> > What am I missing?
> 
> The race between checking the bit and acting on the result.

I don't think that race can cause any problems: if vcpu0 is sending a
TARGET_OTHERS SGI and vcpu1 is executing psci.cpu_off, depending on who
wins the race vcpu1 is going to receive the SGI on not, but the result
is going to be always consistent: if vcpu1 shuts down before the SGI is
sent, it is not going to receive it (actually it is going to receive it
if it gets ever woken up), otherwise it is going to receive it before
shutting down.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.