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

[Xen-ia64-devel] in_tpa is not SMP-safe



Hi,

the use of in_tpa is not SMP-safe:

[in vcpu.c:]
#if 1
// TEMPORARY PATCH for match_dtlb uses this, can be removed later
// FIXME SMP
int in_tpa = 0;
#endif

[vcpu_translate]
        if (/* is_data && */ vcpu_match_tr_entry(trp,address,rid)) {
                if (vcpu->domain==dom0 && !in_tpa) *pteval = trp->page_flags;
                else *pteval = vcpu->arch.dtlb_pte;
                *itir = trp->itir;
                dtlb_translate_count++;
                return IA64_NO_FAULT;
        }

[vcpu_tpa:]
        in_tpa = 1;
        fault = vcpu_translate(vcpu, vadr, 1, &pteval, &itir, &iha);
        in_tpa = 0;


Should we add a new parameter to vcpu_translate or change the is_data 
parameter to flags ?

BTW, I do not really understand it.  Why vcpu->arch.dtlb_pte can be wrong ?

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