All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Don Zickus <dzickus@redhat.com>, Ingo Molnar <mingo@elte.hu>,
	Peter Zijlstra <peterz@infradead.org>,
	Cyrill Gorcunov <gorcunov@gmail.com>,
	Eric Paris <eparis@redhat.com>,
	Randy Dunlap <randy.dunlap@oracle.com>,
	Frederic Weisbecker <fweisbec@gmail.com>
Subject: [PATCH 7/9] lockup_detector: Separate touch_nmi_watchdog code path from touch_watchdog
Date: Thu, 13 May 2010 03:21:12 +0200	[thread overview]
Message-ID: <1273713674-8434-8-git-send-regression-fweisbec@gmail.com> (raw)
In-Reply-To: <1273713674-8434-1-git-send-regression-fweisbec@gmail.com>

From: Don Zickus <dzickus@redhat.com>

When I combined the nmi_watchdog (hardlockup) and softlockup code, I
also combined the paths the touch_watchdog and touch_nmi_watchdog took.
This may not be the best idea as pointed out by Frederic W., that the
touch_watchdog case probably should not reset the hardlockup count.

Therefore the patch below falls back to the previous idea of keeping
the touch_nmi_watchdog a superset of the touch_watchdog case.

Signed-off-by: Don Zickus <dzickus@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Eric Paris <eparis@redhat.com>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
LKML-Reference: <1273266711-18706-9-git-send-email-dzickus@redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
 kernel/watchdog.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index f1541b7..57b8e2c 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -31,6 +31,7 @@ int watchdog_enabled;
 int __read_mostly softlockup_thresh = 60;
 
 static DEFINE_PER_CPU(unsigned long, watchdog_touch_ts);
+static DEFINE_PER_CPU(bool, watchdog_nmi_touch);
 static DEFINE_PER_CPU(struct task_struct *, softlockup_watchdog);
 static DEFINE_PER_CPU(struct hrtimer, watchdog_hrtimer);
 static DEFINE_PER_CPU(bool, softlockup_touch_sync);
@@ -139,6 +140,7 @@ void touch_all_softlockup_watchdogs(void)
 
 void touch_nmi_watchdog(void)
 {
+	__get_cpu_var(watchdog_nmi_touch) = true;
 	touch_softlockup_watchdog();
 }
 EXPORT_SYMBOL(touch_nmi_watchdog);
@@ -201,10 +203,9 @@ void watchdog_overflow_callback(struct perf_event *event, int nmi,
 		 struct pt_regs *regs)
 {
 	int this_cpu = smp_processor_id();
-	unsigned long touch_ts = per_cpu(watchdog_touch_ts, this_cpu);
 
-	if (touch_ts == 0) {
-		__touch_watchdog();
+	if (__get_cpu_var(watchdog_nmi_touch) == true) {
+		__get_cpu_var(watchdog_nmi_touch) = false;
 		return;
 	}
 
-- 
1.6.2.3


  parent reply	other threads:[~2010-05-13  1:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-13  1:21 [GIT PULL] Unified lockup detector Frederic Weisbecker
2010-05-13  1:21 ` [PATCH 1/9] lockup_detector: Combine nmi_watchdog and softlockup detector Frederic Weisbecker
2010-05-13  1:21 ` [PATCH 2/9] lockup_detector: Touch_softlockup cleanups and softlockup_tick removal Frederic Weisbecker
2010-05-13  1:21 ` [PATCH 3/9] lockup_detector: Remove old softlockup code Frederic Weisbecker
2010-05-13  1:21 ` [PATCH 4/9] lockup_detector: Remove nmi_watchdog.c file Frederic Weisbecker
2010-05-13  1:21 ` [PATCH 5/9] x86: Move trigger_all_cpu_backtrace to its own die_notifier Frederic Weisbecker
2010-05-13  1:21 ` [PATCH 6/9] x86: Cleanup hw_nmi.c cruft Frederic Weisbecker
2010-05-13  1:21 ` Frederic Weisbecker [this message]
2010-05-13  1:21 ` [PATCH 8/9] lockup_detector: Make BOOTPARAM_SOFTLOCKUP_PANIC depend on LOCKUP_DETECTOR Frederic Weisbecker
2010-05-13  1:21 ` [PATCH 9/9] lockup_detector: Fix forgotten config conversion Frederic Weisbecker
2010-05-13  6:05 ` [GIT PULL] Unified lockup detector Ingo Molnar
2010-05-13  6:57 ` [tip:perf/nmi] watchdog: Export touch_softlockup_watchdog tip-bot for Ingo Molnar
2010-05-13  7:15 ` [tip:perf/nmi] x86, watchdog: Fix build error in hw_nmi.c tip-bot for Ingo Molnar

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=1273713674-8434-8-git-send-regression-fweisbec@gmail.com \
    --to=fweisbec@gmail.com \
    --cc=dzickus@redhat.com \
    --cc=eparis@redhat.com \
    --cc=gorcunov@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=randy.dunlap@oracle.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.