# 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