|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/6] x86/cpu-policy: define bits of leaf 6
On 24/11/2025 12:23 pm, Jan Beulich wrote:
> ... as far as we presently use them in the codebase.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> Or should we make both parts proper featureset elements? At least
> APERFMPERF could likely be made visible to guests (in principle).
> ---
> v2: Use bool and unions.
>
> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -121,7 +121,46 @@ struct cpu_policy
> uint64_t :64, :64; /* Leaf 0x3 - PSN. */
> uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
> uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
> - uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
> +
> + /* Leaf 0x6 - Therm/Perf. */
> + union {
> + uint32_t _6a;
> + struct {
> + bool :1,
> + turbo:1,
> + arat:1,
> + :1,
> + :1,
> + :1,
> + :1,
> + hwp:1,
> + hwp_notification:1,
> + hwp_activity_window:1,
> + hwp_epp:1,
> + hwp_plr:1,
> + :1,
> + hdc:1,
> + :1,
> + :1,
> + hwp_peci:1,
> + :1,
> + :1,
> + hw_feedback:1;
> + };
> + };
> + union {
> + uint32_t _6b;
> + };
> + union {
> + uint32_t _6c;
> + struct {
> + bool aperfmperf:1;
> + };
> + };
> + union {
> + uint32_t _6d;
> + };
The _6[a-d] variables are only needed for the featureset <-> policy
conversion which isn't the case here (notice how you don't need it the
series), and we're unlikely to want in the future.
This wants to read:
/* Leaf 0x6 - Therm/Perf. */
bool :1,
turbo:1,
arat:1,
:1,
:1,
:1,
:1,
hwp:1,
hwp_notification:1,
hwp_activity_window:1,
hwp_epp:1,
hwp_plr:1,
:1,
hdc:1,
:1,
:1,
hwp_peci:1,
:1,
:1,
hw_feedback:1;
uint32_t :32; /* b */
bool aperfmperf:1;
uint32_t :32; /* d */
and with that, Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |