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.