#keywords edac #title EDAC [[TableOfContents]] = Intro = * ¿ø¹®Àº [http://buttersideup.com/edacwiki/FrontPage ¿©±â] ¿¡¼­ º¼ ¼ö ÀÖ´Ù. * ÀÌ À§Å°´Â À§ÀÇ ¿ø¹®¿¡ ´ëÇÑ ¹ø¿ªº» ÀÌ´Ù. * ¹ø¿ª: ÀåÇö¼º = ÀÌ°Ô ¹ºµ¥? = EDAC ´Â "Error Detection And Correction"ÀÇ ¾àÀÚÀÌ´Ù. Linux EDAC ÇÁ·ÎÁ§Æ®´Â Linux Kernel Module ½Ã¸®ÁîÀÇ Áß ÄÄÇ»ÅÍ Çϵå¿þ¾î ¿¡·¯°ËÃâ ÆÄÆ®¿¡ Æ÷ÇԵǾî ÀÖ°í, ÇöÀç ¾Æ·¡ÀÇ ¿¡·¯ °ËÃâÀÌ Áö¿øµÈ´Ù. * ½Ã½ºÅÛ ·¥ ¿¡·¯(ÀÌ ÇÁ·ÎÁ§Æ®ÀÇ ±âº» ¸ñÀûÀ̸ç, °¡Àå ¸¹ÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù) - ¸¹Àº ÄÄÇ»Å͵éÀÌ RAM EDAC(°í°¡¿ë¼º ¾îÇø®ÄÉÀ̼ÇÀ» ¸ñÇ¥·ÎÇϴ Ĩ¼Âµé) À» Áö¿øÇÑ´Ù. ±×·¯³ª ÀÌ ±â´ÉÀÌ µ¿ÀÛÇϱâ À§Çؼ± ECC RAM ÀÌ ÇÊ¿äÇÏ´Ù. * PCI ¹ö½º Àü¼Û¿¡·¯ - PCI ºê¸®Áö À§ÁÖÀ̸ç ÁÖº¯ÀåÄ¡ ¿¡·¯°ËÃâµµ Áö¿ø. = ÀÌ°Ô ¿Ö ÇÊ¿äÇÏÁö? = ÃÖ±ÙÀÇ Linux ½Ã½ºÅÛ¿¡¼­ EDAC ¸ðµâÀÌ ¾ø´Ù¸é... * PCI data ¿À·ù¸¦ °æÇèÇÏ°Ô µÉ °ÍÀÌ´Ù. (¿¹¸¦µé¸é, NIC³ª ½ºÅ丮Áö ¾î´ðÅÍ ¿Í PCI ¹ö½º »çÀ̸¦ ¿Ô´Ù°¬´ÙÇÏ´Â µ¥ÀÌÅ͵é) ±×¸®°í ´ëºÎºÐÀÇ ½Ã½ºÅÛÀº PCI µð¹ÙÀ̽º¿¡¼­ Á¦°øÇÏ´Â PCI Æи®Æ¼ ¿¡·¯¸¦ üũÇÏÁö ¾Ê´Â´Ù. (¾î¶²³ðµéÀº NMI ¸¦ À¯¹ß½ÃÅ°±âµµ Çϴµ¥ ´ç½ÅÀº ¹¹°¡ NMI¸¦ ¹ß»ý½ÃÅ°´ÂÁö ¸ð¸£Áö ¾Ê´Â°¡..) * [http://en.wikipedia.org/wiki/Non-Maskable_interrupt NMI]¶õ?? - non maskable interrupt. ½Ã½ºÅÛÀÇ standard interrupt masking Å×Å©´Ð(ÀÌ°Ô¹¹Áö??)À¸·Î ¹«½ÃµÉ¼ö ¾ø´Â ÄÄÇ»ÅÍ ÇÁ·Î¼¼¼­ ÀÎÅÍ·´Æ®ÀÌ´Ù. ÀÌ°ÍÀº ÀϹÝÀûÀ¸·Î º¹±¸µÉ¼ö ¾ø´Â Çϵå¿þ¾î ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ ÁÖÀǸ¦ ÁÖ±â À§ÇÑ ½ÅÈ£·Î »ç¿ëµÈ´Ù. * ´ç½ÅÀÌ ECC ¸Þ¸ð¸®¸¦ °¡Áö°í ÀÖ°í Á¤Á¤°¡´ÉÇÑ ECC ¿À·ù¸¦ ¹ß°ßÇÑ´ÙÇصµ ±×°Ô Á¤È®È÷ ¹ºÁö ¾Ë ¼ö ¾øÀ»°ÍÀÌ´Ù. ½Ã½ºÅÛ¿¡ EDAC ¸ðµâÀÌ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é, ¿¡·¯°¡ º¹±¸ÇÒ ¼ö ¾øÀ» Áö°æÀÌ µÇ±â Àü¿¡ ´ç½ÅÀº ³ª»Û(!) ¸Þ¸ð¸® ¸ðµâÀÌ ¾î¶²°ÍÀÎÁö ¾Ë¼ö ÀÖÀ»°ÍÀÌ´Ù. ÀÌ´Â ½Ã½ºÅÛÀÌ ¼­ºñ½º¿¡ ÅõÀԵDZâ Àü¿¡ Ãʵµ ºÒ·®À» ã¾Æ ³¾ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇϱ⵵ ÇÑ´Ù. * ´ç½ÅÀÌ ECC¸¦ Áö¿øÇÏ´Â ¸ÞÀκ¸µå¸¦ °¡Áö°í Àִµ¥, BIOS¿¡¼­ ECC ¸ðµå¸¦ È°¼ºÈ­½ÃÅ°Áö ¾Ê¾Ò´Ù¸é, ¾Ë¼ö¾ø´Â ¸Þ¸ð¸® ¿¡·¯·Î ½Ã½ºÅÛÀÌ »¸À»¶§±îÁö ´ç½ÅÀº ¾Æ¹«°Íµµ ¾Ë ¼ö ¾ø´Ù. (ÀÌ °æ¿ì NMI °æ°íµµ ¹ÞÀ» ¼ö ¾ø°í ECC¸Þ¸ð¸®¸¦ »ç´Âµ¥ »ç¿ëÇÑ µ·Àº ³¶ºñµÇ´Â °ÍÀÌ´Ù.) = ¾î¶»°Ô ÄÑÁö?? = * PCI ¿¡·¯Ã¼Å·Àº ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. {{{ dougal:~# modprobe edac_mc dougal:~# cd /sys/devices/system/edac/pci/ dougal:/sys/devices/system/edac/pci# cat check_pci_parity 0 dougal:/sys/devices/system/edac/pci# echo 1 > check_pci_parity dougal:/sys/devices/system/edac/pci# cat pci_parity_count 1 dougal:/sys/devices/system/edac/pci# dmesg | tail -4 usb0: rxqlen 0 --> 4 usb0: no IPv6 routers present EDAC MC: Ver: 2.0.1 May 9 2007 EDAC PCI: Detected Parity Error on 0000:00:09.0 dougal:/sys/devices/system/edac/pci# lspci -s 0000:00:09.0 00:09.0 Multimedia audio controller: Yamaha Corporation YMF-744B [DS-1S Audio Controller] (rev 02) dougal:/sys/devices/system/edac/pci# arecord > /dev/null Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono Aborted by signal Interrupt... dougal:/sys/devices/system/edac/pci# cat pci_parity_count 15 dougal:/sys/devices/system/edac/pci# dmesg | tail -4 EDAC PCI: Detected Parity Error on 0000:00:09.0 EDAC PCI: Detected Parity Error on 0000:00:09.0 EDAC PCI: Detected Parity Error on 0000:00:09.0 EDAC PCI: Detected Parity Error on 0000:00:09.0 }}} ¿À¸¶ÀÌ°«, ³ªÀÇ ·¦Å¾ÀÇ »ç¿îµå µð¹ÙÀ̽º°¡ ¸Á°¡Áø°Í °°´Ù.. Áö±ÝÇöÀç PCI üŷÀÌ edac_mc(memory controller) Ä¿³Î¸ðµâ¿¡ µé¾î°¡ ÀÖÁö¸¸ ¶§°¡ µÇ¸é ºÐ¸®µÉ °ÍÀÌ´Ù. À§¿¡¼­ º¸µíÀÌ PCI ¿¡·¯Ã¼Å·Àº ±âº»À¸·Î OFF µÇ¾î ÀÖ°í, »ç¿ëÇÏ·Á¸é À§¿Í °°ÀÌ ÄÑ¸é µÈ´Ù. = EDAC¿¡¼­ º¸¿©ÁÖ´Â ¿¡·¯¿¡ ´ëÇØ = EDAC ÀÌ ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡¼­ ¿¡·¯¸¦ ¸®Æ÷Æà ÇÑ´Ù¸é [http://buttersideup.com/edacwiki/WhyAmIgettingMemoryErrors ³» ÄÄ¿¡ ¿Ö ¸Þ¸ð¸® ¿¡·¯°¡ ¶ßÁö?] ¿Í [http://buttersideup.com/edacwiki/WhyAmIgettingPciErrors ³» ÄÄ¿¡ ¿Ö PCI ¿¡·¯°¡ ¶ßÁö?] ¸¦ Âü°íÇضó. ¹ö±×¸®Æ÷Æ®³ª ¸ÞÀϸµ¸®½ºÆ®¿¡ Æ÷½ºÆÃÇϱâÀü¿¡ À§ÀÇ ¸µÅ©¿Í ÀÌ ¹®¼­¸¦ Âü°íÇؼ­ ¹®Á¦Á¡À» ¸ÕÀú È®ÀÎÇضó. = EDAC Bug µ¥ÀÌÅͺ£À̽º = ¸¸¾à ´ç½ÅÀÌ ¹ö±×¸¦ ã¾Ò´Ù°í »ý°¢Çϸé [http://edacbugs.buttersideup.com/ EDAC Bugzilla] ¸¦ °Ë»öÇؼ­ ÀÌ¹Ì ¸®Æ÷Æ®µÇ¾ú´ÂÁö È®ÀÎÇضó. (ÇØ´ç¹ö±×ÀÇ cc ¸®½ºÆ®¿¡ ´ç½ÅÀ» Ãß°¡Çؼ­ ¾÷µ¥ÀÌÆ®¿¡ °ü·ÃµÈ ³»¿ëÀ» ¹Þ¾Æº¼ ¼ö ÀÖ´Ù). ã¾Æº¸°í ¾øÀ¸¸é »õ·Î¿î ¹ö±× ¸®Æ÷Æ®¸¦ Æ÷½ºÆÃÇÏ¸é µÈ´Ù. = In Kernel ¹®¼­ = Ä¿³Î¼Ò½ºÀÇ Documentation/drivers/edac/ µð·ºÅ丮 ¾È¿¡µµ ¾à°£ÀÇ ¹®¼­°¡ ÀÖ´Ù. = EDAC ¸ÞÀϸµ ¸®½ºÆ® = ´ëºÎºÐÀÇ EDAC °³¹ßÀÚµéÀº EDAC ¸ÞÀϸµ ¸®½ºÆ®¸¦ ÁÖ½ÃÇÏ°í ÀÖÀ¸³ª ´ëºÎºÐÀÇ EDAC °³¹ßÀÚµéÀÌ EDAC °³¹ßÀ» ÁÖ¾÷¹«·Î ÇÏ°í ÀÖÁö ¾ÊÀ½À» ±â¾ïÇØÁֱ⠹ٶõ´Ù. ±×·¯´Ï ¾î¶² ¹®Á¦°¡ »ý±â¸é À§Å°¿Í ¹ö±× µ¥ÀÌÅͺ£À̽º ±×¸®°í ¸ÞÀϸµ¸®½ºÆ®¸¦ ¸ÕÀú Âü°íÇØÁֱ⠹ٶõ´Ù. ¿©±â¼­ ãÁö ¸øÇÑ ¹®Á¦µéÀº ¸ÞÀϸµ ¸®½ºÆ®¿¡ Æ÷½ºÆ® Çضó. * °ø¼ÕÇÏ°Ô.. * ´ç½Å ½Ã½ºÅÛ¿¡ ´ëÇÑ Á¤È®ÇÑ Á¤º¸¸¦ Á¦°ø.. (¿¹¸¦µé¸é Á¤È®ÇÑ Ä¿³Î¹öÀüÀ̶óµç°¡..) * ÂüÀ»¼ºÀ» °¡Áö°í.. ¸¸¾à ´äÀåÀ» ¹Þ°Å³ª, À§Å°¿¡ ¾ø´Â °ÍÀ» ã¾Æ¼­ ¹®Á¦¸¦ ÇØ°áÇÏ¿´´Ù¸é ÀÌ °÷ À§Å°¿¡ ÇØ´ç Á¤º¸¸¦ ±â·ÏÇؼ­ ´Ù¸¥ »ç¶÷µé¿¡°Ô µµ¿òÀÌ µÉ ¼ö ÀÖµµ·Ï ÇÏÀÚ. = Userspace Tools = [http://sourceforge.net/projects/edac-utils http://sourceforge.net/projects/edac-utils] ¿¡ »ç¿ëÀÚµéÀ» À§ÇÑ µµ±¸µéÀÌ °³¹ßÁß¿¡ ÀÖ´Ù. ÀÌ°÷¿¡´Â µµ¿òÀÌ ¸¹ÀÌ ÇÊ¿äÇÏ´Ï ¸¹Àº Âü¿© ¹Ù¶õ´Ù. = Status = EDAC ÄÚµå´Â Linux Kernel version 2.6.16¿¡ Æ÷ÇԵǾú´Ù. ±×¸®°í userspace API°¡ 2.6.18 °ú ±× ÀÌ»ó¿¡ Æ÷ÇԵǾú´Ù. = ¼Ò½ºÄÚµå ¾ò±â = Á» ´õ ÃֽŹöÀüÀÇ Äڵ带 ¿øÇϸé, ¼Ò½ºÆ÷Áö ´Ù¿î·Îµå ÆäÀÌÁö³ª À͸íSVN üũ¾Æ¿ôÀ» ÅëÇØ ¾òÀ» ¼ö ÀÖ´Ù. {{{ $ cd mydev-dir $ svn checkout https://bluesmoke.svn.sourceforge.net/svnroot/bluesmoke/trunk edac-trunk/ $ less bluesmoke/edac/patches/README }}} 2007³â 5¿ù ÀÌÀü°ÍµéÀº CVS¿¡¼­ ãÀ» ¼ö ÀÖ´Ù. ¼Ò½ºÆ÷Áö ¸ÞÀÎÆäÀÌÁöÀÇ CVS Á¤º¸¸¦ È®ÀÎÇضó.. ÀÌ ÄÚµåµéÀ» »ç¿ëÇÏ·Á¸é ÃֽŠ¸®´ª½º Ä¿³Îµµ ÇÊ¿äÇÏ´Ù. ¾Æ´Ï¸é ±×³É ÃÖ±ÙÀÇ º¯°æ»çÇ׸¸ È®ÀÎÇÏ·Á¸é ¾Æ·¡ÀÇ SVN ¿¡¼­ º¼ ¼ö ÀÖ´Ù. * [http://bluesmoke.svn.sourceforge.net/viewvc/bluesmoke/ http://bluesmoke.svn.sourceforge.net/viewvc/bluesmoke/] = È÷½ºÅ丮 = EDAC ÇÁ·ÎÁ§Æ®´Â ¸®´ª½º Ä¿³ÎÀÇ ¸ÞÀνºÆ®¸²¿¡ Æ÷ÇԵDZâ Àü "Bluesmoke" ¶ó´Â À̸§¿¡¼­ º¯°æµÈ °ÍÀÌ´Ù. Bluesmoke ÄÚµå´Â Thayne Harbaugh°¡ ÀÛ¼ºÇÏ¿´´Ù. Linux-ECC ÇÁ·ÎÁ§Æ®´Â EDACÀÇ ¼±ÇÁ·ÎÁ§Æ® ¿´°í EDAC°¡ ³ª¿À´Âµ¥ ¿µ°¨À» ÁÖ¾ú´Ù. Dan Hollis ¿Í ¿©·¯»ç¶÷µé¿¡ ÀÇÇØ °³¹ßµÈ Linux-ECC ÇÁ·ÎÁ§Æ®´Â ÇöÀç ´õÀÌ»ó À¯ÁöµÇÁö ¾Ê°í ÀÖ´Ù. = Áö¿øµÇ´Â Çϵå¿þ¾î ¸®½ºÆ® = * Áö¿øµÇ´Â ¸ÞÀθ޸𸮠ÄÁÆ®·Ñ·¯µé || Manufacturer || Model || EDAC Driver || Tech Docs || Controll Capabilities || Status || || AMD || Opteron || k8_edac.c || [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF AMD] || EDAC, ErrorScrub, BackgroundScrub || Supported Development Tree || || AMD || Athlon64 || k8_edac.c || [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF AMD] || EDAC, ErrorScrub, BackgroundScrub || Supported Development Tree || || AMD || AthlonFX || k8_edac.c || [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF AMD] || EDAC, ErrorScrub, BackgroundScrub || Supported Development Tree || || AMD || 760 || amd76x_edac.c || [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24462.pdf AMD] || || Supported(Linux 2.6.16) || || AMD || 762 || amd76x_edac.c || [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24462.pdf AMD] || || Supported(Linux 2.6.16) || || AMD || 768 || amd76x_edac.c || [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24467.pdf AMD] || || Supported(Linux 2.6.16) || || Intel || e7500 || e7xx_edac.c || || || Supported(Linux 2.6.16) || || Intel || e7501 || e7xx_edac.c || || || Supported(Linux 2.6.16) || || Intel || e7505 || e7xx_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 || 8287p || i82875p_edac.c || || EDAC || Supported(Linux 2.6.16) || || Intel || e7210 || || || || Supported(Linux 2.6.16) || || Intel || 82860 || i82860_edac.c || || || Supported(Linux 2.6.16) || || Intel || 5000(P/V/X) || i5000_edac.c || || || Patch in CVS || || Intel || 82443BX/GX(440BX/GX) || i82443bxgx_edac.c || [http://www.intel.com/design/chipsets/440bx/ Intel] || EDAC, ErrorScrub || Patch in SVN || || Radisys || 82600 || r82600_edac.c || [http://www.radisys.com/products/ds-page.cfm?ProductDatasheetsID=1054 Radisys] || EDAC, ErrorScrub || Supported(linux 2.6.16) || || Via || VT82c693(pro133) || || [http://buttersideup.com/files/Via_Apollo_133_datasheets/ Local] || EDAC || Author Needed ||