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

Re: [Xen-ia64-devel] Re: [PATCH]: ptc.ga for SMP-g



Le Jeudi 30 Mars 2006 11:08, Tian, Kevin a écrit :
> From: Tristan Gingold [mailto:Tristan.Gingold@xxxxxxxx]
>
> >Sent: 2006年3月30日 16:56
> >
> >> >Can you elaborate ? Do you have a disaster scenario ?
> >> >vcpu_purge_tr_entry only clears the p bit.
> >>
> >> I think it's not safe for one vcpu to operate date structure on another
> >> vcpu. For example, current vcpu is doing vcpu_match_tr_entry. Just
> >
> >after
> >
> >> checking _trp->p, then another vcpu invokes vcpu_purge_tr_entry to
> >
> >clear
> >
> >> _trp->p. In this case, vcpu_match_tr_entry should return false however
> >
> >it
> >
> >> may return true based on old knowledge since the whole check is not
> >
> >atomic.
> >This is as if the purge was done a few cycles after the checks.
>
> OK, maybe we can take another extreme case. :-) Say current vcpu
> doesn't check the vtlb entry, instead it tries to update that entry and
> more interesting is that it wants to set present bit. Now if another vcpu
> clears present bit of this entry before current vcpu's update, finally that
> entry will be in present state again. That's one race condition.
Correct.  There is indeed a race between purge and insert.

> The
> importance is that one vcpu doesn't know whether another vcpu is operating
> that
> context. However with IPI's help, all modifications happen on current
> context. To avoid race with interrupted context, IPI handler may even raise
> a softirq to handle purge only before resuming to guest. How do you
> think?
For sure, this is almost the safest.  But there is still a race-condition: if 
vcpu migrates during the IPI, the tlb can be modified by two cpus.

> >The main problem with IPI is migration.  However, currently migration
> >doesn't
> >work well.  I think it is ok to migrate a vcpu from CPU X to CPU Y, but
> >we
> >don't support migrating back from CPU Y to CPU X.
>
> Elaboration? Curious about the reason...
This is not an SMP-g issue, but an SMP issue.
After migration to CPU Y, the VHPT for CPU X is not updated.  When it migrates 
again to CPU X, it has an oudated VHPT.

So, in short migration is *not* handled.

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