Support error-injection simulation
Opened this issue · 0 comments
sampsyo commented
I'm merging in the ACCEPT bits of the REACT compiler work. This just consists of the instruction-level error injection LLVM pass. ACCEPT needs a few more pieces before it's useful off-the-shelf for error injection experiments.
- Document liberror. We need to add documentation for the error-injection interface. We should also package up our current error-injector implementations for reuse (in a separate repository? in the master branch of
accept-apps
?). - liberror convenience. The error-injection hooks currently need to be compiled along with the application source code. This is currently handled in
accept-apps
by requiring the user tocp ../liberror/* .
before compiling the code. We should make this easier by building the error-injection library to LLVM bytecode separately, as we do for theacceptrt
library, and linking it in. - Error parameters in driver. The driver currently doesn't know how to use the
instruction
sites produces by the error injector. It should be able to use some kind of user-supplied specification of the parameter space. For example, ourliberror
uses a packed pair consisting of a 16-bit "model" id and another 16-bit parameter, whose meaning depends on the model. This specification should come hand-in-hand with theliberror
implementation. - Simulated performance. The
--simulate
flag to the driver is a good start for disabling the performance-sensitive parts of ACCEPT (which are irrelevant when doing injection). But we also need to pick up a performance number produced by some arbitraryRUNSHIM
, e.g., an architectural simulator or a Pintool.