V7: [PATCH 1/2] x86: Support usable check for all CPU features

Florian Weimer fweimer@redhat.com
Mon Jul 6 10:45:09 GMT 2020


* H. J. Lu:

> +  /* Copy the cpuid array to the usable array.  */
> +  unsigned int i;
> +  for (i = 0; i < COMMON_CPUID_INDEX_MAX; i++)
> +    cpu_features->features[i].usable = cpu_features->features[i].cpuid;
> +
> +  /* Clear the usable bits which require OS support.  */
> +  CPU_FEATURE_UNSET (cpu_features, FMA);
> +  CPU_FEATURE_UNSET (cpu_features, AVX);
> +  CPU_FEATURE_UNSET (cpu_features, F16C);
> +  CPU_FEATURE_UNSET (cpu_features, AVX2);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512F);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512DQ);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_IFMA);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512PF);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512ER);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512CD);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512BW);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512VL);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_VBMI);
> +  CPU_FEATURE_UNSET (cpu_features, PKU);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_VBMI2);
> +  CPU_FEATURE_UNSET (cpu_features, VAES);
> +  CPU_FEATURE_UNSET (cpu_features, VPCLMULQDQ);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_VNNI);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_BITALG);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_VPOPCNTDQ);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_4VNNIW);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_4FMAPS);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_VP2INTERSECT);
> +  CPU_FEATURE_UNSET (cpu_features, AMX_BF16);
> +  CPU_FEATURE_UNSET (cpu_features, AMX_TILE);
> +  CPU_FEATURE_UNSET (cpu_features, AMX_INT8);
> +  CPU_FEATURE_UNSET (cpu_features, XOP);
> +  CPU_FEATURE_UNSET (cpu_features, FMA4);
> +  CPU_FEATURE_UNSET (cpu_features, XSAVEC);
> +  CPU_FEATURE_UNSET (cpu_features, AVX512_BF16);

This is not future-proof because we do not know which new features will
require OS support, too.  I think the sense has to be reversed, copying
only the known flags.

Thanks,
Florian



More information about the Libc-alpha mailing list