Spdk/test
Evgeniy Kochetov 6159c8c69b bdev: Fail nvme passthru command if not supported by bdev
The originally detected problem is that SPDK NVMf target fails command
with invalid opcode with status code INTERNAL_DEVICE_ERROR instead of
INVALID_OPCODE. All unknown commands on IO queue are passed to
underlying block device layer as NVME_IO type. It is not checked if
this type of commands is supported and, when command fails,
INTERNAL_DEVICE_ERROR is set as status code. If command fails on
submission, status code is set to INVALID_OPCODE which is more
relevant.

This patch adds check if command type is supported to
bdev_nvme_*_passthru functions. If not supported, it is failed with
ENOTSUP.

Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: I4d7f7639da17dd3b1dc3eee7eb1b4a4f876117a2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8567
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2022-06-30 13:32:28 -04:00
..
accel_engine test/accel_engine: add more test cases 2021-09-01 07:34:02 +00:00
app spelling: test 2022-06-30 13:32:28 -04:00
bdev spelling: test 2022-06-30 13:32:28 -04:00
blobfs event: Shift subsystem initialization code to a separate library 2021-05-24 10:12:50 +00:00
blobstore scheduler: Change main core frequency dynamically 2021-01-22 18:31:25 +00:00
common spelling: test 2022-06-30 13:32:28 -04:00
compress test/nvmf: use recommended nvmf_create_subsystem rpc 2021-05-20 15:00:22 +00:00
cpp_headers queue_extras: use SPDK_CONTAINEROF 2019-10-07 15:06:01 +00:00
dd spelling: test 2022-06-30 13:32:28 -04:00
dma test/dma: Update the test to run IO for some time 2022-06-30 13:32:27 -04:00
dpdk_memory_utility check_format: Ignore shellcheck's SC2128 and SC2178 directives 2021-06-30 22:43:05 +00:00
env spelling: test 2022-06-30 13:32:28 -04:00
event spelling: test 2022-06-30 13:32:28 -04:00
external_code spelling: test 2022-06-30 13:32:28 -04:00
ftl test/ftl: Use emulated zoned devices instead of ocssd 2022-06-30 13:32:25 -04:00
fuzz nvme_fuzz: pass trid on command line only 2022-06-30 13:32:25 -04:00
interrupt spelling: test 2022-06-30 13:32:28 -04:00
ioat build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
iscsi_tgt spelling: test 2022-06-30 13:32:28 -04:00
json_config spelling: test 2022-06-30 13:32:28 -04:00
lvol spelling: test 2022-06-30 13:32:28 -04:00
make build: don't put out-of-tree ocf build in build/ dir 2021-08-17 08:54:30 +00:00
nvme spelling: test 2022-06-30 13:32:28 -04:00
nvmf spelling: test 2022-06-30 13:32:28 -04:00
ocf check_format: Fixes for shellcheck's SC2251 directive 2021-06-30 22:43:05 +00:00
openstack test/openstack: Use stable branch for the requirements repo 2022-06-30 13:32:26 -04:00
pmem spelling: test 2022-06-30 13:32:28 -04:00
rpc autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
rpc_client build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
rpc_plugins autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
scheduler spelling: test 2022-06-30 13:32:28 -04:00
setup spelling: test 2022-06-30 13:32:28 -04:00
spdkcli autotest: Don't override default amount of hugepages on Linux to 8GB 2021-06-24 17:33:10 +00:00
thread test/thread: Add poller_perf to evaluate cost to run poller 2021-08-20 07:29:42 +00:00
unit bdev: Fail nvme passthru command if not supported by bdev 2022-06-30 13:32:28 -04:00
vhost spelling: test 2022-06-30 13:32:28 -04:00
vmd test: replace VMD_WHITELIST with VMD_ALLOWED 2020-12-03 09:41:07 +00:00
Makefile test/dma: Add functional test to verify DMA 2022-06-30 13:32:25 -04:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00