From dc2fb2ed3981ff1413de5de78bb39b884e146421 Mon Sep 17 00:00:00 2001 From: GangCao Date: Fri, 29 Sep 2017 12:29:05 -0400 Subject: [PATCH] nvme: add a public API to rename spdk_nvme_ctrlr_opts_set_defaults This change is relating to add a new public API spdk_nvme_connect() under include/spdk/nvme.h. This new spdk_nvme_connect() API will connect the user specified trid and have a user optional ctlr opts. Rename this API and make it as public. A typical usage of this API as following: 1. struct spdk_nvme_ctrlr_opts user_opts = {} 2. Call spdk_nvme_ctrlr_get_default_ctrlr_opts(&user_opts, sizeof(user_opts)) 3. Modify the content of the initialized user_opts with user required value like user_opts.num_io_queues = 8 4. Call spdk_nvme_connect(&trid, &user_opts, sizeof(user_opts)) Change-Id: Ideec8247365ebf7dd15069e29821be8ea27b08be Signed-off-by: GangCao Reviewed-on: https://review.gerrithub.io/380849 Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Daniel Verkamp --- include/spdk/nvme.h | 9 +++++++++ lib/nvme/nvme.c | 2 +- lib/nvme/nvme_ctrlr.c | 2 +- lib/nvme/nvme_internal.h | 2 -- lib/nvme/nvme_rdma.c | 2 +- test/unit/lib/nvme/nvme.c/nvme_ut.c | 2 +- test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c | 8 ++++---- test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c | 2 +- 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/include/spdk/nvme.h b/include/spdk/nvme.h index 233f7dafc..b68062917 100644 --- a/include/spdk/nvme.h +++ b/include/spdk/nvme.h @@ -146,6 +146,15 @@ struct spdk_nvme_ctrlr_opts { uint8_t extended_host_id[16]; }; +/** + * \brief Get the default options for the creation of a specific NVMe controller. + * + * \param[out] opts Will be filled with the default option. + * \param opts_size Must be set to sizeof(struct spdk_nvme_ctrlr_opts). + */ +void spdk_nvme_ctrlr_get_default_ctrlr_opts(struct spdk_nvme_ctrlr_opts *opts, + size_t opts_size); + /** * NVMe library transports * diff --git a/lib/nvme/nvme.c b/lib/nvme/nvme.c index afbaaf708..c6e2d3b53 100644 --- a/lib/nvme/nvme.c +++ b/lib/nvme/nvme.c @@ -320,7 +320,7 @@ nvme_ctrlr_probe(const struct spdk_nvme_transport_id *trid, void *devhandle, struct spdk_nvme_ctrlr *ctrlr; struct spdk_nvme_ctrlr_opts opts; - spdk_nvme_ctrlr_opts_set_defaults(&opts, sizeof(opts)); + spdk_nvme_ctrlr_get_default_ctrlr_opts(&opts, sizeof(opts)); if (probe_cb(cb_ctx, trid, &opts)) { ctrlr = nvme_transport_ctrlr_construct(trid, &opts, devhandle); diff --git a/lib/nvme/nvme_ctrlr.c b/lib/nvme/nvme_ctrlr.c index 16ea3f96f..311860a62 100644 --- a/lib/nvme/nvme_ctrlr.c +++ b/lib/nvme/nvme_ctrlr.c @@ -78,7 +78,7 @@ nvme_ctrlr_set_cc(struct spdk_nvme_ctrlr *ctrlr, const union spdk_nvme_cc_regist } void -spdk_nvme_ctrlr_opts_set_defaults(struct spdk_nvme_ctrlr_opts *opts, size_t opts_size) +spdk_nvme_ctrlr_get_default_ctrlr_opts(struct spdk_nvme_ctrlr_opts *opts, size_t opts_size) { char host_id_str[37]; diff --git a/lib/nvme/nvme_internal.h b/lib/nvme/nvme_internal.h index 87695c3e8..d778a5355 100644 --- a/lib/nvme/nvme_internal.h +++ b/lib/nvme/nvme_internal.h @@ -587,8 +587,6 @@ void nvme_free_request(struct nvme_request *req); void nvme_request_remove_child(struct nvme_request *parent, struct nvme_request *child); uint64_t nvme_get_quirks(const struct spdk_pci_id *id); -void spdk_nvme_ctrlr_opts_set_defaults(struct spdk_nvme_ctrlr_opts *opts, size_t opts_size); - int nvme_robust_mutex_init_shared(pthread_mutex_t *mtx); int nvme_robust_mutex_init_recursive_shared(pthread_mutex_t *mtx); diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 336fdea31..590e5d35f 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -1192,7 +1192,7 @@ nvme_rdma_ctrlr_scan(const struct spdk_nvme_transport_id *discovery_trid, return rc; } - spdk_nvme_ctrlr_opts_set_defaults(&discovery_opts, sizeof(discovery_opts)); + spdk_nvme_ctrlr_get_default_ctrlr_opts(&discovery_opts, sizeof(discovery_opts)); /* For discovery_ctrlr set the timeout to 0 */ discovery_opts.keep_alive_timeout_ms = 0; diff --git a/test/unit/lib/nvme/nvme.c/nvme_ut.c b/test/unit/lib/nvme/nvme.c/nvme_ut.c index 3d0972ccb..3fce1c3a6 100644 --- a/test/unit/lib/nvme/nvme.c/nvme_ut.c +++ b/test/unit/lib/nvme/nvme.c/nvme_ut.c @@ -95,7 +95,7 @@ nvme_ctrlr_destruct(struct spdk_nvme_ctrlr *ctrlr) } void -spdk_nvme_ctrlr_opts_set_defaults(struct spdk_nvme_ctrlr_opts *opts, size_t opts_size) +spdk_nvme_ctrlr_get_default_ctrlr_opts(struct spdk_nvme_ctrlr_opts *opts, size_t opts_size) { memset(opts, 0, sizeof(*opts)); } diff --git a/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c b/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c index b58ad3977..b82368124 100644 --- a/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c +++ b/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c @@ -1402,7 +1402,7 @@ test_nvme_ctrlr_set_supported_features(void) } static void -test_ctrlr_opts_set_defaults(void) +test_ctrlr_get_default_ctrlr_opts(void) { struct spdk_nvme_ctrlr_opts opts = {}; uuid_t uuid; @@ -1415,7 +1415,7 @@ test_ctrlr_opts_set_defaults(void) /* set a smaller opts_size */ CU_ASSERT(sizeof(opts) > 8); - spdk_nvme_ctrlr_opts_set_defaults(&opts, 8); + spdk_nvme_ctrlr_get_default_ctrlr_opts(&opts, 8); CU_ASSERT_EQUAL(opts.num_io_queues, DEFAULT_MAX_IO_QUEUES); CU_ASSERT_TRUE(opts.use_cmb_sqs); /* check below fields are not initialized by default value */ @@ -1434,7 +1434,7 @@ test_ctrlr_opts_set_defaults(void) CU_ASSERT(strlen(opts.src_svcid) == 0); /* set a consistent opts_size */ - spdk_nvme_ctrlr_opts_set_defaults(&opts, sizeof(opts)); + spdk_nvme_ctrlr_get_default_ctrlr_opts(&opts, sizeof(opts)); CU_ASSERT_EQUAL(opts.num_io_queues, DEFAULT_MAX_IO_QUEUES); CU_ASSERT_TRUE(opts.use_cmb_sqs); CU_ASSERT_EQUAL(opts.arb_mechanism, SPDK_NVME_CC_AMS_RR); @@ -1605,7 +1605,7 @@ int main(int argc, char **argv) || CU_add_test(suite, "test nvme_ctrlr init CC.EN = 0 CSTS.RDY = 0 AMS = VS", test_nvme_ctrlr_init_en_0_rdy_0_ams_vs) == NULL || CU_add_test(suite, "alloc_io_qpair_rr 1", test_alloc_io_qpair_rr_1) == NULL - || CU_add_test(suite, "set_defaults", test_ctrlr_opts_set_defaults) == NULL + || CU_add_test(suite, "get_default_ctrlr_opts", test_ctrlr_get_default_ctrlr_opts) == NULL || CU_add_test(suite, "get_default_io_qpair_opts", test_ctrlr_get_default_io_qpair_opts) == NULL || CU_add_test(suite, "alloc_io_qpair_wrr 1", test_alloc_io_qpair_wrr_1) == NULL || CU_add_test(suite, "alloc_io_qpair_wrr 2", test_alloc_io_qpair_wrr_2) == NULL diff --git a/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c b/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c index 15a8af25f..c47206f84 100644 --- a/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c +++ b/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c @@ -135,7 +135,7 @@ spdk_pci_addr_compare(const struct spdk_pci_addr *a1, const struct spdk_pci_addr } void -spdk_nvme_ctrlr_opts_set_defaults(struct spdk_nvme_ctrlr_opts *opts, size_t opts_size) +spdk_nvme_ctrlr_get_default_ctrlr_opts(struct spdk_nvme_ctrlr_opts *opts, size_t opts_size) { memset(opts, 0, sizeof(*opts)); }