diff options
| author | Shrikanth Hegde <sshegde@linux.ibm.com> | 2026-09-28 11:07:23 +0530 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2026-09-28 08:44:42 +0200 |
| commit | 74699f56ebcfe0f401ee6ce4c5a72822101bb222 (patch) | |
| tree | 1539b9d9ee968af5ec721c23d2dada04d32befff /include/linux/workqueue_api.h | |
| parent | 4ee29b029058a8f06fbb91425e1d9351e8015b53 (diff) | |
sched/core: Push current task from non preferred CPU
Actively push out the current running task on a non-preferred CPU (NPC).
Since the task is currently running, a stopper thread must be queued
to push the task out. However, if the task is pinned only to
non-preferred CPUs, it will continue running there.
This helps to maintain userspace affinities, unlike CPU hotplug
or isolated cpusets.
The implementation follows the structure of __balance_push_cpu_stop(),
but is kept separate to handle the preferred-CPU specific conditions and
pending-work state under CONFIG_PREFERRED_CPU.
Add the npc_push_work_pending flag to protect the work buffer.
For now, only the currently running task is pushed out. This keeps the code
simpler. In the future, an optimization may be added to move all queued
tasks on the runqueue.
This works only for the FAIR scheduling class.
Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260928053728.797539-9-sshegde@linux.ibm.com
Diffstat (limited to 'include/linux/workqueue_api.h')
0 files changed, 0 insertions, 0 deletions
