c9268075ab
When specifying -C for multithread mode, we calculate a 'blocks_per_job' to tell each core what subset of the bdev it should target with I/O. But this blocks_per_job, and the config->length member that it gets copied to, were ints. For devices with num blocks > INT32_MAX, this can cause overflow if the num blocks is also < UINT32_MAX (because then we end up storing a negative value in the bdevperf's length field). For sequential workloads, it may take a long time until it happens, but for random workloads it fails almost immediately. Fixes issue #2108. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I6c2b787ab5d3c6bfe12efd183ce86d4d95f9b6c6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9231 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ziye Yang <ziye.yang@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> |
||
---|---|---|
.. | ||
.gitignore | ||
bdevperf.c | ||
bdevperf.py | ||
common.sh | ||
conf.json | ||
Makefile | ||
test_config.sh |