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

Re: [PATCH 2/8] x86/cpu-policy: define bits of leaf 6


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Tue, 18 Nov 2025 15:30:18 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pmn8UUt4vfhhKg5rTv2J3CvJWselWfmjzEw1oeY1aUA=; b=Wr989+wVSBVI34NNB7Vc57ErIrhMAFAAjRc5GRqreZP/MCr9B6BplleGw43YRZdEsuGzcC1QlYsHQ91P5Jk6TWL6OkLoWCTupPRwa1B6RuJBKLs2EG4jGkBnui1TZIzLxH2vDcuQqegEIjUBVaJ+9k7qUfl7uJzOI9ycGWjE+HQ35uudATk/JCR6hnyHEfmNbFnQjdKcgGxsEO065bLVkKmk88NTWNbgS1TnEnaqxkLfpqsYxKO9tM7nU/B53BsRSnTKQRSRBTELsIcR4zocD4n08cQmuBQUk0jUZDfzh1n/KTmUFxK5+ubyaik6Rtn3bYJJ82UJk4UiNSpSZPGgTQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xIjaYblgcfguBQWB+9LFHGOcI+4eu59u9UXIuybwWm8Gv5c4rJ7PNqpxrM9EHLmwGqJouS/F9tu0Z778johYLGY1WFaarAV+ehKACM+v6CndgGFoBLTL+ahEPq2zsigW1u4ZIbrWTYH15ei5grVE14nfvO9qsHlqKnT10gGn0XVuImGCZTU9oj/VRv85YS/T/V4yO9jfT/Mt/gfiAl8e8VyFas0xBoFekhUdYmiTG82AVHlQTXYSFChVRCnL03hvrI+umdwfUrT/wl4k/9XipGIj6LUhgxUaqhuYKr4qvH0WGnUgGyBGnGaV23G2QZ3C7Jzlh1ctSv35C2fIPW9hMQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, Teddy Astie <teddy.astie@xxxxxxxxxx>
  • Delivery-date: Tue, 18 Nov 2025 15:30:32 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 18/11/2025 3:06 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).

As before, A/MPERF can't be used safely by a VM.

In order to be persuaded to offer this to VMs, someone is going to have
to present a mechanism for how a VM could even figure out that it read
junk from the regsiters...

>
> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -121,7 +121,31 @@ 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. */
> +            struct {
> +                uint32_t /* a */:1,
> +                    turbo:1,
> +                    arat:1,
> +                    :4,
> +                    hwp:1,
> +                    hwp_notification:1,
> +                    hwp_activity_window:1,
> +                    hwp_epp:1,
> +                    hwp_plr:1,
> +                    :1,
> +                    hdc:1,
> +                    :2,
> +                    hwp_peci:1,
> +                    :2,
> +                    hw_feedback:1,
> +                    :12;
> +                uint32_t /* b */:32;
> +                uint32_t /* c */ aperfmperf:1,
> +                    :31;
> +                uint32_t /* d */:32;

Elsewhere, single bit fields are bool foo:1, and these want to match for
consistency.  In particular using uint32_t:1 creates a latent bug in
patch 8.

One problem with bool bitfields is that your :4 needs to become 4x :1. 
Right now his hidden in the macros that gen-cpuid.py makes.

Given that b is of type uint32_t, you can omit the :12 from the end of a
and leave a comment.  Similarly, the trailing :31 on c can be dropped.

> +            } pm;

Nothing else is sub-scoped.  I'd prefer that you drop the 'pm'.

~Andrew



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.