|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/6] x86/cpu-policy: Infrastructure for MSR_ARCH_CAPS
On 16/05/2023 1:02 pm, Jan Beulich wrote:
> On 15.05.2023 16:42, Andrew Cooper wrote:
>> Bits through 24 are already defined, meaning that we're not far off needing
>> the second word. Put both in right away.
>>
>> The bool bitfield names in the arch_caps union are unused, and somewhat out
>> of
>> date. They'll shortly be automatically generated.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> I'm largely okay, but I'd like to raise a couple of naming / presentation
> questions:
>
>> --- a/tools/misc/xen-cpuid.c
>> +++ b/tools/misc/xen-cpuid.c
>> @@ -226,6 +226,14 @@ static const char *const str_7d2[32] =
>> [ 4] = "bhi-ctrl", [ 5] = "mcdt-no",
>> };
>>
>> +static const char *const str_10Al[32] =
>> +{
>> +};
>> +
>> +static const char *const str_10Ah[32] =
>> +{
>> +};
>> +
>> static const struct {
>> const char *name;
>> const char *abbr;
>> @@ -248,6 +256,8 @@ static const struct {
>> { "0x00000007:2.edx", "7d2", str_7d2 },
>> { "0x00000007:1.ecx", "7c1", str_7c1 },
>> { "0x00000007:1.edx", "7d1", str_7d1 },
>> + { "0x0000010a.lo", "10Al", str_10Al },
>> + { "0x0000010a.hi", "10Ah", str_10Ah },
> The MSR-ness can certainly be inferred from the .lo / .hi and l/h
> suffixes of the strings, but I wonder whether having it e.g. like
>
> { "MSR0000010a.lo", "m10Al", str_10Al },
> { "MSR0000010a.hi", "m10Ah", str_10Ah },
>
> or
>
> { "MSR[010a].lo", "m10Al", str_10Al },
> { "MSR[010a].hi", "m10Ah", str_10Ah },
>
> or even
>
> { "ARCH_CAPS.lo", "m10Al", str_10Al },
> { "ARCH_CAPS.hi", "m10Ah", str_10Ah },
>
> wouldn't make it more obvious.
Well, it's takes something which is consistent, and introduces
inconsistencies.
The e is logically part of the leaf number, so using m for MSRs is not
equivalent. If you do want to prefix MSRs, you need to prefix the
non-extended leaves, and c isn't obviously CPUID when there's the
Centaur range at 0xC000xxxx
Nor can you reasonably have MSR[...] in the long names without
CPUID[...] too, and that's taking some pretty long lines and making them
even longer.
> For the two str_*, see below.
>
>> --- a/xen/include/public/arch-x86/cpufeatureset.h
>> +++ b/xen/include/public/arch-x86/cpufeatureset.h
>> @@ -307,6 +307,10 @@ XEN_CPUFEATURE(AVX_VNNI_INT8, 15*32+ 4) /*A
>> AVX-VNNI-INT8 Instructions */
>> XEN_CPUFEATURE(AVX_NE_CONVERT, 15*32+ 5) /*A AVX-NE-CONVERT
>> Instructions */
>> XEN_CPUFEATURE(CET_SSS, 15*32+18) /* CET Supervisor Shadow
>> Stacks safe to use */
>>
>> +/* Intel-defined CPU features, MSR_ARCH_CAPS 0x10a.eax, word 16 */
>> +
>> +/* Intel-defined CPU features, MSR_ARCH_CAPS 0x10a.edx, word 17 */
> Right here I'd be inclined to omit the MSR index; the name ought to
> be sufficient.
It doesn't hurt to have it, and it it might be helpful for people who
don't know the indices off by heart.
~Andrew
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |