|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
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
|
|
|
|
|