Commit f9424ae7 authored by Jim Harris's avatar Jim Harris
Browse files

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: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Id166098244287c56f12cdd88ba27a17fa34a4348
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17331


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 680ed635
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ nvmf_tgt_destroy_poll_group(void *io_device, void *ctx_buf)

	pthread_mutex_lock(&tgt->mutex);
	TAILQ_REMOVE(&tgt->poll_groups, group, link);
	tgt->num_poll_groups--;
	pthread_mutex_unlock(&tgt->mutex);

	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);
	tgt->num_poll_groups++;
	TAILQ_INSERT_TAIL(&tgt->poll_groups, group, link);
	pthread_mutex_unlock(&tgt->mutex);

@@ -307,6 +309,7 @@ spdk_nvmf_tgt_create(struct spdk_nvmf_target_opts *opts)
	tgt->discovery_genctr = 0;
	TAILQ_INIT(&tgt->transports);
	TAILQ_INIT(&tgt->poll_groups);
	tgt->num_poll_groups = 0;

	tgt->subsystems = calloc(tgt->max_subsystems, sizeof(struct spdk_nvmf_subsystem *));
	if (!tgt->subsystems) {
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ struct spdk_nvmf_tgt {
	void					*destroy_cb_arg;

	uint16_t				crdt[3];
	uint16_t				num_poll_groups;

	TAILQ_ENTRY(spdk_nvmf_tgt)		link;
};
+3 −0
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ test_nvmf_tgt_create_poll_group(void)

	TAILQ_INIT(&tgt.transports);
	TAILQ_INIT(&tgt.poll_groups);
	tgt.num_poll_groups = 0;
	pthread_mutex_init(&tgt.mutex, NULL);
	transport.tgt = &tgt;
	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].rtype == 0xbb);
	CU_ASSERT(TAILQ_FIRST(&tgt.poll_groups) == &group);
	CU_ASSERT(tgt.num_poll_groups == 1);
	CU_ASSERT(group.thread == thread);
	CU_ASSERT(group.poller != NULL);

	nvmf_tgt_destroy_poll_group((void *)&tgt, (void *)&group);
	CU_ASSERT(TAILQ_EMPTY(&tgt.poll_groups));
	CU_ASSERT(tgt.num_poll_groups == 0);
	free(tgt.subsystems[0]->ns);
	free(tgt.subsystems);