# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 3f28ffed6ffff97c4f314c8bf91cf77dc85f396d
# Parent a3a079af0e92f7e16fe6cb3b39c3a189a3e5c46a
[IA64] add perfcounter for vTLB flush.
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
xen/arch/ia64/xen/domain.c | 1 +
xen/arch/ia64/xen/vhpt.c | 5 +++++
xen/include/asm-ia64/perfc_defn.h | 9 +++++++++
3 files changed, 15 insertions(+)
diff -r a3a079af0e92 -r 3f28ffed6fff xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c Mon Oct 02 21:32:46 2006 -0600
+++ b/xen/arch/ia64/xen/domain.c Mon Oct 02 21:34:47 2006 -0600
@@ -101,6 +101,7 @@ static void flush_vtlb_for_context_switc
vhpt_flush();
}
local_flush_tlb_all();
+ perfc_incrc(flush_vtlb_for_context_switch);
}
}
diff -r a3a079af0e92 -r 3f28ffed6fff xen/arch/ia64/xen/vhpt.c
--- a/xen/arch/ia64/xen/vhpt.c Mon Oct 02 21:32:46 2006 -0600
+++ b/xen/arch/ia64/xen/vhpt.c Mon Oct 02 21:34:47 2006 -0600
@@ -155,6 +155,8 @@ void vcpu_flush_vtlb_all(struct vcpu *v)
/* We could clear bit in d->domain_dirty_cpumask only if domain d in
not running on this processor. There is currently no easy way to
check this. */
+
+ perfc_incrc(vcpu_flush_vtlb_all);
}
static void __vcpu_flush_vtlb_all(void *vcpu)
@@ -178,6 +180,7 @@ void domain_flush_vtlb_all (void)
__vcpu_flush_vtlb_all,
v, 1, 1);
}
+ perfc_incrc(domain_flush_vtlb_all);
}
static void cpu_flush_vhpt_range (int cpu, u64 vadr, u64 addr_range)
@@ -200,6 +203,7 @@ void vcpu_flush_tlb_vhpt_range (u64 vadr
cpu_flush_vhpt_range (current->processor, vadr, 1UL << log_range);
ia64_ptcl(vadr, log_range << 2);
ia64_srlz_i();
+ perfc_incrc(vcpu_flush_tlb_vhpt_range);
}
void domain_flush_vtlb_range (struct domain *d, u64 vadr, u64 addr_range)
@@ -236,6 +240,7 @@ void domain_flush_vtlb_range (struct dom
/* ptc.ga */
ia64_global_tlb_purge(vadr,vadr+addr_range,PAGE_SHIFT);
+ perfc_incrc(domain_flush_vtlb_range);
}
static void flush_tlb_vhpt_all (struct domain *d)
diff -r a3a079af0e92 -r 3f28ffed6fff xen/include/asm-ia64/perfc_defn.h
--- a/xen/include/asm-ia64/perfc_defn.h Mon Oct 02 21:32:46 2006 -0600
+++ b/xen/include/asm-ia64/perfc_defn.h Mon Oct 02 21:34:47 2006 -0600
@@ -107,3 +107,12 @@ PERFPRIVOPADDR(get_ifa)
PERFPRIVOPADDR(get_ifa)
PERFPRIVOPADDR(thash)
#endif
+
+// vhpt.c
+PERFCOUNTER_CPU(vcpu_flush_vtlb_all, "vcpu_flush_vtlb_all")
+PERFCOUNTER_CPU(domain_flush_vtlb_all, "domain_flush_vtlb_all")
+PERFCOUNTER_CPU(vcpu_flush_tlb_vhpt_range, "vcpu_flush_tlb_vhpt_range")
+PERFCOUNTER_CPU(domain_flush_vtlb_range, "domain_flush_vtlb_range")
+
+// domain.c
+PERFCOUNTER_CPU(flush_vtlb_for_context_switch,
"flush_vtlb_for_context_switch")
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|