Giter Club home page Giter Club logo

lisa's Introduction

Introduction Travis status Documentation Status

The LISA project provides a toolkit that supports regression testing and interactive analysis of Linux kernel behavior. LISA stands for Linux Integrated/Interactive System Analysis. LISA's goal is to help Linux kernel developers to measure the impact of modifications in core parts of the kernel. The focus is on the scheduler (e.g. EAS), power management and thermal frameworks. However LISA is generic and can be used for other purposes too.

LISA has a host/target model. LISA itself runs on a host machine, and uses the devlib toolkit to interact with the target via SSH, ADB or telnet. LISA is flexible with regard to the target OS; its only expectation is a Linux kernel-based system. Android, GNU/Linux and busybox style systems have all been used.

LISA provides features to describe workloads (notably using rt-app) and run them on targets. It can collect trace files from the target OS (e.g. systrace and ftrace traces), parse them via the TRAPpy framework. These traces can then be parsed and analysed in order to examine detailed target behaviour during the workload's execution.

Some LISA features may require modifying the target OS. For example, in order to collect ftrace files the target kernel must have CONFIG_DYNAMIC_FTRACE enabled.

There are two "entry points" for running LISA:

  • Via the Jupyter/IPython notebook framework. This allows LISA to be used interactively and supports visualisation of trace data. Some notebooks are provided with example and ready-made LISA use-cases.
  • Via the automated test framework. This framework allows the development of automated pass/fail regression tests for kernel behaviour. LISA provides some ready-made automated tests under the lisa/tests/ directory.

Motivations

The main goals of LISA are:

  • Support study of existing behaviours (i.e. "how does PELT work?")
  • Support analysis of new code being developed (i.e. "what is the impact on existing code?")
  • Get insights on what's not working and possibly chase down why
  • Share reproducible experiments by means of a common language that:
    • is flexible enough to reproduce the same experiment on different targets
    • simplifies generation and execution of well defined workloads
    • defines a set of metrics to evaluate kernel behaviours
    • enables kernel developers to easily post process data to produce statistics and plots

Documentation

You should find everything on ReadTheDocs. Here are some noteworthy sections:

How to reach us

Bug reports should be raised against the GitHub issue tracker.

We also have an #arm-lisa IRC channel on freenode.net that we monitor on a best effort basis.

External Links

  • Linux Integrated System Analysis (LISA) & Friends Slides and Video

    Note: the LISA classes referred by the slides are outdated, but all the other concepts and the overall architecture stays the same.

  • Some insights on what it takes to have reliable tests: Video

License

This project is licensed under Apache-2.0.

This project includes some third-party code under other open source licenses. For more information, see tools/LICENSE.*.

Contributions / Pull Requests

Contributions are accepted under Apache-2.0. Only submit contributions where you have authored all of the code. If you do this on work time make sure your employer is cool with this. We also have a Contributor Guide

lisa's People

Contributors

ambroise-arm avatar apickard avatar arnoldlu avatar balsini avatar bjackman avatar cdleonard avatar cloverpop avatar credp avatar daniel-thompson avatar deggeman avatar derkling avatar divyalingaiah avatar douglas-raillard-arm avatar douglasraillard avatar elieva avatar ianr-arm avatar ionela-voinescu avatar jaimevharm avatar javimerino avatar jlelli avatar jlovejoy avatar kdub avatar leo-yan avatar mcgeagh avatar mdigiorgio avatar mwasilew avatar punitagrawal avatar stephenkyle-arm avatar valschneider avatar vingu-linaro avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.