aboutsummaryrefslogtreecommitdiffstats
path: root/rust/helpers/mutex.c
diff options
context:
space:
mode:
authorTejun Heo <[email protected]>2024-09-27 23:46:12 +0000
committerTejun Heo <[email protected]>2024-10-07 20:16:18 +0000
commitf207dc2dcdcf0e1e7d260b392784855ce8d84147 (patch)
treec1133ab002eefb3c22fbacdd914dd899859a8319 /rust/helpers/mutex.c
parentsched/core: Make select_task_rq() take the pointer to wake_flags instead of v... (diff)
downloadkernel-f207dc2dcdcf0e1e7d260b392784855ce8d84147.tar.gz
kernel-f207dc2dcdcf0e1e7d260b392784855ce8d84147.zip
sched/core: Add ENQUEUE_RQ_SELECTED to indicate whether ->select_task_rq() was called
During ttwu, ->select_task_rq() can be skipped if only one CPU is allowed or migration is disabled. sched_ext schedulers may perform operations such as direct dispatch from ->select_task_rq() path and it is useful for them to know whether ->select_task_rq() was skipped in the ->enqueue_task() path. Currently, sched_ext schedulers are using ENQUEUE_WAKEUP for this purpose and end up assuming incorrectly that ->select_task_rq() was called for tasks that are bound to a single CPU or migration disabled. Make select_task_rq() indicate whether ->select_task_rq() was called by setting WF_RQ_SELECTED in *wake_flags and make ttwu_do_activate() map that to ENQUEUE_RQ_SELECTED for ->enqueue_task(). This will be used by sched_ext to fix ->select_task_rq() skip detection. Signed-off-by: Tejun Heo <[email protected]> Acked-by: David Vernet <[email protected]>
Diffstat (limited to 'rust/helpers/mutex.c')
0 files changed, 0 insertions, 0 deletions