History

PM: EM: Add em.yaml and autogen files

Add a generic netlink spec in YAML format and autogenerate boilerplate code using ynl-regen.sh to introduce a generic netlink for the energy model. It allows a userspace program to read the performance domain and its energy model. It notifies the userspace program when a performance domain is created or deleted or its energy model is updated through a multicast interface. Specifically, it supports two commands: - EM_CMD_GET_PDS: Get the list of information for all performance domains. - EM_CMD_GET_PD_TABLE: Get the energy model table of a performance domain. Also, it supports three notification events: - EM_CMD_PD_CREATED: When a performance domain is created. - EM_CMD_PD_DELETED: When a performance domain is deleted. - EM_CMD_PD_UPDATED: When the energy model table of a performance domain is updated. Finally, update MAINTAINERS to include new files.

Changwoo Min committed 1 year ago

Commit bd266311 parent ee50b8b5 files · +249 −0Browse files

Showing the changes to include/uapi (1 of 5 files). Show all

Unified · Split

include/uapi/linux/energy_model.h+62−0
@@ -0,0 +1,62 @@
1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2/* Do not edit directly, auto-generated from: */
3/* Documentation/netlink/specs/em.yaml */
4/* YNL-GEN uapi header */
5
6#ifndef _UAPI_LINUX_ENERGY_MODEL_H
7#define _UAPI_LINUX_ENERGY_MODEL_H
8
9#define EM_FAMILY_NAME "em"
10#define EM_FAMILY_VERSION 1
11
12enum {
13 EM_A_PDS_PD = 1,
14
15 __EM_A_PDS_MAX,
16 EM_A_PDS_MAX = (__EM_A_PDS_MAX - 1)
17};
18
19enum {
20 EM_A_PD_PAD = 1,
21 EM_A_PD_PD_ID,
22 EM_A_PD_FLAGS,
23 EM_A_PD_CPUS,
24
25 __EM_A_PD_MAX,
26 EM_A_PD_MAX = (__EM_A_PD_MAX - 1)
27};
28
29enum {
30 EM_A_PD_TABLE_PD_ID = 1,
31 EM_A_PD_TABLE_PS,
32
33 __EM_A_PD_TABLE_MAX,
34 EM_A_PD_TABLE_MAX = (__EM_A_PD_TABLE_MAX - 1)
35};
36
37enum {
38 EM_A_PS_PAD = 1,
39 EM_A_PS_PERFORMANCE,
40 EM_A_PS_FREQUENCY,
41 EM_A_PS_POWER,
42 EM_A_PS_COST,
43 EM_A_PS_FLAGS,
44
45 __EM_A_PS_MAX,
46 EM_A_PS_MAX = (__EM_A_PS_MAX - 1)
47};
48
49enum {
50 EM_CMD_GET_PDS = 1,
51 EM_CMD_GET_PD_TABLE,
52 EM_CMD_PD_CREATED,
53 EM_CMD_PD_UPDATED,
54 EM_CMD_PD_DELETED,
55
56 __EM_CMD_MAX,
57 EM_CMD_MAX = (__EM_CMD_MAX - 1)
58};
59
60#define EM_MCGRP_EVENT "event"
61
62#endif /* _UAPI_LINUX_ENERGY_MODEL_H */