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

Re: [Xen-ia64-devel] [RFC] SMP issues



Le Mercredi 14 Juin 2006 10:30, Tristan Gingold a écrit :
> Le Mercredi 14 Juin 2006 07:58, Isaku Yamahata a écrit :
> > Hello.
>
> [...]
>
> > - races between global tlb purge and tlb insert
> >   This is a race between reading/writing vcpu->arch.{d, i}tlb or VHPT
> > entry. When a vcpu is about to insert tlb, another vcpu may purge tlb
> >   cache globally. Inserting tlb (vcpu_itc_no_srlz()) or global tlb purge
> >   (domain_flush_vtlb_range() and domain_flush_vtlb_all()) can't update
> >   cpu->arch.{d, i}tlb, VHPT and mTLB. So there is a race here.
> >   Use sequence lock to avoid this race.
> >   After inserting tlb entry, check the sequence lock and retry to insert.
> >   This means that when global tlb purge and tlb insert are issued
> >   simultaneously, always tlb insert happens after global tlb purge.
> >
> >   There was an attempt to resolve this race by checking only
> >   vcpu->arch.{d, i}tlb.p bit. However it was incomplete because it
> > doesn't take care of VHPT.
>
> I don't agree with the last paragraph.
>
> During a flush, p bit was cleared first and then VHPT.
> Races were avoided between Xen reads and Xen writes because the clear is
> atomic.
> There is no races between VHPT walker and Xen because either the walker
> reads before the VHPT clear (as if the reads occured before the ptc.ga) or
> fails (as if the access occured after the ptc.ga).
Just a word after re-reading the message.

I don't want to be polemic.  I'd just like to establish facts ;-)

Tristan.

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


 


Rackspace

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