* Borislav Petkov <bp(a)alien8.de> wrote:
On Sat, Jan 09, 2016 at 05:40:05PM -0800, Tony Luck wrote:
> BUT ... it's all going to be very messy. We don't have any CPUID
> capability bits to say whether we support recovery, or which instructions
> are good/bad choices for recovery.
We can always define synthetic ones and set them after having checked
MCA capability bits, f/m/s, etc., maybe even based on the list you're
So such a synthetic CPUID bit would definitely be useful.
Also, knowing whether a memcpy function is recoverable or not, should not be
delegated to callers: there should be the regular memcpy APIs, plus new APIs that
do everything they can to provide recoverable memory copies. Whether it's achieved
via flag checking, a function pointer or code patching is an implementation detail
that's not visible to drivers making use of the new facility.
I'd go for the simplest, most robust solution initially, also perhaps with boot
time messages to make sure users know which variant is used and now.