All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aaron Tomlin <atomlin@redhat.com>
To: Joshua Hunt <johunt@akamai.com>
Cc: akpm@linux-foundation.org, uobergfe@redhat.com,
	dzickus@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] watchdog: don't run proc_watchdog_update if new value is same as old
Date: Wed, 16 Mar 2016 10:12:00 +0000	[thread overview]
Message-ID: <20160316101200.GA5308@atomlin.usersys.redhat.com> (raw)
In-Reply-To: <1458015584-13814-1-git-send-email-johunt@akamai.com>

On Tue 2016-03-15 00:19 -0400, Joshua Hunt wrote:
> 
> 
> 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().
> 
> [  955.756196] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
> [  955.765994] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
> [  955.774619] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
> [  955.783182] 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.
> 
> Signed-off-by: Josh Hunt <johunt@akamai.com>
> Cc: <stable@vger.kernel.org> # 4.1.x-
> ---
>  kernel/watchdog.c |    9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> v2: Update changelog to no longer include mention of soft lockup, and add stable.
> 
> diff --git a/kernel/watchdog.c b/kernel/watchdog.c
> index b3ace6e..9acb29f 100644
> --- a/kernel/watchdog.c
> +++ b/kernel/watchdog.c
> @@ -923,6 +923,9 @@ static int proc_watchdog_common(int which, struct ctl_table *table, int write,
>  		 * both lockup detectors are disabled if proc_watchdog_update()
>  		 * returns an error.
>  		 */
> +		if (old == new)
> +			goto out;
> +
>  		err = proc_watchdog_update();
>  	}
>  out:
> @@ -967,7 +970,7 @@ int proc_soft_watchdog(struct ctl_table *table, int write,
>  int 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);
> @@ -987,6 +990,10 @@ int proc_watchdog_thresh(struct ctl_table *table, int write,
>  	/*
>  	 * 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) {

Reviewed-by: Aaron Tomlin <atomlin@redhat.com>

      parent reply	other threads:[~2016-03-16 10:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-15  4:19 [PATCH v2] watchdog: don't run proc_watchdog_update if new value is same as old Joshua Hunt
2016-03-15 18:22 ` Don Zickus
2016-03-16 10:12 ` Aaron Tomlin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160316101200.GA5308@atomlin.usersys.redhat.com \
    --to=atomlin@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=dzickus@redhat.com \
    --cc=johunt@akamai.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=uobergfe@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.