view xen/include/asm-x86/perfc_defn.h @ 15812:86a154e1ef5d

[HVM] Shadow: don't shadow the p2m table.
For HVM vcpus with paging disabled, we used to shadow the p2m table,
and skip the p2m lookup to go from gfn to mfn. Instead, we now
provide a simple pagetable that gives a one-to-one mapping of 4GB, and
shadow that, making the translations from gfn to mfn via the p2m.
This removes the paging-disabled special-case code from the shadow
fault handler, and allows us to expand the p2m interface, since all HVM
translations now go through the same p2m lookups.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
author Tim Deegan <Tim.Deegan@xensource.com>
date Fri Aug 31 11:06:22 2007 +0100 (2007-08-31)
parents 13eca4bf2c69
children 3582a7a52c10
line source
1 /* This file is legitimately included multiple times. */
2 /*#ifndef __XEN_PERFC_DEFN_H__*/
3 /*#define __XEN_PERFC_DEFN_H__*/
5 PERFCOUNTER_ARRAY(exceptions, "exceptions", 32)
8 #define VMX_PERF_VECTOR_SIZE 0x20
10 PERFCOUNTER_ARRAY(cause_vector, "cause vector", VMX_PERF_VECTOR_SIZE)
12 #define SVM_PERF_EXIT_REASON_SIZE (1+136)
15 PERFCOUNTER(seg_fixups, "segmentation fixups")
17 PERFCOUNTER(apic_timer, "apic timer interrupts")
19 PERFCOUNTER(domain_page_tlb_flush, "domain page tlb flushes")
21 PERFCOUNTER(calls_to_mmuext_op, "calls to mmuext_op")
22 PERFCOUNTER(num_mmuext_ops, "mmuext ops")
23 PERFCOUNTER(calls_to_mmu_update, "calls to mmu_update")
24 PERFCOUNTER(num_page_updates, "page updates")
25 PERFCOUNTER(calls_to_update_va, "calls to update_va_map")
26 PERFCOUNTER(page_faults, "page faults")
27 PERFCOUNTER(copy_user_faults, "copy_user faults")
29 PERFCOUNTER(map_domain_page_count, "map_domain_page count")
30 PERFCOUNTER(ptwr_emulations, "writable pt emulations")
32 PERFCOUNTER(exception_fixed, "pre-exception fixed")
35 /* Shadow counters */
36 PERFCOUNTER(shadow_alloc, "calls to shadow_alloc")
37 PERFCOUNTER(shadow_alloc_tlbflush, "shadow_alloc flushed TLBs")
39 /* STATUS counters do not reset when 'P' is hit */
40 PERFSTATUS(shadow_alloc_count, "number of shadow pages in use")
41 PERFCOUNTER(shadow_free, "calls to shadow_free")
42 PERFCOUNTER(shadow_prealloc_1, "shadow recycles old shadows")
43 PERFCOUNTER(shadow_prealloc_2, "shadow recycles in-use shadows")
44 PERFCOUNTER(shadow_linear_map_failed, "shadow hit read-only linear map")
45 PERFCOUNTER(shadow_a_update, "shadow A bit update")
46 PERFCOUNTER(shadow_ad_update, "shadow A&D bit update")
47 PERFCOUNTER(shadow_fault, "calls to shadow_fault")
48 PERFCOUNTER(shadow_fault_fast_gnp, "shadow_fault fast path n/p")
49 PERFCOUNTER(shadow_fault_fast_mmio, "shadow_fault fast path mmio")
50 PERFCOUNTER(shadow_fault_fast_fail, "shadow_fault fast path error")
51 PERFCOUNTER(shadow_fault_bail_bad_gfn, "shadow_fault guest bad gfn")
52 PERFCOUNTER(shadow_fault_bail_not_present,
53 "shadow_fault guest not-present")
54 PERFCOUNTER(shadow_fault_bail_nx, "shadow_fault guest NX fault")
55 PERFCOUNTER(shadow_fault_bail_ro_mapping, "shadow_fault guest R/W fault")
56 PERFCOUNTER(shadow_fault_bail_user_supervisor,
57 "shadow_fault guest U/S fault")
58 PERFCOUNTER(shadow_fault_emulate_read, "shadow_fault emulates a read")
59 PERFCOUNTER(shadow_fault_emulate_write, "shadow_fault emulates a write")
60 PERFCOUNTER(shadow_fault_emulate_failed, "shadow_fault emulator fails")
61 PERFCOUNTER(shadow_fault_emulate_stack, "shadow_fault emulate stack write")
62 PERFCOUNTER(shadow_fault_mmio, "shadow_fault handled as mmio")
63 PERFCOUNTER(shadow_fault_fixed, "shadow_fault fixed fault")
64 PERFCOUNTER(shadow_ptwr_emulate, "shadow causes ptwr to emulate")
65 PERFCOUNTER(shadow_validate_gl1e_calls, "calls to shadow_validate_gl1e")
66 PERFCOUNTER(shadow_validate_gl2e_calls, "calls to shadow_validate_gl2e")
67 PERFCOUNTER(shadow_validate_gl3e_calls, "calls to shadow_validate_gl3e")
68 PERFCOUNTER(shadow_validate_gl4e_calls, "calls to shadow_validate_gl4e")
69 PERFCOUNTER(shadow_hash_lookups, "calls to shadow_hash_lookup")
70 PERFCOUNTER(shadow_hash_lookup_head, "shadow hash hit in bucket head")
71 PERFCOUNTER(shadow_hash_lookup_miss, "shadow hash misses")
72 PERFCOUNTER(shadow_get_shadow_status, "calls to get_shadow_status")
73 PERFCOUNTER(shadow_hash_inserts, "calls to shadow_hash_insert")
74 PERFCOUNTER(shadow_hash_deletes, "calls to shadow_hash_delete")
75 PERFCOUNTER(shadow_writeable, "shadow removes write access")
76 PERFCOUNTER(shadow_writeable_h_1, "shadow writeable: 32b w2k3")
77 PERFCOUNTER(shadow_writeable_h_2, "shadow writeable: 32pae w2k3")
78 PERFCOUNTER(shadow_writeable_h_3, "shadow writeable: 64b w2k3")
79 PERFCOUNTER(shadow_writeable_h_4, "shadow writeable: 32b linux low")
80 PERFCOUNTER(shadow_writeable_h_5, "shadow writeable: 32b linux high")
81 PERFCOUNTER(shadow_writeable_bf, "shadow writeable brute-force")
82 PERFCOUNTER(shadow_mappings, "shadow removes all mappings")
83 PERFCOUNTER(shadow_mappings_bf, "shadow rm-mappings brute-force")
84 PERFCOUNTER(shadow_early_unshadow, "shadow unshadows for fork/exit")
85 PERFCOUNTER(shadow_unshadow, "shadow unshadows a page")
86 PERFCOUNTER(shadow_up_pointer, "shadow unshadow by up-pointer")
87 PERFCOUNTER(shadow_unshadow_bf, "shadow unshadow brute-force")
88 PERFCOUNTER(shadow_get_page_fail, "shadow_get_page_from_l1e failed")
89 PERFCOUNTER(shadow_guest_walk, "shadow walks guest tables")
90 PERFCOUNTER(shadow_invlpg, "shadow emulates invlpg")
91 PERFCOUNTER(shadow_invlpg_fault, "shadow invlpg faults")
93 PERFCOUNTER(shadow_em_ex_pt, "shadow extra pt write")
94 PERFCOUNTER(shadow_em_ex_non_pt, "shadow extra non-pt-write op")
95 PERFCOUNTER(shadow_em_ex_fail, "shadow extra emulation failed")
97 /*#endif*/ /* __XEN_PERFC_DEFN_H__ */