summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch')
-rw-r--r--debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch18
1 files changed, 9 insertions, 9 deletions
diff --git a/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
index 0ed20e9f6..6e39706a3 100644
--- a/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
+++ b/debian/patches-rt/watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
@@ -1,19 +1,19 @@
From: Julia Cartwright <julia@ni.com>
Date: Fri, 28 Sep 2018 21:03:51 +0000
Subject: [PATCH] watchdog: prevent deferral of watchdogd wakeup on RT
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patches-5.4.3-rt1.tar.xz
-When PREEMPT_RT_FULL is enabled, all hrtimer expiry functions are
-deferred for execution into the context of ktimersoftd unless otherwise
+When PREEMPT_RT is enabled, all hrtimer expiry functions are
+deferred for execution into the context of ksoftirqd unless otherwise
annotated.
Deferring the expiry of the hrtimer used by the watchdog core, however,
is a waste, as the callback does nothing but queue a kthread work item
and wakeup watchdogd.
-It's worst then that, too: the deferral through ktimersoftd also means
+It's worst then that, too: the deferral through ksoftirqd also means
that for correct behavior a user must adjust the scheduling parameters
-of both watchdogd _and_ ktimersoftd, which is unnecessary and has other
+of both watchdogd _and_ ksoftirqd, which is unnecessary and has other
side effects (like causing unrelated expiry functions to execute at
potentially elevated priority).
@@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
--- a/drivers/watchdog/watchdog_dev.c
+++ b/drivers/watchdog/watchdog_dev.c
-@@ -147,7 +147,7 @@ static inline void watchdog_update_worke
+@@ -158,7 +158,7 @@ static inline void watchdog_update_worke
ktime_t t = watchdog_next_keepalive(wdd);
if (t > 0)
@@ -46,7 +46,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
} else {
hrtimer_cancel(&wd_data->timer);
}
-@@ -166,7 +166,7 @@ static int __watchdog_ping(struct watchd
+@@ -177,7 +177,7 @@ static int __watchdog_ping(struct watchd
if (ktime_after(earliest_keepalive, now)) {
hrtimer_start(&wd_data->timer,
ktime_sub(earliest_keepalive, now),
@@ -55,7 +55,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
return 0;
}
-@@ -945,7 +945,7 @@ static int watchdog_cdev_register(struct
+@@ -971,7 +971,7 @@ static int watchdog_cdev_register(struct
return -ENODEV;
kthread_init_work(&wd_data->work, watchdog_ping_work);
@@ -64,7 +64,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
wd_data->timer.function = watchdog_timer_expired;
if (wdd->id == 0) {
-@@ -992,7 +992,7 @@ static int watchdog_cdev_register(struct
+@@ -1019,7 +1019,7 @@ static int watchdog_cdev_register(struct
__module_get(wdd->ops->owner);
kref_get(&wd_data->kref);
if (handle_boot_enabled)