nvmf: drop connection shm and use calloc() instead
Nothing actually maps the shared memory region, so there is no need to allocate the array of connections that way. Change-Id: I3d5eca748f892e37fbb0ec52942f1c510e9f9dc8 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
1fc4a182bd
commit
2eff92ab88
@ -63,8 +63,6 @@ static rte_atomic32_t g_num_connections[RTE_MAX_LCORE];
|
|||||||
|
|
||||||
static int g_max_conns;
|
static int g_max_conns;
|
||||||
static struct spdk_nvmf_conn *g_conns_array;
|
static struct spdk_nvmf_conn *g_conns_array;
|
||||||
static char g_shm_name[64];
|
|
||||||
static int g_conns_array_fd;
|
|
||||||
|
|
||||||
static pthread_mutex_t g_conns_mutex;
|
static pthread_mutex_t g_conns_mutex;
|
||||||
|
|
||||||
@ -103,7 +101,6 @@ free_conn(struct spdk_nvmf_conn *conn)
|
|||||||
|
|
||||||
int spdk_initialize_nvmf_conns(int max_connections)
|
int spdk_initialize_nvmf_conns(int max_connections)
|
||||||
{
|
{
|
||||||
size_t conns_size;
|
|
||||||
int i, rc;
|
int i, rc;
|
||||||
|
|
||||||
rc = pthread_mutex_init(&g_conns_mutex, NULL);
|
rc = pthread_mutex_init(&g_conns_mutex, NULL);
|
||||||
@ -112,26 +109,8 @@ int spdk_initialize_nvmf_conns(int max_connections)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(g_shm_name, "nvmf_conns.%d", spdk_app_get_instance_id());
|
|
||||||
g_conns_array_fd = shm_open(g_shm_name, O_RDWR | O_CREAT, 0600);
|
|
||||||
if (g_conns_array_fd < 0) {
|
|
||||||
SPDK_ERRLOG("could not shm_open %s\n", g_shm_name);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_max_conns = max_connections;
|
g_max_conns = max_connections;
|
||||||
conns_size = sizeof(struct spdk_nvmf_conn) * g_max_conns;
|
g_conns_array = calloc(g_max_conns, sizeof(struct spdk_nvmf_conn));
|
||||||
|
|
||||||
if (ftruncate(g_conns_array_fd, conns_size) != 0) {
|
|
||||||
SPDK_ERRLOG("could not ftruncate\n");
|
|
||||||
shm_unlink(g_shm_name);
|
|
||||||
close(g_conns_array_fd);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
g_conns_array = mmap(0, conns_size, PROT_READ | PROT_WRITE, MAP_SHARED,
|
|
||||||
g_conns_array_fd, 0);
|
|
||||||
|
|
||||||
memset(g_conns_array, 0, conns_size);
|
|
||||||
|
|
||||||
for (i = 0; i < RTE_MAX_LCORE; i++) {
|
for (i = 0; i < RTE_MAX_LCORE; i++) {
|
||||||
rte_atomic32_set(&g_num_connections[i], 0);
|
rte_atomic32_set(&g_num_connections[i], 0);
|
||||||
@ -265,9 +244,7 @@ spdk_nvmf_get_active_conns(void)
|
|||||||
static void
|
static void
|
||||||
spdk_nvmf_cleanup_conns(void)
|
spdk_nvmf_cleanup_conns(void)
|
||||||
{
|
{
|
||||||
munmap(g_conns_array, sizeof(struct spdk_nvmf_conn) * g_max_conns);
|
free(g_conns_array);
|
||||||
shm_unlink(g_shm_name);
|
|
||||||
close(g_conns_array_fd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user