|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/perfc: fold HVM's VM-exit counter arrays
commit 81c416dca231d2292f52690adc64921e233bacd9
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Thu Feb 24 11:19:06 2022 +0100
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Feb 24 11:19:06 2022 +0100
x86/perfc: fold HVM's VM-exit counter arrays
Only one of them can be in use at a time, so make the whole set union-
like. While doing the rename in SVM code, combine the two perf_incra(),
generalizing the range upwards of VMEXIT_NPF.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
---
xen/arch/x86/hvm/svm/svm.c | 6 ++++--
xen/arch/x86/include/asm/perfc_defn.h | 10 +++++-----
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 8869a5de62..64a45045da 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2691,7 +2691,10 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)
goto out;
}
- perfc_incra(svmexits, exit_reason);
+ perfc_incra(vmexits,
+ exit_reason < VMEXIT_NPF
+ ? exit_reason
+ : exit_reason - VMEXIT_NPF + VMEXIT_NPF_PERFC);
hvm_maybe_deassert_evtchn_irq();
@@ -3020,7 +3023,6 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)
break;
case VMEXIT_NPF:
- perfc_incra(svmexits, VMEXIT_NPF_PERFC);
if ( cpu_has_svm_decode )
v->arch.hvm.svm.cached_insn_len = vmcb->guest_ins_len & 0xf;
rc = vmcb->exitinfo1 & PFEC_page_present
diff --git a/xen/arch/x86/include/asm/perfc_defn.h
b/xen/arch/x86/include/asm/perfc_defn.h
index 8a31329537..b07063b7d8 100644
--- a/xen/arch/x86/include/asm/perfc_defn.h
+++ b/xen/arch/x86/include/asm/perfc_defn.h
@@ -7,13 +7,13 @@ PERFCOUNTER_ARRAY(exceptions, "exceptions", 32)
#ifdef CONFIG_HVM
#define VMX_PERF_EXIT_REASON_SIZE 65
-#define VMX_PERF_VECTOR_SIZE 0x20
-PERFCOUNTER_ARRAY(vmexits, "vmexits", VMX_PERF_EXIT_REASON_SIZE)
-PERFCOUNTER_ARRAY(cause_vector, "cause vector", VMX_PERF_VECTOR_SIZE)
-
#define VMEXIT_NPF_PERFC 143
#define SVM_PERF_EXIT_REASON_SIZE (VMEXIT_NPF_PERFC + 1)
-PERFCOUNTER_ARRAY(svmexits, "SVMexits", SVM_PERF_EXIT_REASON_SIZE)
+PERFCOUNTER_ARRAY(vmexits, "vmexits",
+ MAX(VMX_PERF_EXIT_REASON_SIZE, SVM_PERF_EXIT_REASON_SIZE))
+
+#define VMX_PERF_VECTOR_SIZE 0x20
+PERFCOUNTER_ARRAY(cause_vector, "cause vector", VMX_PERF_VECTOR_SIZE)
#endif /* CONFIG_HVM */
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |