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

[Xen-devel] Re: [PATCH] Fix memory order issue inside pv spinlock



On 09/07/09 00:40, Yang, Xiaowei wrote:
> barrier() can't prevent reads after it not being reordered with older
> writes to different locates before it. Because of it, I can't bring up
> > 4 HVM guests on one SMP machine. Use mb() instead.

Which read is happening too early?  Is it "xl->spinners"?  How does it fail?

Thanks,
    J

>
> Signed-off-by: Yang Xiaowei <xiaowei.yang@xxxxxxxxx>
>
> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
> index 5601506..9dee5f8 100644
> --- a/arch/x86/xen/spinlock.c
> +++ b/arch/x86/xen/spinlock.c
> @@ -324,7 +325,7 @@ static void xen_spin_unlock(struct raw_spinlock
> *lock)
>         xl->lock = 0;           /* release lock */
>
>         /* make sure unlock happens before kick */
> -       barrier();
> +       mb();
>
>         if (unlikely(xl->spinners))
>                 xen_spin_unlock_slow(xl);
>
> Thanks,
> Xiaowei
>


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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