On 9/21/25 04:19, Changwoo Min wrote:
> Send an event to userspace when a performance domain is created or deleted,
> or its energy model is updated.
>
> Signed-off-by: Changwoo Min <changwoo@igalia.com>
> ---
> kernel/power/energy_model.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c
> index 740076d24479..fca32d1c6661 100644
> --- a/kernel/power/energy_model.c
> +++ b/kernel/power/energy_model.c
> @@ -17,6 +17,8 @@
> #include <linux/sched/topology.h>
> #include <linux/slab.h>
>
> +#include "em_netlink.h"
> +
> /*
> * Mutex serializing the registrations of performance domains and letting
> * callbacks defined by drivers sleep.
> @@ -350,6 +352,8 @@ int em_dev_update_perf_domain(struct device *dev,
> em_table_free(old_table);
>
> mutex_unlock(&em_pd_mutex);
> +
> + em_notify_pd_updated(pd);
> return 0;
> }
> EXPORT_SYMBOL_GPL(em_dev_update_perf_domain);
> @@ -697,6 +701,7 @@ int em_dev_register_pd_no_update(struct device *dev, unsigned int nr_states,
> list_add_tail(&dev->em_pd->node, &em_pd_list);
> mutex_unlock(&em_pd_list_mutex);
>
> + em_notify_pd_created(dev->em_pd);
> return ret;
> }
> EXPORT_SYMBOL_GPL(em_dev_register_pd_no_update);
> @@ -719,6 +724,8 @@ void em_dev_unregister_perf_domain(struct device *dev)
> list_del_init(&dev->em_pd->node);
> mutex_unlock(&em_pd_list_mutex);
>
> + em_notify_pd_deleted(dev->em_pd);
> +
> /*
> * The mutex separates all register/unregister requests and protects
> * from potential clean-up/setup issues in the debugfs directories.
LGTM,
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>