Re: [PATCH v5 0/8] KVM: nVMX: Add full nested support for "load IA32_PERF_GLOBAL_CTRL" VM-{Entry,Exit} control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 14/11/19 01:17, Oliver Upton wrote:
> [v1] https://lore.kernel.org/r/20190828234134.132704-1-oupton@xxxxxxxxxx
> [v2] https://lore.kernel.org/r/20190903213044.168494-1-oupton@xxxxxxxxxx
> [v3] https://lore.kernel.org/r/20190903215801.183193-1-oupton@xxxxxxxxxx
> [v4] https://lore.kernel.org/r/20190906210313.128316-1-oupton@xxxxxxxxxx
> 
> v1 => v2:
>  - Add Krish's Co-developed-by and Signed-off-by tags.
>  - Fix minor nit to kvm-unit-tests to use 'host' local variable
>    throughout test_load_pgc()
>  - Teach guest_state_test_main() to check guest state from within nested
>    VM
>  - Update proposed tests to use guest/host state checks, wherein the
>    value is checked from MSR_CORE_PERF_GLOBAL_CTRL.
>  - Changelog line wrapping
> 
> v2 => v3:
>  - Remove the value unchanged condition from
>    kvm_is_valid_perf_global_ctrl
>  - Add line to changelog for patch 3/8
> 
> v3 => v4:
>  - Allow tests to set the guest func multiple times
>  - Style fixes throughout kvm-unit-tests patches, per Krish's review
> 
> v4 => v5:
>  - Rebased kernel and kvm-unit-tests patches
>  - Reordered and reworked patches to now WARN on a failed
>    kvm_set_msr()
>  - Dropped patch to alow resetting guest in kvm-unit-tests, as the
>    functionality is no longer needed.
> 
> This patchset exposes the "load IA32_PERF_GLOBAL_CTRL" to guests for nested
> VM-entry and VM-exit. There already was some existing code that supported
> the VM-exit ctrl, though it had an issue and was not exposed to the guest
> anyway. These patches are based on the original set that Krish Sadhukhan
> sent out earlier this year.
> 
> Oliver Upton (6):
>   KVM: nVMX: Expose load IA32_PERF_GLOBAL_CTRL VM-{Entry,Exit} control
>   KVM: nVMX: Load GUEST_IA32_PERF_GLOBAL_CTRL MSR on VM-Entry
>   KVM: nVMX: Use kvm_set_msr to load IA32_PERF_GLOBAL_CTRL on VM-Exit
>   KVM: nVMX: Check HOST_IA32_PERF_GLOBAL_CTRL on VM-Entry
>   KVM: nVMX: Check GUEST_IA32_PERF_GLOBAL_CTRL on VM-Entry
>   KVM: VMX: Add helper to check reserved bits in IA32_PERF_GLOBAL_CTRL
> 
>  arch/x86/kvm/pmu.h           |  6 ++++++
>  arch/x86/kvm/vmx/nested.c    | 51 +++++++++++++++++++++++++++++++++++++++++++++++++--
>  arch/x86/kvm/vmx/nested.h    |  1 +
>  arch/x86/kvm/vmx/pmu_intel.c |  5 ++++-
> 

Queued, thanks.

But I had to squash this in patch 8:

diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c
index 3129385..b6233ae 100644
--- a/x86/vmx_tests.c
+++ b/x86/vmx_tests.c
@@ -7161,6 +7161,7 @@ static void test_perf_global_ctrl(u32 nr, const
char *name, u32 ctrl_nr,
 		report_prefix_pop();
 	}

+	data->enabled = false;
 	report_prefix_pop();
 	vmcs_write(ctrl_nr, ctrl_saved);
 	vmcs_write(nr, pgc_saved);

and I'm not sure about how this could have worked for you.

Paolo





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux