Re: [PATCH v2] PM: EM: Add inotify support when the energy model is updated.

From: Changwoo Min
Date: Thu May 08 2025 - 02:03:52 EST


Hi Tejun,

Thanks for the comments!

On 5/8/25 02:04, Tejun Heo wrote:
Hello,

On Wed, May 07, 2025 at 10:47:28AM +0900, Changwoo Min wrote:
The sched_ext schedulers [1] currently access the energy model through the
debugfs to make energy-aware scheduling decisions [2]. The userspace part
of a sched_ext scheduler feeds the necessary (post-processed) energy-model
information to the BPF part of the scheduler.

However, there is a limitation in the current debugfs support of the energy
model. When the energy model is updated (em_dev_update_perf_domain), there
is no way for the userspace part to know such changes (besides polling the
debugfs files).

Therefore, add inotify support (IN_MODIFY) when the energy model is updated.
With this inotify support, the directory of an updated performance domain
(e.g., /sys/kernel/debug/energy_model/cpu0) and its parent directory (e.g.,
/sys/kernel/debug/energy_model) are inotified. Therefore, a sched_ext
scheduler (or any userspace application) monitors the energy model change
in userspace using the regular inotify interface.

Note that accessing the energy model information from userspace has many
advantages over other alternatives, especially adding new BPF kfuncs. The
userspace has much more freedom than the BPF code (e.g., using external
libraries and floating point arithmetics), which may be infeasible (if not
impossible) in the BPF/kernel code.

[1] https://lwn.net/Articles/922405/
[2] https://github.com/sched-ext/scx/pull/1624

Signed-off-by: Changwoo Min <changwoo@xxxxxxxxxx>

FWIW, this looks simple enough and workable to me. Just a nit below:

+static void em_debug_update(struct device *dev)
+{
+ struct dentry *d;
+
+ d = debugfs_lookup(dev_name(dev), rootdir);
+ fsnotify_dentry(d, FS_MODIFY);
+}

Would something like em_debug_notify_updated() or em_debug_updated() be
better? em_debug_update() sounds like it's actively updating something.

I agree that em_debug_update() sounds misleading.
em_debug_notify_updated() delivers clear meaning, so I will change it as
you suggested.

Regards,
Changwoo Min


Thanks.