lkml.org 
[lkml]   [2014]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH RESEND 2/2] sched/rt: Fix rt_prio()
From
Date

The set of rt_prio() contains dl_prio() subset. Fix that.

Signed-off-by: Kirill Tkhai <ktkhai@parallels.com>
CC: Juri Lelli <juri.lelli@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>
CC: Ingo Molnar <mingo@kernel.org>
---
include/linux/sched/deadline.h | 8 +-------
include/linux/sched/prio.h | 8 +++++---
include/linux/sched/rt.h | 2 +-
3 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/include/linux/sched/deadline.h b/include/linux/sched/deadline.h
index 9d303b8..e529305 100644
--- a/include/linux/sched/deadline.h
+++ b/include/linux/sched/deadline.h
@@ -1,13 +1,7 @@
#ifndef _SCHED_DEADLINE_H
#define _SCHED_DEADLINE_H

-/*
- * SCHED_DEADLINE tasks has negative priorities, reflecting
- * the fact that any of them has higher prio than RT and
- * NORMAL/BATCH tasks.
- */
-
-#define MAX_DL_PRIO 0
+#include <linux/sched/prio.h>

static inline int dl_prio(int prio)
{
diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h
index d9cf5a5..0d6c552 100644
--- a/include/linux/sched/prio.h
+++ b/include/linux/sched/prio.h
@@ -6,18 +6,20 @@
#define NICE_WIDTH (MAX_NICE - MIN_NICE + 1)

/*
- * Priority of a process goes from 0..MAX_PRIO-1, valid RT
- * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH
+ * Priority of a process goes from MAX_DL_PRIO-1..MAX_PRIO-1,
+ * SCHED_DEADLINE tasks have negative priorities, valid RT
+ * value is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH
* tasks are in the range MAX_RT_PRIO..MAX_PRIO-1. Priority
* values are inverted: lower p->prio value means higher priority.
*
* The MAX_USER_RT_PRIO value allows the actual maximum
* RT priority to be separate from the value exported to
* user-space. This allows kernel threads to set their
- * priority to a value higher than any user task. Note:
+ * priority to a value higher than any user RT task. Note:
* MAX_RT_PRIO must not be smaller than MAX_USER_RT_PRIO.
*/

+#define MAX_DL_PRIO 0
#define MAX_USER_RT_PRIO 100
#define MAX_RT_PRIO MAX_USER_RT_PRIO

diff --git a/include/linux/sched/rt.h b/include/linux/sched/rt.h
index 6341f5b..dca43ed 100644
--- a/include/linux/sched/rt.h
+++ b/include/linux/sched/rt.h
@@ -5,7 +5,7 @@

static inline int rt_prio(int prio)
{
- if (unlikely(prio < MAX_RT_PRIO))
+ if (unlikely(prio < MAX_RT_PRIO && prio >= MAX_DL_PRIO))
return 1;
return 0;
}






\
 
 \ /
  Last update: 2014-06-05 08:21    [W:0.022 / U:0.208 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site