Spdk/examples/nvme/fio_plugin/full_bench.fio
Jim Harris 7b7799bf9c fio_plugin: switch to LD_PRELOAD instead of dynamically loading
fio has a race between reap_threads() and free_ioengine().  free_ioengine()
will call the ioengine's cleanup routine and then dlclose it if it
is dynamically linked (like the spdk fio plugin).  free_ioengine() does
not set td->io_ops = NULL though until after dlclose() is complete.  If
reap_threads() tries to dereference td->io_ops after our plugin has been
closed but before io_ops was set to NULL, it will segfault.

Solution (until an upstream fio fix is available) is to use LD_PRELOAD
instead.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ide4eb3cb92a636513289107fc211fdf1f98b616f

Reviewed-on: https://review.gerrithub.io/365272
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Ziye Yang <optimistyzy@gmail.com>
2017-06-14 11:12:29 -04:00

44 lines
608 B
Plaintext

[global]
ioengine=spdk
thread=1
group_reporting=1
direct=1
verify=0
norandommap=1
cpumask=1
percentile_list=50:99:99.9:99.99:99.999
[precondition-trim]
description="Trim the entire device"
rw=trim
iodepth=128
bs=1M
[precondition-sequential]
stonewall
description="Sequentially write to the device twice"
rw=write
iodepth=128
bs=128k
loops=2
[4k_randwrite_qd1]
stonewall
description="4KiB Random Write QD=1"
bs=4k
rw=randwrite
iodepth=1
time_based=1
ramp_time=60
runtime=240
[4k_randread_qd1]
stonewall
description="4KiB Random Read QD=1"
bs=4k
rw=randread
iodepth=1
time_based=1
ramp_time=60
runtime=240