lkml.org 
[lkml]   [2020]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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, &param);
    > + sched_set_fifo(watchdog_kworker->task);
    >
    > err = class_register(&watchdog_class);
    > if (err < 0) {
    >

    \
     
     \ /
      Last update: 2020-04-22 14:52    [W:4.129 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site