From: Ulrich Obergfell <uobergfe@redhat.com>
To: Andrew Jones <drjones@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
dzickus@redhat.com, pbonzini@redhat.com,
akpm@linux-foundation.org, mingo@redhat.com
Subject: Re: [PATCH 2/3] watchdog: control hard lockup detection default
Date: Fri, 25 Jul 2014 04:32:55 -0400 (EDT) [thread overview]
Message-ID: <615371508.17867577.1406277175913.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <1406196811-5384-3-git-send-email-drjones@redhat.com>
> ----- Original Message -----
> From: "Andrew Jones" <drjones@redhat.com>
> To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org
> Cc: uobergfe@redhat.com, dzickus@redhat.com, pbonzini@redhat.com, akpm@linux-foundation.org, mingo@redhat.com
> Sent: Thursday, July 24, 2014 12:13:30 PM
> Subject: [PATCH 2/3] watchdog: control hard lockup detection default
[...]
> The running kernel still has the ability to enable/disable at any
> time with /proc/sys/kernel/nmi_watchdog us usual. However even
> when the default has been overridden /proc/sys/kernel/nmi_watchdog
> will initially show '1'. To truly turn it on one must disable/enable
> it, i.e.
> echo 0 > /proc/sys/kernel/nmi_watchdog
> echo 1 > /proc/sys/kernel/nmi_watchdog
[...]
> @@ -626,15 +665,17 @@ int proc_dowatchdog(struct ctl_table *table, int write,
> * disabled. The 'watchdog_running' variable check in
> * watchdog_*_all_cpus() function takes care of this.
> */
> - if (watchdog_user_enabled && watchdog_thresh)
> + if (watchdog_user_enabled && watchdog_thresh) {
> + watchdog_enable_hardlockup_detector(true);
> err = watchdog_enable_all_cpus(old_thresh != watchdog_thresh);
> - else
> + } else
[...]
I just realized a possible issue in the above part of the patch:
If we would want to give the user the option to override the effect of patch 3/3
via /proc, I think proc_dowatchdog() should enable hard lockup detection _only_
in case of a state transition from 'NOT watchdog_running' to 'watchdog_running'.
|
if (watchdog_user_enabled && watchdog_thresh) { | need to add this
if (!watchdog_running) <---------------------------'
watchdog_enable_hardlockup_detector(true);
err = watchdog_enable_all_cpus(old_thresh != watchdog_thresh);
} else
...
The additional 'if (!watchdog_running)' would _require_ the user to perform the
sequence of commands
echo 0 > /proc/sys/kernel/nmi_watchdog
echo 1 > /proc/sys/kernel/nmi_watchdog
to enable hard lockup detection explicitly.
I think changing the 'watchdog_thresh' while 'watchdog_running' is true should
_not_ enable hard lockup detection as a side-effect, because a user may have a
'sysctl.conf' entry such as
kernel.watchdog_thresh = ...
or may only want to change the 'watchdog_thresh' on the fly.
I think the following flow of execution could cause such undesired side-effect.
proc_dowatchdog
if (watchdog_user_enabled && watchdog_thresh) {
watchdog_enable_hardlockup_detector
hardlockup_detector_enabled = true
watchdog_enable_all_cpus
if (!watchdog_running) {
...
} else if (sample_period_changed)
update_timers_all_cpus
for_each_online_cpu
update_timers
watchdog_nmi_disable
...
watchdog_nmi_enable
watchdog_hardlockup_detector_is_enabled
return true
enable perf counter for hard lockup detection
Regards,
Uli
next prev parent reply other threads:[~2014-07-25 8:32 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-24 10:13 [PATCH 0/3] watchdog: kvm: disable hard lockup detection by default Andrew Jones
2014-07-24 10:13 ` [PATCH 1/3] watchdog: fix print-once on enable Andrew Jones
2014-07-24 10:13 ` [PATCH 2/3] watchdog: control hard lockup detection default Andrew Jones
2014-07-24 10:46 ` Paolo Bonzini
2014-07-24 11:18 ` Ulrich Obergfell
2014-07-24 11:26 ` Paolo Bonzini
2014-07-24 11:44 ` Ulrich Obergfell
2014-07-24 11:45 ` Paolo Bonzini
2014-07-24 12:02 ` Ulrich Obergfell
2014-07-25 8:32 ` Ulrich Obergfell [this message]
2014-07-25 11:25 ` Andrew Jones
2014-07-30 13:43 ` Don Zickus
2014-07-30 14:16 ` Paolo Bonzini
2014-07-30 17:07 ` Don Zickus
2014-08-08 13:53 ` [PATCH v2 " Andrew Jones
2014-07-24 10:13 ` [PATCH 3/3] kvm: ensure hard lockup detection is disabled by default Andrew Jones
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=615371508.17867577.1406277175913.JavaMail.zimbra@redhat.com \
--to=uobergfe@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=drjones@redhat.com \
--cc=dzickus@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@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.