| # 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 |