lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0ibEHC+Ckgisr+VAU=B21MgKJz2=QqGH2hd6UjUFutMSg@mail.gmail.com>
Date: Thu, 21 Aug 2025 13:27:37 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Changwoo Min <changwoo@...lia.com>, lukasz.luba@....com
Cc: len.brown@...el.com, pavel@...nel.org, christian.loehle@....com, 
	tj@...nel.org, kernel-dev@...lia.com, linux-pm@...r.kernel.org, 
	sched-ext@...ts.linux.dev, linux-kernel@...r.kernel.org, 
	"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>
Subject: Re: [PATCH RESEND v3 00/10] PM: EM: Add netlink support for the
 energy model.

Hi,

On Mon, Aug 11, 2025 at 1:34 AM Changwoo Min <changwoo@...lia.com> wrote:
>
> Just rebased on Linus's master and resend it for review.
>
> 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_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.
>
> This can be tested using the tool, tools/net/ynl/pyynl/cli.py, for example,
> with the following commands:
>
>   $> tools/net/ynl/pyynl/cli.py \
>      --spec Documentation/netlink/specs/em.yaml \
>      --do get-pds
>   $> tools/net/ynl/pyynl/cli.py \
>      --spec Documentation/netlink/specs/em.yaml \
>      --do get-pd-table --json '{"pd-id": 0}'
>   $> tools/net/ynl/pyynl/cli.py \
>      --spec Documentation/netlink/specs/em.yaml \
>      --subscribe event  --sleep 10
>
> [1] https://lwn.net/Articles/922405/
> [2] https://lore.kernel.org/lkml/a82423bc-8c38-4d57-93da-c4f20011cc92@arm.com/
> [3] https://lore.kernel.org/lkml/202506140306.tuIoz8rN-lkp@intel.com/#t
>
> ChangeLog v2 -> v3:
>   - Properly initialize a return variable in
>     em_notify_pd_created/updated() at an error path (09/10), reported by
>     the kernel test robot [3].
>   - Remove redundant initialization of a return variable in
>     em_notify_pd_deleted() at an error path (08/10).
>
> ChangeLog v1 -> v2:
>   - Use YNL to generate boilerplate code. Overhaul the naming conventions
>     (command, event, notification, attribute) to follow the typical
>     conventions of other YNL-based netlink implementations.
>   - Calculate the exact message size instead of using NLMSG_GOODSIZE
>     when allocating a message (genlmsg_new). This avoids the reallocation
>     of a message.
>   - Remove an unnecessary function, em_netlink_exit(), and initialize the
>     netlink (em_netlink_init) at em_netlink.c without touching energy_model.c.
>
> CC: Lukasz Luba <lukasz.luba@....com>
> CC: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> CC: Tejun Heo <tj@...nel.org>
> Signed-off-by: Changwoo Min <changwoo@...lia.com>
>
> Changwoo Min (10):
>   PM: EM: Add em.yaml and autogen files.
>   PM: EM: Add a skeleton code for netlink notification.
>   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_nl_get_pds_doit().
>   PM: EM: Implement em_nl_get_pd_table_doit().
>   PM: EM: Implement em_notify_pd_deleted().
>   PM: EM: Implement em_notify_pd_created/updated().
>   PM: EM: Notify an event when the performance domain changes.

I've done a high-level review of this and it looks reasonable to me
overall, but I'd like to get some feedback from Lukasz on it.

My two requests for now are: please reorder the series, so patches
[3-5] go first, and remove the ending period (".") from all of the
patch subjects.

Thanks!

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ