[34] | 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 |
---|