1
- import time , os
1
+ import time
2
+ import os
2
3
from autotest .client import test , os_dep , utils
3
4
from autotest .client .shared import error
4
5
@@ -7,29 +8,27 @@ class btreplay(test.test):
7
8
version = 1
8
9
9
10
# http://brick.kernel.dk/snaps/blktrace-git-latest.tar.gz
10
- def setup (self , tarball = 'blktrace-git-latest.tar.gz' ):
11
+ def setup (self , tarball = 'blktrace-git-latest.tar.gz' ):
11
12
tarball = utils .unmap_url (self .bindir , tarball , self .tmpdir )
12
13
utils .extract_tarball_to_dir (tarball , self .srcdir )
13
14
14
15
self .job .setup_dep (['libaio' ])
15
16
libs = '-L' + self .autodir + '/deps/libaio/lib -laio'
16
17
cflags = '-I ' + self .autodir + '/deps/libaio/include'
17
18
var_libs = 'LIBS="' + libs + '"'
18
- var_cflags = 'CFLAGS="' + cflags + '"'
19
+ var_cflags = 'CFLAGS="' + cflags + '"'
19
20
self .make_flags = var_libs + ' ' + var_cflags
20
21
21
22
os .chdir (self .srcdir )
22
23
23
24
utils .system ('patch -p1 < %s/Makefile.patch' % self .bindir )
24
25
utils .system (self .make_flags + ' make' )
25
26
26
-
27
27
def initialize (self ):
28
28
self .job .require_gcc ()
29
- self .ldlib = 'LD_LIBRARY_PATH=%s/deps/libaio/lib' % (self .autodir )
29
+ self .ldlib = 'LD_LIBRARY_PATH=%s/deps/libaio/lib' % (self .autodir )
30
30
self .results = []
31
31
32
-
33
32
def run_once (self , dev = "" , devices = "" , extra_args = '' , tmpdir = None ):
34
33
# @dev: The device against which the trace will be replayed.
35
34
# e.g. "sdb" or "md_d1"
@@ -59,16 +58,16 @@ def run_once(self, dev="", devices="", extra_args='', tmpdir=None):
59
58
60
59
# time a replay that omits "thinktime" between requests
61
60
# (by use of the -N flag)
62
- cmd = self .ldlib + " /usr/bin/time ./btreplay/btreplay -d " + \
63
- tmpdir + " -N -W " + dev + " " + extra_args + " 2>&1"
61
+ cmd = self .ldlib + " /usr/bin/time ./btreplay/btreplay -d " + \
62
+ tmpdir + " -N -W " + dev + " " + extra_args + " 2>&1"
64
63
self .results .append (utils .system_output (cmd , retain_output = True ))
65
64
66
65
# trace a replay that reproduces inter-request delays, and
67
66
# analyse the trace with btt to determine the average request
68
67
# completion latency
69
68
utils .system ("./blktrace -D %s %s >/dev/null &" % (tmpdir , alldevs ))
70
69
cmd = self .ldlib + " ./btreplay/btreplay -d %s -W %s %s" % \
71
- (tmpdir , dev , extra_args )
70
+ (tmpdir , dev , extra_args )
72
71
self .results .append (utils .system_output (cmd , retain_output = True ))
73
72
utils .system ("killall -INT blktrace" )
74
73
@@ -86,23 +85,22 @@ def run_once(self, dev="", devices="", extra_args='', tmpdir=None):
86
85
cmd = "./btt/btt -i %s/trace.bin" % tmpdir
87
86
self .results .append (utils .system_output (cmd , retain_output = True ))
88
87
89
-
90
88
def postprocess (self ):
91
89
for n in range (len (self .results )):
92
90
if self .results [n ].strip () == "==================== All Devices ====================" :
93
- words = self .results [n - 2 ].split ()
91
+ words = self .results [n - 2 ].split ()
94
92
s = words [1 ].strip ('sytem' ).split (':' )
95
93
e = words [2 ].strip ('elapsd' ).split (':' )
96
94
break
97
95
98
96
systime = 0.0
99
97
for n in range (len (s )):
100
- i = (len (s )- 1 ) - n
101
- systime += float (s [i ]) * (60 ** n )
98
+ i = (len (s ) - 1 ) - n
99
+ systime += float (s [i ]) * (60 ** n )
102
100
elapsed = 0.0
103
101
for n in range (len (e )):
104
- i = (len (e )- 1 ) - n
105
- elapsed += float (e [i ]) * (60 ** n )
102
+ i = (len (e ) - 1 ) - n
103
+ elapsed += float (e [i ]) * (60 ** n )
106
104
107
105
q2c = 0.0
108
106
for line in self .results :
@@ -113,5 +111,5 @@ def postprocess(self):
113
111
q2c = float (words [2 ])
114
112
break
115
113
116
- self .write_perf_keyval ({'time' :elapsed , 'systime' :systime ,
117
- 'avg_q2c_latency' :q2c })
114
+ self .write_perf_keyval ({'time' : elapsed , 'systime' : systime ,
115
+ 'avg_q2c_latency' : q2c })
0 commit comments