Re: [PATCH 1/7] target/i386: disable PerfMonV2 when PERFCORE unavailable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Zhao,


> 
> You can define dependency like this:
> 
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 3baa95481fbc..99c69ec9f369 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -1803,6 +1803,10 @@ static FeatureDep feature_dependencies[] = {
>          .from = { FEAT_7_1_EDX,             CPUID_7_1_EDX_AVX10 },
>          .to = { FEAT_24_0_EBX,              ~0ull },
>      },
> +    {
> +        .from = { FEAT_8000_0001_ECX,       CPUID_EXT3_PERFCORE },
> +        .to = { FEAT_8000_0022_EAX,         CPUID_8000_0022_EAX_PERFMON_V2 }
> +    }
>  };
> 
>  typedef struct X86RegisterInfo32 {
> 
> ---
> Does this meet your needs?
> 

Thank you very much for the suggestion.

Yes, this works. The PERFCORE is a prerequisite of PERFMON_V2 (according to
Linux kernel source code).

1403 static int __init amd_core_pmu_init(void)
1404 {
1405         union cpuid_0x80000022_ebx ebx;
1406         u64 even_ctr_mask = 0ULL;
1407         int i;
1408
1409         if (!boot_cpu_has(X86_FEATURE_PERFCTR_CORE))
1410                 return 0;


If you don't mind, I will send the v2 with your Suggested-by.

Thank you very much!

Dongli Zhang




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux