diff options
| author | Tejun Heo <tj@kernel.org> | 2026-10-17 13:56:04 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-10-17 20:18:02 -1000 |
| commit | 1f5dde349ac2fca1f119ae8de3f0d2f1c2a8d338 (patch) | |
| tree | 21b95cfb5b1f5ec287a3a7dab8b5ba7cb44c2bf4 /tools | |
| parent | cce3618e2d4bd309966bed9930692e5d72e3a4ef (diff) | |
sched_ext: Drop the locks periodically while walking a user DSQ for re-enqueue
reenq_user() drops dsq->lock around each re-enqueue and its rq lock every
SCX_TASK_ITER_BATCH re-enqueues. A walk filtered by SCX_REENQ_MARKED skips
unmarked tasks without dropping either, so a long run of unmarked tasks is
walked in one hold of both locks.
Count the visited tasks instead of the re-enqueued ones and drop both locks
every SCX_TASK_ITER_BATCH visits. An unfiltered walk drops the locks as
often as before.
Suggested-by: Andrea Righi <arighi@nvidia.com>
Link: https://lore.kernel.org/all/atP-LIKpxPhR-Nuc@gpd4/
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions
