[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-alpha
Subject:    Re: mprotect() takes quite long -- anyone knows this?
From:       Peter Wemm <peter () wemm ! org>
Date:       2001-11-27 17:25:29
[Download RAW message or body]

Andrew Gallatin wrote:
> 
> Wilko Bulte writes:
>  > On Tue, Nov 27, 2001 at 12:36:57PM +0100, Thiemo Nordenholz wrote:
>  > 
>  > > > I think this can't be defective memory because this machine uses ECC-R
    AM
>  > > > and you would see massive ECC-errors in this case.
>  > > 
>  > > Do you know what FreeBSD does when an ECC error is encountered? Does it 
    log
>  > > it? Does it just silently discard the information? Can the kernel know a
    bout
>  > > ECC corrective actions at all? I have no clue of all that... Another
>  > > information I'd be happy to get :-)
>  > 
>  > Kernels in general can know about ECC errors. Tru64 e.g. handles them.
>  > So the hardware is there. I once had dodgy memory in a AS2100A which 
>  > FreeBSD crashed on. But Tru64 and VMS ran on the same hardware OK.
>  > This was a while ago, I'm not sure if there have been changes in
>  > this area.
> 
> Tru64 is smart enough not to use memory the console marked as bad, but
> we're not.  I've also heard that Tru64 has a memory tester that walks
> all of physical memory at bootup and if it finds bad pages, it puts
> them aside so they don't get used.  This might explain why it sits
> there for so long when it boots, but before it probes devices..

At work we have started doing this explicitly on i386 machines as we have a
huge number of deployed machines that have a broken bios that does not
initialize the ECC memory (!!!) and then programs the chipset to not
deliver the ECC event (reported as a NMI on the i386 platform).  On those
boxes, the ECC system is constantly active trying to recover uninitialized
memory due to things like i686_pagezero() which reads the cache lines first
to determine if it needs to do any work to zero it.  We now pre-zero the pages
and set PG_ZERO at startup, to avoid the page allocator having to zero 
on demand initially.   We also reprogram the chipset to turn on ECC
uncorrectable events -> NMI.  This has improved things somewhat. :-)

A short while at startup can be a damn good investment if you're not planning
on booting too often.

Cheers,
-Peter
--
Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic