sched/rt: Clean up usage of rt_task()
authorQais Yousef <qyousef@layalina.io>
Mon, 10 Jun 2024 19:20:16 +0000 (20:20 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 7 Aug 2024 16:32:37 +0000 (18:32 +0200)
commit130fd056dd82b02db9a661c013071af35309be1a
tree33b6965917609dc9aa940eb952e04bcafacc5e20
parent4ae0c2b91110dab6f4291c2c7f99dde60ecc97d8
sched/rt: Clean up usage of rt_task()

rt_task() checks if a task has RT priority. But depends on your
dictionary, this could mean it belongs to RT class, or is a 'realtime'
task, which includes RT and DL classes.

Since this has caused some confusion already on discussion [1], it
seemed a clean up is due.

I define the usage of rt_task() to be tasks that belong to RT class.
Make sure that it returns true only for RT class and audit the users and
replace the ones required the old behavior with the new realtime_task()
which returns true for RT and DL classes. Introduce similar
realtime_prio() to create similar distinction to rt_prio() and update
the users that required the old behavior to use the new function.

Move MAX_DL_PRIO to prio.h so it can be used in the new definitions.

Document the functions to make it more obvious what is the difference
between them. PI-boosted tasks is a factor that must be taken into
account when choosing which function to use.

Rename task_is_realtime() to realtime_task_policy() as the old name is
confusing against the new realtime_task().

No functional changes were intended.

[1] https://lore.kernel.org/lkml/20240506100509.GL40213@noisy.programming.kicks-ass.net/

Signed-off-by: Qais Yousef <qyousef@layalina.io>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Phil Auld <pauld@redhat.com>
Reviewed-by: "Steven Rostedt (Google)" <rostedt@goodmis.org>
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/20240610192018.1567075-2-qyousef@layalina.io
15 files changed:
fs/bcachefs/six.c
fs/select.c
include/linux/ioprio.h
include/linux/sched/deadline.h
include/linux/sched/prio.h
include/linux/sched/rt.h
kernel/locking/rtmutex.c
kernel/locking/rwsem.c
kernel/locking/ww_mutex.h
kernel/sched/core.c
kernel/sched/syscalls.c
kernel/time/hrtimer.c
kernel/trace/trace_sched_wakeup.c
mm/page-writeback.c
mm/page_alloc.c