Register the global bdevperf object as an I/O device by spdk_io_device_register(). Create and destroy I/O target groups asynchronously by using spdk_for_each_thread() and spdk_for_each_channel(). spdk_for_each_thread() and spdk_for_each_channel() serialize the execution among multiple threads, and any lock is not necessary. Additionally, for bdevperf_submit_on_core() and bdevperf_stop_io_on_core(), replace for their loop + event call by spdk_for_each_channel() and rename them by bdevperf_submit_on_group() and bdevperf_stop_io_on_group(), respectively. This advances the work to move bdevperf from core based to thread based. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I63b512d0b8e734e862afe1f7a4053414b99204d7 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/478780 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> |
||
---|---|---|
.. | ||
.gitignore | ||
bdevperf.c | ||
bdevperf.py | ||
Makefile |