1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2024-10-06 19:01:15 +01:00
workload-automation/wlauto/utils
Sergei Trofimov 8f2ff4d2f8 cpustates: fix cluster shutdown tracking
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.
2017-03-24 08:55:47 +00:00
..
__init__.py Pylint fixes 2016-07-21 16:40:26 +01:00
android.py APK Info: Added property to extract native code from an apk 2016-12-09 14:11:16 +00:00
cli.py Pylint fixes 2016-07-21 16:40:26 +01:00
cpuinfo.py Initial commit of open source Workload Automation. 2015-03-10 13:09:31 +00:00
cros_sdk.py Pylint fixes 2016-07-21 16:40:26 +01:00
doc.py Pylint fixes 2016-07-21 16:40:26 +01:00
formatter.py pylint fixes 2015-06-29 11:34:49 +01:00
fps.py fps: move VSYNC_INTERVAL into utils 2017-02-03 15:14:16 +00:00
hwmon.py hwmon: Fixed sensor naming 2016-05-10 09:27:42 +01:00
ipython.py ipython: switched to using LooseVersion for version checks. 2016-02-10 09:01:40 +00:00
log.py Initial commit of open source Workload Automation. 2015-03-10 13:09:31 +00:00
misc.py ABI_MAP: Added armeabi-v7a as armeabi 2016-12-09 14:11:16 +00:00
netio.py Updated pylint for v1.5.1 2015-12-09 16:52:39 +00:00
power.py cpustates: fix cluster shutdown tracking 2017-03-24 08:55:47 +00:00
revent.py Revent: Fixed backwards compatibility with v1. 2016-12-02 16:58:09 +00:00
serial_port.py Pylint fixes 2016-07-21 16:40:26 +01:00
ssh.py ssh: fixing rasing of CalledProcessErrorWithStderr 2016-08-23 17:22:02 +01:00
statedetect.py StateDetection: Moved check for missing phase definition earlier. 2017-02-01 18:04:05 +00:00
terminalsize.py Pylint fixes 2016-07-21 16:40:26 +01:00
trace_cmd.py Pylint fixes 2016-07-21 16:40:26 +01:00
types.py WA Types: Added 'ParameterDict' type. 2017-02-20 16:44:24 +00:00
uboot.py uboot: Now detects the U-Boot version to use correct line endings 2016-05-04 11:54:29 +01:00
uefi.py Pylint fixes 2016-07-21 16:40:26 +01:00
uxperf.py Changed ActionLogger class to use nano timestamps. This is because fps instrument collects data in ns as well so is possible to match the two 2017-02-24 16:11:35 +00:00