Name | Date | Size | |
---|---|---|---|
.. | 10-Aug-2018 | 12 KiB | |
.gitignore | 10-Aug-2018 | 78 | |
.travis.yml | 10-Aug-2018 | 673 | |
bart/ | 10-Aug-2018 | 4 KiB | |
docs/ | 10-Aug-2018 | 4 KiB | |
LICENSE | 10-Aug-2018 | 11.1 KiB | |
MODULE_LICENSE_APACHE2 | 10-Aug-2018 | 0 | |
NOTICE | 10-Aug-2018 | 11.1 KiB | |
README.md | 10-Aug-2018 | 3.6 KiB | |
setup.cfg | 10-Aug-2018 | 60 | |
setup.py | 10-Aug-2018 | 2.2 KiB | |
tests/ | 10-Aug-2018 | 4 KiB |
README.md
1BART [![Build Status](https://travis-ci.org/ARM-software/bart.svg?branch=master)](https://travis-ci.org/ARM-software/bart) [![Version](https://img.shields.io/pypi/v/bart-py.svg)](https://pypi.python.org/pypi/bart-py) 2==== 3 4The Behavioural Analysis and Regression Toolkit is based on 5[TRAPpy](https://github.com/ARM-software/trappy). The primary goal is to assert 6behaviours using the FTrace output from the kernel. 7 8## Target Audience 9 10The framework is designed to cater to a wide range of audience. Aiding 11developers as well as automating the testing of "difficult to test" behaviours. 12 13#### Kernel Developers 14 15Making sure that the code that you are writing is doing the right thing. 16 17#### Performance Engineers 18 19Plotting/Asserting performance behaviours between different revisions of the 20kernel. 21 22#### Quality Assurance/Release Engineers 23 24Verifying behaviours when different components/patches are integrated. 25 26# Installation 27 28The following instructions are for Ubuntu 14.04 LTS but they should 29also work with Debian jessie. Older versions of Ubuntu or Debian 30(e.g. Ubuntu 12.04 or Debian wheezy) will likely require to install 31more packages from pip as the ones present in Ubuntu 12.04 or Debian 32wheezy will probably be too old. 33 34## Required dependencies 35 36#### Install additional tools required for some tests and functionalities 37 38 $ sudo apt install trace-cmd kernelshark 39 40#### Install the Python package manager 41 42 $ sudo apt install python-pip python-dev 43 44#### Install required python packages 45 46 $ sudo apt install libfreetype6-dev libpng12-dev python-nose 47 $ sudo pip install numpy matplotlib pandas ipython[all] 48 $ sudo pip install --upgrade trappy 49 50`ipython[all]` will install [IPython 51Notebook](http://ipython.org/notebook.html), a web based interactive 52python programming interface. It is required if you plan to use interactive 53plotting in BART. 54 55#### Install BART 56 57 $ sudo pip install --upgrade bart-py 58 59# For developers 60 61Instead of installing TRAPpy and BART using `pip` you should clone the repositories: 62 63 $ git clone git@github.com:ARM-software/bart.git 64 $ git clone git@github.com:ARM-software/trappy.git 65 66Add the directories to your PYTHONPATH 67 68 $ export PYTHONPATH=$BASE_DIR/bart:$BASE_DIR/trappy:$PYTHONPATH 69 70 71# Trace Analysis Language 72 73BART also provides a generic Trace Analysis Language, which allows the user to 74construct complex relation statements on trace data and assert their expected 75behaviours. The usage of the Analyzer module can be seen for the thermal 76behaviours 77[here](https://github.com/ARM-software/bart/blob/master/docs/notebooks/thermal/Thermal.ipynb) 78 79# Scheduler Assertions 80 81Enables assertion and the calculation of the following parameters: 82 83#### Runtime 84 85The total time that the task spent on a CPU executing. 86 87#### Switch 88 89Assert that a task switched between CPUs/Clusters in a given window of time. 90 91#### Duty Cycle 92 93The ratio of the execution time to the total time. 94 95#### Period 96 97The average difference between two switch-in or two switch-out events of a 98task. 99 100#### First CPU 101 102The first CPU that a task ran on. 103 104#### Residency 105 106Calculate and assert the total residency of a task on a CPU or cluster. 107 108#### Examples 109 110The Scheduler assertions also use TRAPpy's EventPlot to provide a `kernelshark` 111like timeline for the tasks under consideration. (in IPython notebooks). 112 113A notebook explaining the usage of the framework for asserting the deadline 114scheduler behaviours can be seen 115[here](https://rawgit.com/sinkap/0abbcc4918eb228b8887/raw/a1b4d6e0079f4ea0368d595d335bc340616501ff/SchedDeadline.html). 116 117# API reference 118 119The API reference can be found in https://pythonhosted.org/bart-py 120