Re: [PATCH v2 1/5] perf/x86/intel/lbr: use setup_clear_cpu_cap instead of clear_cpu_cap

From: Paolo Bonzini
Date: Thu Nov 03 2022 - 09:27:39 EST


On 11/2/22 17:23, H. Peter Anvin wrote:
We have a dependency system for CPUID features. If you are going to
do this (as opposed to "fixing" this in Qemu or just saying "don't do
that, it isn't a valid hardware configuration."

I didn't check Robert's full list, but at least in the case of aesni-intel_glue this is not about AVX2-depends-on-AVX or AVX-depends-on-XSAVE (and it is not about QEMU at all). It's just that checking AVX or AVX2 only tells you about presence and is not enough to say whether the instructions are _usable_. Likewise for AVX512.

What would the dependency be?

Paolo



1. Currently checking XSAVE YMM:
aria_aesni_avx_glue
blake2s-glue
camellia_aesni_avx2_glue camellia_aesni_avx_glue
cast5_avx_glue cast6_avx_glue
chacha_glue
poly1305_glue
serpent_avx2_glue serpent_avx_glue
sha1_ssse3_glue sha256_ssse3_glue sha512_ssse3_glue
sm3_avx_glue
sm4_aesni_avx2_glue sm4_aesni_avx_glue
twofish_avx_glue

Currently not checking XSAVE YMM:
aesni-intel_glue
curve25519-x86_64
nhpoly1305-avx2-glue
polyval-clmulni_glue

2. Similarly, modules using X86_FEATURE_AVX512F, X86_FEATURE_AVXX512VL
and/or X86_FEATURE_AVX512BW probably need to check XFEATURE_MASK_AVX512:

Currently checking XSAVE AVX512:
blake2s-glue
poly1305_glue

Currently not checking XSAVE AVX512:
chacha_glue

3. Similarly, modules using X86_FEATURE_XMM2 probably need to
check XFEATURE_MASK_SSE:

Currently checking XSAVE SSE:
aegis128-aesni-glue
Current not checking XSAVE SSE:
nhpoly1305-sse2_glue
serpent_sse2_glue