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

Re: [Xen-devel] [PATCH] xen: arm: improve VMID allocation.



On Wed, 2013-09-11 at 13:44 +0100, Julien Grall wrote:
> > +
> > +void p2m_vmid_allocator_init(void)
> > +{
> > +    /* VMID 0 is reserved */
> > +    set_bit(0, vmid_mask);
> > +}
> > +
> > +/* p2m_alloc|free_vmid must both be called with the p2m->lock */
> 
> Taking p2m->lock is not enough, this function can be called concurrently
> if the 2 domains are created at the same time.
> In this case, it's possible to have the same vmid for 2 domains.
> How about a global lock?

Brain fart, I forgot this lock was per p2m.

The domain lock is probably OK to use here, in fact we may already hold
it. I'll fix this.

> > @@ -318,25 +359,33 @@ void p2m_teardown(struct domain *d)
> >  
> >      p2m->first_level = NULL;
> >  
> > +    p2m_free_vmid(d);
> > +
> 
> p2m_teardown is called when the domain is destroyed. If the vmid was not
> correctly set (for instance because VMID pool exhausted), we will clear
> the wrong bit (here 0).
> At the next domain creation, we will assert because nr = 0.

Oops! Will fix.

Ian.


_______________________________________________
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®.