From: george anzinger <george@mvista.com>
To: "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>
Cc: Mikael Pettersson <mikpe@csd.uu.se>, Ingo Molnar <mingo@elte.hu>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: NMI watchdog question.
Date: Wed, 06 Nov 2002 11:49:07 -0800 [thread overview]
Message-ID: <3DC97233.2BBD511@mvista.com> (raw)
In-Reply-To: Pine.GSO.3.96.1021106192840.2684L-100000@delta.ds2.pg.gda.pl
"Maciej W. Rozycki" wrote:
>
> On Wed, 6 Nov 2002, george anzinger wrote:
>
> > So then the NMI checks for timer interrupts being serviced
> > in this case? But, still, why the turn off if the timer
> > does not go thru the APIC? The case this came up in is an
> > SMP machine, but the test in apic.c shows that the PIT
> > interrupt does not go thru the APIC. Leaving NMI on seems
> > to work, so I am wondering if this is just old code.
>
> For the I/O APIC NMI watchdog the PIT timer is used as a source of NMI
> interrupts as well as a source of timer interrupts. For this to work you
> need to have two APIC interrupt inputs to receive timer ticks, one
> programmed as an ordinary LoPri interrupt and the other one as an NMI one.
So the performance counters are only used on UP machines?
Also, what is the point of turning off the nmi in this way
(i.e. nmi_watchdog = 0;)? If the interrupts are not
generated the test of the flag will not be done in traps.c.
Is it tested else where?
>
> Our implementation supports two common variants:
>
> 1. The PIT timer is directly connected to an I/O APIC input (typically
> INTIN2 of the first I/O APIC) *and* to the master i8259A PIC (hereafter
> referred to as PIC). The output of the PIC is connected both to an I/O
> APIC input (typically INTIN0 of the first I/O APIC) *and* to all LINT0
> inputs of local APICs. For such a setup, the I/O APIC input INTIN2 is
> programmed to send LoPri timer interrupts and the LINT0 inputs are
> programmed to send NMIs -- for the latter to work the PIC is programmed to
> behave transparently. Intel chipsets usually behave this way -- an
> exception is the ancient EISA-only i82350.
>
> 2. The PIT timer is directly connected to the PIC only. The output of the
> PIC is connected both to an I/O APIC input (typically INTIN0 of the first
> I/O APIC) *and* to all LINT0 inputs of local APICs. For such a setup, the
> I/O APIC input INTIN0 is programmed to send LoPri timer interrupts and the
> LINT0 inputs are programmed to send NMIs -- for both interrupts to work
> the PIC is programmed to behave transparently. The Intel i82350 chipset
> and ServerWorks ones behave this way.
>
> If neither of the variants works, which is rare, but happens in real life
> -- for example some glue logic prevents the PIC from working transparently
> -- then the case you are asking about happens. At this moment we only
> have a single input for timer interrupts available (be it INTIN0 or LINT0)
> and it has to be programmed for the ExtINTA PC/AT compatibility mode and
> no input remains for the NMI. We choose LINT0 of the bootstrap CPU as it
> offloads the inter-APIC bus a little and provides a slightly lower
> latency. We could use INTIN0 as well, but LINT0 never failed so far
> (there is also a safeguard in the MP-table parser).
>
> Maciej
>
> --
> + Maciej W. Rozycki, Technical University of Gdansk, Poland +
> +--------------------------------------------------------------+
> + e-mail: macro@ds2.pg.gda.pl, PGP key available +
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
George Anzinger george@mvista.com
High-res-timers:
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml
next prev parent reply other threads:[~2002-11-06 19:43 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-06 5:50 NMI watchdog question george anzinger
2002-11-06 10:53 ` Mikael Pettersson
2002-11-06 17:59 ` george anzinger
2002-11-06 18:12 ` John Levon
2002-11-06 18:58 ` Maciej W. Rozycki
2002-11-06 18:55 ` Maciej W. Rozycki
2002-11-06 19:49 ` george anzinger [this message]
2002-11-06 20:07 ` John Levon
2002-11-07 16:20 ` Bill Davidsen
2002-11-07 16:30 ` Maciej W. Rozycki
2002-11-07 16:44 ` Zwane Mwaikambo
-- strict thread matches above, loose matches on Subject: below --
2005-03-06 0:53 Pallai Roland
[not found] <3EShS-A1-9@gated-at.bofh.it>
2005-03-06 15:14 ` Robert Hancock
2005-03-06 18:51 Pallai Roland
2005-03-07 10:16 Mikael Pettersson
2005-03-07 13:00 ` Pallai Roland
2005-03-08 2:28 Pallai Roland
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=3DC97233.2BBD511@mvista.com \
--to=george@mvista.com \
--cc=linux-kernel@vger.kernel.org \
--cc=macro@ds2.pg.gda.pl \
--cc=mikpe@csd.uu.se \
--cc=mingo@elte.hu \
/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