diff options
| author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2026-09-11 12:19:00 +0200 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-09-11 04:46:06 -1000 |
| commit | de99a40c54a6fe009e526657cf49790f7e8fcea0 (patch) | |
| tree | e851cefe4c347800958cdba30c4c810e4267393b /tools/perf/scripts/python/flamegraph.py | |
| parent | c367ce5b31ffd4d958f3f6c5fe1c9e820dc9f526 (diff) | |
| download | linux-next-de99a40c54a6fe009e526657cf49790f7e8fcea0.tar.gz linux-next-de99a40c54a6fe009e526657cf49790f7e8fcea0.zip | |
cgroup: Move cgrp_dead_ task+iwork into its own struct
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 a 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 container_of() in the irq_work
callback.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Michal Koutný <mkoutny@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/flamegraph.py')
0 files changed, 0 insertions, 0 deletions
