lkml.org 
[lkml]   [2016]   [Dec]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC v4 6/6] sched/deadline: make GRUB a task's flag
    Date
    From: Luca Abeni <luca.abeni@unitn.it>

    Signed-off-by: Luca Abeni <luca.abeni@unitn.it>
    ---
    include/uapi/linux/sched.h | 1 +
    kernel/sched/core.c | 3 ++-
    kernel/sched/deadline.c | 3 ++-
    3 files changed, 5 insertions(+), 2 deletions(-)

    diff --git a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h
    index 5f0fe01..e2a6c7b 100644
    --- a/include/uapi/linux/sched.h
    +++ b/include/uapi/linux/sched.h
    @@ -47,5 +47,6 @@
    * For the sched_{set,get}attr() calls
    */
    #define SCHED_FLAG_RESET_ON_FORK 0x01
    +#define SCHED_FLAG_RECLAIM 0x02

    #endif /* _UAPI_LINUX_SCHED_H */
    diff --git a/kernel/sched/core.c b/kernel/sched/core.c
    index 4010af7..af9c882 100644
    --- a/kernel/sched/core.c
    +++ b/kernel/sched/core.c
    @@ -4089,7 +4089,8 @@ static int __sched_setscheduler(struct task_struct *p,
    return -EINVAL;
    }

    - if (attr->sched_flags & ~(SCHED_FLAG_RESET_ON_FORK))
    + if (attr->sched_flags &
    + ~(SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_RECLAIM))
    return -EINVAL;

    /*
    diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
    index 7585dfb..93ff400 100644
    --- a/kernel/sched/deadline.c
    +++ b/kernel/sched/deadline.c
    @@ -823,7 +823,8 @@ static void update_curr_dl(struct rq *rq)

    sched_rt_avg_update(rq, delta_exec);

    - delta_exec = grub_reclaim(delta_exec, rq);
    + if (unlikely(dl_se->flags & SCHED_FLAG_RECLAIM))
    + delta_exec = grub_reclaim(delta_exec, rq);
    dl_se->runtime -= delta_exec;

    throttle:
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-12-30 12:34    [W:2.579 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site