2020-04-22 11:31:55

by Peter Zijlstra

[permalink] [raw]
Subject: [PATCH 20/23] sched,rcutorture: Convert to sched_set_fifo_low()

Because SCHED_FIFO is a broken scheduler model (see previous patches)
take away the priority field, the kernel can't possibly make an
informed decision.

Effectively no change.

Cc: [email protected]
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Reviewed-by: Ingo Molnar <[email protected]>
---
kernel/rcu/rcutorture.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -802,13 +802,11 @@ static int rcu_torture_boost(void *arg)
unsigned long endtime;
unsigned long oldstarttime;
struct rcu_boost_inflight rbi = { .inflight = 0 };
- struct sched_param sp;

VERBOSE_TOROUT_STRING("rcu_torture_boost started");

/* Set real-time priority. */
- sp.sched_priority = 1;
- if (sched_setscheduler(current, SCHED_FIFO, &sp) < 0) {
+ if (sched_set_fifo_low(current) < 0) {
VERBOSE_TOROUT_STRING("rcu_torture_boost RT prio failed!");
n_rcu_torture_boost_rterror++;
}



2020-04-22 15:54:40

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH 20/23] sched,rcutorture: Convert to sched_set_fifo_low()

On Wed, Apr 22, 2020 at 01:27:39PM +0200, Peter Zijlstra wrote:
> Because SCHED_FIFO is a broken scheduler model (see previous patches)
> take away the priority field, the kernel can't possibly make an
> informed decision.
>
> Effectively no change.
>
> Cc: [email protected]
> Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> Reviewed-by: Ingo Molnar <[email protected]>

Reviewed-by: Paul E. McKenney <[email protected]>

> ---
> kernel/rcu/rcutorture.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> --- a/kernel/rcu/rcutorture.c
> +++ b/kernel/rcu/rcutorture.c
> @@ -802,13 +802,11 @@ static int rcu_torture_boost(void *arg)
> unsigned long endtime;
> unsigned long oldstarttime;
> struct rcu_boost_inflight rbi = { .inflight = 0 };
> - struct sched_param sp;
>
> VERBOSE_TOROUT_STRING("rcu_torture_boost started");
>
> /* Set real-time priority. */
> - sp.sched_priority = 1;
> - if (sched_setscheduler(current, SCHED_FIFO, &sp) < 0) {
> + if (sched_set_fifo_low(current) < 0) {
> VERBOSE_TOROUT_STRING("rcu_torture_boost RT prio failed!");
> n_rcu_torture_boost_rterror++;
> }
>
>