summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-01-16 12:08:19 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2026-01-16 12:08:19 -0800
commitb62ce2547fe8a8ba15857bb974bcad250c5420d6 (patch)
treec4a05cabed22c7ead2928ecd356a2aa1971685cd /Documentation
parente547d4f733f04ac540099b09358e6dc8c8977113 (diff)
parentd51e68b7007b9c1c3456c4f93657a153ae3816ec (diff)
Merge tag 'pm-6.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fixes from Rafael Wysocki: "These fix an error path memory leak in the energy model management code, fix a kerneldoc comment in it, and fix and revamp the energy model YNL specification added recently along with the new energy model management netlink interface (that received feedback after being added): - Fix a memory leak in em_create_pd() error path (Malaya Kumar Rout) - Fix stale description of the cost field in struct em_perf_state to reflect the current code (Yaxiong Tian) - Fix and revamp the energy model YNL specification added recently along with the energy model netlink interface (Changwoo Min)" * tag 'pm-6.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PM: EM: Add dump to get-perf-domains in the EM YNL spec PM: EM: Change cpus' type from string to u64 array in the EM YNL spec PM: EM: Rename em.yaml to dev-energymodel.yaml PM: EM: Fix yamllint warnings in the EM YNL spec PM: EM: Fix memory leak in em_create_pd() error path PM: EM: Fix incorrect description of the cost field in struct em_perf_state
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/netlink/specs/dev-energymodel.yaml175
-rw-r--r--Documentation/netlink/specs/em.yaml113
2 files changed, 175 insertions, 113 deletions
diff --git a/Documentation/netlink/specs/dev-energymodel.yaml b/Documentation/netlink/specs/dev-energymodel.yaml
new file mode 100644
index 000000000000..11faabfdfbe8
--- /dev/null
+++ b/Documentation/netlink/specs/dev-energymodel.yaml
@@ -0,0 +1,175 @@
+# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
+#
+# Copyright (c) 2025 Valve Corporation.
+#
+---
+name: dev-energymodel
+
+doc: |
+ Energy model netlink interface to notify its changes.
+
+protocol: genetlink
+
+uapi-header: linux/dev_energymodel.h
+
+definitions:
+ -
+ type: flags
+ name: perf-state-flags
+ entries:
+ -
+ name: perf-state-inefficient
+ doc: >-
+ The performance state is inefficient. There is in this perf-domain,
+ another performance state with a higher frequency but a lower or
+ equal power cost.
+ -
+ type: flags
+ name: perf-domain-flags
+ entries:
+ -
+ name: perf-domain-microwatts
+ doc: >-
+ The power values are in micro-Watts or some other scale.
+ -
+ name: perf-domain-skip-inefficiencies
+ doc: >-
+ Skip inefficient states when estimating energy consumption.
+ -
+ name: perf-domain-artificial
+ doc: >-
+ The power values are artificial and might be created by platform
+ missing real power information.
+
+attribute-sets:
+ -
+ name: perf-domain
+ doc: >-
+ Information on a single performance domains.
+ attributes:
+ -
+ name: pad
+ type: pad
+ -
+ name: perf-domain-id
+ type: u32
+ doc: >-
+ A unique ID number for each performance domain.
+ -
+ name: flags
+ type: u64
+ doc: >-
+ Bitmask of performance domain flags.
+ enum: perf-domain-flags
+ -
+ name: cpus
+ type: u64
+ multi-attr: true
+ doc: >-
+ CPUs that belong to this performance domain.
+ -
+ name: perf-table
+ doc: >-
+ Performance states table.
+ attributes:
+ -
+ name: perf-domain-id
+ type: u32
+ doc: >-
+ A unique ID number for each performance domain.
+ -
+ name: perf-state
+ type: nest
+ nested-attributes: perf-state
+ multi-attr: true
+ -
+ name: perf-state
+ doc: >-
+ Performance state of a performance domain.
+ attributes:
+ -
+ name: pad
+ type: pad
+ -
+ name: performance
+ type: u64
+ doc: >-
+ CPU performance (capacity) at a given frequency.
+ -
+ name: frequency
+ type: u64
+ doc: >-
+ The frequency in KHz, for consistency with CPUFreq.
+ -
+ name: power
+ type: u64
+ doc: >-
+ The power consumed at this level (by 1 CPU or by a registered
+ device). It can be a total power: static and dynamic.
+ -
+ name: cost
+ type: u64
+ doc: >-
+ The cost coefficient associated with this level, used during energy
+ calculation. Equal to: power * max_frequency / frequency.
+ -
+ name: flags
+ type: u64
+ doc: >-
+ Bitmask of performance state flags.
+ enum: perf-state-flags
+
+operations:
+ list:
+ -
+ name: get-perf-domains
+ attribute-set: perf-domain
+ doc: Get the list of information for all performance domains.
+ do:
+ request:
+ attributes:
+ - perf-domain-id
+ reply:
+ attributes: &perf-domain-attrs
+ - pad
+ - perf-domain-id
+ - flags
+ - cpus
+ dump:
+ reply:
+ attributes: *perf-domain-attrs
+ -
+ name: get-perf-table
+ attribute-set: perf-table
+ doc: Get the energy model table of a performance domain.
+ do:
+ request:
+ attributes:
+ - perf-domain-id
+ reply:
+ attributes:
+ - perf-domain-id
+ - perf-state
+ -
+ name: perf-domain-created
+ doc: A performance domain is created.
+ notify: get-perf-table
+ mcgrp: event
+ -
+ name: perf-domain-updated
+ doc: A performance domain is updated.
+ notify: get-perf-table
+ mcgrp: event
+ -
+ name: perf-domain-deleted
+ doc: A performance domain is deleted.
+ attribute-set: perf-table
+ event:
+ attributes:
+ - perf-domain-id
+ mcgrp: event
+
+mcast-groups:
+ list:
+ -
+ name: event
diff --git a/Documentation/netlink/specs/em.yaml b/Documentation/netlink/specs/em.yaml
deleted file mode 100644
index 9905ca482325..000000000000
--- a/Documentation/netlink/specs/em.yaml
+++ /dev/null
@@ -1,113 +0,0 @@
-# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
-
-name: em
-
-doc: |
- Energy model netlink interface to notify its changes.
-
-protocol: genetlink
-
-uapi-header: linux/energy_model.h
-
-attribute-sets:
- -
- name: pds
- attributes:
- -
- name: pd
- type: nest
- nested-attributes: pd
- multi-attr: true
- -
- name: pd
- attributes:
- -
- name: pad
- type: pad
- -
- name: pd-id
- type: u32
- -
- name: flags
- type: u64
- -
- name: cpus
- type: string
- -
- name: pd-table
- attributes:
- -
- name: pd-id
- type: u32
- -
- name: ps
- type: nest
- nested-attributes: ps
- multi-attr: true
- -
- name: ps
- attributes:
- -
- name: pad
- type: pad
- -
- name: performance
- type: u64
- -
- name: frequency
- type: u64
- -
- name: power
- type: u64
- -
- name: cost
- type: u64
- -
- name: flags
- type: u64
-
-operations:
- list:
- -
- name: get-pds
- attribute-set: pds
- doc: Get the list of information for all performance domains.
- do:
- reply:
- attributes:
- - pd
- -
- name: get-pd-table
- attribute-set: pd-table
- doc: Get the energy model table of a performance domain.
- do:
- request:
- attributes:
- - pd-id
- reply:
- attributes:
- - pd-id
- - ps
- -
- name: pd-created
- doc: A performance domain is created.
- notify: get-pd-table
- mcgrp: event
- -
- name: pd-updated
- doc: A performance domain is updated.
- notify: get-pd-table
- mcgrp: event
- -
- name: pd-deleted
- doc: A performance domain is deleted.
- attribute-set: pd-table
- event:
- attributes:
- - pd-id
- mcgrp: event
-
-mcast-groups:
- list:
- -
- name: event