From: Don Zickus <dzickus@redhat.com>
To: Chris Metcalf <cmetcalf@ezchip.com>
Cc: "john.hubbard@gmail.com" <john.hubbard@gmail.com>,
Ingo Molnar <mingo@kernel.org>,
Ulrich Obergfell <uobergfe@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
Stephen Rothwell <sfr@canb.auug.org.au>,
"linux-next@vger.kernel.org" <linux-next@vger.kernel.org>,
John Hubbard <jhubbard@nvidia.com>
Subject: Re: [PATCH] watchdog: Fix a watchdog crash in some configurations
Date: Tue, 5 May 2015 10:06:23 -0400 [thread overview]
Message-ID: <20150505140623.GL98296@redhat.com> (raw)
In-Reply-To: <2DAD8E56-C5BD-4B63-93A5-42CC3D8E45E4@ezchip.com>
On Tue, May 05, 2015 at 01:44:57PM +0000, Chris Metcalf wrote:
>
> > On May 5, 2015, at 9:35 AM, Don Zickus <dzickus@redhat.com> wrote:
> >
> >> On Mon, May 04, 2015 at 04:17:07PM -0700, john.hubbard@gmail.com wrote:
> >> From: John Hubbard <jhubbard@nvidia.com>
> >>
> >> Commit 8fcf2cc768acd845c1fed837bf9cfe2d7106336d in linux-next
> >> introduced a regression in some configurations. Specifically,
> >> with CONFIG_NO_HZ_FULL set, and CONFIG_NO_HZ_FULL_ALL *not* set,
> >> the kernel will crash in lockup_detector_init(), due to a
> >> NULL tick_nohz_full_mask pointer.
> >>
> >> This is because the above commit uses tick_nohz_full_mask
> >> (in lockup_detector_init), if CONFIG_NO_HZ_FULL is set, but
> >> tick_nohz_full_mask only gets allocated if either:
> >>
> >> a) CONFIG_NO_HZ_FULL_ALL is set, or
> >>
> >> b) Someone passes in nohz_full=<any_value> on the boot
> >> args line.
> >>
> >> To correct this, change lockup_detector_init so that it does
> >> a runtime check (in addition to the ifdef check). This now
> >> matches the way most of the other CONFIG_NO_HZ_FULL code does
> >> it's checking. This fix is a little simpler than my original
> >> proposed fix, thanks to Chris Metcalf for that.
> >
> > Hi Chris,
> >
> > If you are ok with this, I can forward it along.
> >
> > Cheers,
> > Don
>
> With the new dynamic test, we don't actually need the ifdef anymore. I asked John if he could respin it without that.
Ok, I will wait for the respin. Thanks!
Cheers,
Don
>
> >
> >>
> >> Signed-off-by: John Hubbard <jhubbard@nvidia.com>
> >> ---
> >> kernel/watchdog.c | 12 ++++++++----
> >> 1 file changed, 8 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/kernel/watchdog.c b/kernel/watchdog.c
> >> index 40fda2f..910d73f 100644
> >> --- a/kernel/watchdog.c
> >> +++ b/kernel/watchdog.c
> >> @@ -921,10 +921,14 @@ void __init lockup_detector_init(void)
> >> set_sample_period();
> >>
> >> #ifdef CONFIG_NO_HZ_FULL
> >> - if (!cpumask_empty(tick_nohz_full_mask))
> >> - pr_info("Disabling watchdog on nohz_full cores by default\n");
> >> - cpumask_andnot(&watchdog_cpumask, cpu_possible_mask,
> >> - tick_nohz_full_mask);
> >> + if (tick_nohz_full_enabled()) {
> >> + if (!cpumask_empty(tick_nohz_full_mask))
> >> + pr_info("Disabling watchdog on nohz_full cores by default\n");
> >> + cpumask_andnot(&watchdog_cpumask, cpu_possible_mask,
> >> + tick_nohz_full_mask);
> >> + }
> >> + else
> >> + cpumask_copy(&watchdog_cpumask, cpu_possible_mask);
> >> #else
> >> cpumask_copy(&watchdog_cpumask, cpu_possible_mask);
> >> #endif
> >> --
> >> 2.3.7
> >>
next prev parent reply other threads:[~2015-05-05 14:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-04 23:17 [PATCH] watchdog: Fix a watchdog crash in some configurations john.hubbard
2015-05-05 13:35 ` Don Zickus
2015-05-05 13:44 ` Chris Metcalf
2015-05-05 14:06 ` Don Zickus [this message]
2015-05-05 19:38 ` [PATCH v2] " john.hubbard
2015-05-05 22:12 ` Andrew Morton
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=20150505140623.GL98296@redhat.com \
--to=dzickus@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cmetcalf@ezchip.com \
--cc=jhubbard@nvidia.com \
--cc=john.hubbard@gmail.com \
--cc=linux-next@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=sfr@canb.auug.org.au \
--cc=tglx@linutronix.de \
--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.