[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |