[PATCH 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field

Philippe Mathieu-Daudé posted 10 patches 1 month ago
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <anisinha@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Aurelien Jarno <aurelien@aurel32.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Eduardo Habkost <eduardo@habkost.net>, Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>, Paolo Bonzini <pbonzini@redhat.com>, Corey Minyard <cminyard@mvista.com>, Richard Henderson <richard.henderson@linaro.org>, Jason Wang <jasowang@redhat.com>, Yi Liu <yi.l.liu@intel.com>, "Clément Mathieu--Drif" <clement.mathieu--drif@bull.com>, Sergio Lopez <slp@redhat.com>, Alexander Graf <graf@amazon.com>, Dorjoy Chowdhury <dorjoychy111@gmail.com>, Stefan Berger <stefanb@linux.vnet.ibm.com>
There is a newer version of this series
[PATCH 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field
Posted by Philippe Mathieu-Daudé 1 month ago
The X86CPU::intel_pt_auto_level boolean was only set in the
pc_compat_3_1[] array, via the 'x-intel-pt-auto-level=off'
property. We removed all machines using that array, lets remove
that property and all the code around it.

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

diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 2b70d56e9b0..5a62aa61579 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -2457,9 +2457,6 @@ struct ArchCPU {
     /* Only advertise TOPOEXT features that AMD defines */
     bool amd_topoext_features_only;
 
-    /* Enable auto level-increase for Intel Processor Trace leave */
-    bool intel_pt_auto_level;
-
     /* if true fill the top bits of the MTRR_PHYSMASKn variable range */
     bool fill_mtrr_mask;
 
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index c77addd2c25..d8cd0d81d7f 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -9565,13 +9565,7 @@ void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
 
     /* Intel Processor Trace requires CPUID[0x14] */
     if ((env->features[FEAT_7_0_EBX] & CPUID_7_0_EBX_INTEL_PT)) {
-        if (cpu->intel_pt_auto_level) {
             x86_cpu_adjust_level(cpu, &cpu->env.cpuid_min_level, 0x14);
-        } else if (cpu->env.cpuid_min_level < 0x14) {
-            mark_unavailable_features(cpu, FEAT_7_0_EBX,
-                CPUID_7_0_EBX_INTEL_PT,
-                "Intel PT need CPUID leaf 0x14, please set by \"-cpu ...,intel-pt=on,min-level=0x14\"");
-        }
     }
 
     /*
@@ -10589,8 +10583,6 @@ static const Property x86_cpu_properties[] = {
      * to the specific Windows version being used."
      */
     DEFINE_PROP_INT32("x-hv-max-vps", X86CPU, hv_max_vps, -1),
-    DEFINE_PROP_BOOL("x-intel-pt-auto-level", X86CPU, intel_pt_auto_level,
-                     true),
     DEFINE_PROP_BOOL("x-l1-cache-per-thread", X86CPU, l1_cache_per_core, true),
     DEFINE_PROP_BOOL("x-force-cpuid-0x1f", X86CPU, force_cpuid_0x1f, false),
 
-- 
2.52.0


Re: [PATCH 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field
Posted by Thomas Huth 1 month ago
On 07/03/2026 16.26, Philippe Mathieu-Daudé wrote:
> The X86CPU::intel_pt_auto_level boolean was only set in the
> pc_compat_3_1[] array, via the 'x-intel-pt-auto-level=off'
> property. We removed all machines using that array, lets remove

s/lets/let's/

> that property and all the code around it.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   target/i386/cpu.h | 3 ---
>   target/i386/cpu.c | 8 --------
>   2 files changed, 11 deletions(-)
> 
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index 2b70d56e9b0..5a62aa61579 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -2457,9 +2457,6 @@ struct ArchCPU {
>       /* Only advertise TOPOEXT features that AMD defines */
>       bool amd_topoext_features_only;
>   
> -    /* Enable auto level-increase for Intel Processor Trace leave */
> -    bool intel_pt_auto_level;
> -
>       /* if true fill the top bits of the MTRR_PHYSMASKn variable range */
>       bool fill_mtrr_mask;
>   
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index c77addd2c25..d8cd0d81d7f 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -9565,13 +9565,7 @@ void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
>   
>       /* Intel Processor Trace requires CPUID[0x14] */
>       if ((env->features[FEAT_7_0_EBX] & CPUID_7_0_EBX_INTEL_PT)) {
> -        if (cpu->intel_pt_auto_level) {
>               x86_cpu_adjust_level(cpu, &cpu->env.cpuid_min_level, 0x14);

I think we should decrease the indentation here now?

> -        } else if (cpu->env.cpuid_min_level < 0x14) {
> -            mark_unavailable_features(cpu, FEAT_7_0_EBX,
> -                CPUID_7_0_EBX_INTEL_PT,
> -                "Intel PT need CPUID leaf 0x14, please set by \"-cpu ...,intel-pt=on,min-level=0x14\"");
> -        }
>       }

With the indentation fixed:
Reviewed-by: Thomas Huth <thuth@redhat.com>