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

Unified Diff: client/tests/profiler_sync/profiler_sync.py

Issue 1595019: Merge remote branch 'origin/upstream' into tempbranch (Closed)
Patch Set: Created 10 years, 8 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 | « client/tests/lmbench/lmbench.py ('k') | database/migrate.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/tests/profiler_sync/profiler_sync.py
diff --git a/client/tests/profiler_sync/profiler_sync.py b/client/tests/profiler_sync/profiler_sync.py
new file mode 100644
index 0000000000000000000000000000000000000000..8f28eb0a7a7e39cffe00052ade153fca32bf2c76
--- /dev/null
+++ b/client/tests/profiler_sync/profiler_sync.py
@@ -0,0 +1,53 @@
+# This "test" is used by autotest_lib.server.standalone_profilers to start
+# and stop profilers on a collection of hosts at approximately the same
+# time by synchronizing using barriers.
+
+from autotest_lib.client.bin import test
+from autotest_lib.client.common_lib import barrier
+
+class profiler_sync(test.test):
+ version = 1
+
+
+ def execute(self, timeout_sync, timeout_start, timeout_stop,
+ hostid, masterid, all_ids):
+ """
+ @param timeout_sync: Seconds to wait for the synchronization of all
+ hosts that will be launching profilers. (local_sync_profilers)
+ @param timeout_start: Seconds to wait for each of the initial
+ sync_profilers and start_profilers barriers between this
+ host and the master to be reached.
+ @param timeout_stop: Seconds to wait for this host and the master to
+ reach each of the stop_profilers and finish_profilers barriers.
+ @param hostid: This host's id (typically the hostname).
+ @param masterid: The master barrier host id where autoserv is running.
+ @param all_ids: A list of all hosts to synchronize profilers on.
+ """
+ profilers = self.job.profilers
+
+ barrier_server = barrier.listen_server(port=11920)
+ b0 = self.job.barrier(hostid, "sync_profilers", timeout_start,
+ listen_server=barrier_server)
+ b0.rendezvous_servers(masterid, hostid)
+
+ b1 = self.job.barrier(hostid, "start_profilers", timeout_start,
+ listen_server=barrier_server)
+ b1.rendezvous_servers(masterid, hostid)
+
+ b2 = self.job.barrier(hostid, "local_sync_profilers", timeout_sync)
+ b2.rendezvous(*all_ids)
+
+ profilers.start(self)
+
+ b3 = self.job.barrier(hostid, "stop_profilers", timeout_stop,
+ listen_server=barrier_server)
+ b3.rendezvous_servers(masterid, hostid)
+
+ profilers.stop(self)
+ profilers.report(self)
+
+ b4 = self.job.barrier(hostid, "finish_profilers", timeout_stop,
+ listen_server=barrier_server)
+ b4.rendezvous_servers(masterid, hostid)
+
+ barrier_server.close()
« no previous file with comments | « client/tests/lmbench/lmbench.py ('k') | database/migrate.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698