1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-20 20:09:11 +00:00
Sascha Bischoff 96a6179355 Gem5Device: Add a gem5 device for Android
- Implementation of a gem5 device which allows simulated systems to be
  used in the place of a real device. Currently, only Android is
  supported.

- The gem5 simulation is started automatically based on a command line
  passed in via the agenda. The correct telnet port to connect on is
  extracted from the standard error from the gem5 process.

- Resuming from gem5 checkpoints is supported, and can be specified as
  part of the gem5 system description. Additionally, the agenda option
  checkpoint_post_boot can be used to create a checkpoint
  automatically once the system has booted. This can then by used for
  subsequent runs to avoid booting the system a second time.

- The Gem5Device waits for Android to finish booting, before sending
  commands to the simulated device. Additionally, the device supports
  a sleep option, which will sleep in the simulated system for a
  number of seconds, prior to running the workload. This ensures that
  the system can quieten down, prior to running the workload.

- The Gem5Device relies of VirtIO to pull files into the simulated
  environment, and therefire diod support is required on the host
  system. Additionally, VirtIO 9P support is required in the guest
  system kernel.

- The m5 writefile binary and gem5 pseudo instruction are used to
  extract files from the simulated environment.
2015-11-02 10:15:34 +00:00
2015-09-07 17:55:42 +01:00
2015-09-03 13:55:44 +01:00

Workload Automation
+++++++++++++++++++

Workload Automation (WA) is a framework for executing workloads and collecting
measurements on Android and Linux devices. WA includes automation for nearly 50
workloads (mostly Android), some common instrumentation (ftrace, ARM
Streamline, hwmon).  A number of output formats are supported. 

Workload Automation is designed primarily as a developer tool/framework to
facilitate data driven development by providing a method of collecting
measurements from a device in a repeatable way.

Workload Automation is highly extensible. Most of the concrete functionality is
implemented via plug-ins, and  it is easy to write new plug-ins to support new
device types, workloads, instrumentation or output processing. 


Requirements
============

- Python 2.7
- Linux (should work on other Unixes, but untested)
- Latest Android SDK (ANDROID_HOME must be set) for Android devices, or
- SSH for Linux devices


Installation
============

To install::

        python setup.py sdist
        sudo pip install dist/wlauto-*.tar.gz

Please refer to the `installation section <./doc/source/installation.rst>`_ 
in the documentation for more details.


Basic Usage
===========

Please see the `Quickstart <./doc/source/quickstart.rst>`_ section of the 
documentation.


Documentation
=============

You can view pre-built HTML documentation `here <http://pythonhosted.org/wlauto/>`_.

Documentation in reStructuredText format may be found under ``doc/source``. To
compile it into cross-linked HTML, make sure you have `Sphinx
<http://sphinx-doc.org/install.html>`_ installed, and then ::

        cd doc
        make html


License
=======

Workload Automation is distributed under `Apache v2.0 License
<http://www.apache.org/licenses/LICENSE-2.0>`_. Workload automation includes
binaries distributed under differnt licenses (see LICENSE files in specfic
directories).


Feedback, Contrubutions and Support
===================================

- Please use the GitHub Issue Tracker associated with this repository for
  feedback.
- ARM licensees may contact ARM directly via their partner managers.
- We welcome code contributions via GitHub Pull requests. Please see
  "Contributing Code" section of the documentation for details.
Description
No description provided
Readme Apache-2.0 186 MiB
Languages
Python 75.8%
Java 15.9%
C 5.4%
Shell 2.5%
Dockerfile 0.3%