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

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



Le Mardi 28 Mars 2006 04:04, Isaku Yamahata a écrit :
> Hi Tristan.
>
>
> +                     /* Purge tc entry.
> +                        Can we do this directly ?  Well, this is just a
> +                        single atomic write.  */
> +                     vcpu_purge_tr_entry(&PSCBX(v,dtlb));
> +                     vcpu_purge_tr_entry(&PSCBX(v,itlb));
>
> These aren't SMP-safe because dtlb isn't read atomically.
> From vcpu_translate()
>
> #define vcpu_match_tr_entry(_trp,_ifa,_rid)             \
>     ((_trp->p && (_trp->rid==_rid) && (_ifa >= _trp->vadr) &&   \
>     (_ifa < (_trp->vadr + (1L<< _trp->ps)) - 1)))
>
>         trp = &vcpu->arch.dtlb;
>         if (/* is_data && */ vcpu_match_tr_entry(trp,address,rid)) {
>                 <<<<<<<<<<<<If other processor executes
>                             vcpu_purge_tr_entry(&PSCBX(v,dtlb)) here,
>                             then a disaster will happen >>>>>>>>>>>>>>>>
Can you elaborate ? Do you have a disaster scenario ?
vcpu_purge_tr_entry only clears the p bit.

> In fact it's more subtle because of memory ordering.
I don't think it is the case, because vcpu_purge_tr_entry modify only one bit 
in one word.


Thank you for the comment.

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