]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
sched/deadline: Add reporting of runtime left & abs deadline to sched_getattr() for...
authorTommaso Cucinotta <tommaso.cucinotta@gmail.com>
Fri, 12 Sep 2025 05:38:29 +0000 (07:38 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 25 Feb 2026 14:35:58 +0000 (15:35 +0100)
commit2e7af192697ef2a71c76fd57860b0fcd02754e14
tree4d08395941c20ee9ead75e0f3acbb49f59e8bb34
parentfd54d81c2c0e6cffd5470c2c27fbb04d0ebe7da0
sched/deadline: Add reporting of runtime left & abs deadline to sched_getattr() for DEADLINE tasks

The SCHED_DEADLINE scheduler allows reading the statically configured
run-time, deadline, and period parameters through the sched_getattr()
system call. However, there is no immediate way to access, from user space,
the current parameters used within the scheduler: the instantaneous runtime
left in the current cycle, as well as the current absolute deadline.

The `flags' sched_getattr() parameter, so far mandated to contain zero,
now supports the SCHED_GETATTR_FLAG_DL_DYNAMIC=1 flag, to request
retrieval of the leftover runtime and absolute deadline, converted to a
CLOCK_MONOTONIC reference, instead of the statically configured parameters.

This feature is useful for adaptive SCHED_DEADLINE tasks that need to
modify their behavior depending on whether or not there is enough runtime
left in the current period, and/or what is the current absolute deadline.

Notes:
- before returning the instantaneous parameters, the runtime is updated;
- the abs deadline is returned shifted from rq_clock() to ktime_get_ns(),
  in CLOCK_MONOTONIC reference; this causes multiple invocations from the
  same period to return values that may differ for a few ns (showing some
  small drift), albeit the deadline doesn't move, in rq_clock() reference;
- the abs deadline value returned to user-space, as unsigned 64-bit value,
  can represent nearly 585 years since boot time;
- setting flags=0 provides the old behavior (retrieve static parameters).

See also the notes from discussion held at OSPM 2025 on the topic
"Making user space aware of current deadline-scheduler parameters".

Signed-off-by: Tommaso Cucinotta <tommaso.cucinotta@santannapisa.it>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Matteo Martelli <matteo.martelli@codethink.co.uk>
Link: https://patch.msgid.link/20250912053937.31636-2-tommaso.cucinotta@santannapisa.it
include/uapi/linux/sched.h
kernel/sched/deadline.c
kernel/sched/sched.h
kernel/sched/syscalls.c