From: Jan Kiszka <jan.kis...@siemens.com>

We will add separate counters for specific frequent MSR accesses.
Prepare by reordering renaming the existing existing counter to
"MSR_OTHER".

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 driver/sysfs.c                             | 8 +++++---
 hypervisor/arch/x86/svm.c                  | 2 +-
 hypervisor/arch/x86/vmx.c                  | 4 ++--
 include/arch/x86/asm/jailhouse_hypercall.h | 8 ++++----
 4 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/driver/sysfs.c b/driver/sysfs.c
index 876fddc2..cee8be31 100644
--- a/driver/sysfs.c
+++ b/driver/sysfs.c
@@ -104,13 +104,15 @@ JAILHOUSE_CPU_STATS_ATTR(vmexits_hypercall,
 JAILHOUSE_CPU_STATS_ATTR(vmexits_pio, JAILHOUSE_CPU_STAT_VMEXITS_PIO);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_xapic, JAILHOUSE_CPU_STAT_VMEXITS_XAPIC);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_cr, JAILHOUSE_CPU_STAT_VMEXITS_CR);
-JAILHOUSE_CPU_STATS_ATTR(vmexits_msr, JAILHOUSE_CPU_STAT_VMEXITS_MSR);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_cpuid, JAILHOUSE_CPU_STAT_VMEXITS_CPUID);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_xsetbv, JAILHOUSE_CPU_STAT_VMEXITS_XSETBV);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_exception,
                         JAILHOUSE_CPU_STAT_VMEXITS_EXCEPTION);
+JAILHOUSE_CPU_STATS_ATTR(vmexits_msr_other,
+                        JAILHOUSE_CPU_STAT_VMEXITS_MSR_OTHER);
 #elif defined(CONFIG_ARM) || defined(CONFIG_ARM64)
-JAILHOUSE_CPU_STATS_ATTR(vmexits_maintenance, 
JAILHOUSE_CPU_STAT_VMEXITS_MAINTENANCE);
+JAILHOUSE_CPU_STATS_ATTR(vmexits_maintenance,
+                        JAILHOUSE_CPU_STAT_VMEXITS_MAINTENANCE);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_virt_irq, JAILHOUSE_CPU_STAT_VMEXITS_VIRQ);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_virt_sgi, JAILHOUSE_CPU_STAT_VMEXITS_VSGI);
 JAILHOUSE_CPU_STATS_ATTR(vmexits_psci, JAILHOUSE_CPU_STAT_VMEXITS_PSCI);
@@ -128,10 +130,10 @@ static struct attribute *no_attrs[] = {
        &vmexits_pio_attr.kattr.attr,
        &vmexits_xapic_attr.kattr.attr,
        &vmexits_cr_attr.kattr.attr,
-       &vmexits_msr_attr.kattr.attr,
        &vmexits_cpuid_attr.kattr.attr,
        &vmexits_xsetbv_attr.kattr.attr,
        &vmexits_exception_attr.kattr.attr,
+       &vmexits_msr_other_attr.kattr.attr,
 #elif defined(CONFIG_ARM) || defined(CONFIG_ARM64)
        &vmexits_maintenance_attr.kattr.attr,
        &vmexits_virt_irq_attr.kattr.attr,
diff --git a/hypervisor/arch/x86/svm.c b/hypervisor/arch/x86/svm.c
index 1808e74e..05e146a4 100644
--- a/hypervisor/arch/x86/svm.c
+++ b/hypervisor/arch/x86/svm.c
@@ -924,7 +924,7 @@ void vcpu_handle_exit(struct per_cpu *cpu_data)
                vcpu_handle_cpuid();
                goto vmentry;
        case VMEXIT_MSR:
-               cpu_public->stats[JAILHOUSE_CPU_STAT_VMEXITS_MSR]++;
+               cpu_public->stats[JAILHOUSE_CPU_STAT_VMEXITS_MSR_OTHER]++;
                if (!vmcb->exitinfo1)
                        res = vcpu_handle_msr_read();
                else
diff --git a/hypervisor/arch/x86/vmx.c b/hypervisor/arch/x86/vmx.c
index 29967015..f2e3a946 100644
--- a/hypervisor/arch/x86/vmx.c
+++ b/hypervisor/arch/x86/vmx.c
@@ -1183,12 +1183,12 @@ void vcpu_handle_exit(struct per_cpu *cpu_data)
                        return;
                break;
        case EXIT_REASON_MSR_READ:
-               cpu_data->public.stats[JAILHOUSE_CPU_STAT_VMEXITS_MSR]++;
+               cpu_data->public.stats[JAILHOUSE_CPU_STAT_VMEXITS_MSR_OTHER]++;
                if (vcpu_handle_msr_read())
                        return;
                break;
        case EXIT_REASON_MSR_WRITE:
-               cpu_data->public.stats[JAILHOUSE_CPU_STAT_VMEXITS_MSR]++;
+               cpu_data->public.stats[JAILHOUSE_CPU_STAT_VMEXITS_MSR_OTHER]++;
                if (cpu_data->guest_regs.rcx == MSR_IA32_PERF_GLOBAL_CTRL) {
                        /* ignore writes */
                        vcpu_skip_emulated_instruction(X86_INST_LEN_WRMSR);
diff --git a/include/arch/x86/asm/jailhouse_hypercall.h 
b/include/arch/x86/asm/jailhouse_hypercall.h
index 3a52599f..5614337d 100644
--- a/include/arch/x86/asm/jailhouse_hypercall.h
+++ b/include/arch/x86/asm/jailhouse_hypercall.h
@@ -58,10 +58,10 @@
 #define JAILHOUSE_CPU_STAT_VMEXITS_PIO         JAILHOUSE_GENERIC_CPU_STATS
 #define JAILHOUSE_CPU_STAT_VMEXITS_XAPIC       JAILHOUSE_GENERIC_CPU_STATS + 1
 #define JAILHOUSE_CPU_STAT_VMEXITS_CR          JAILHOUSE_GENERIC_CPU_STATS + 2
-#define JAILHOUSE_CPU_STAT_VMEXITS_MSR         JAILHOUSE_GENERIC_CPU_STATS + 3
-#define JAILHOUSE_CPU_STAT_VMEXITS_CPUID       JAILHOUSE_GENERIC_CPU_STATS + 4
-#define JAILHOUSE_CPU_STAT_VMEXITS_XSETBV      JAILHOUSE_GENERIC_CPU_STATS + 5
-#define JAILHOUSE_CPU_STAT_VMEXITS_EXCEPTION   JAILHOUSE_GENERIC_CPU_STATS + 6
+#define JAILHOUSE_CPU_STAT_VMEXITS_CPUID       JAILHOUSE_GENERIC_CPU_STATS + 3
+#define JAILHOUSE_CPU_STAT_VMEXITS_XSETBV      JAILHOUSE_GENERIC_CPU_STATS + 4
+#define JAILHOUSE_CPU_STAT_VMEXITS_EXCEPTION   JAILHOUSE_GENERIC_CPU_STATS + 5
+#define JAILHOUSE_CPU_STAT_VMEXITS_MSR_OTHER   JAILHOUSE_GENERIC_CPU_STATS + 6
 #define JAILHOUSE_NUM_CPU_STATS                        
JAILHOUSE_GENERIC_CPU_STATS + 7
 
 /* CPUID interface */
-- 
2.16.4

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to