sched,crypto: Convert to sched_set_fifo*()
authorPeter Zijlstra <peterz@infradead.org>
Tue, 21 Apr 2020 10:09:13 +0000 (12:09 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 15 Jun 2020 12:10:20 +0000 (14:10 +0200)
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.

Use sched_set_fifo() to request SCHED_FIFO and delegate
actual priority selection to userspace. Effectively no change in
behaviour.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/crypto_engine.c

index 3655d9d3f5dfb77c47841196d0402f0ca89f5706..198a8eb1cd560e83a4073505bd55c16323aebdae 100644 (file)
@@ -482,7 +482,6 @@ struct crypto_engine *crypto_engine_alloc_init_and_set(struct device *dev,
                                                       int (*cbk_do_batch)(struct crypto_engine *engine),
                                                       bool rt, int qlen)
 {
-       struct sched_param param = { .sched_priority = MAX_RT_PRIO / 2 };
        struct crypto_engine *engine;
 
        if (!dev)
@@ -520,7 +519,7 @@ struct crypto_engine *crypto_engine_alloc_init_and_set(struct device *dev,
 
        if (engine->rt) {
                dev_info(dev, "will run requests pump with realtime priority\n");
-               sched_setscheduler(engine->kworker->task, SCHED_FIFO, &param);
+               sched_set_fifo(engine->kworker->task);
        }
 
        return engine;