Main Page
EDAC Wiki
This is a wiki for the Linux EDAC project
What is it?
EDAC Stands for "Error Detection and Correction". The Linux EDAC project comprises of a series of Linux kernel modules, which make use of error detection facilities of computer hardware, currently hardware which detects the following errors is supported:
- System RAM errors (this is the original, and most mature part of the project) - many computers support RAM EDAC, (especially for chipsets which are aimed at high-reliability applications), but RAM which has extra storage capacity ("ECC RAM") is needed for these facilities to operate
- PCI bus transfer errors - the majority of PCI bridges, and peripherals support such error detection
Help!
If the EDAC subsystem is reporting errors on your system, please see WhyAmIgettingMemoryErrors, and WhyAmIgettingPciErrors. Please try and check out the possibilities listed before you post to the mailing list!
Status
The EDAC code is expected to be in Linux Kernel version 2.6.16
History
The EDAC project was renamed from the "bluesmoke" prior to submission to the mainline Linux kernel. The Bluesmoke code was created by Thayne Harbaugh. The Linux-ECC project was EDAC's predecessor and its major inspiration. Developed by Dan Hollis and others, the Linux-ECC project is no longer maintained.
Supported Hardware
System Main Memory EDAC
Supported Memory Controllers
Please see the individual driver pages for information on supported revisions, motherboard-specific information etc.
Manufacturer | Model | EDAC Driver | Tech Docs | Controller Capabilities | Status | |
AMD | Opteron | k8_edac.c | [AMD] | EDAC, Error Scrub, Background Scrub | Supported Development Tree | |
AMD | Athlon64 | k8_edac.c | [AMD] | EDAC, Error Scrub, Background Scrub | Supported Development Tree | |
AMD | AthlonFX | k8_edac.c | [AMD] | EDAC, Error Scrub, Background Scrub | Supported Development Tree | |
AMD | 760 | amd76x_edac.c | Supported (Linux 2.6.16) | |||
AMD | 762 | amd76x_edac.c | Supported (Linux 2.6.16) | |||
AMD | 768 | amd76x_edac.c | Supported (Linux 2.6.16) | |||
Intel | e7500 | e7xxx_edac.c | Supported (Linux 2.6.16) | |||
Intel | e7501 | e7xxx_edac.c | Supported (Linux 2.6.16) | |||
Intel | e7505 | e7xxx_edac.c | Supported (Linux 2.6.16) | |||
Intel | e7520 | e752x_edac.c | Supported (Linux 2.6.16) | |||
Intel | e7525 | e752x_edac.c | Supported (Linux 2.6.16) | |||
Intel | 82875p | i82875p_edac.c | Supported (Linux 2.6.16) | |||
Intel | e7210 | Supported (Linux 2.6.16) | ||||
Intel | 82860 | i82860_edac.c | Supported (Linux 2.6.16) | |||
Intel | 82443BX/GX | i82443bxgx_edac.c | [Intel] | EDAC, Error Scrub | Alpha driver (see mailing list) | |
Radisys | 82600 | r82600_edac.c | Radisys] | EDAC, Error Scrub | Supported (Linux 2.6.16) |
Customisation for your Hardware
For many chipsets and motherboards, there is no consistant relationship between the memory banks/slots as made available to the EDAC driver, and the physical labels present next to the memory module socket. You can help by working out the relationship for your hardware, and adding the info to the MemorySlotLabels page.
PCI Error Reporting
PCI Parity error reporting facilities are included in the PCI specification, and the majority of add-in cards (and chips which are capable of being included in either add-in, or on-motherboard designs) support the PCI parity error detection, and reporting functionality. Some "fake" PCI devices which are not physically connected by a PCI bus (such as e.g. some ATA host adaptors which are built-in to a motherboard chipset) typically do not include the functionality.
Error Detection Overhead
The driver currently only support error detection via polling. Polling all of the PCI devices' error status registers can be time consuming, especially on machines which have many devices. You may wish to slow the error polling rate, or disable it altogether on such systems.
Faulty Hardware
Some PCI devices (or just particular revisions of those devices) are broken with respect to PCI parity detection, and display false positives. You can check (and add to) the list of broken devices on the PCIDevicesWithBrokenParityDetection page.
Help Wanted
Please feel free to:
- Improve this documentation
- HowToWriteNewMemoryControllerDrivers
- Test the code
- Report broken hardware for the blacklists
- Create memory slot entries for your hardware
- Create some user-space code (e.g. scripts to go in a cron job, extensions to SNMP daemons etc. etc.)
- Create a script to generate dimm labels, whitelists from the WIKI contents
Related Articles
Sourceforge web page - [1]
An overview of EDAC technologies on Wikipedia [2]
The original Linux ECC project (Dan Hollis et al) - [3]
How to use this site
A Wiki is a collaborative site, anyone can contribute and share:
- Edit any page by pressing Edit at the top or the bottom of the page
- Create a link to another page with joined capitalized words (like WikiSandBox) or with
[[quoted words in brackets]]
- Search for page titles or text within pages using the search box at the top of any page
- See HelpForBeginners to get you going, HelpContents for all help pages.
To learn more about what a WikiWikiWeb is, read about MoinMoin:WhyWikiWorks and the MoinMoin:WikiNature. Also, consult the MoinMoin:WikiWikiWebFaq.
This wiki is powered by MediaWiki.