Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 import os, time, re, logging | 1 import os, time, re, logging |
| 2 from autotest_lib.client.bin import test, utils | 2 from autotest_lib.client.bin import test, utils |
| 3 from autotest_lib.client.bin.net import net_utils | 3 from autotest_lib.client.bin.net import net_utils |
| 4 from autotest_lib.client.common_lib import error | 4 from autotest_lib.client.common_lib import error |
| 5 | 5 |
| 6 MPSTAT_IX = 0 | 6 MPSTAT_IX = 0 |
| 7 NETPERF_IX = 1 | 7 NETPERF_IX = 1 |
| 8 | 8 |
| 9 class netperf2(test.test): | 9 class netperf2(test.test): |
| 10 version = 4 | 10 version = 4 |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 32 self.server_prog = '%s&' % os.path.join(self.srcdir, 'src/netserver') | 32 self.server_prog = '%s&' % os.path.join(self.srcdir, 'src/netserver') |
| 33 self.client_prog = '%s' % os.path.join(self.srcdir, 'src/netperf') | 33 self.client_prog = '%s' % os.path.join(self.srcdir, 'src/netperf') |
| 34 self.valid_tests = ['TCP_STREAM', 'TCP_MAERTS', 'TCP_RR', 'TCP_CRR', | 34 self.valid_tests = ['TCP_STREAM', 'TCP_MAERTS', 'TCP_RR', 'TCP_CRR', |
| 35 'TCP_SENDFILE', 'UDP_STREAM', 'UDP_RR'] | 35 'TCP_SENDFILE', 'UDP_STREAM', 'UDP_RR'] |
| 36 self.results = [] | 36 self.results = [] |
| 37 self.actual_times = [] | 37 self.actual_times = [] |
| 38 self.netif = '' | 38 self.netif = '' |
| 39 self.network = net_utils.network() | 39 self.network = net_utils.network() |
| 40 self.network_utils = net_utils.network_utils() | 40 self.network_utils = net_utils.network_utils() |
| 41 | 41 |
| 42 dep = 'sysstat' | |
| 43 dep_dir = os.path.join(self.autodir, 'deps', dep) | |
|
ericli
2010/03/05 22:20:39
This is duplicated with line 28.
kdlucas
2010/03/05 23:24:44
So I think what is happening here is after we comp
| |
| 44 self.job.install_pkg(dep, 'dep', dep_dir) | |
| 45 | |
| 42 | 46 |
| 43 def run_once(self, server_ip, client_ip, role, test = 'TCP_STREAM', | 47 def run_once(self, server_ip, client_ip, role, test = 'TCP_STREAM', |
| 44 test_time = 15, stream_list = [1], test_specific_args = '', | 48 test_time = 15, stream_list = [1], test_specific_args = '', |
| 45 cpu_affinity = '', dev = '', bidi = False, wait_time = 5): | 49 cpu_affinity = '', dev = '', bidi = False, wait_time = 5): |
| 46 """ | 50 """ |
| 47 server_ip: IP address of host running netserver | 51 server_ip: IP address of host running netserver |
| 48 client_ip: IP address of host running netperf client(s) | 52 client_ip: IP address of host running netperf client(s) |
| 49 role: 'client' or 'server' | 53 role: 'client' or 'server' |
| 50 test: one of TCP_STREAM, TCP_MEARTS, TCP_RR, TCP_CRR, TCP_SENDFILE, | 54 test: one of TCP_STREAM, TCP_MEARTS, TCP_RR, TCP_CRR, TCP_SENDFILE, |
| 51 UDP_STREAM or UDP_RR | 55 UDP_STREAM or UDP_RR |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 141 | 145 |
| 142 | 146 |
| 143 def server_stop(self): | 147 def server_stop(self): |
| 144 utils.system('killall netserver', ignore_status=True) | 148 utils.system('killall netserver', ignore_status=True) |
| 145 | 149 |
| 146 | 150 |
| 147 def client(self, server_ip, test, test_time, num_streams, | 151 def client(self, server_ip, test, test_time, num_streams, |
| 148 test_specific_args, cpu_affinity): | 152 test_specific_args, cpu_affinity): |
| 149 args = '-H %s -t %s -l %d' % (server_ip, test, test_time) | 153 args = '-H %s -t %s -l %d' % (server_ip, test, test_time) |
| 150 | 154 |
| 151 mpstat = os.path.join(self.autodir + 'deps/sysstat/mpstat') | 155 if os.path.exists('/usr/bin/mpstat'): |
| 156 mpstat = '/usr/bin/mpstat' | |
| 157 else: | |
| 158 mpstat = os.path.join(self.autodir + '/deps/sysstat/src/mpstat') | |
| 152 | 159 |
| 153 if self.wait_time: | 160 if self.wait_time: |
| 154 args += ' -s %d ' % self.wait_time | 161 args += ' -s %d ' % self.wait_time |
| 155 | 162 |
| 156 # Append the test specific arguments. | 163 # Append the test specific arguments. |
| 157 if test_specific_args: | 164 if test_specific_args: |
| 158 args += ' ' + test_specific_args | 165 args += ' ' + test_specific_args |
| 159 | 166 |
| 160 cmd = '%s %s' % (self.client_prog, args) | 167 cmd = '%s %s' % (self.client_prog, args) |
| 161 | 168 |
| 162 if cpu_affinity: | 169 if cpu_affinity: |
| 163 cmd = 'taskset %s %s' % (cpu_affinity, cmd) | 170 cmd = 'taskset %s %s' % (cpu_affinity, cmd) |
| 164 | 171 |
| 165 try: | 172 try: |
| 166 cmds = [] | 173 cmds = [] |
| 167 | 174 |
| 168 # Get 5 mpstat samples. Since tests with large number of streams | 175 # Get 5 mpstat samples. Since tests with large number of streams |
| 169 # take a long time to start up all the streams, we'll toss out the | 176 # take a long time to start up all the streams, we'll toss out the |
| 170 # first and last sample when recording results | 177 # first and last sample when recording results |
| 171 interval = max(1, test_time / 5) | 178 interval = max(1, test_time / 5) |
| 172 cmds.append('sleep %d && mpstat -P ALL %s 5' % (self.wait_time, | 179 cmds.append('sleep %d && %s -P ALL %s 5' % (self.wait_time, mpstat, |
| 173 interval)) | 180 interval)) |
| 174 | 181 |
| 175 # Add the netperf commands | 182 # Add the netperf commands |
| 176 for i in xrange(num_streams): | 183 for i in xrange(num_streams): |
| 177 cmds.append(cmd) | 184 cmds.append(cmd) |
| 178 if self.bidi and test == 'TCP_STREAM': | 185 if self.bidi and test == 'TCP_STREAM': |
| 179 cmds.append(cmd.replace('TCP_STREAM', 'TCP_MAERTS')) | 186 cmds.append(cmd.replace('TCP_STREAM', 'TCP_MAERTS')) |
| 180 | 187 |
| 181 t0 = time.time() | 188 t0 = time.time() |
| 182 # Launch all commands in parallel | 189 # Launch all commands in parallel |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 338 end_time = curr_time + timeout | 345 end_time = curr_time + timeout |
| 339 while curr_time < end_time: | 346 while curr_time < end_time: |
| 340 if not os.system('ping -c 1 ' + ip): | 347 if not os.system('ping -c 1 ' + ip): |
| 341 # Ping succeeded | 348 # Ping succeeded |
| 342 return | 349 return |
| 343 # Ping failed. Lets sleep a bit and try again. | 350 # Ping failed. Lets sleep a bit and try again. |
| 344 time.sleep(5) | 351 time.sleep(5) |
| 345 curr_time = time.time() | 352 curr_time = time.time() |
| 346 | 353 |
| 347 return | 354 return |
| OLD | NEW |