diff mbox series

x86/kvm/hyper-v: tweak HYPERV_CPUID_ENLIGHTMENT_INFO

Message ID 20190124171516.23626-1-vkuznets@redhat.com (mailing list archive)
State New, archived
Headers show
Series x86/kvm/hyper-v: tweak HYPERV_CPUID_ENLIGHTMENT_INFO | expand

Commit Message

Vitaly Kuznetsov Jan. 24, 2019, 5:15 p.m. UTC
We shouldn't probably be suggesting using Enlightened VMCS when it's not
enabled (not supported from guest's point of view). System reset through
synthetic MSR is not recommended neither by genuine Hyper-V nor my QEMU.

Windows seems to be fine either way but let's be consistent.

Fixes: 2bc39970e932 ("x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID")
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 arch/x86/kvm/hyperv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Liran Alon Jan. 24, 2019, 5:28 p.m. UTC | #1
> On 24 Jan 2019, at 19:15, Vitaly Kuznetsov <vkuznets@redhat.com> wrote:
> 
> We shouldn't probably be suggesting using Enlightened VMCS when it's not
> enabled (not supported from guest's point of view). System reset through
> synthetic MSR is not recommended neither by genuine Hyper-V nor my QEMU.
> 
> Windows seems to be fine either way but let's be consistent.
> 
> Fixes: 2bc39970e932 ("x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID")
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
> arch/x86/kvm/hyperv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> index ac44a681f065..4730fcaa70cf 100644
> --- a/arch/x86/kvm/hyperv.c
> +++ b/arch/x86/kvm/hyperv.c
> @@ -1847,11 +1847,11 @@ int kvm_vcpu_ioctl_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
> 		case HYPERV_CPUID_ENLIGHTMENT_INFO:
> 			ent->eax |= HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
> 			ent->eax |= HV_X64_APIC_ACCESS_RECOMMENDED;
> -			ent->eax |= HV_X64_SYSTEM_RESET_RECOMMENDED;
> 			ent->eax |= HV_X64_RELAXED_TIMING_RECOMMENDED;
> 			ent->eax |= HV_X64_CLUSTER_IPI_RECOMMENDED;
> 			ent->eax |= HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED;
> -			ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
> +			if (evmcs_ver)
> +				ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
> 
> 			/*
> 			 * Default number of spinlock retry attempts, matches
> -- 
> 2.20.1
> 

Seems to me that there are 2 unrelated separated patches here. Why not split them?
For content itself: Reviewed-by: Liran Alon <liran.alon@oracle.com>
Vitaly Kuznetsov Jan. 24, 2019, 5:39 p.m. UTC | #2
Liran Alon <liran.alon@oracle.com> writes:

>> On 24 Jan 2019, at 19:15, Vitaly Kuznetsov <vkuznets@redhat.com> wrote:
>> 
>> We shouldn't probably be suggesting using Enlightened VMCS when it's not
>> enabled (not supported from guest's point of view). System reset through
>> synthetic MSR is not recommended neither by genuine Hyper-V nor my QEMU.
>> 
>> Windows seems to be fine either way but let's be consistent.
>> 
>> Fixes: 2bc39970e932 ("x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID")
>> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
>> ---
>> arch/x86/kvm/hyperv.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
>> index ac44a681f065..4730fcaa70cf 100644
>> --- a/arch/x86/kvm/hyperv.c
>> +++ b/arch/x86/kvm/hyperv.c
>> @@ -1847,11 +1847,11 @@ int kvm_vcpu_ioctl_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
>> 		case HYPERV_CPUID_ENLIGHTMENT_INFO:
>> 			ent->eax |= HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
>> 			ent->eax |= HV_X64_APIC_ACCESS_RECOMMENDED;
>> -			ent->eax |= HV_X64_SYSTEM_RESET_RECOMMENDED;
>> 			ent->eax |= HV_X64_RELAXED_TIMING_RECOMMENDED;
>> 			ent->eax |= HV_X64_CLUSTER_IPI_RECOMMENDED;
>> 			ent->eax |= HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED;
>> -			ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
>> +			if (evmcs_ver)
>> +				ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
>> 
>> 			/*
>> 			 * Default number of spinlock retry attempts, matches
>> -- 
>> 2.20.1
>> 
>
> Seems to me that there are 2 unrelated separated patches here. Why not
> split them?

They seem to be too small :-) No problem, I'll split them up in v2.

> For content itself: Reviewed-by: Liran Alon <liran.alon@oracle.com>
>

Thanks!
Liran Alon Jan. 24, 2019, 5:41 p.m. UTC | #3
> On 24 Jan 2019, at 19:39, Vitaly Kuznetsov <vkuznets@redhat.com> wrote:
> 
> Liran Alon <liran.alon@oracle.com> writes:
> 
>>> On 24 Jan 2019, at 19:15, Vitaly Kuznetsov <vkuznets@redhat.com> wrote:
>>> 
>>> We shouldn't probably be suggesting using Enlightened VMCS when it's not
>>> enabled (not supported from guest's point of view). System reset through
>>> synthetic MSR is not recommended neither by genuine Hyper-V nor my QEMU.
>>> 
>>> Windows seems to be fine either way but let's be consistent.
>>> 
>>> Fixes: 2bc39970e932 ("x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID")
>>> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
>>> ---
>>> arch/x86/kvm/hyperv.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>> 
>>> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
>>> index ac44a681f065..4730fcaa70cf 100644
>>> --- a/arch/x86/kvm/hyperv.c
>>> +++ b/arch/x86/kvm/hyperv.c
>>> @@ -1847,11 +1847,11 @@ int kvm_vcpu_ioctl_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
>>> 		case HYPERV_CPUID_ENLIGHTMENT_INFO:
>>> 			ent->eax |= HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
>>> 			ent->eax |= HV_X64_APIC_ACCESS_RECOMMENDED;
>>> -			ent->eax |= HV_X64_SYSTEM_RESET_RECOMMENDED;
>>> 			ent->eax |= HV_X64_RELAXED_TIMING_RECOMMENDED;
>>> 			ent->eax |= HV_X64_CLUSTER_IPI_RECOMMENDED;
>>> 			ent->eax |= HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED;
>>> -			ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
>>> +			if (evmcs_ver)
>>> +				ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
>>> 
>>> 			/*
>>> 			 * Default number of spinlock retry attempts, matches
>>> -- 
>>> 2.20.1
>>> 
>> 
>> Seems to me that there are 2 unrelated separated patches here. Why not
>> split them?
> 
> They seem to be too small :-) No problem, I'll split them up in v2.

I don’t think in general that it matters how small they are.
Separating to small logical patches allows better bisect, easier review and better revert resolution. So better overall. :)

> 
>> For content itself: Reviewed-by: Liran Alon <liran.alon@oracle.com>
>> 
> 
> Thanks!
> 
> -- 
> Vitaly
diff mbox series

Patch

diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index ac44a681f065..4730fcaa70cf 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -1847,11 +1847,11 @@  int kvm_vcpu_ioctl_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
 		case HYPERV_CPUID_ENLIGHTMENT_INFO:
 			ent->eax |= HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
 			ent->eax |= HV_X64_APIC_ACCESS_RECOMMENDED;
-			ent->eax |= HV_X64_SYSTEM_RESET_RECOMMENDED;
 			ent->eax |= HV_X64_RELAXED_TIMING_RECOMMENDED;
 			ent->eax |= HV_X64_CLUSTER_IPI_RECOMMENDED;
 			ent->eax |= HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED;
-			ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
+			if (evmcs_ver)
+				ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
 
 			/*
 			 * Default number of spinlock retry attempts, matches