From owner-freebsd-chat Tue Jan 9 9:49:58 2001 Delivered-To: freebsd-chat@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id A841C37B6D8 for ; Tue, 9 Jan 2001 09:49:40 -0800 (PST) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.1/8.9.3) with ESMTP id f09HkJG65170; Tue, 9 Jan 2001 09:46:19 -0800 (PST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Tue, 09 Jan 2001 09:48:32 -0800 (PST) From: John Baldwin To: Chris Dillon Subject: Re: ECC worth the extra cost for SOHO server? Cc: "Daniel O'Connor" , David Kelly , FreeBSD Chat List , Francisco Reyes Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On 09-Jan-01 Chris Dillon wrote: > 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. :-) This is correct. :) There does not seem to be a standard unfortunately, though I do think that Paul Saab (ps@FreeBSD.org) has been working on this some. -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message