Patch "watchdog: don't run proc_watchdog_update if new value is same as old" has been added to the 4.4-stable tree
This is a note to let you know that I've just added the patch titled
watchdog: don't run proc_watchdog_update if new value is same as old
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
watchdog-don-t-run-proc_watchdog_update-if-new-value-is-same-as-old.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
a1ee1932aa6bea0bb074f5e3ced112664e4637edMon Sep 17 00:00:00 2001
From: Joshua Hunt <[email protected]>
Date: Thu, 17 Mar 2016 14:17:23 -0700
Subject: watchdog: don't run proc_watchdog_update if new value is same as old
From: Joshua Hunt <[email protected]>
commit a1ee1932aa6bea0bb074f5e3ced112664e4637ed upstream.
While working on a script to restore all sysctl params before a series of tests I found that writing any value into the /proc/sys/kernel/{nmi_watchdog,soft_watchdog,watchdog,watchdog_thresh} causes them to call proc_watchdog_update().
NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter. NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter. NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter. NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
There doesn't appear to be a reason for doing this work every time a write occurs, so only do it when the values change.
--- kernel/watchdog.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
kernel/watchdog.c +8 -1
@@ -907,6 +907,9 @@ static int proc_watchdog_common(int whic* both lockup detectors are disabled if proc_watchdog_update() * returns an error. */ +if (old == new) + goto out; + err =proc_watchdog_update (); } out:
@@ -951,7 +954,7 @@ int proc_soft_watchdog(struct ctl_tableint proc_watchdog_thresh (struct ctl_table *table,int write,void __user *buffer,size_t *lenp,loff_t *ppos) { -int err, old; +int err, old, new;get_online_cpus ();mutex_lock (&watchdog_proc_mutex);
@@ -971,6 +974,10 @@ int proc_watchdog_thresh(struct ctl_tabl/* * Update the sample period. Restore on failure. */ + new =ACCESS_ONCE (watchdog_thresh); +if (old == new) + goto out; +set_sample_period (); err =proc_watchdog_update ();if (err) {
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/watchdog-don-t-run-proc_watchdog_update-if-new-value-is-same-as-old.patch