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