mirror of
https://github.com/torvalds/linux.git
synced 2026-10-24 16:55:02 +02:00
sched/core: Mark wakeups completed through ttwu_runnable()
ttwu_runnable() completes a wakeup for a task which remains queued without calling activate_task() or its scheduling-class enqueue callback. Scheduling classes currently cannot distinguish this path from wakeups which performed a full activation. Add WF_TTWU_RQ to identify wakeups completed through ttwu_runnable(). A later sched_ext change uses it to reconsider retained proxy donors which wake without another ops.enqueue() call. No functional change. Signed-off-by: Andrea Righi <arighi@nvidia.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20260922165445.943315-4-arighi@nvidia.com
This commit is contained in:
parent
8f8c0417e9
commit
a49653d0ab
|
|
@ -3919,7 +3919,7 @@ static int ttwu_runnable(struct task_struct *p, int wake_flags)
|
|||
* When on_rq && !on_cpu the task is preempted, see if
|
||||
* it should preempt the task that is current now.
|
||||
*/
|
||||
wakeup_preempt(rq, p, wake_flags);
|
||||
wakeup_preempt(rq, p, wake_flags | WF_TTWU_RQ);
|
||||
}
|
||||
ttwu_do_wakeup(p);
|
||||
return 1;
|
||||
|
|
|
|||
|
|
@ -2545,6 +2545,7 @@ static inline int task_on_rq_migrating(struct task_struct *p)
|
|||
#define WF_MIGRATED 0x20 /* Internal use, task got migrated */
|
||||
#define WF_CURRENT_CPU 0x40 /* Prefer to move the wakee to the current CPU. */
|
||||
#define WF_RQ_SELECTED 0x80 /* ->select_task_rq() was called */
|
||||
#define WF_TTWU_RQ 0x100 /* Wakeup completed through ttwu_runnable() */
|
||||
|
||||
static_assert(WF_EXEC == SD_BALANCE_EXEC);
|
||||
static_assert(WF_FORK == SD_BALANCE_FORK);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user