Re: Software based ECC ?
From: Valdis . Kletnieks
Date: Sat Aug 11 2007 - 02:11:26 EST
On Fri, 10 Aug 2007 23:16:45 +0200, roland said:
> http://pdos.csail.mit.edu/papers/softecc:ddopson-meng/softecc_ddopson-meng.pdf
>
> "SoftECC : A System for Software Memory Integrity Checking"
>
> Is it possible to implement something like this within the Linux virtual
> memory subsystem ?
Anything that can be simulated with a Turing machine is *possible*.
The question is how many rocket boosters the pig needs for takeoff.
Hint: The thesis talks about why he didn't implement it for Linux.
> If it can be done, wouldn`t this be a great feature ?
Read section 5.2 of that thesis, particularly this quote from 5.2.2:
"For random word writes, this implies that SoftECC will need an order of
magnitude more compute time than the user-mode code"
Basically, on every single memory page that gets dirtied, we have to then
re-checksum the page (blowing away cache lines in the process). If you want
to get a feel for it, find the kernel code that recognizes that a page is
dirtied, and just add a few lines there:
int foo = 0, i;
for (i=0;i++;<1024) { // adjust for non-4K pages
foo ^= *(page+i);
}
and see how much your system crawls.
Personally, I'd recommend just shelling out the bucks for hardware ECC if
the reliability matters.
Attachment:
pgp00000.pgp
Description: PGP signature