-
Notifications
You must be signed in to change notification settings - Fork 35
Home
The goal of LLFI wiki page is to provide instructions for you to get started with LLFI and customize LLFI based on your requirement.
High Level Description of the Steps in LLFI
Describes the steps in using LLFI, their purpose and their input/output dependencies
Get Started with LLFI using the GUI
Describes the steps in using LLFI with the GUI
Get Started with LLFI using the WEB GUI
Describes the steps in using LLFI with the WEB GUI
Get Started with LLFI 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 LLFI. This is good for you to understand how LLFI 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 LLFI to find applicable failure modes and how to use batch mode script to inject a list of software failures.
-
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).
For those who want to develop custom functions to customize LLFI.
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.
Using FIDL to create a Custom Software Fault Injector and a Custom Instruction Selector
Describes the FIDL tool and how it integrates with LLFI. The FIDL tool automatically generates a custom software fault injector and a custom instruction selector from a FIDL yaml file.
How to Use the Test Suite of LLFI
Describes how to use the test suite of LLFI. Regression test is required for developing LLFI whenever new changes are added to the repository.
Tutorial activities involving LLFI have been conducted at two conference venues, information linked below.
Dependable Systems Lab - University of British Columbia (UBC)