diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2025-10-09 17:09:25 +0300 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2025-10-16 12:13:51 +0300 |
| commit | 5e42d4c123ba9b89ce19b3aa7e22b7684cbfa49c (patch) | |
| tree | fa3df36befa48286c9f95633f70a7f3372aa551c /scripts/basic | |
| parent | 376f8963bbda5fee838eb1823b07562368104024 (diff) | |
| download | linux-5e42d4c123ba9b89ce19b3aa7e22b7684cbfa49c.tar.xz | |
sched/deadline: Prepare for switched_from() change
Prepare for the sched_class::switch*() methods getting folded into the
change pattern. As a result of that, the location of switched_from
will change slightly. SCHED_DEADLINE is affected by this change in
location:
OLD NEW
|
| switching_from()
dequeue_task(); | dequeue_task()
put_prev_task(); | put_prev_task()
| switched_from()
|
... change task ... | ... change task ...
|
switching_to(); | switching_to()
enqueue_task(); | enqueue_task()
set_next_task(); | set_next_task()
prev_class->switched_from() |
switched_to() | switched_to()
|
Notably, where switched_from() was called *after* the change to the
task, it will get called before it. Specifically, switched_from_dl()
uses dl_task(p) which uses p->prio; which is changed when switching
class (it might be the reason to switch class in case of PI).
When switched_from_dl() gets called, the task will have left the
deadline class and dl_task() must be false, while when doing
dequeue_dl_entity() the task must be a dl_task(), otherwise we'd have
called a different dequeue method.
Reported-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions
