summaryrefslogtreecommitdiffstats
path: root/Documentation/netlink/specs/dev-energymodel.yaml
diff options
context:
space:
mode:
authorZeng Chi <zengchi@kylinos.cn>2026-09-21 18:24:42 +0800
committerSean Christopherson <seanjc@google.com>2026-09-22 08:36:16 -0700
commit119e9db233ad0f4cbd4cfb9f9385a7bca378b37d (patch)
tree660d50d4139cb750fbde1ae3432452c20726c99d /Documentation/netlink/specs/dev-energymodel.yaml
downloadlinux-stable-119e9db233ad0f4cbd4cfb9f9385a7bca378b37d.tar.gz
linux-stable-119e9db233ad0f4cbd4cfb9f9385a7bca378b37d.zip
KVM: Don't pre-reserve xarray entries when storing empty/NULL attributesgrafted
Skip the xarray reservation loop when clearing all memory attributes, as storing NULL only erases the entry and never needs to allocate, so no reservation (and no cleanup of a failed one) is required in that case. Suggested-by: Sean Christopherson <seanjc@google.com> Cc: David Ballesteros <davimaba.v@proton.me> Signed-off-by: Zeng Chi <zengchi@kylinos.cn> Link: https://patch.msgid.link/20260921102442.1232375-1-zeng_chi911@163.com [sean: split to separate patch] Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'Documentation/netlink/specs/dev-energymodel.yaml')
-rw-r--r--Documentation/netlink/specs/dev-energymodel.yaml175
1 files changed, 175 insertions, 0 deletions
diff --git a/Documentation/netlink/specs/dev-energymodel.yaml b/Documentation/netlink/specs/dev-energymodel.yaml
new file mode 100644
index 000000000..11faabfdf
--- /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