Loading app/nvmf_tgt/nvmf_tgt.c +1 −7 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ shutdown_subsystems(void) static void acceptor_poller_unregistered_event(struct spdk_event *event) { spdk_nvmf_transport_fini(); nvmf_tgt_fini(); shutdown_subsystems(); } Loading Loading @@ -327,12 +327,6 @@ spdk_nvmf_startup(spdk_event_t event) goto initialize_error; } rc = spdk_nvmf_transport_init(); if (rc <= 0) { SPDK_ERRLOG("Transport initialization failed\n"); goto initialize_error; } spdk_poller_register(&g_acceptor_poller, acceptor_poll, NULL, g_spdk_nvmf_tgt_conf.acceptor_lcore, NULL, g_spdk_nvmf_tgt_conf.acceptor_poll_rate); Loading include/spdk/nvmf.h +0 −2 Original line number Diff line number Diff line Loading @@ -192,8 +192,6 @@ spdk_nvmf_subsystem_add_ns(struct spdk_nvmf_subsystem *subsystem, struct spdk_bd int spdk_nvmf_subsystem_set_sn(struct spdk_nvmf_subsystem *subsystem, const char *sn); int spdk_nvmf_transport_init(void); int spdk_nvmf_transport_fini(void); const struct spdk_nvmf_transport *spdk_nvmf_transport_get(const char *name); const char *spdk_nvmf_transport_get_name(const struct spdk_nvmf_transport *transport); Loading lib/nvmf/nvmf.c +14 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ int nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, uint32_t in_capsule_data_size, uint32_t max_io_size) { int rc; g_nvmf_tgt.max_queues_per_session = max_queues_per_sess; g_nvmf_tgt.max_queue_depth = max_queue_depth; g_nvmf_tgt.in_capsule_data_size = in_capsule_data_size; Loading @@ -61,9 +63,21 @@ nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max In Capsule Data: %d bytes\n", in_capsule_data_size); SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max I/O Size: %d bytes\n", max_io_size); rc = spdk_nvmf_transport_init(); if (rc <= 0) { SPDK_ERRLOG("Transport initialization failed\n"); return -1; } return 0; } int nvmf_tgt_fini(void) { return spdk_nvmf_transport_fini(); } SPDK_TRACE_REGISTER_FN(nvmf_trace) { spdk_trace_register_object(OBJECT_NVMF_IO, 'r'); Loading lib/nvmf/rdma.c +18 −16 Original line number Diff line number Diff line Loading @@ -1038,14 +1038,30 @@ static int spdk_nvmf_rdma_init(uint16_t max_queue_depth, uint32_t max_io_size, uint32_t in_capsule_data_size) { int rc; SPDK_NOTICELOG("*** RDMA Transport Init ***\n"); pthread_mutex_lock(&g_rdma.lock); g_rdma.max_queue_depth = max_queue_depth; g_rdma.max_io_size = max_io_size; g_rdma.in_capsule_data_size = in_capsule_data_size; g_rdma.event_channel = rdma_create_event_channel(); if (g_rdma.event_channel == NULL) { SPDK_ERRLOG("rdma_create_event_channel() failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } rc = fcntl(g_rdma.event_channel->fd, F_SETFL, O_NONBLOCK); if (rc < 0) { SPDK_ERRLOG("fcntl to set fd to non-blocking failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } pthread_mutex_unlock(&g_rdma.lock); return 0; } Loading Loading @@ -1287,6 +1303,7 @@ spdk_nvmf_rdma_listen(struct spdk_nvmf_listen_addr *listen_addr) int rc; pthread_mutex_lock(&g_rdma.lock); assert(g_rdma.event_channel != NULL); TAILQ_FOREACH(addr, &g_rdma.listen_addrs, link) { if ((!strcasecmp(addr->traddr, listen_addr->traddr)) && (!strcasecmp(addr->trsvcid, listen_addr->trsvcid))) { Loading @@ -1295,21 +1312,6 @@ spdk_nvmf_rdma_listen(struct spdk_nvmf_listen_addr *listen_addr) return 0; } } if (g_rdma.event_channel == NULL) { g_rdma.event_channel = rdma_create_event_channel(); if (g_rdma.event_channel == NULL) { SPDK_ERRLOG("rdma_create_event_channel() failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } rc = fcntl(g_rdma.event_channel->fd, F_SETFL, O_NONBLOCK); if (rc < 0) { SPDK_ERRLOG("fcntl to set fd to non-blocking failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } } addr = calloc(1, sizeof(*addr)); if (!addr) { Loading lib/nvmf/transport.h +3 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,9 @@ struct spdk_nvmf_transport { int (*conn_poll)(struct spdk_nvmf_conn *conn); }; int spdk_nvmf_transport_init(void); int spdk_nvmf_transport_fini(void); extern const struct spdk_nvmf_transport spdk_nvmf_transport_rdma; #endif /* SPDK_NVMF_TRANSPORT_H */ Loading
app/nvmf_tgt/nvmf_tgt.c +1 −7 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ shutdown_subsystems(void) static void acceptor_poller_unregistered_event(struct spdk_event *event) { spdk_nvmf_transport_fini(); nvmf_tgt_fini(); shutdown_subsystems(); } Loading Loading @@ -327,12 +327,6 @@ spdk_nvmf_startup(spdk_event_t event) goto initialize_error; } rc = spdk_nvmf_transport_init(); if (rc <= 0) { SPDK_ERRLOG("Transport initialization failed\n"); goto initialize_error; } spdk_poller_register(&g_acceptor_poller, acceptor_poll, NULL, g_spdk_nvmf_tgt_conf.acceptor_lcore, NULL, g_spdk_nvmf_tgt_conf.acceptor_poll_rate); Loading
include/spdk/nvmf.h +0 −2 Original line number Diff line number Diff line Loading @@ -192,8 +192,6 @@ spdk_nvmf_subsystem_add_ns(struct spdk_nvmf_subsystem *subsystem, struct spdk_bd int spdk_nvmf_subsystem_set_sn(struct spdk_nvmf_subsystem *subsystem, const char *sn); int spdk_nvmf_transport_init(void); int spdk_nvmf_transport_fini(void); const struct spdk_nvmf_transport *spdk_nvmf_transport_get(const char *name); const char *spdk_nvmf_transport_get_name(const struct spdk_nvmf_transport *transport); Loading
lib/nvmf/nvmf.c +14 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ int nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, uint32_t in_capsule_data_size, uint32_t max_io_size) { int rc; g_nvmf_tgt.max_queues_per_session = max_queues_per_sess; g_nvmf_tgt.max_queue_depth = max_queue_depth; g_nvmf_tgt.in_capsule_data_size = in_capsule_data_size; Loading @@ -61,9 +63,21 @@ nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max In Capsule Data: %d bytes\n", in_capsule_data_size); SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max I/O Size: %d bytes\n", max_io_size); rc = spdk_nvmf_transport_init(); if (rc <= 0) { SPDK_ERRLOG("Transport initialization failed\n"); return -1; } return 0; } int nvmf_tgt_fini(void) { return spdk_nvmf_transport_fini(); } SPDK_TRACE_REGISTER_FN(nvmf_trace) { spdk_trace_register_object(OBJECT_NVMF_IO, 'r'); Loading
lib/nvmf/rdma.c +18 −16 Original line number Diff line number Diff line Loading @@ -1038,14 +1038,30 @@ static int spdk_nvmf_rdma_init(uint16_t max_queue_depth, uint32_t max_io_size, uint32_t in_capsule_data_size) { int rc; SPDK_NOTICELOG("*** RDMA Transport Init ***\n"); pthread_mutex_lock(&g_rdma.lock); g_rdma.max_queue_depth = max_queue_depth; g_rdma.max_io_size = max_io_size; g_rdma.in_capsule_data_size = in_capsule_data_size; g_rdma.event_channel = rdma_create_event_channel(); if (g_rdma.event_channel == NULL) { SPDK_ERRLOG("rdma_create_event_channel() failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } rc = fcntl(g_rdma.event_channel->fd, F_SETFL, O_NONBLOCK); if (rc < 0) { SPDK_ERRLOG("fcntl to set fd to non-blocking failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } pthread_mutex_unlock(&g_rdma.lock); return 0; } Loading Loading @@ -1287,6 +1303,7 @@ spdk_nvmf_rdma_listen(struct spdk_nvmf_listen_addr *listen_addr) int rc; pthread_mutex_lock(&g_rdma.lock); assert(g_rdma.event_channel != NULL); TAILQ_FOREACH(addr, &g_rdma.listen_addrs, link) { if ((!strcasecmp(addr->traddr, listen_addr->traddr)) && (!strcasecmp(addr->trsvcid, listen_addr->trsvcid))) { Loading @@ -1295,21 +1312,6 @@ spdk_nvmf_rdma_listen(struct spdk_nvmf_listen_addr *listen_addr) return 0; } } if (g_rdma.event_channel == NULL) { g_rdma.event_channel = rdma_create_event_channel(); if (g_rdma.event_channel == NULL) { SPDK_ERRLOG("rdma_create_event_channel() failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } rc = fcntl(g_rdma.event_channel->fd, F_SETFL, O_NONBLOCK); if (rc < 0) { SPDK_ERRLOG("fcntl to set fd to non-blocking failed\n"); pthread_mutex_unlock(&g_rdma.lock); return -1; } } addr = calloc(1, sizeof(*addr)); if (!addr) { Loading
lib/nvmf/transport.h +3 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,9 @@ struct spdk_nvmf_transport { int (*conn_poll)(struct spdk_nvmf_conn *conn); }; int spdk_nvmf_transport_init(void); int spdk_nvmf_transport_fini(void); extern const struct spdk_nvmf_transport spdk_nvmf_transport_rdma; #endif /* SPDK_NVMF_TRANSPORT_H */