From owner-freebsd-chat Tue Jan 9 9:33: 5 2001 Delivered-To: freebsd-chat@freebsd.org Received: from mail.wolves.k12.mo.us (mail.wolves.k12.mo.us [207.160.214.1]) by hub.freebsd.org (Postfix) with ESMTP id 2E04137B69C; Tue, 9 Jan 2001 09:32:47 -0800 (PST) Received: from mail.wolves.k12.mo.us (cdillon@mail.wolves.k12.mo.us [207.160.214.1]) by mail.wolves.k12.mo.us (8.9.3/8.9.3) with ESMTP id LAA16917; Tue, 9 Jan 2001 11:32:40 -0600 (CST) (envelope-from cdillon@wolves.k12.mo.us) Date: Tue, 9 Jan 2001 11:32:39 -0600 (CST) From: Chris Dillon To: John Baldwin Cc: Francisco Reyes , FreeBSD Chat List , David Kelly , "Daniel O'Connor" Subject: Re: ECC worth the extra cost for SOHO server? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Mon, 8 Jan 2001, John Baldwin wrote: > On 09-Jan-01 John Baldwin wrote: > > > > On 09-Jan-01 Daniel O'Connor wrote: > >> > >> On 09-Jan-01 Chris Dillon wrote: > >>> > I think 4.x doesn't panic on ECC NMI's anymore but I'm not sure. > >>> Out of curiosity, how does the OS know exactly what event triggered > >>> the NMI? I know what an NMI can mean, but I don't know what it REALLY > >>> IS, you know what I mean? The technical answer for exactly what an > >>> NMI is and what it consists of is welcome. :-) > >> > >> Yeah, sorry I don't have a clue :) > >> > >> I'm sure someone out there does.. Answer us damnit! :) > > > > Check out src/sys/i386/isa/intr_machdep.c:isa_nmi(). > > Erm, this answers how to find out what event triggers an NMI or at > least to narrow it down a bit. This function is called from > within trap() in src/sys/i386/i386/trap.c. An NMI is simple a > Non-Maskable Interrupt. Maskable Interrupts can be > masked/disabled by clearing the interrupt flag (IF) in the flags > register via the 'cli' instruction, or by using 'popf' to load a > value into the flags reg with IF cleared. An NMI is not masked by > IF though, and will always fire. Usually an NMI means that the > machine is badly hosed and that you are pretty much screwed. > However, an NMI switch can also be rigged to allow one to break > into the debugger on a machine that is spinning with interrupts > disabled. Aah, yes, I remember now. I thought I knew at one time what an NMI really was, but it slipped away. I actually remember the discussion a couple of years ago on one of these lists that actually talked about implementing an NMI switch to get into the debugger, just as you've mentioned. :-) So, if I understand what is in isa_nmi() correctly, it should be possible to find out which NMIs a particular chipset is going to throw when a correctable ECC error has ocurred, and when a non-correctable error has ocurred. I also assume there is no "standard" for this, or we would have already done it. :-) -- Chris Dillon - cdillon@wolves.k12.mo.us - cdillon@inter-linc.net FreeBSD: The fastest and most stable server OS on the planet. For IA32 and Alpha architectures. IA64, PPC, and ARM under development. http://www.freebsd.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message