Uninitialized ECC bits
uninitialized ECC bits
On the ASUS P5BV motherboard when the bios is set to "quick boot" the ECC bits are left uninitialized. As almost all memory inside Linux should first be written before being used, simply starting to use the machine results in a few hundred messages and then as more and more memory has become used at least once, the messages drop away.
On Gigabyte GA-X48-DS motherboards only quick boot is supported [1] and the BIOS does not support ECC at all. This does not prevent ECC from being used as X48 chipset enables the ECC automatically if ECC simms are being used. One still needs to initialize the memory which can be done by using kernel memory tester with 'memtest=1' on kernel command line.
Is this a serious kernel-problem? Doesn't this say that the kernel uses memory that hasn't been initialized? On the one hand, yes. On the other hand no. Whether it happens in userspace or in kernel-space doesn't matter: It is a problem if memory is used uninitialized. However, when the kernel first writes to location 0x1000, the hardware will fetch 0x1000-0x1040 into the cache, (possibly excluding the just written locations 0x1000-0x1003). This might trigger the EDAC hardware on locations 0x1004 - 0x1040. (but as EDAC works on 8 bytes at a time, to write to 0x1000-0x1003 the hardware will even have to read 0x1000 - 0x1007 and replace 0x1000-0x1003. So unless a 64-bit write is done, the hardware will even have to read the location before the write initializes the ECC bits).
hardware table
manufacturer | board | bios version | workaround |
---|---|---|---|
ASUS | P5BV | 3.04 | disable quick boot |
ASUS | ASUS M4A89TD Series | 2001 (2011-04-01) | disable quick boot |