mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-02-21 20:38:57 +00:00
This commit resolves a couple of issues that were causing impropper cluster shutdown tracking in the cpustates script. - requested_states in the PowerStateProcessor was being initalized to -1 instead of None if no state was requested; the later checks are against None. - requested_states was not being set if the request could be satisfied immediately, and was being cleared upon being statisfied at a later time. This caused a problem when a core leaves idle and then tries to re-enter cluster shutdown. Here is an example sequence of events that illustrates the issue (assume core0 and core1 are the only two cores on a cluster): 1. both cores are running 2. core0 requests cluster-sleep. As core1 is running, it is put into core-sleep instead, and its request is saved. 3. core1 requests cluster-sleep. As core0 has a pending request for cluster-sleep, both cores are put into cluster-sleep and the pending request is cleared. 4. core1 becomes active. core0 is elevated to core-sleep. 5. core1 tries to enter cluster-sleep. Since core0 is currently in core-sleep (and its prior request has laredy been cleared), core1 is put into core-sleep instead, and its request is saved. This is an ERROR as but cores have in fact requested cluster-sleep at this stage. If, in step 4., core0 becomes active instead, exactly the same situation will result, as core1 was put into cluster-sleep immediately and its request was never saved. Idle state requests are now always tracked on entry and are only cleared when the core leave idle. - Also removed a pointless identy assignment.
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
Languages
Python
75.8%
Java
15.9%
C
5.4%
Shell
2.5%
Dockerfile
0.3%