summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch')
-rw-r--r--debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch81
1 files changed, 0 insertions, 81 deletions
diff --git a/debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
deleted file mode 100644
index c9d461226..000000000
--- a/debian/patches-rt/0250-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 2536bb24992f08158455b5ad1434f439f6543db5 Mon Sep 17 00:00:00 2001
-From: Julia Cartwright <julia@ni.com>
-Date: Fri, 28 Sep 2018 21:03:51 +0000
-Subject: [PATCH 250/347] watchdog: prevent deferral of watchdogd wakeup on RT
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz
-
-When PREEMPT_RT_FULL is enabled, all hrtimer expiry functions are
-deferred for execution into the context of ktimersoftd 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
-that for correct behavior a user must adjust the scheduling parameters
-of both watchdogd _and_ ktimersoftd, which is unnecessary and has other
-side effects (like causing unrelated expiry functions to execute at
-potentially elevated priority).
-
-Instead, mark the hrtimer used by the watchdog core as being _HARD to
-allow it's execution directly from hardirq context. The work done in
-this expiry function is well-bounded and minimal.
-
-A user still must adjust the scheduling parameters of the watchdogd
-to be correct w.r.t. their application needs.
-
-Cc: Guenter Roeck <linux@roeck-us.net>
-Reported-and-tested-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
-Reported-by: Tim Sander <tim@krieglstein.org>
-Signed-off-by: Julia Cartwright <julia@ni.com>
-Acked-by: Guenter Roeck <linux@roeck-us.net>
-[bigeasy: use only HRTIMER_MODE_REL_HARD]
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- drivers/watchdog/watchdog_dev.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
-index 8fe59b7d8eec..516782cff8d2 100644
---- a/drivers/watchdog/watchdog_dev.c
-+++ b/drivers/watchdog/watchdog_dev.c
-@@ -145,7 +145,7 @@ static inline void watchdog_update_worker(struct watchdog_device *wdd)
- ktime_t t = watchdog_next_keepalive(wdd);
-
- if (t > 0)
-- hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL);
-+ hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL_HARD);
- } else {
- hrtimer_cancel(&wd_data->timer);
- }
-@@ -164,7 +164,7 @@ static int __watchdog_ping(struct watchdog_device *wdd)
- if (ktime_after(earliest_keepalive, now)) {
- hrtimer_start(&wd_data->timer,
- ktime_sub(earliest_keepalive, now),
-- HRTIMER_MODE_REL);
-+ HRTIMER_MODE_REL_HARD);
- return 0;
- }
-
-@@ -959,7 +959,7 @@ static int watchdog_cdev_register(struct watchdog_device *wdd)
- dev_set_name(&wd_data->dev, "watchdog%d", wdd->id);
-
- kthread_init_work(&wd_data->work, watchdog_ping_work);
-- hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
-+ hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
- wd_data->timer.function = watchdog_timer_expired;
-
- if (wdd->id == 0) {
-@@ -1007,7 +1007,7 @@ static int watchdog_cdev_register(struct watchdog_device *wdd)
- __module_get(wdd->ops->owner);
- get_device(&wd_data->dev);
- if (handle_boot_enabled)
-- hrtimer_start(&wd_data->timer, 0, HRTIMER_MODE_REL);
-+ hrtimer_start(&wd_data->timer, 0, HRTIMER_MODE_REL_HARD);
- else
- pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n",
- wdd->id);
---
-2.36.1
-