Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sched/deadline: Make GRUB a task's flag

This patch introduces the SCHED_FLAG_RECLAIM flag to specify
that a DL task is allowed to reclaim unused CPU time (using
the GRUB algorithm).

Tested-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Signed-off-by: Luca Abeni <luca.abeni@santannapisa.it>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Claudio Scordino <claudio@evidence.eu.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Juri Lelli <juri.lelli@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tommaso Cucinotta <tommaso.cucinotta@sssup.it>
Link: http://lkml.kernel.org/r/1495138417-6203-7-git-send-email-luca.abeni@santannapisa.it
Signed-off-by: Ingo Molnar <mingo@kernel.org>

authored by

Luca Abeni and committed by
Ingo Molnar
2d4283e9 4da3abce

+5 -2
+1
include/uapi/linux/sched.h
··· 47 47 * For the sched_{set,get}attr() calls 48 48 */ 49 49 #define SCHED_FLAG_RESET_ON_FORK 0x01 50 + #define SCHED_FLAG_RECLAIM 0x02 50 51 51 52 #endif /* _UAPI_LINUX_SCHED_H */
+2 -1
kernel/sched/core.c
··· 4195 4195 return -EINVAL; 4196 4196 } 4197 4197 4198 - if (attr->sched_flags & ~(SCHED_FLAG_RESET_ON_FORK)) 4198 + if (attr->sched_flags & 4199 + ~(SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_RECLAIM)) 4199 4200 return -EINVAL; 4200 4201 4201 4202 /*
+2 -1
kernel/sched/deadline.c
··· 985 985 986 986 sched_rt_avg_update(rq, delta_exec); 987 987 988 - delta_exec = grub_reclaim(delta_exec, rq); 988 + if (unlikely(dl_se->flags & SCHED_FLAG_RECLAIM)) 989 + delta_exec = grub_reclaim(delta_exec, rq); 989 990 dl_se->runtime -= delta_exec; 990 991 991 992 throttle: