Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Unified Diff: client/site_tests/power_Resume/power_Resume.py

Issue 6756015: power_Resume: report time to bring all cpus online (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git@master
Patch Set: Fix 80 column violation Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/site_tests/power_Resume/power_Resume.py
diff --git a/client/site_tests/power_Resume/power_Resume.py b/client/site_tests/power_Resume/power_Resume.py
index 48d06a34c6eee3f1eec8c923162b2115d715c4a4..b0d0721ef8d78e2847673968638009aa0c7bc6f7 100644
--- a/client/site_tests/power_Resume/power_Resume.py
+++ b/client/site_tests/power_Resume/power_Resume.py
@@ -16,7 +16,7 @@ class power_Resume(test.test):
preserve_srcdir = True
- def _get_last_msg_time(self, msg):
+ def _get_last_msg(self, msg):
cmd = "grep -a '%s' /var/log/messages | tail -n 1" % msg
# The order in which processes are un-frozen is indeterminate
# and therfore this test may get resumed before the system has gotten
@@ -32,6 +32,10 @@ class power_Resume(test.test):
if count == 5:
raise error.TestError("Failed to find log message: " + msg)
+ return data
+
+ def _get_last_msg_time(self, msg):
+ data = self._get_last_msg(msg)
match = re.search(r' \[\s*([0-9.]+)\] ', data)
if match is None:
raise error.TestError('Failed to find timestamp for log message: '
@@ -59,6 +63,8 @@ class power_Resume(test.test):
return time
+ def _get_end_cpu_resume_time(self):
+ return self._get_last_msg_time('CPU[0-9]\+ is up')
def _get_end_suspend_time(self):
time = self._get_last_msg_time_multiple(END_SUSPEND_MESSAGES)
@@ -74,6 +80,15 @@ class power_Resume(test.test):
return time
+ def _get_device_resume_time(self):
+ data = self._get_last_msg("PM: resume of devices complete after")
+ match = re.search(r'PM: resume of devices complete after ([0-9.]+)',
+ data)
+ if match is None:
+ raise error.TestError('Failed to find device resume time on line: '
+ + data)
+ # convert from msec to sec
+ return float(match.group(1)) / 1000
def _get_hwclock_seconds(self):
"""
@@ -119,11 +134,14 @@ class power_Resume(test.test):
start_suspend_time = self._get_start_suspend_time()
end_suspend_time = self._get_end_suspend_time()
end_resume_time = self._get_end_resume_time()
+ end_cpu_resume_time = self._get_end_cpu_resume_time()
+ kernel_device_resume_time = self._get_device_resume_time()
# Calculate the suspend/resume times
total_resume_time = self._get_hwclock_seconds() - alarm_time
suspend_time = end_suspend_time - start_suspend_time
kernel_resume_time = end_resume_time - end_suspend_time
+ kernel_cpu_resume_time = end_cpu_resume_time - end_suspend_time
firmware_resume_time = total_resume_time - kernel_resume_time
# Prepare the results
@@ -132,4 +150,6 @@ class power_Resume(test.test):
results['seconds_system_resume'] = total_resume_time
results['seconds_system_resume_firmware'] = firmware_resume_time
results['seconds_system_resume_kernel'] = kernel_resume_time
+ results['seconds_system_resume_kernel_cpu'] = kernel_cpu_resume_time
+ results['seconds_system_resume_kernel_dev'] = kernel_device_resume_time
self.write_perf_keyval(results)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698