On Fri, Sep 11, 2026 at 12:19:00PM +0200, Sebastian Andrzej Siewior wrote: > cgrp_dead_tasks and cgrp_dead_tasks_iwork are independent per-CPU > variables and are independently accessed via a this_cpu_ptr(). > > Having a custom struct with those two members makes it possible to have > only one per-CPU accessor and access the second member via an offset. > This makes the code a bit more compact and is micro-optimization. > > Besides that, it allows cgrp_dead_tasks_iwork_fn() to access the list > pointer via the passed iwork pointer. This not only eliminates the > this_cpu_ptr() but also makes it possible to be invoked on a different > CPU. This does not happen as of today but might if I can flush the > irq_work items from another CPU during CPU-hotplug events. > > Create struct cgroup_dead with the per-CPU variables as members. Access > the struct with a per-CPU accessor and use the cointer_of() in the > irq_work callback. > > Signed-off-by: Sebastian Andrzej Siewior > --- > kernel/cgroup/cgroup.c | 23 +++++++++++++++-------- > 1 file changed, 15 insertions(+), 8 deletions(-) Acked-by: Michal Koutný