Date: Tue, 09 Jan 2001 09:48:32 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: Chris Dillon <cdillon@wolves.k12.mo.us> Cc: "Daniel O'Connor" <doconnor@gsoft.com.au>, David Kelly <dkelly@hiwaay.net>, FreeBSD Chat List <freebsd-chat@FreeBSD.org>, Francisco Reyes <fran@reyes.somos.net> Subject: Re: ECC worth the extra cost for SOHO server? Message-ID: <XFMail.010109094832.jhb@FreeBSD.org> In-Reply-To: <Pine.BSF.4.21.0101091032100.15567-100000@mail.wolves.k12.mo.us>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <jhb@FreeBSD.org> -- 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010109094832.jhb>