[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] hw/i386/cpu: remove default_cpu_version and simplify
From: |
Ani Sinha |
Subject: |
Re: [PATCH] hw/i386/cpu: remove default_cpu_version and simplify |
Date: |
Mon, 9 Dec 2024 21:08:26 +0530 |
> On 9 Dec 2024, at 8:40 PM, Zhao Liu <zhao1.liu@intel.com> wrote:
>
> +Daniel,
>
> On Sun, Dec 08, 2024 at 12:18:10PM +0530, Ani Sinha wrote:
>> Date: Sun, 8 Dec 2024 12:18:10 +0530
>> From: Ani Sinha <anisinha@redhat.com>
>> Subject: [PATCH] hw/i386/cpu: remove default_cpu_version and simplify
>> X-Mailer: git-send-email 2.45.2
>>
>> commit 0788a56bd1ae3 ("i386: Make unversioned CPU models be aliases")
>> introduced 'default_cpu_version' for PCMachineClass. This created three
>> categories of CPU models:
>> - Most unversioned CPU models would use version 1 by default.
>> - For machines 4.0.1 and older that do not support cpu model aliases, a
>> special default_cpu_version value of CPU_VERSION_LEGACY is used.
>> - It was thought that future machines would use the latest value of cpu
>> versions corresponding to default_cpu_version value of
>> CPU_VERSION_LATEST [1].
>>
>> Unfortunately, all pc machines still use the default cpu version of 1 for
>> unversioned cpu models. Only microvms use CPU_VERSION_LATEST.
>
> Hi Ani,
>
> So could we use CPU_VERSION_LATEST for other machines now?
>
> Mapping unversioned cpu models to the latest version sounds like more
> user friendly.
Note that even though that was the intention when default_cpu_version was
introduced, it was never done that way. We have been using cpu version 1 for a
long time.
>
> Regards,
> Zhao
>
>> This change cleans up the complicated logic around default_cpu_version
>> including getting rid of default_cpu_version property itself. A couple of new
>> flags are introduced, one for the legacy model for machines 4.0.1 and older
>> and other for microvms. For older machines, a new pc machine property is
>> introduced that separates pc machine versions 4.0.1 and older from the newer
>> machines. 4.0.1 and older machines are scheduled to be deleted towards
>> end of 2025 since they would be 6 years old by then. At that time, we can
>> remove all logic around legacy cpus. Microvms are the only machines that
>> continue to use the latest cpu version. If this changes later, we can
>> remove all logic around x86_cpu_model_last_version(). Default cpu version
>> for unversioned cpu models is hardcoded to the value 1 and applies
>> unconditionally for all pc machine types of version 4.1 and above.
>>
>> This change also removes all complications around CPU_VERSION_AUTO
>> including removal of the value itself.
>>
>> 1) See commit dcafd1ef0af227 ("i386: Register versioned CPU models")
>>
>> CC: imammedo@redhat.com
>> Signed-off-by: Ani Sinha <anisinha@redhat.com>