nvmf/vfio-user: don't set RESERVATION support for vfio-user transport

Only one active socket connection is supported in libvfio-user,
RESERVATION should not be supported in this case.

Change-Id: I36a746f479da767d857425e84dfed5f2bef30b17
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9124
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Changpeng Liu 2021-08-09 22:00:51 +08:00 committed by Tomasz Zawadzki
parent af72d105ce
commit 08f25fb993
5 changed files with 11 additions and 2 deletions

View File

@ -2,6 +2,11 @@
## v21.10: (Upcoming Release) ## v21.10: (Upcoming Release)
### nvmf
Added `oncs` to `struct spdk_nvmf_ctrlr_data` so that the transport layer
can decide support RESERVATION feature or not.
### bdev ### bdev
New API `spdk_bdev_get_memory_domains` has been added, it allows to get SPDK memory domains used by bdev. New API `spdk_bdev_get_memory_domains` has been added, it allows to get SPDK memory domains used by bdev.

View File

@ -200,6 +200,7 @@ struct spdk_nvmf_listener {
*/ */
struct spdk_nvmf_ctrlr_data { struct spdk_nvmf_ctrlr_data {
uint16_t kas; uint16_t kas;
struct spdk_nvme_cdata_oncs oncs;
struct spdk_nvme_cdata_sgls sgls; struct spdk_nvme_cdata_sgls sgls;
struct spdk_nvme_cdata_nvmf_specific nvmf_specific; struct spdk_nvme_cdata_nvmf_specific nvmf_specific;
}; };

View File

@ -34,7 +34,7 @@
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..) SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
SO_VER := 9 SO_VER := 10
SO_MINOR := 0 SO_MINOR := 0
C_SRCS = ctrlr.c ctrlr_discovery.c ctrlr_bdev.c \ C_SRCS = ctrlr.c ctrlr_discovery.c ctrlr_bdev.c \

View File

@ -299,6 +299,7 @@ nvmf_ctrlr_cdata_init(struct spdk_nvmf_transport *transport, struct spdk_nvmf_su
struct spdk_nvmf_ctrlr_data *cdata) struct spdk_nvmf_ctrlr_data *cdata)
{ {
cdata->kas = KAS_DEFAULT_VALUE; cdata->kas = KAS_DEFAULT_VALUE;
cdata->oncs.reservations = 1;
cdata->sgls.supported = 1; cdata->sgls.supported = 1;
cdata->sgls.keyed_sgl = 1; cdata->sgls.keyed_sgl = 1;
cdata->sgls.sgl_offset = 1; cdata->sgls.sgl_offset = 1;
@ -2406,7 +2407,7 @@ spdk_nvmf_ctrlr_identify_ctrlr(struct spdk_nvmf_ctrlr *ctrlr, struct spdk_nvme_c
cdata->oncs.dsm = nvmf_ctrlr_dsm_supported(ctrlr); cdata->oncs.dsm = nvmf_ctrlr_dsm_supported(ctrlr);
cdata->oncs.write_zeroes = nvmf_ctrlr_write_zeroes_supported(ctrlr); cdata->oncs.write_zeroes = nvmf_ctrlr_write_zeroes_supported(ctrlr);
cdata->oncs.reservations = 1; cdata->oncs.reservations = ctrlr->cdata.oncs.reservations;
if (subsystem->flags.ana_reporting) { if (subsystem->flags.ana_reporting) {
cdata->anatt = ANA_TRANSITION_TIME_IN_SEC; cdata->anatt = ANA_TRANSITION_TIME_IN_SEC;
/* ANA Change state is not used, and ANA Persistent Loss state /* ANA Change state is not used, and ANA Persistent Loss state

View File

@ -2113,6 +2113,8 @@ nvmf_vfio_user_cdata_init(struct spdk_nvmf_transport *transport,
{ {
memset(&cdata->sgls, 0, sizeof(struct spdk_nvme_cdata_sgls)); memset(&cdata->sgls, 0, sizeof(struct spdk_nvme_cdata_sgls));
cdata->sgls.supported = SPDK_NVME_SGLS_SUPPORTED_DWORD_ALIGNED; cdata->sgls.supported = SPDK_NVME_SGLS_SUPPORTED_DWORD_ALIGNED;
/* libvfio-user can only support 1 connection for now */
cdata->oncs.reservations = 0;
} }
static int static int