From: Andi Kleen <ak@suse.de>
To: "Maciej W. Rozycki" <macro@linux-mips.org>
Cc: Andi Kleen <ak@suse.de>, Corey Minyard <minyard@acm.org>,
linux-kernel@vger.kernel.org
Subject: Re: Race betwen the NMI handler and the RTC clock in practially all kernels
Date: Mon, 25 Oct 2004 22:17:58 +0200 [thread overview]
Message-ID: <20041025201758.GG9142@wotan.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.58L.0410252054370.24374@blysk.ds.pg.gda.pl>
On Mon, Oct 25, 2004 at 09:07:42PM +0100, Maciej W. Rozycki wrote:
> On Mon, 25 Oct 2004, Andi Kleen wrote:
>
> > > They traced it down to the following code in arch/kernel/traps.c (now
> > > in include/asm-i386/mach-default/mach_traps.c):
> > >
> > > outb(0x8f, 0x70);
> > > inb(0x71); /* dummy */
> > > outb(0x0f, 0x70);
> > > inb(0x71); /* dummy */
> >
> > Just use a different dummy register, like 0x80 which is normally used
> > for delaying IO (I think that is what the dummy access does)
>
> It's not the dummy read that causes the problem. It's the index write
> that does. It can be solved pretty easily by not changing the index. It
True. It has to be cached once.
> > But I'm pretty sure this NMI handling is incorrect anyways, its
> > use of bits doesn't match what the datasheets say of modern x86
> > chipsets say. Perhaps it would be best to just get rid of
> > that legacy register twiddling completely.
>
> The use is correct. Bit #7 at I/O port 0x70 controls the NMI line
> pass-through flip-flop. "0" means "pass-through" and "1" means "force
> inactive." As the NMI line is level-driven and the NMI input is
> edge-triggered, the sequence is needed to regenerate an edge if another
> NMI arrives via the line (not via the APIC) while the handler is running.
At least in the datasheet I'm reading (AMD 8111) it is just a global
enable/disable bit.
-Andi
next prev parent reply other threads:[~2004-10-25 20:29 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <417D2305.3020209@acm.org.suse.lists.linux.kernel>
2004-10-25 19:44 ` Race betwen the NMI handler and the RTC clock in practially all kernels Andi Kleen
2004-10-25 19:50 ` Corey Minyard
2004-10-25 20:14 ` Andi Kleen
2004-10-25 20:15 ` linux-os
2004-10-25 20:07 ` Maciej W. Rozycki
2004-10-25 20:17 ` Andi Kleen [this message]
2004-10-25 20:41 ` Race betwen the NMI handler and the RTC clock in practially all kernels II Andi Kleen
2004-10-25 21:00 ` Maciej W. Rozycki
2004-10-25 22:04 ` Corey Minyard
2004-10-25 23:40 ` Maciej W. Rozycki
2004-10-26 2:50 ` Corey Minyard
2004-10-26 12:01 ` linux-os
2004-10-25 20:47 ` Race betwen the NMI handler and the RTC clock in practially all kernels Maciej W. Rozycki
2004-10-25 20:11 ` linux-os
2004-10-25 20:23 ` Andi Kleen
2004-10-25 16:00 Corey Minyard
2004-10-26 13:56 ` Corey Minyard
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=20041025201758.GG9142@wotan.suse.de \
--to=ak@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=macro@linux-mips.org \
--cc=minyard@acm.org \
/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.