Messages in this thread | | | Subject | Re: Software based ECC ? | From | Valdis.Kletnieks@vt ... | Date | Sat, 11 Aug 2007 02:11:15 -0400 |
| |
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.
[unhandled content-type:application/pgp-signature] | |