RE: [patch] Memory Error Handling Improvement

Luck, Tony
2005-06-24T21:05:00Z

>will not help at all. Furthermore, if MCA delivery timing changes for
>some reason, the user-triggered MCA might show up much later, i.e.,
>pretty much anywhere in the kernel no?

Not really. Suppose there is some location in memory that has a multi-bit
ECC error, and the user reads this location:

ld8 r17=[r18]

Now the MCA mechanism is asynchronous ... so nothing may happen right away,
but there is a guarantee that at the very latest the MCA will be delivered
before the poisoned data is consumed. So suppose that we happen to try to
enter the kernel for some reason before the MCA is delivered. Since the
kernel saves all the users registers, it will attempt to consume the data,
and so the MCA will be delivered.

For the user-mode MCA to survive to an arbitrary point in the kernel would
mean that we didn't save some user mode register.

-Tony