All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/11] PM: EM: Add netlink support for the energy model.
@ 2025-05-29  0:13 Changwoo Min
  2025-05-29  0:13 ` [PATCH 01/11] PM: EM: Add ENERGY_MODEL_NETLINK Kconfig Changwoo Min
                   ` (11 more replies)
  0 siblings, 12 replies; 17+ messages in thread
From: Changwoo Min @ 2025-05-29  0:13 UTC (permalink / raw)
  To: lukasz.luba, rafael, len.brown, pavel
  Cc: christian.loehle, tj, kernel-dev, linux-pm, linux-kernel,
	Changwoo Min, Rafael J. Wysocki

There is a need to access the energy model from the userspace. One such
example is the sched_ext schedulers [1]. The userspace part of the
sched_ext schedules could feed the (post-processed) energy-model
information to the BPF part of the scheduler.

Currently, debugfs is the only way to read the energy model from userspace;
however, it lacks proper notification mechanisms when a performance domain
and its associated energy model change.

This patch set introduces a generic netlink for the energy model, as
discussed in [2]. 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_GENL_CMD_PD_GET_ID: Get the list of information for all performance domains.
  - EM_GENL_CMD_PD_GET_TBL: Get the energy model table of a performance domain.

Also, it supports three notification events:
  - EM_GENL_EVENT_PD_CREATE: When a performance domain is created.
  - EM_GENL_EVENT_PD_DELETE: When a performance domain is deleted.
  - EM_GENL_EVENT_PD_UPDATE: When the energy model table of a performance domain is updated.

The userspace code example using the EM netlink interface is at [3].

[1] https://lwn.net/Articles/922405/
[2] https://lore.kernel.org/lkml/a82423bc-8c38-4d57-93da-c4f20011cc92@arm.com/
[3] https://github.com/multics69/em-netlink/tree/patch-v1

CC: Lukasz Luba <lukasz.luba@arm.com>
CC: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
CC: Tejun Heo <tj@kernel.org>
Signed-off-by: Changwoo Min <changwoo@igalia.com>

Changwoo Min (11):
  PM: EM: Add ENERGY_MODEL_NETLINK Kconfig.
  PM: EM: Add a skeleton code for netlink notification.
  PM: EM: Initialize the netlink notification during booting.
  PM: EM: Add the infrastructure for command processing.
  PM: EM: Assign a unique ID when creating a performance domain.
  PM: EM: Expose the ID of a performance domain via debugfs.
  PM: EM: Add an iterator and accessor for the performance domain.
  PM: EM: Implement EM_GENL_CMD_PD_GET_ID.
  PM: EM: Implement EM_GENL_CMD_PD_GET_TBL.
  PM: EM: Implement event notification.
  PM: EM: Notify an event when the performance domain changes.

 include/linux/energy_model.h      |  20 +-
 include/uapi/linux/energy_model.h |  89 ++++++++
 kernel/power/Kconfig              |  10 +
 kernel/power/Makefile             |   1 +
 kernel/power/em_netlink.c         | 324 ++++++++++++++++++++++++++++++
 kernel/power/em_netlink.h         |  45 +++++
 kernel/power/energy_model.c       |  99 ++++++++-
 7 files changed, 586 insertions(+), 2 deletions(-)
 create mode 100644 include/uapi/linux/energy_model.h
 create mode 100644 kernel/power/em_netlink.c
 create mode 100644 kernel/power/em_netlink.h

-- 
2.49.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2025-06-04 16:11 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-29  0:13 [PATCH 00/11] PM: EM: Add netlink support for the energy model Changwoo Min
2025-05-29  0:13 ` [PATCH 01/11] PM: EM: Add ENERGY_MODEL_NETLINK Kconfig Changwoo Min
2025-05-29  0:13 ` [PATCH 02/11] PM: EM: Add a skeleton code for netlink notification Changwoo Min
2025-06-02 19:53   ` Lukas Wunner
2025-06-03  6:01     ` Changwoo Min
2025-05-29  0:13 ` [PATCH 03/11] PM: EM: Initialize the netlink notification during booting Changwoo Min
2025-05-29  0:13 ` [PATCH 04/11] PM: EM: Add the infrastructure for command processing Changwoo Min
2025-06-02 19:59   ` Lukas Wunner
2025-06-04 16:11     ` Changwoo Min
2025-05-29  0:13 ` [PATCH 05/11] PM: EM: Assign a unique ID when creating a performance domain Changwoo Min
2025-05-29  0:13 ` [PATCH 06/11] PM: EM: Expose the ID of a performance domain via debugfs Changwoo Min
2025-05-29  0:13 ` [PATCH 07/11] PM: EM: Add an iterator and accessor for the performance domain Changwoo Min
2025-05-29  0:13 ` [PATCH 08/11] PM: EM: Implement EM_GENL_CMD_PD_GET_ID Changwoo Min
2025-05-29  0:13 ` [PATCH 09/11] PM: EM: Implement EM_GENL_CMD_PD_GET_TBL Changwoo Min
2025-05-29  0:13 ` [PATCH 10/11] PM: EM: Implement event notification Changwoo Min
2025-05-29  0:13 ` [PATCH 11/11] PM: EM: Notify an event when the performance domain changes Changwoo Min
2025-06-02 11:52 ` [PATCH 00/11] PM: EM: Add netlink support for the energy model Lukasz Luba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.