Skip to content
root edited this page Sep 19, 2022 · 4 revisions

Overview

The goal of LLTFI wiki page is to provide instructions for you to get started with LLTFI and customize LLTFI based on your requirement.

User Guides for those new to LLTFI

High Level Description of the Steps in LLTFI

Describes the steps in using LLTFI, their purpose and their input/output dependencies

Get Started with LLTFI using the WEB GUI

Describes the steps in using LLTFI with the WEB GUI

Get Started with LLTFI using the command line

Discusses how to use provided utilities (scripts) to perform fault injections from the command line.

How to Run the Fault Injection Experiment without Script

Describes the overall working flow of LLTFI. This is good for you to understand how LLTFI works, and it is a good start when you want to replace certain scripts with your own version.

Analyze Error Propagation at the LLVM Bitcode level

Describes the input necessary to create program instruction traces, and how to use the tools available to analyze error propagation using the traces. The instruction trace here is the dumped runtime values of all instructions in the provided program.

Failure Auto Scan and Batch Mode Scripts

Describe how to use auto scan tools of LLTFI to find applicable failure modes and how to use batch mode script to inject a list of software failures.

Documentation for some custom fault injection instruction/register selectors and injectors

  • How to Use llfiindex Fault Injection Instruction Selector

    Describes a fault injection instruction selector named llfiindex, the instruction selector allows users to specify certain instruction(s) (variable(s)) as fault injection targets and only inject faults to the specified instruction(s).

Programming Documentation

For those who want to develop custom functions to customize LLTFI.

How to Create a Custom Instruction or Register Selector

Describes how to create a customized instruction or register selector. The instruction/register selector is used to determine which instructions/registers to be included as fault injection targets.

How to Create a Custom Fault Injector

Describes how to create a customized fault injector. The fault injector is used to determine what kinds of fault to be injected (e.g. bitflip).

How to Modify the Execution Cycles of Certain Instruction Types

Describes how to change the execution cycles of certain instructions types. Note the 'change' here means changes in the statistics, rather than changes in the 'real' execution cycles.

How to Use the Test Suite of LLTFI

Describes how to use the test suite of LLTFI. Regression test is required for developing LLTFI whenever new changes are added to the repository.