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

[Xen-changelog] [xen-unstable] [IA64] add perfcounter for vTLB flush.



# 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.