diff options
| author | Tejun Heo <tj@kernel.org> | 2026-10-17 15:59:52 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-10-19 10:59:07 -1000 |
| commit | ff343a94e44d0703ff011e9b68d461cb51959742 (patch) | |
| tree | 1109e408bb25e8dfca1d3e844fe12324deb7f6fc /include/linux | |
| parent | 51d2730ec19a72f0c00a858f98d98658f3063c82 (diff) | |
sched_ext: Leave suspend and hibernation out of the ecaps reports
Suspend and hibernation take down every non-boot cpu and bring them back. A
loss and a regain per cpu to every sub-scheduler would be noise. Leave them
out: a cpu they take down reports no loss and keeps the caps last delivered,
and the reseed after resume reports only the net change. Their downs are the
ones with cpuhp_tasks_frozen set between the PM notifications. A kexec jump
sets the flag too but sends no PM notification.
Two things need care. A cpu that suspend or hibernation takes down doesn't
wait for its syncs, and no ecaps_report() mark can be pending on it then.
The attach report runs while the attaching task waits uninterruptibly, which
holds off the freezer, and the detach report holds cpus_read_lock().
The detach report reaches only active cpus, and the loss on a cpu that
suspend or hibernation took down was never delivered. The detach waits for
those cpus to come back, so every loss is delivered. They come back before
the tasks thaw, so the wait doesn't hold up the freezer. If one fails to
come back, the hierarchy is aborted at the end of the PM cycle.
v2: Fix why no report mark is pending at a PM down, add a data_race().
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions
