[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] add memory barrier to domain_flush_vtlb_range()
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID 7da52d016bcc933318a6894f7cd516b1ce66e6d5 # Parent ececeade018f220defbea820b98b89c1de51be3a [IA64] add memory barrier to domain_flush_vtlb_range() add memory barrier to domain_flush_vtlb_range(). vtlb purge must be visible before vhpt invalidation. added some BUG_ON(). Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> --- xen/arch/ia64/xen/vcpu.c | 4 ++++ xen/arch/ia64/xen/vhpt.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff -r ececeade018f -r 7da52d016bcc xen/arch/ia64/xen/vcpu.c --- a/xen/arch/ia64/xen/vcpu.c Fri Jun 09 10:35:37 2006 -0600 +++ b/xen/arch/ia64/xen/vcpu.c Fri Jun 09 10:35:38 2006 -0600 @@ -2016,6 +2016,8 @@ IA64FAULT vcpu_itc_i(VCPU *vcpu, UINT64 IA64FAULT vcpu_ptc_l(VCPU *vcpu, UINT64 vadr, UINT64 log_range) { + BUG_ON(vcpu != current); + /* Purge TC */ vcpu_purge_tr_entry(&PSCBX(vcpu,dtlb)); vcpu_purge_tr_entry(&PSCBX(vcpu,itlb)); @@ -2082,6 +2084,7 @@ IA64FAULT vcpu_ptr_d(VCPU *vcpu,UINT64 v unsigned long rid, rr; int i; TR_ENTRY *trp; + BUG_ON(vcpu != current); rr = PSCB(vcpu,rrs)[region]; rid = rr & RR_RID_MASK; @@ -2110,6 +2113,7 @@ IA64FAULT vcpu_ptr_i(VCPU *vcpu,UINT64 v unsigned long rid, rr; int i; TR_ENTRY *trp; + BUG_ON(vcpu != current); rr = PSCB(vcpu,rrs)[region]; rid = rr & RR_RID_MASK; diff -r ececeade018f -r 7da52d016bcc xen/arch/ia64/xen/vhpt.c --- a/xen/arch/ia64/xen/vhpt.c Fri Jun 09 10:35:37 2006 -0600 +++ b/xen/arch/ia64/xen/vhpt.c Fri Jun 09 10:35:38 2006 -0600 @@ -202,10 +202,14 @@ void domain_flush_vtlb_range (struct dom FIXME: clear only if match. */ vcpu_purge_tr_entry(&PSCBX(v,dtlb)); vcpu_purge_tr_entry(&PSCBX(v,itlb)); - + } + smp_mb(); + + for_each_vcpu (d, v) { /* Invalidate VHPT entries. */ cpu_flush_vhpt_range (v->processor, vadr, addr_range); } + // ptc.ga has release semantics. /* ptc.ga */ ia64_global_tlb_purge(vadr,vadr+addr_range,PAGE_SHIFT); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |