lkml.org 
[lkml]   [2014]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/5] watchdog: fix print-once on enable

    * Don Zickus <dzickus@redhat.com> wrote:

    > From: Ulrich Obergfell <uobergfe@redhat.com>
    >
    > This patch avoids printing the message 'enabled on all CPUs, ...'
    > multiple times. For example, the issue can occur in the following
    > scenario:
    >
    > 1) watchdog_nmi_enable() fails to enable PMU counters and sets
    > cpu0_err.
    >
    > 2) 'echo [0|1] > /proc/sys/kernel/nmi_watchdog' is executed to
    > disable and re-enable the watchdog mechanism 'on the fly'.
    >
    > 3) If watchdog_nmi_enable() succeeds to enable PMU counters, each
    > CPU will print the message because step1 left behind a non-zero
    > cpu0_err.
    >
    > if (!IS_ERR(event)) {
    > if (cpu == 0 || cpu0_err)
    > pr_info("enabled on all CPUs, ...")
    >
    > The patch avoids this by clearing cpu0_err in watchdog_nmi_disable().
    >
    > Signed-off-by: Ulrich Obergfell <uobergfe@redhat.com>
    > Signed-off-by: Andrew Jones <drjones@redhat.com>
    > Signed-off-by: Don Zickus <dzickus@redhat.com>
    > ---
    > kernel/watchdog.c | 3 +++
    > 1 files changed, 3 insertions(+), 0 deletions(-)
    >
    > diff --git a/kernel/watchdog.c b/kernel/watchdog.c
    > index 6d0a891..0838685 100644
    > --- a/kernel/watchdog.c
    > +++ b/kernel/watchdog.c
    > @@ -522,6 +522,9 @@ static void watchdog_nmi_disable(unsigned int cpu)
    > /* should be in cleanup, but blocks oprofile */
    > perf_event_release_kernel(event);
    > }
    > + if (cpu == 0)
    > + /* watchdog_nmi_enable() expects this to be zero initially. */
    > + cpu0_err = 0;

    Looks good except a small detail: two-line blocks need curly
    braces too, even if it's just a single C statement. I've fixed
    this up in the commit.

    thanks,

    Ingo



    \
     
     \ /
      Last update: 2014-08-18 11:21    [W:3.217 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site