[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qom-cpu 08/11] target-i386: check/enforce: Check
From: |
Gleb Natapov |
Subject: |
Re: [Qemu-devel] [PATCH qom-cpu 08/11] target-i386: check/enforce: Check SVM flag support as well |
Date: |
Sun, 6 Jan 2013 16:25:12 +0200 |
On Fri, Jan 04, 2013 at 08:01:09PM -0200, Eduardo Habkost wrote:
> When nested SVM is supported, the kernel returns the SVM flag on
> GET_SUPPORTED_CPUID[1], so we can check the SVM flag safely on
> kvm_check_features_against_host().
>
> I don't know why the original code ignored the SVM flag. Maybe it was
> because kvm_cpu_fill_host() used the CPUID instruction directly instead
> of GET_SUPPORTED_CPUID
>
> [1] Older kernels (before v2.6.37) returned the SVM flag even if nested
> SVM was _not_ supported. So the only cases where this patch should
> change behavior is when SVM is being requested by the user or the
> CPU model, but not supported by the host. And on these cases we
> really want QEMU to abort if the "enforce" option is set.
>
> Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Gleb Natapov <address@hidden>
> ---
> Cc: Joerg Roedel <address@hidden>
> Cc: address@hidden
> Cc: address@hidden
> Cc: Jiri Denemark <address@hidden>
>
> I'm CCing libvirt people in case having SVM enabled by default may cause
> trouble when libvirt starts using the "enforce" flag. I don't know if
> libvirt expects most of the QEMU CPU models to have nested SVM enabled.
>
> Changes v2:
> - Coding style fix
> ---
> target-i386/cpu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index ce64b98..a9dd959 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -974,7 +974,7 @@ static int kvm_check_features_against_host(x86_def_t
> *guest_def)
> {&guest_def->ext2_features, &host_def.ext2_features,
> ~0, ext2_feature_name, 0x80000001, R_EDX},
> {&guest_def->ext3_features, &host_def.ext3_features,
> - ~CPUID_EXT3_SVM, ext3_feature_name, 0x80000001, R_ECX}
> + ~0, ext3_feature_name, 0x80000001, R_ECX}
> };
>
> assert(kvm_enabled());
> --
> 1.7.11.7
>
--
Gleb.
- Re: [Qemu-devel] [PATCH qom-cpu 01/11] target-i386: Don't set any KVM flag by default if KVM is disabled, (continued)
[Qemu-devel] [PATCH qom-cpu 02/11] target-i386: Disable kvm_mmu_op by default on pc-1.4, Eduardo Habkost, 2013/01/04
[Qemu-devel] [PATCH qom-cpu 05/11] target-i386: check/enforce: Fix CPUID leaf numbers on error messages, Eduardo Habkost, 2013/01/04
[Qemu-devel] [PATCH qom-cpu 08/11] target-i386: check/enforce: Check SVM flag support as well, Eduardo Habkost, 2013/01/04
- Re: [Qemu-devel] [PATCH qom-cpu 08/11] target-i386: check/enforce: Check SVM flag support as well,
Gleb Natapov <=
[Qemu-devel] [PATCH qom-cpu 11/11] target-i386: check/enforce: Check all feature words, Eduardo Habkost, 2013/01/04
Re: [Qemu-devel] [PATCH qom-cpu 00/11] disable-kvm_mmu + -cpu check/enforce fixes (v2), Andreas Färber, 2013/01/07