Skip to content

Using error injection

Adrian Sampson edited this page May 14, 2015 · 3 revisions

Here's a very manual way of running the error injection in ACCEPT applications.

  1. You will need to switch to the errorinjection branch on both the accept and accept-apps repositories. Build ACCEPT as normal. Use activate.sh or otherwise ensure that you have ACCEPT's bin directory on your $PATH.

  2. Error injection requires a liberror.cpp to define the error model. We'll use the accept-apps/perfect/sar/kernels/bp application as an example, since it has one checked into the repo already.

  3. Go to the application directory and type make build_orig. This will produce an accept_config.txt (but you don't need to meddle with that).

  4. (You can optionally write make run_orig to see the output without error injection.)

  5. Write an inject_config.txt file to set up the parameters. For example:

     $ cat inject_config.txt 
     default 1
     cmult 2
    

    List the function name (mangled, if it's C++) and the parameter. You can also choose a default for other instructions.

  6. Run inject_config.py. This will transfer your parameters from inject_config.txt to ACCEPT's accept_config.txt.

  7. Type make run_opt. This will compile, instrument, and execute the error-injected version of the application.

Clone this wiki locally