Re: [PATCH 1/2] sched/rt: Add a helper to test for a RT task

From: Peter Zijlstra
Date: Fri Oct 06 2017 - 04:19:48 EST


On Wed, Oct 04, 2017 at 05:49:00PM +0200, Sebastian Andrzej Siewior wrote:
> This helper returns true if a task has elevated priority which is true
> for RT tasks (SCHED_RR and SCHED_FIFO) and also for SCHED_DEADLINE.
> A task which runs at RT priority due to PI-boosting is not considered as
> one with elevated priority.
>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> ---
> include/linux/sched/rt.h | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/include/linux/sched/rt.h b/include/linux/sched/rt.h
> index f93329aba31a..30a86b8178f8 100644
> --- a/include/linux/sched/rt.h
> +++ b/include/linux/sched/rt.h
> @@ -17,6 +17,17 @@ static inline int rt_task(struct task_struct *p)
> return rt_prio(p->prio);
> }
>
> +static inline bool task_is_elevated(struct task_struct *tsk)

Would you be terribly upset if I rename that? I'm thinking something
like task_is_realtime() better reflects what it does.

> +{
> + int policy = tsk->policy;
> +
> + if (policy == SCHED_FIFO || policy == SCHED_RR)
> + return true;
> + if (policy == SCHED_DEADLINE)
> + return true;
> + return false;
> +}
> +
> #ifdef CONFIG_RT_MUTEXES
> /*
> * Must hold either p->pi_lock or task_rq(p)->lock.
> --
> 2.14.2
>