| 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()
|
|
|