Spdk/test
Shuhei Matsumoto 0c1df53e7a bdev: Copy command fallback supports split to make copy size unlimited
The generic bdev layer has a fallback meachanism for the copy command
used when the backend bdev module does not support it. However, its max
size is limited. To remove the limitation, the fallback supports split by
using the unified split logic rather than following the write zeroes
command.

bdev_copy_should_split() and bdev_copy_split() use spdk_bdev_get_max_copy()
rather then referring bdev->max_copy to include the fallback case.

Then, spdk_bdev_copy_blocks() does the following.

If the copy size is large and should be split, use the generic split
logic regardless of whether copy is supported or not.
If copy is supported, send the copy request, or if copy is not
supported, emulate it using regulard read and write requests.

Add unit test case to verify this addition.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Iaf51db56bb4b95f99a0ea7a0237d8fa8ae039a54
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17073
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2023-05-03 16:01:48 +00:00
..
accel examples/accel/perf: add support for xor 2023-02-21 08:33:18 +00:00
app fuzz/llvm: provide a prefix to use when saving artifacts 2023-04-13 21:23:07 +00:00
bdev bdev_gpt: use unique partition GUID as bdev UUID 2023-05-02 18:59:58 +00:00
blobfs add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
blobstore add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
common pkgdep/git: Bump QEMU to latest 8.0.0 release 2023-04-28 09:03:36 +00:00
compress bdev/compress: Port to use accel_fw instead of compressdev 2023-01-20 10:26:21 +00:00
cpp_headers update Intel copyright notices 2022-11-10 08:28:53 +00:00
dd add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
dma test/dma: call spdk_thread_exit() 2022-11-23 08:22:04 +00:00
dpdk_memory_utility add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
env add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
event autotest: unify style for test/ and ./test/ 2023-02-14 09:07:09 +00:00
external_code tests: Run make clean only when SPDK was configured 2023-02-02 09:05:56 +00:00
ftl test/ftl: add cases line to cover RPC bdev_ftl_unload 2023-01-17 20:32:58 +00:00
fuzz fuzz/llvm: move coverage data to llvm/coverage 2023-04-13 21:23:07 +00:00
interrupt test: wait_for_examine and delay in reap_unregistered_poller.sh 2023-04-18 04:57:02 +00:00
ioat add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
iscsi_tgt bdev/pmem: Removing bdev pmem - updated tests 2023-03-09 09:21:23 +00:00
json_config accel: add accel_set_options 2023-04-14 17:05:40 +00:00
lvol vbdev_lvol: allow degraded lvols to be deleted 2023-04-26 17:32:13 +00:00
make test/check_so_deps: Adjust printout when $SPDK_ABI_DIR is not set 2023-04-14 17:03:42 +00:00
nvme test/nvme: Lock FDP test to FDP-capable nvme only 2023-04-28 09:03:36 +00:00
nvmf test/nvmf: fully re-enable host/timeout.sh 2023-04-27 09:28:38 +00:00
ocf bdev/ocf: Update OCF to 22.6.1 2023-04-06 14:40:39 +00:00
openstack add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
packaging test/packaging: Export LD_LIBRARY_PATH, PKG_CONFIG_PATH setup 2023-04-18 08:42:27 +00:00
rpc lib/trace: add trace_get_info RPC 2022-12-05 09:50:38 +00:00
rpc_client add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
rpc_plugins autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
scheduler test/scheduler: Merge cppc_cpufreq into acpi-cpufreq check 2023-03-22 07:08:22 +00:00
setup tests: Skip block devices marked as hidden 2023-04-28 09:03:36 +00:00
sma test/sma: limit number of vhost-blk devices to 2 2023-03-13 21:02:27 +00:00
spdkcli test/spdkcli: Wait until spdkcli_clear_config settled 2023-04-28 09:05:36 +00:00
thread thread: test SPDK spinlocks in an application 2022-12-06 21:20:17 +00:00
ublk test/ublk: add parameter for num devices 2023-01-25 10:52:36 +00:00
unit bdev: Copy command fallback supports split to make copy size unlimited 2023-05-03 16:01:48 +00:00
vfio_user test/vfio-user: reduce spdk_tgt memory allocation 2023-04-12 16:48:13 +00:00
vhost test/vhost: Create wrapper around wipefs 2023-04-19 09:52:25 +00:00
vmd add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
Makefile test/lvol: test esnap clones with real bdevs 2023-04-26 17:32:13 +00:00
spdk_cunit.h update Intel copyright notices 2022-11-10 08:28:53 +00:00