nvmf: track num_poll_groups in spdk_nvmf_tgt
This will be useful in upcoming patch, where we use the number of poll groups to dynamically pick the buf_cache_size for each transport poll group. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Id166098244287c56f12cdd88ba27a17fa34a4348 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17331 Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
680ed635b3
commit
f9424ae73d
@ -131,6 +131,7 @@ nvmf_tgt_destroy_poll_group(void *io_device, void *ctx_buf)
|
|||||||
|
|
||||||
pthread_mutex_lock(&tgt->mutex);
|
pthread_mutex_lock(&tgt->mutex);
|
||||||
TAILQ_REMOVE(&tgt->poll_groups, group, link);
|
TAILQ_REMOVE(&tgt->poll_groups, group, link);
|
||||||
|
tgt->num_poll_groups--;
|
||||||
pthread_mutex_unlock(&tgt->mutex);
|
pthread_mutex_unlock(&tgt->mutex);
|
||||||
|
|
||||||
assert(!(tgt->state == NVMF_TGT_PAUSING || tgt->state == NVMF_TGT_RESUMING));
|
assert(!(tgt->state == NVMF_TGT_PAUSING || tgt->state == NVMF_TGT_RESUMING));
|
||||||
@ -212,6 +213,7 @@ nvmf_tgt_create_poll_group(void *io_device, void *ctx_buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_lock(&tgt->mutex);
|
pthread_mutex_lock(&tgt->mutex);
|
||||||
|
tgt->num_poll_groups++;
|
||||||
TAILQ_INSERT_TAIL(&tgt->poll_groups, group, link);
|
TAILQ_INSERT_TAIL(&tgt->poll_groups, group, link);
|
||||||
pthread_mutex_unlock(&tgt->mutex);
|
pthread_mutex_unlock(&tgt->mutex);
|
||||||
|
|
||||||
@ -307,6 +309,7 @@ spdk_nvmf_tgt_create(struct spdk_nvmf_target_opts *opts)
|
|||||||
tgt->discovery_genctr = 0;
|
tgt->discovery_genctr = 0;
|
||||||
TAILQ_INIT(&tgt->transports);
|
TAILQ_INIT(&tgt->transports);
|
||||||
TAILQ_INIT(&tgt->poll_groups);
|
TAILQ_INIT(&tgt->poll_groups);
|
||||||
|
tgt->num_poll_groups = 0;
|
||||||
|
|
||||||
tgt->subsystems = calloc(tgt->max_subsystems, sizeof(struct spdk_nvmf_subsystem *));
|
tgt->subsystems = calloc(tgt->max_subsystems, sizeof(struct spdk_nvmf_subsystem *));
|
||||||
if (!tgt->subsystems) {
|
if (!tgt->subsystems) {
|
||||||
|
@ -69,6 +69,7 @@ struct spdk_nvmf_tgt {
|
|||||||
void *destroy_cb_arg;
|
void *destroy_cb_arg;
|
||||||
|
|
||||||
uint16_t crdt[3];
|
uint16_t crdt[3];
|
||||||
|
uint16_t num_poll_groups;
|
||||||
|
|
||||||
TAILQ_ENTRY(spdk_nvmf_tgt) link;
|
TAILQ_ENTRY(spdk_nvmf_tgt) link;
|
||||||
};
|
};
|
||||||
|
@ -174,6 +174,7 @@ test_nvmf_tgt_create_poll_group(void)
|
|||||||
|
|
||||||
TAILQ_INIT(&tgt.transports);
|
TAILQ_INIT(&tgt.transports);
|
||||||
TAILQ_INIT(&tgt.poll_groups);
|
TAILQ_INIT(&tgt.poll_groups);
|
||||||
|
tgt.num_poll_groups = 0;
|
||||||
pthread_mutex_init(&tgt.mutex, NULL);
|
pthread_mutex_init(&tgt.mutex, NULL);
|
||||||
transport.tgt = &tgt;
|
transport.tgt = &tgt;
|
||||||
TAILQ_INSERT_TAIL(&tgt.transports, &transport, link);
|
TAILQ_INSERT_TAIL(&tgt.transports, &transport, link);
|
||||||
@ -191,11 +192,13 @@ test_nvmf_tgt_create_poll_group(void)
|
|||||||
CU_ASSERT(group.sgroups[0].ns_info[0].crkey == 0xaa);
|
CU_ASSERT(group.sgroups[0].ns_info[0].crkey == 0xaa);
|
||||||
CU_ASSERT(group.sgroups[0].ns_info[0].rtype == 0xbb);
|
CU_ASSERT(group.sgroups[0].ns_info[0].rtype == 0xbb);
|
||||||
CU_ASSERT(TAILQ_FIRST(&tgt.poll_groups) == &group);
|
CU_ASSERT(TAILQ_FIRST(&tgt.poll_groups) == &group);
|
||||||
|
CU_ASSERT(tgt.num_poll_groups == 1);
|
||||||
CU_ASSERT(group.thread == thread);
|
CU_ASSERT(group.thread == thread);
|
||||||
CU_ASSERT(group.poller != NULL);
|
CU_ASSERT(group.poller != NULL);
|
||||||
|
|
||||||
nvmf_tgt_destroy_poll_group((void *)&tgt, (void *)&group);
|
nvmf_tgt_destroy_poll_group((void *)&tgt, (void *)&group);
|
||||||
CU_ASSERT(TAILQ_EMPTY(&tgt.poll_groups));
|
CU_ASSERT(TAILQ_EMPTY(&tgt.poll_groups));
|
||||||
|
CU_ASSERT(tgt.num_poll_groups == 0);
|
||||||
free(tgt.subsystems[0]->ns);
|
free(tgt.subsystems[0]->ns);
|
||||||
free(tgt.subsystems);
|
free(tgt.subsystems);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user