Workload Automation#
Workload Automation is an external framework, designed to run workloads and collect measurements on Android and Linux devices.
See ARM-software/workload-automation
Workload Automation is integrated with LISA:
Installed by default in the LISA environment.
WAOutput, for parsing the measurement collected during a WA run.
lisa-wltest-seriesto run WA on multiple kernels to compare them.
Running WA from the LISA’s environment#
Once the LISA’s environment is setup, Workload Automation will be available without any further configuration.
source init_env
wa run <workload|agenda> -d output/
See the Workload Automation documentation for more informations.
WAOutput#
The output of Workload Automation can be parsed using the
lisa.wa.WAOutput class. The results is a pandas.DataFrame,
which can also be plotted. See the classe’s documentation for examples.
Wltest#
Wltest enables the comparison of power and performance impacts of kernel changes
on Android devices. Wltest takes a list of kernel commits as input, build and
flashes each one on a device, and runs a workload-automation agenda in order
to collect power and performance metrics. After the execution, the results can
be parsed and analyized using the ipython agenda provided in Lisa under
ipynb/wltests/sched-evaluation-full.ipynb
The lisa-wltest-series --help command provides the full list of parameters
for wltest.
Target types#
Wltests supports two types of targets:
the standard targets, for which the build procedure is aligned with upstream (using a simple defconfig and make command);
the repo targets, for which the build procedure is entirely managed by a repo containing the kernel sources, modules, toolchains and build scripts. The repo targets have
WLTEST_REPO_TARGET="y"set in their definitions file.
Standard targets#
For standard targets, such as Hikey 960, the wltest workflow goes as follows:
Clone the kernel sources with
git clone https://android.googlesource.com/kernel/hikey-linaroHack the kernel and commit your changes
Repeat 2. as necessary
Put in a ‘series’ file the list commits you want to test using the
<sha1> <commit title>format as provided bygit log --oneline --no-color --no-decorateRun
lisa-wltest-serieswith-kpointed at the kernel source tree and-spointed at the file created in 4.
Repo targets#
The kernel sources of repo targets are managed using Google’s repo tool
(see https://source.android.com/setup/develop/repo). The kernel repo usually
features the kernel sources, the module sources, the required toolchains, the
build scripts, and potentially more.
For repo targets, such as Pixel 3, the wltest workflow goes as follows:
Download the sources using
repoas explained in https://source.android.com/setup/build/building-kernels#downloadingIssue
repo start --all <branch name>in the repoGo in the sub-trees (kernel and/or modules), hack the code, and commit your changes
Repeat 2. and 3. as necessary
Put in a ‘series’ files the list of repo branches you want to test
Run
lisa-wltest-serieswith-kpointed at the top level repo folder downloaded in 1., and-spointing at the file created in 5.