xref: /linux/Documentation/netlink/specs/dev-energymodel.yaml (revision b62ce2547fe8a8ba15857bb974bcad250c5420d6)
1caa07a81SChangwoo Min# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2caa07a81SChangwoo Min#
3caa07a81SChangwoo Min# Copyright (c) 2025 Valve Corporation.
4caa07a81SChangwoo Min#
5caa07a81SChangwoo Min---
6caa07a81SChangwoo Minname: dev-energymodel
7caa07a81SChangwoo Min
8caa07a81SChangwoo Mindoc: |
9caa07a81SChangwoo Min  Energy model netlink interface to notify its changes.
10caa07a81SChangwoo Min
11caa07a81SChangwoo Minprotocol: genetlink
12caa07a81SChangwoo Min
13caa07a81SChangwoo Minuapi-header: linux/dev_energymodel.h
14caa07a81SChangwoo Min
15caa07a81SChangwoo Mindefinitions:
16caa07a81SChangwoo Min  -
17caa07a81SChangwoo Min    type: flags
18caa07a81SChangwoo Min    name: perf-state-flags
19caa07a81SChangwoo Min    entries:
20caa07a81SChangwoo Min      -
21caa07a81SChangwoo Min        name: perf-state-inefficient
22caa07a81SChangwoo Min        doc: >-
23caa07a81SChangwoo Min          The performance state is inefficient. There is in this perf-domain,
24caa07a81SChangwoo Min          another performance state with a higher frequency but a lower or
25caa07a81SChangwoo Min          equal power cost.
26caa07a81SChangwoo Min  -
27caa07a81SChangwoo Min    type: flags
28caa07a81SChangwoo Min    name: perf-domain-flags
29caa07a81SChangwoo Min    entries:
30caa07a81SChangwoo Min      -
31caa07a81SChangwoo Min        name: perf-domain-microwatts
32caa07a81SChangwoo Min        doc: >-
33caa07a81SChangwoo Min          The power values are in micro-Watts or some other scale.
34caa07a81SChangwoo Min      -
35caa07a81SChangwoo Min        name: perf-domain-skip-inefficiencies
36caa07a81SChangwoo Min        doc: >-
37caa07a81SChangwoo Min          Skip inefficient states when estimating energy consumption.
38caa07a81SChangwoo Min      -
39caa07a81SChangwoo Min        name: perf-domain-artificial
40caa07a81SChangwoo Min        doc: >-
41caa07a81SChangwoo Min          The power values are artificial and might be created by platform
42caa07a81SChangwoo Min          missing real power information.
43caa07a81SChangwoo Min
44caa07a81SChangwoo Minattribute-sets:
45caa07a81SChangwoo Min  -
46caa07a81SChangwoo Min    name: perf-domain
47caa07a81SChangwoo Min    doc: >-
48caa07a81SChangwoo Min      Information on a single performance domains.
49caa07a81SChangwoo Min    attributes:
50caa07a81SChangwoo Min      -
51caa07a81SChangwoo Min        name: pad
52caa07a81SChangwoo Min        type: pad
53caa07a81SChangwoo Min      -
54caa07a81SChangwoo Min        name: perf-domain-id
55caa07a81SChangwoo Min        type: u32
56caa07a81SChangwoo Min        doc: >-
57caa07a81SChangwoo Min          A unique ID number for each performance domain.
58caa07a81SChangwoo Min      -
59caa07a81SChangwoo Min        name: flags
60caa07a81SChangwoo Min        type: u64
61caa07a81SChangwoo Min        doc: >-
62caa07a81SChangwoo Min          Bitmask of performance domain flags.
63caa07a81SChangwoo Min        enum: perf-domain-flags
64caa07a81SChangwoo Min      -
65caa07a81SChangwoo Min        name: cpus
66d29b900cSChangwoo Min        type: u64
67d29b900cSChangwoo Min        multi-attr: true
68caa07a81SChangwoo Min        doc: >-
69caa07a81SChangwoo Min          CPUs that belong to this performance domain.
70caa07a81SChangwoo Min  -
71caa07a81SChangwoo Min    name: perf-table
72caa07a81SChangwoo Min    doc: >-
73caa07a81SChangwoo Min      Performance states table.
74caa07a81SChangwoo Min    attributes:
75caa07a81SChangwoo Min      -
76caa07a81SChangwoo Min        name: perf-domain-id
77caa07a81SChangwoo Min        type: u32
78caa07a81SChangwoo Min        doc: >-
79caa07a81SChangwoo Min          A unique ID number for each performance domain.
80caa07a81SChangwoo Min      -
81caa07a81SChangwoo Min        name: perf-state
82caa07a81SChangwoo Min        type: nest
83caa07a81SChangwoo Min        nested-attributes: perf-state
84caa07a81SChangwoo Min        multi-attr: true
85caa07a81SChangwoo Min  -
86caa07a81SChangwoo Min    name: perf-state
87caa07a81SChangwoo Min    doc: >-
88caa07a81SChangwoo Min      Performance state of a performance domain.
89caa07a81SChangwoo Min    attributes:
90caa07a81SChangwoo Min      -
91caa07a81SChangwoo Min        name: pad
92caa07a81SChangwoo Min        type: pad
93caa07a81SChangwoo Min      -
94caa07a81SChangwoo Min        name: performance
95caa07a81SChangwoo Min        type: u64
96caa07a81SChangwoo Min        doc: >-
97caa07a81SChangwoo Min          CPU performance (capacity) at a given frequency.
98caa07a81SChangwoo Min      -
99caa07a81SChangwoo Min        name: frequency
100caa07a81SChangwoo Min        type: u64
101caa07a81SChangwoo Min        doc: >-
102caa07a81SChangwoo Min          The frequency in KHz, for consistency with CPUFreq.
103caa07a81SChangwoo Min      -
104caa07a81SChangwoo Min        name: power
105caa07a81SChangwoo Min        type: u64
106caa07a81SChangwoo Min        doc: >-
107caa07a81SChangwoo Min          The power consumed at this level (by 1 CPU or by a registered
108caa07a81SChangwoo Min          device). It can be a total power: static and dynamic.
109caa07a81SChangwoo Min      -
110caa07a81SChangwoo Min        name: cost
111caa07a81SChangwoo Min        type: u64
112caa07a81SChangwoo Min        doc: >-
113caa07a81SChangwoo Min          The cost coefficient associated with this level, used during energy
114caa07a81SChangwoo Min          calculation. Equal to: power * max_frequency / frequency.
115caa07a81SChangwoo Min      -
116caa07a81SChangwoo Min        name: flags
117caa07a81SChangwoo Min        type: u64
118caa07a81SChangwoo Min        doc: >-
119caa07a81SChangwoo Min          Bitmask of performance state flags.
120caa07a81SChangwoo Min        enum: perf-state-flags
121caa07a81SChangwoo Min
122caa07a81SChangwoo Minoperations:
123caa07a81SChangwoo Min  list:
124caa07a81SChangwoo Min    -
125caa07a81SChangwoo Min      name: get-perf-domains
126*380ff27aSChangwoo Min      attribute-set: perf-domain
127caa07a81SChangwoo Min      doc: Get the list of information for all performance domains.
128caa07a81SChangwoo Min      do:
129*380ff27aSChangwoo Min        request:
130caa07a81SChangwoo Min          attributes:
131*380ff27aSChangwoo Min            - perf-domain-id
132*380ff27aSChangwoo Min        reply:
133*380ff27aSChangwoo Min          attributes: &perf-domain-attrs
134*380ff27aSChangwoo Min            - pad
135*380ff27aSChangwoo Min            - perf-domain-id
136*380ff27aSChangwoo Min            - flags
137*380ff27aSChangwoo Min            - cpus
138*380ff27aSChangwoo Min      dump:
139*380ff27aSChangwoo Min        reply:
140*380ff27aSChangwoo Min          attributes: *perf-domain-attrs
141caa07a81SChangwoo Min    -
142caa07a81SChangwoo Min      name: get-perf-table
143caa07a81SChangwoo Min      attribute-set: perf-table
144caa07a81SChangwoo Min      doc: Get the energy model table of a performance domain.
145caa07a81SChangwoo Min      do:
146caa07a81SChangwoo Min        request:
147caa07a81SChangwoo Min          attributes:
148caa07a81SChangwoo Min            - perf-domain-id
149caa07a81SChangwoo Min        reply:
150caa07a81SChangwoo Min          attributes:
151caa07a81SChangwoo Min            - perf-domain-id
152caa07a81SChangwoo Min            - perf-state
153caa07a81SChangwoo Min    -
154caa07a81SChangwoo Min      name: perf-domain-created
155caa07a81SChangwoo Min      doc: A performance domain is created.
156caa07a81SChangwoo Min      notify: get-perf-table
157caa07a81SChangwoo Min      mcgrp: event
158caa07a81SChangwoo Min    -
159caa07a81SChangwoo Min      name: perf-domain-updated
160caa07a81SChangwoo Min      doc: A performance domain is updated.
161caa07a81SChangwoo Min      notify: get-perf-table
162caa07a81SChangwoo Min      mcgrp: event
163caa07a81SChangwoo Min    -
164caa07a81SChangwoo Min      name: perf-domain-deleted
165caa07a81SChangwoo Min      doc: A performance domain is deleted.
166caa07a81SChangwoo Min      attribute-set: perf-table
167caa07a81SChangwoo Min      event:
168caa07a81SChangwoo Min        attributes:
169caa07a81SChangwoo Min          - perf-domain-id
170caa07a81SChangwoo Min      mcgrp: event
171caa07a81SChangwoo Min
172caa07a81SChangwoo Minmcast-groups:
173caa07a81SChangwoo Min  list:
174caa07a81SChangwoo Min    -
175caa07a81SChangwoo Min      name: event
176