diff mbox series

[PATCH-for-9.1,17/18] target/i386: Remove X86CPU::kvm_no_smi_migration field

Message ID 20240305134221.30924-18-philmd@linaro.org (mailing list archive)
State New, archived
Headers show
Series hw/i386: Remove deprecated pc-i440fx-2.0 -> 2.3 machines | expand

Commit Message

Philippe Mathieu-Daudé March 5, 2024, 1:42 p.m. UTC
X86CPU::kvm_no_smi_migration was only used by the
pc-i440fx-2.3 machine, which got removed. Remove it
and simplify kvm_put_vcpu_events().

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 target/i386/cpu.h     | 3 ---
 target/i386/cpu.c     | 2 --
 target/i386/kvm/kvm.c | 6 ------
 3 files changed, 11 deletions(-)

Comments

Thomas Huth March 6, 2024, 6:30 p.m. UTC | #1
On 05/03/2024 14.42, Philippe Mathieu-Daudé wrote:
> X86CPU::kvm_no_smi_migration was only used by the
> pc-i440fx-2.3 machine, which got removed. Remove it
> and simplify kvm_put_vcpu_events().
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   target/i386/cpu.h     | 3 ---
>   target/i386/cpu.c     | 2 --
>   target/i386/kvm/kvm.c | 6 ------
>   3 files changed, 11 deletions(-)
> 
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index 952174bb6f..bdc640e844 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -2018,9 +2018,6 @@ struct ArchCPU {
>       /* if set, limit maximum value for phys_bits when host_phys_bits is true */
>       uint8_t host_phys_bits_limit;
>   
> -    /* Stop SMI delivery for migration compatibility with old machines */
> -    bool kvm_no_smi_migration;
> -
>       /* Forcefully disable KVM PV features not exposed in guest CPUIDs */
>       bool kvm_pv_enforce_cpuid;
>   
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 2666ef3808..0e3ad8db2b 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -7905,8 +7905,6 @@ static Property x86_cpu_properties[] = {
>       DEFINE_PROP_BOOL("x-vendor-cpuid-only", X86CPU, vendor_cpuid_only, true),
>       DEFINE_PROP_BOOL("lmce", X86CPU, enable_lmce, false),
>       DEFINE_PROP_BOOL("l3-cache", X86CPU, enable_l3_cache, true),
> -    DEFINE_PROP_BOOL("kvm-no-smi-migration", X86CPU, kvm_no_smi_migration,
> -                     false),
>       DEFINE_PROP_BOOL("kvm-pv-enforce-cpuid", X86CPU, kvm_pv_enforce_cpuid,
>                        false),
>       DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true),
> diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
> index 42970ab046..571cbbf1fc 100644
> --- a/target/i386/kvm/kvm.c
> +++ b/target/i386/kvm/kvm.c
> @@ -4344,12 +4344,6 @@ static int kvm_put_vcpu_events(X86CPU *cpu, int level)
>               events.smi.pending = 0;
>               events.smi.latched_init = 0;
>           }
> -        /* Stop SMI delivery on old machine types to avoid a reboot
> -         * on an inward migration of an old VM.
> -         */
> -        if (!cpu->kvm_no_smi_migration) {
> -            events.flags |= KVM_VCPUEVENT_VALID_SMM;
> -        }

Shouldn't it be the other way round, i.e. that the flag is now always set?

pc_compat_2_3[] had:

     { TYPE_X86_CPU, "kvm-no-smi-migration", "on" },

... so I think kvm_no_smi_migration was set to true for the old machines?

  Thomas
Philippe Mathieu-Daudé March 27, 2024, 9:33 a.m. UTC | #2
On 6/3/24 19:30, Thomas Huth wrote:
> On 05/03/2024 14.42, Philippe Mathieu-Daudé wrote:
>> X86CPU::kvm_no_smi_migration was only used by the
>> pc-i440fx-2.3 machine, which got removed. Remove it
>> and simplify kvm_put_vcpu_events().
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>>   target/i386/cpu.h     | 3 ---
>>   target/i386/cpu.c     | 2 --
>>   target/i386/kvm/kvm.c | 6 ------
>>   3 files changed, 11 deletions(-)


>> diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
>> index 42970ab046..571cbbf1fc 100644
>> --- a/target/i386/kvm/kvm.c
>> +++ b/target/i386/kvm/kvm.c
>> @@ -4344,12 +4344,6 @@ static int kvm_put_vcpu_events(X86CPU *cpu, int 
>> level)
>>               events.smi.pending = 0;
>>               events.smi.latched_init = 0;
>>           }
>> -        /* Stop SMI delivery on old machine types to avoid a reboot
>> -         * on an inward migration of an old VM.
>> -         */
>> -        if (!cpu->kvm_no_smi_migration) {
>> -            events.flags |= KVM_VCPUEVENT_VALID_SMM;
>> -        }
> 
> Shouldn't it be the other way round, i.e. that the flag is now always set?

Oops you are right, good catch!

> 
> pc_compat_2_3[] had:
> 
>      { TYPE_X86_CPU, "kvm-no-smi-migration", "on" },
> 
> ... so I think kvm_no_smi_migration was set to true for the old machines?
> 
>   Thomas
>
diff mbox series

Patch

diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 952174bb6f..bdc640e844 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -2018,9 +2018,6 @@  struct ArchCPU {
     /* if set, limit maximum value for phys_bits when host_phys_bits is true */
     uint8_t host_phys_bits_limit;
 
-    /* Stop SMI delivery for migration compatibility with old machines */
-    bool kvm_no_smi_migration;
-
     /* Forcefully disable KVM PV features not exposed in guest CPUIDs */
     bool kvm_pv_enforce_cpuid;
 
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 2666ef3808..0e3ad8db2b 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -7905,8 +7905,6 @@  static Property x86_cpu_properties[] = {
     DEFINE_PROP_BOOL("x-vendor-cpuid-only", X86CPU, vendor_cpuid_only, true),
     DEFINE_PROP_BOOL("lmce", X86CPU, enable_lmce, false),
     DEFINE_PROP_BOOL("l3-cache", X86CPU, enable_l3_cache, true),
-    DEFINE_PROP_BOOL("kvm-no-smi-migration", X86CPU, kvm_no_smi_migration,
-                     false),
     DEFINE_PROP_BOOL("kvm-pv-enforce-cpuid", X86CPU, kvm_pv_enforce_cpuid,
                      false),
     DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true),
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
index 42970ab046..571cbbf1fc 100644
--- a/target/i386/kvm/kvm.c
+++ b/target/i386/kvm/kvm.c
@@ -4344,12 +4344,6 @@  static int kvm_put_vcpu_events(X86CPU *cpu, int level)
             events.smi.pending = 0;
             events.smi.latched_init = 0;
         }
-        /* Stop SMI delivery on old machine types to avoid a reboot
-         * on an inward migration of an old VM.
-         */
-        if (!cpu->kvm_no_smi_migration) {
-            events.flags |= KVM_VCPUEVENT_VALID_SMM;
-        }
     }
 
     if (level >= KVM_PUT_RESET_STATE) {