[PATCH]sched/core: Return possibility to set RT and DL classes back
I found that it's impossible to set RT policy for tasks at the moment.
This is regression after commit [sched: Consider pi boosting in setscheduler()]
[c365c292d05908c6ea6f32708f331e21033fe71d ]
Fix that.
Signed-off-by: Kirill Tkhai <[email protected]>
CC: Thomas Gleixner <[email protected]>
CC: Peter Zijlstra <[email protected]>
CC: Ingo Molnar <[email protected]>
---
kernel/sched/core.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 84b23ce..30cf9ad 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3193,6 +3193,10 @@ static void __setscheduler_params(struct task_struct *p,
* getparam()/getattr() don't report silly values for !rt tasks.
*/
p->rt_priority = attr->sched_priority;
+
+ p->normal_prio = normal_prio(p);
+ p->prio = rt_mutex_getprio(p);
+
set_load_weight(p);
}
Thomas, have you seen this?
Nothing works at the moment:
now
21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/3
16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 migration/3
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 migration/2
12 root 20 0 0 0 0 S 0.0 0.0 0:00.04 migration/1
9 root 20 0 0 0 0 S 0.0 0.0 0:00.20 migration/0
with fix
21 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/3
16 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2
11 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
10 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
22 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/3
17 root RT 0 0 0 0 S 0.0 0.0 0:00.03 migration/2
12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
9 root RT 0 0 0 0 S 0.0 0.0 0:00.24 migration/0
В Чт, 27/02/2014 в 14:24 +0400, Kirill Tkhai пишет:
> [PATCH]sched/core: Return possibility to set RT and DL classes back
>
> I found that it's impossible to set RT policy for tasks at the moment.
>
> This is regression after commit [sched: Consider pi boosting in setscheduler()]
> [c365c292d05908c6ea6f32708f331e21033fe71d ]
> Fix that.
>
> Signed-off-by: Kirill Tkhai <[email protected]>
> CC: Thomas Gleixner <[email protected]>
> CC: Peter Zijlstra <[email protected]>
> CC: Ingo Molnar <[email protected]>
> ---
> kernel/sched/core.c | 4 ++++
> 1 file changed, 4 insertions(+)
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 84b23ce..30cf9ad 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -3193,6 +3193,10 @@ static void __setscheduler_params(struct task_struct *p,
> * getparam()/getattr() don't report silly values for !rt tasks.
> */
> p->rt_priority = attr->sched_priority;
> +
> + p->normal_prio = normal_prio(p);
> + p->prio = rt_mutex_getprio(p);
> +
> set_load_weight(p);
> }
>
>