[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] target-i386: Make kvm_default_features an a
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] target-i386: Make kvm_default_features an array |
Date: |
Wed, 19 Feb 2014 17:38:28 +0100 |
On Wed, 19 Feb 2014 11:58:10 -0300
Eduardo Habkost <address@hidden> wrote:
> We will later make the KVM-specific code affect other feature words,
> too.
patch doesn't apply to current master, is there dependencies on list?
>
> Signed-off-by: Eduardo Habkost <address@hidden>
> ---
> target-i386/cpu.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 5a530b5..ee9dff1 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -358,17 +358,22 @@ typedef struct model_features_t {
> FeatureWord feat_word;
> } model_features_t;
>
> -static uint32_t kvm_default_features = (1 << KVM_FEATURE_CLOCKSOURCE) |
> +/* KVM-specific features that are automatically added to all CPU models
> + * when KVM is enabled.
> + */
> +static uint32_t kvm_default_features[FEATURE_WORDS] = {
> + [FEAT_KVM] = (1 << KVM_FEATURE_CLOCKSOURCE) |
> (1 << KVM_FEATURE_NOP_IO_DELAY) |
> (1 << KVM_FEATURE_CLOCKSOURCE2) |
> (1 << KVM_FEATURE_ASYNC_PF) |
> (1 << KVM_FEATURE_STEAL_TIME) |
> (1 << KVM_FEATURE_PV_EOI) |
> - (1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT);
> + (1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT),
> +};
>
> void disable_kvm_pv_eoi(void)
> {
> - kvm_default_features &= ~(1UL << KVM_FEATURE_PV_EOI);
> + kvm_default_features[FEAT_KVM] &= ~(1UL << KVM_FEATURE_PV_EOI);
> }
>
> void host_cpuid(uint32_t function, uint32_t count,
> @@ -1851,8 +1856,12 @@ static void x86_cpu_load_def(X86CPU *cpu, const char
> *name, Error **errp)
>
> /* Special cases not set in the X86CPUDefinition structs: */
> if (kvm_enabled()) {
> - env->features[FEAT_KVM] |= kvm_default_features;
> + FeatureWord w;
> + for (w = 0; w < FEATURE_WORDS; w++) {
> + env->features[w] |= kvm_default_features[w];
> + }
> }
> +
> env->features[FEAT_1_ECX] |= CPUID_EXT_HYPERVISOR;
>
> /* sysenter isn't supported in compatibility mode on AMD,
- [Qemu-devel] [PATCH 0/3] Enable x2apic by default on KVM, Eduardo Habkost, 2014/02/19
- [Qemu-devel] [PATCH 1/3] target-i386: Make kvm_default_features an array, Eduardo Habkost, 2014/02/19
- Re: [Qemu-devel] [PATCH 1/3] target-i386: Make kvm_default_features an array,
Igor Mammedov <=
- [Qemu-devel] [PATCH 2/3] target-i386: Introduce x86_cpu_compat_disable_kvm_features(), Eduardo Habkost, 2014/02/19
- [Qemu-devel] [PATCH 3/3] target-i386: Enable x2apic by default on KVM, Eduardo Habkost, 2014/02/19
- Re: [Qemu-devel] [PATCH 0/3] Enable x2apic by default on KVM, Paolo Bonzini, 2014/02/19
- Re: [Qemu-devel] [PATCH 0/3] Enable x2apic by default on KVM, Michael S. Tsirkin, 2014/02/19