-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
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-appsby 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 theacceptrtlibrary, and linking it in. - Error parameters in driver. The driver currently doesn't know how to use the
instructionsites produces by the error injector. It should be able to use some kind of user-supplied specification of the parameter space. For example, ourliberroruses 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 theliberrorimplementation. - Simulated performance. The
--simulateflag 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.