Re: [PATCH for 6.19 4/4] PM: EM: Add dump to get-perf-domains in the EM YNL spec
From: Donald Hunter
Date: Mon Jan 05 2026 - 06:32:18 EST
Changwoo Min <changwoo@xxxxxxxxxx> writes:
> Add dump to get-perf-domains, so that a user can fetch either information
> about a specific performance domain with do or information about all
> performance domains with dump. The YNL spec, autogenerated files, and
> the do implementation are updated, and the dump implementation is added.
>
> Suggested-by: Donald Hunter <donald.hunter@xxxxxxxxx>
> Signed-off-by: Changwoo Min <changwoo@xxxxxxxxxx>
> ---
> .../netlink/specs/dev-energymodel.yaml | 12 ++++
> include/uapi/linux/dev_energymodel.h | 3 +-
> kernel/power/em_netlink.c | 58 +++++++++++++++++--
> kernel/power/em_netlink_autogen.c | 16 ++++-
> kernel/power/em_netlink_autogen.h | 2 +
> 5 files changed, 82 insertions(+), 9 deletions(-)
>
> diff --git a/Documentation/netlink/specs/dev-energymodel.yaml b/Documentation/netlink/specs/dev-energymodel.yaml
> index af8b8f72f722..1843e68faacf 100644
> --- a/Documentation/netlink/specs/dev-energymodel.yaml
> +++ b/Documentation/netlink/specs/dev-energymodel.yaml
> @@ -47,6 +47,11 @@ attribute-sets:
> doc: >-
> Information on all the performance domains.
> attributes:
> + -
> + name: perf-domain-id
> + type: u32
> + doc: >-
> + A unique ID number for each performance domain.
> -
> name: perf-domain
> type: nest
> @@ -136,6 +141,13 @@ operations:
> attribute-set: perf-domains
I think this can be changed to 'perf-domain' and you could remove
the 'perf-domains' attribute-set.
> doc: Get the list of information for all performance domains.
> do:
> + request:
> + attributes:
> + - perf-domain-id
> + reply:
> + attributes:
> + - perf-domain
If you use 'perf-domain' then the reply attributes would be:
reply:
attributes: &perf-domain-attrs
- pad
- perf-domain-id
- flags
- cpus
> + dump:
> reply:
> attributes:
> - perf-domain
You can then change the dump reply to be:
dump:
reply:
attributes: *perf-domain-attrs
The dump reply for multiple perf domains would then look like this, no
need for the 'perf-domains' wrapper:
[{'perf-domain-id': ...,
'flags': ...,
'cpus': [1, 2, 3]},
{'perf-domain-id': ...,
'flags': ...,
'cpus': [1, 2, 3]}]