scripts: Make fio.py python3 compatible
Fix deprecated print statements and properly encode strings for file and process communications. Change-Id: I896c9dd7b9b15be8684af267066dae8ca8df4f62 Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/410949 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
parent
61770b52e3
commit
d0b7400c08
@ -37,7 +37,7 @@ filename=%(device)s
|
|||||||
|
|
||||||
def interrupt_handler(signum, frame):
|
def interrupt_handler(signum, frame):
|
||||||
fio.terminate()
|
fio.terminate()
|
||||||
print "FIO terminated"
|
print("FIO terminated")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
@ -45,11 +45,11 @@ def main():
|
|||||||
|
|
||||||
global fio
|
global fio
|
||||||
if (len(sys.argv) < 5):
|
if (len(sys.argv) < 5):
|
||||||
print "usage:"
|
print("usage:")
|
||||||
print " " + sys.argv[0] + " <io_size> <queue_depth> <test_type> <runtime>"
|
print(" " + sys.argv[0] + " <io_size> <queue_depth> <test_type> <runtime>")
|
||||||
print "advanced usage:"
|
print("advanced usage:")
|
||||||
print "If you want to run fio with verify, please add verify string after runtime."
|
print("If you want to run fio with verify, please add verify string after runtime.")
|
||||||
print "Currently fio.py only support write rw randwrite randrw with verify enabled."
|
print("Currently fio.py only support write rw randwrite randrw with verify enabled.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
io_size = int(sys.argv[1])
|
io_size = int(sys.argv[1])
|
||||||
@ -62,7 +62,7 @@ def main():
|
|||||||
verify = False
|
verify = False
|
||||||
|
|
||||||
devices = get_target_devices()
|
devices = get_target_devices()
|
||||||
print "Found devices: ", devices
|
print("Found devices: ", devices)
|
||||||
|
|
||||||
configure_devices(devices)
|
configure_devices(devices)
|
||||||
fio_executable = '/usr/bin/fio'
|
fio_executable = '/usr/bin/fio'
|
||||||
@ -72,17 +72,17 @@ def main():
|
|||||||
signal.signal(signal.SIGTERM, interrupt_handler)
|
signal.signal(signal.SIGTERM, interrupt_handler)
|
||||||
signal.signal(signal.SIGINT, interrupt_handler)
|
signal.signal(signal.SIGINT, interrupt_handler)
|
||||||
fio = Popen([fio_executable, '-'], stdin=PIPE)
|
fio = Popen([fio_executable, '-'], stdin=PIPE)
|
||||||
fio.communicate(create_fio_config(io_size, queue_depth, device_paths, test_type, runtime, verify))
|
fio.communicate(create_fio_config(io_size, queue_depth, device_paths, test_type, runtime, verify).encode())
|
||||||
fio.stdin.close()
|
fio.stdin.close()
|
||||||
rc = fio.wait()
|
rc = fio.wait()
|
||||||
print "FIO completed with code %d\n" % rc
|
print("FIO completed with code %d\n" % rc)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
sys.exit(rc)
|
sys.exit(rc)
|
||||||
|
|
||||||
|
|
||||||
def get_target_devices():
|
def get_target_devices():
|
||||||
output = check_output('iscsiadm -m session -P 3', shell=True)
|
output = check_output('iscsiadm -m session -P 3', shell=True)
|
||||||
return re.findall("Attached scsi disk (sd[a-z]+)", output)
|
return re.findall("Attached scsi disk (sd[a-z]+)", output.decode("ascii"))
|
||||||
|
|
||||||
|
|
||||||
def create_fio_config(size, q_depth, devices, test, run_time, verify):
|
def create_fio_config(size, q_depth, devices, test, run_time, verify):
|
||||||
@ -101,7 +101,7 @@ def set_device_parameter(devices, filename_template, value):
|
|||||||
for dev in devices:
|
for dev in devices:
|
||||||
filename = filename_template % dev
|
filename = filename_template % dev
|
||||||
f = open(filename, 'r+b')
|
f = open(filename, 'r+b')
|
||||||
f.write(value)
|
f.write(value.encode())
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
@ -117,9 +117,9 @@ def configure_devices(devices):
|
|||||||
except IOError:
|
except IOError:
|
||||||
qd = qd - 1
|
qd = qd - 1
|
||||||
if qd == 0:
|
if qd == 0:
|
||||||
print "Could not set block device queue depths."
|
print("Could not set block device queue depths.")
|
||||||
else:
|
else:
|
||||||
print "Requested queue_depth {} but only {} is supported.".format(str(requested_qd), str(qd))
|
print("Requested queue_depth {} but only {} is supported.".format(str(requested_qd), str(qd)))
|
||||||
set_device_parameter(devices, "/sys/block/%s/queue/scheduler", "noop")
|
set_device_parameter(devices, "/sys/block/%s/queue/scheduler", "noop")
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user