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