1 | /* This file is legitimately included multiple times. */ |
---|
2 | |
---|
3 | PERFCOUNTER(dtlb_translate, "dtlb hit") |
---|
4 | |
---|
5 | PERFCOUNTER(tr_translate, "TR hit") |
---|
6 | |
---|
7 | PERFCOUNTER(vhpt_translate, "virtual vhpt translation") |
---|
8 | PERFCOUNTER(fast_vhpt_translate, "virtual vhpt fast translation") |
---|
9 | |
---|
10 | PERFCOUNTER(recover_to_page_fault, "recoveries to page fault") |
---|
11 | PERFCOUNTER(recover_to_break_fault, "recoveries to break fault") |
---|
12 | |
---|
13 | PERFCOUNTER(phys_translate, "metaphysical translation") |
---|
14 | |
---|
15 | PERFCOUNTER(idle_when_pending, "vcpu idle at event") |
---|
16 | |
---|
17 | PERFCOUNTER(pal_halt_light, "calls to pal_halt_light") |
---|
18 | |
---|
19 | PERFCOUNTER(lazy_cover, "lazy cover") |
---|
20 | |
---|
21 | PERFCOUNTER(mov_to_ar_imm, "privop mov_to_ar_imm") |
---|
22 | PERFCOUNTER(mov_to_ar_reg, "privop mov_to_ar_reg") |
---|
23 | PERFCOUNTER(mov_from_ar, "privop privified-mov_from_ar") |
---|
24 | PERFCOUNTER(ssm, "privop ssm") |
---|
25 | PERFCOUNTER(rsm, "privop rsm") |
---|
26 | PERFCOUNTER(rfi, "privop rfi") |
---|
27 | PERFCOUNTER(bsw0, "privop bsw0") |
---|
28 | PERFCOUNTER(bsw1, "privop bsw1") |
---|
29 | PERFCOUNTER(cover, "privop cover") |
---|
30 | PERFCOUNTER(fc, "privop privified-fc") |
---|
31 | PERFCOUNTER(cpuid, "privop privified-cpuid") |
---|
32 | |
---|
33 | PERFCOUNTER_ARRAY(mov_to_cr, "privop mov to cr", 128) |
---|
34 | PERFCOUNTER_ARRAY(mov_from_cr, "privop mov from cr", 128) |
---|
35 | |
---|
36 | PERFCOUNTER_ARRAY(misc_privop, "privop misc", 64) |
---|
37 | |
---|
38 | // privileged instructions to fall into vmx_entry |
---|
39 | PERFCOUNTER(vmx_rsm, "vmx privop rsm") |
---|
40 | PERFCOUNTER(vmx_ssm, "vmx privop ssm") |
---|
41 | PERFCOUNTER(vmx_mov_to_psr, "vmx privop mov_to_psr") |
---|
42 | PERFCOUNTER(vmx_mov_from_psr, "vmx privop mov_from_psr") |
---|
43 | PERFCOUNTER(vmx_mov_from_cr, "vmx privop mov_from_cr") |
---|
44 | PERFCOUNTER(vmx_mov_to_cr, "vmx privop mov_to_cr") |
---|
45 | PERFCOUNTER(vmx_bsw0, "vmx privop bsw0") |
---|
46 | PERFCOUNTER(vmx_bsw1, "vmx privop bsw1") |
---|
47 | PERFCOUNTER(vmx_cover, "vmx privop cover") |
---|
48 | PERFCOUNTER(vmx_rfi, "vmx privop rfi") |
---|
49 | PERFCOUNTER(vmx_itr_d, "vmx privop itr_d") |
---|
50 | PERFCOUNTER(vmx_itr_i, "vmx privop itr_i") |
---|
51 | PERFCOUNTER(vmx_ptr_d, "vmx privop ptr_d") |
---|
52 | PERFCOUNTER(vmx_ptr_i, "vmx privop ptr_i") |
---|
53 | PERFCOUNTER(vmx_itc_d, "vmx privop itc_d") |
---|
54 | PERFCOUNTER(vmx_itc_i, "vmx privop itc_i") |
---|
55 | PERFCOUNTER(vmx_ptc_l, "vmx privop ptc_l") |
---|
56 | PERFCOUNTER(vmx_ptc_g, "vmx privop ptc_g") |
---|
57 | PERFCOUNTER(vmx_ptc_ga, "vmx privop ptc_ga") |
---|
58 | PERFCOUNTER(vmx_ptc_e, "vmx privop ptc_e") |
---|
59 | PERFCOUNTER(vmx_mov_to_rr, "vmx privop mov_to_rr") |
---|
60 | PERFCOUNTER(vmx_mov_from_rr, "vmx privop mov_from_rr") |
---|
61 | PERFCOUNTER(vmx_thash, "vmx privop thash") |
---|
62 | PERFCOUNTER(vmx_ttag, "vmx privop ttag") |
---|
63 | PERFCOUNTER(vmx_tpa, "vmx privop tpa") |
---|
64 | PERFCOUNTER(vmx_tak, "vmx privop tak") |
---|
65 | PERFCOUNTER(vmx_mov_to_ar_imm, "vmx privop mov_to_ar_imm") |
---|
66 | PERFCOUNTER(vmx_mov_to_ar_reg, "vmx privop mov_to_ar_reg") |
---|
67 | PERFCOUNTER(vmx_mov_from_ar_reg, "vmx privop mov_from_ar_reg") |
---|
68 | PERFCOUNTER(vmx_mov_to_dbr, "vmx privop mov_to_dbr") |
---|
69 | PERFCOUNTER(vmx_mov_to_ibr, "vmx privop mov_to_ibr") |
---|
70 | PERFCOUNTER(vmx_mov_to_pmc, "vmx privop mov_to_pmc") |
---|
71 | PERFCOUNTER(vmx_mov_to_pmd, "vmx privop mov_to_pmd") |
---|
72 | PERFCOUNTER(vmx_mov_to_pkr, "vmx privop mov_to_pkr") |
---|
73 | PERFCOUNTER(vmx_mov_from_dbr, "vmx privop mov_from_dbr") |
---|
74 | PERFCOUNTER(vmx_mov_from_ibr, "vmx privop mov_from_ibr") |
---|
75 | PERFCOUNTER(vmx_mov_from_pmc, "vmx privop mov_from_pmc") |
---|
76 | PERFCOUNTER(vmx_mov_from_pkr, "vmx privop mov_from_pkr") |
---|
77 | PERFCOUNTER(vmx_mov_from_cpuid, "vmx privop mov_from_cpuid") |
---|
78 | |
---|
79 | |
---|
80 | PERFCOUNTER_ARRAY(slow_hyperprivop, "slow hyperprivops", HYPERPRIVOP_MAX + 1) |
---|
81 | PERFCOUNTER_ARRAY(fast_hyperprivop, "fast hyperprivops", HYPERPRIVOP_MAX + 1) |
---|
82 | |
---|
83 | PERFCOUNTER_ARRAY(slow_reflect, "slow reflection", 0x80) |
---|
84 | PERFCOUNTER_ARRAY(fast_reflect, "fast reflection", 0x80) |
---|
85 | |
---|
86 | PERFSTATUS(vhpt_nbr_entries, "nbr of entries per VHPT") |
---|
87 | PERFSTATUS(vhpt_valid_entries, "nbr of valid entries in VHPT") |
---|
88 | |
---|
89 | PERFCOUNTER_ARRAY(vmx_mmio_access, "vmx_mmio_access", 8) |
---|
90 | PERFCOUNTER(vmx_pal_emul, "vmx_pal_emul") |
---|
91 | PERFCOUNTER_ARRAY(vmx_switch_mm_mode, "vmx_switch_mm_mode", 8) |
---|
92 | PERFCOUNTER(vmx_ia64_handle_break,"vmx_ia64_handle_break") |
---|
93 | PERFCOUNTER_ARRAY(vmx_inject_guest_interruption, |
---|
94 | "vmx_inject_guest_interruption", 0x80) |
---|
95 | PERFCOUNTER_ARRAY(fw_hypercall, "fw_hypercall", 0x20) |
---|
96 | |
---|
97 | #ifdef CONFIG_PRIVOP_ADDRS |
---|
98 | #ifndef PERFPRIVOPADDR |
---|
99 | #define PERFPRIVOPADDR(name) \ |
---|
100 | PERFSTATUS_ARRAY(privop_addr_##name##_addr, "privop-addrs addr " #name, \ |
---|
101 | PRIVOP_COUNT_NADDRS) \ |
---|
102 | PERFSTATUS_ARRAY(privop_addr_##name##_count, "privop-addrs count " #name, \ |
---|
103 | PRIVOP_COUNT_NADDRS) \ |
---|
104 | PERFSTATUS(privop_addr_##name##_overflow, "privop-addrs overflow " #name) |
---|
105 | #endif |
---|
106 | |
---|
107 | PERFPRIVOPADDR(get_ifa) |
---|
108 | PERFPRIVOPADDR(thash) |
---|
109 | |
---|
110 | #undef PERFPRIVOPADDR |
---|
111 | #endif |
---|
112 | |
---|
113 | // vhpt.c |
---|
114 | PERFCOUNTER(local_vhpt_flush, "local_vhpt_flush") |
---|
115 | PERFCOUNTER(vcpu_vhpt_flush, "vcpu_vhpt_flush") |
---|
116 | PERFCOUNTER(vcpu_flush_vtlb_all, "vcpu_flush_vtlb_all") |
---|
117 | PERFCOUNTER(domain_flush_vtlb_all, "domain_flush_vtlb_all") |
---|
118 | PERFCOUNTER(vcpu_flush_tlb_vhpt_range, "vcpu_flush_tlb_vhpt_range") |
---|
119 | PERFCOUNTER(domain_flush_vtlb_track_entry, "domain_flush_vtlb_track_entry") |
---|
120 | PERFCOUNTER(domain_flush_vtlb_local, "domain_flush_vtlb_local") |
---|
121 | PERFCOUNTER(domain_flush_vtlb_global, "domain_flush_vtlb_global") |
---|
122 | PERFCOUNTER(domain_flush_vtlb_range, "domain_flush_vtlb_range") |
---|
123 | |
---|
124 | // domain.c |
---|
125 | PERFCOUNTER(flush_vtlb_for_context_switch, "flush_vtlb_for_context_switch") |
---|
126 | |
---|
127 | // mm.c |
---|
128 | PERFCOUNTER(assign_domain_page_replace, "assign_domain_page_replace") |
---|
129 | PERFCOUNTER(assign_domain_pge_cmpxchg_rel, "assign_domain_pge_cmpxchg_rel") |
---|
130 | PERFCOUNTER(zap_dcomain_page_one, "zap_dcomain_page_one") |
---|
131 | PERFCOUNTER(dom0vp_zap_physmap, "dom0vp_zap_physmap") |
---|
132 | PERFCOUNTER(dom0vp_add_physmap, "dom0vp_add_physmap") |
---|
133 | PERFCOUNTER(create_grant_host_mapping, "create_grant_host_mapping") |
---|
134 | PERFCOUNTER(destroy_grant_host_mapping, "destroy_grant_host_mapping") |
---|
135 | PERFCOUNTER(steal_page_refcount, "steal_page_refcount") |
---|
136 | PERFCOUNTER(steal_page, "steal_page") |
---|
137 | PERFCOUNTER(guest_physmap_add_page, "guest_physmap_add_page") |
---|
138 | PERFCOUNTER(guest_physmap_remove_page, "guest_physmap_remove_page") |
---|
139 | PERFCOUNTER(domain_page_flush_and_put, "domain_page_flush_and_put") |
---|
140 | |
---|
141 | // dom0vp |
---|
142 | PERFCOUNTER(dom0vp_phystomach, "dom0vp_phystomach") |
---|
143 | PERFCOUNTER(dom0vp_machtophys, "dom0vp_machtophys") |
---|
144 | |
---|
145 | #ifdef CONFIG_XEN_IA64_TLB_TRACK |
---|
146 | // insert or dirty |
---|
147 | PERFCOUNTER(tlb_track_iod, "tlb_track_iod") |
---|
148 | PERFCOUNTER(tlb_track_iod_again, "tlb_track_iod_again") |
---|
149 | PERFCOUNTER(tlb_track_iod_not_tracked, "tlb_track_iod_not_tracked") |
---|
150 | PERFCOUNTER(tlb_track_iod_force_many, "tlb_track_iod_force_many") |
---|
151 | PERFCOUNTER(tlb_track_iod_tracked_many, "tlb_track_iod_tracked_many") |
---|
152 | PERFCOUNTER(tlb_track_iod_tracked_many_del, "tlb_track_iod_tracked_many_del") |
---|
153 | PERFCOUNTER(tlb_track_iod_found, "tlb_track_iod_found") |
---|
154 | PERFCOUNTER(tlb_track_iod_new_entry, "tlb_track_iod_new_entry") |
---|
155 | PERFCOUNTER(tlb_track_iod_new_failed, "tlb_track_iod_new_failed") |
---|
156 | PERFCOUNTER(tlb_track_iod_new_many, "tlb_track_iod_new_many") |
---|
157 | PERFCOUNTER(tlb_track_iod_insert, "tlb_track_iod_insert") |
---|
158 | PERFCOUNTER(tlb_track_iod_dirtied, "tlb_track_iod_dirtied") |
---|
159 | |
---|
160 | // search and remove |
---|
161 | PERFCOUNTER(tlb_track_sar, "tlb_track_sar") |
---|
162 | PERFCOUNTER(tlb_track_sar_not_tracked, "tlb_track_sar_not_tracked") |
---|
163 | PERFCOUNTER(tlb_track_sar_not_found, "tlb_track_sar_not_found") |
---|
164 | PERFCOUNTER(tlb_track_sar_found, "tlb_track_sar_found") |
---|
165 | PERFCOUNTER(tlb_track_sar_many, "tlb_track_sar_many") |
---|
166 | |
---|
167 | // flush |
---|
168 | PERFCOUNTER(tlb_track_use_rr7, "tlb_track_use_rr7") |
---|
169 | PERFCOUNTER(tlb_track_swap_rr0, "tlb_track_swap_rr0") |
---|
170 | #endif |
---|
171 | |
---|
172 | // tlb flush clock |
---|
173 | #ifdef CONFIG_XEN_IA64_TLBFLUSH_CLOCK |
---|
174 | PERFCOUNTER(tlbflush_clock_cswitch_purge, "tlbflush_clock_cswitch_purge") |
---|
175 | PERFCOUNTER(tlbflush_clock_cswitch_skip, "tlbflush_clock_cswitch_skip") |
---|
176 | #endif |
---|