Messages in this thread | | | Date | Wed, 22 Apr 2020 08:51:55 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH 16/23] sched,watchdog: Convert to sched_set_fifo() |
| |
On Wed, 22 Apr 2020 13:27:35 +0200 Peter Zijlstra <peterz@infradead.org> 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 changes prio from 99 to 50.
Hmm, this being a watchdog, and looking at commit 38a1222ae4f364d ("watchdog: core: make sure the watchdog worker always works")
I wonder if we should add a sched_set_high(), or have some other kind of watchdog handler that is guaranteed to trigger.
-- Steve
> > Cc: wim@linux-watchdog.org > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > Reviewed-by: Ingo Molnar <mingo@kernel.org> > --- > drivers/watchdog/watchdog_dev.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > --- a/drivers/watchdog/watchdog_dev.c > +++ b/drivers/watchdog/watchdog_dev.c > @@ -1144,14 +1144,13 @@ void watchdog_dev_unregister(struct watc > int __init watchdog_dev_init(void) > { > int err; > - struct sched_param param = {.sched_priority = MAX_RT_PRIO - 1,}; > > watchdog_kworker = kthread_create_worker(0, "watchdogd"); > if (IS_ERR(watchdog_kworker)) { > pr_err("Failed to create watchdog kworker\n"); > return PTR_ERR(watchdog_kworker); > } > - sched_setscheduler(watchdog_kworker->task, SCHED_FIFO, ¶m); > + sched_set_fifo(watchdog_kworker->task); > > err = class_register(&watchdog_class); > if (err < 0) { >
| |