Skip to content
Lucas Palazzi edited this page Oct 28, 2019 · 31 revisions

Overview

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

User Guides for those new to LLFI

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.

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 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.

Tutorials

Tutorial activities involving LLFI have been conducted at two conference venues, information linked below.

ISSRE 2019

DSN 2017