mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Björn Steinbrink" <B.Steinbrink@gmx.de>
To: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <andi@firstfloor.org>,
	"Udo A. Steinberg" <us15@os.inf.tu-dresden.de>,
	Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	ak@suse.de, dzickus@redhat.com
Subject: [PATCH] i386: Fix the K7 NMI watchdog checkbit
Date: Sat, 9 Jun 2007 04:27:10 +0200	[thread overview]
Message-ID: <20070609022710.GA2399@atjola.homenet> (raw)
In-Reply-To: <20070608204324.GA25392@elte.hu>

On 2007.06.08 22:43:25 +0200, Ingo Molnar wrote:
> 
> * Björn Steinbrink <B.Steinbrink@gmx.de> wrote:
> 
> > Anyway, both are bugs and should be fixed. Maybe we're even lucky and 
> > it fixes your hang. *fingers crossed*
> 
> just to make it clear: the NMI watchdog was working perfectly fine on 
> that box (in v2.6.21 and in dozens of kernel releases before that, for 
> multiple years) before Andi's cleanup patch. So lets find that bug first 
> or revert the cleanups.

Might have been pure luck. ;-) The culprit seems to be commit
b7471c6da94d30d3deadc55986cc38d1ff57f9ca (from Sep 2006), which
introduced the check bit to figure out if a NMI was generated by the
watchdog timer. While the performance counter register on K7 is 64 bits
wide, the upper 16 bits are reserved and thus using bit 63 as the check
bit is wrong. A quick check using /dev/cpu/0/msr shows that
here, the upper 16 bits are zero all the time, chances are that this is
not deterministic and you got a 1 in bit 63 due to some random change.

Björn



The performance counters on K7 are only 48 bits wide, so using bit 63 to
check if the counter overflowed is wrong. Let's use bit 47 instead.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
---
diff --git a/arch/i386/kernel/cpu/perfctr-watchdog.c b/arch/i386/kernel/cpu/perfctr-watchdog.c
index 2b04c8f..82c6967 100644
--- a/arch/i386/kernel/cpu/perfctr-watchdog.c
+++ b/arch/i386/kernel/cpu/perfctr-watchdog.c
@@ -294,7 +294,7 @@ static struct wd_ops k7_wd_ops = {
 	.stop = single_msr_stop_watchdog,
 	.perfctr = MSR_K7_PERFCTR0,
 	.evntsel = MSR_K7_EVNTSEL0,
-	.checkbit = 1ULL<<63,
+	.checkbit = 1ULL<<47,
 };
 
 /* Intel Model 6 (PPro+,P2,P3,P-M,Core1) */

  parent reply	other threads:[~2007-06-09  2:27 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-29 12:52 [1/4] 2.6.22-rc3: known regressions Michal Piotrowski
2007-05-29 14:34 ` Jan Kara
2007-05-29 14:41   ` Florin Iucha
2007-05-30  4:35 ` Sam Ravnborg
2007-06-03 13:02 ` Udo A. Steinberg
2007-06-08  6:02   ` [PATCH] Fix interchanged parameters to release_{evntsel,perfctr}_nmi Björn Steinbrink
2007-06-08  6:41     ` Andrew Morton
2007-06-08 10:58       ` Ingo Molnar
2007-06-08 18:44         ` [PATCH 0/2] i386: Fix two more NMI watchdog bugs Björn Steinbrink
2007-06-08 18:46           ` [PATCH 1/2] i386: Fix NMI watchdog not reserving its MSRs Björn Steinbrink
2007-06-08 18:50           ` [PATCH 2/2] i386: Use the right wrapper to disable the NMI watchdog Björn Steinbrink
2007-06-08 20:43           ` [PATCH 0/2] i386: Fix two more NMI watchdog bugs Ingo Molnar
2007-06-08 20:49             ` Udo A. Steinberg
2007-06-08 20:57               ` Andrew Morton
2007-06-08 21:13                 ` Udo A. Steinberg
2007-06-08 22:28               ` Andi Kleen
2007-06-09  2:27             ` Björn Steinbrink [this message]
2007-06-09  2:33               ` [PATCH] i386: Fix the K7 NMI watchdog checkbit Björn Steinbrink

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=20070609022710.GA2399@atjola.homenet \
    --to=b.steinbrink@gmx.de \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=dzickus@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.k.k.piotrowski@gmail.com \
    --cc=mingo@elte.hu \
    --cc=torvalds@linux-foundation.org \
    --cc=us15@os.inf.tu-dresden.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®