Re: [RFC 7/8] Make GRUB a task's flag

From: Luca Abeni
Date: Fri Jan 15 2016 - 03:15:46 EST


On 01/14/2016 08:56 PM, Peter Zijlstra wrote:
On Thu, Jan 14, 2016 at 04:24:52PM +0100, Luca Abeni wrote:
+++ b/include/uapi/linux/sched.h
@@ -48,5 +48,6 @@
* For the sched_{set,get}attr() calls
*/
#define SCHED_FLAG_RESET_ON_FORK 0x01
+#define SCHED_FLAG_RECLAIM 0x02

With an eye towards unpriv usage of SCHED_DEADLINE, this isn't something
we could allow unpriv tasks, right? Since (IIRC) GRUB will allow eating
all !deadline time.
The original algorithm, yes, it allowed to use 100% of the CPU time, starving
all !deadline tasks.
But in this patchset I modified the algorithm to allow reclaiming only a
fraction U_max of the CPU time... So, 1-U_max can be left free for !deadline.


Something with an average runtime/budget that also puts limits on the
max (say 2*avg) would be far more amenable to be exposed to unpriv
tasks, except since that would directly result in an average tardiness
bound this might be non-trivial to combine with tasks not opting for
this.
I'll try to think about this... The advantage of GRUB is that a theoretically
sound algorithm already existed; here, we would need to design the algorithm
so that it does not break the SCHED_DEADLINE guarantees. Anyway, this is an
interesting challenge, I'll work on it :)



Thanks,
Luca