Commit ea252ab6 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

accel: change seq from tailq to slist



Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Change-Id: I5b56cefc7c64e437a56a666609f43370c264eaf7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18774


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
parent 97d2afdb
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ struct accel_io_channel {
	struct spdk_accel_sequence		*seq_pool_base;
	struct accel_buffer			*buf_pool_base;
	TAILQ_HEAD(, spdk_accel_task)		task_pool;
	TAILQ_HEAD(, spdk_accel_sequence)	seq_pool;
	SLIST_HEAD(, spdk_accel_sequence)	seq_pool;
	SLIST_HEAD(, accel_buffer)		buf_pool;
	struct spdk_iobuf_channel		iobuf;
	struct accel_stats			stats;
@@ -163,7 +163,7 @@ struct spdk_accel_sequence {
	bool					in_process_sequence;
	spdk_accel_completion_cb		cb_fn;
	void					*cb_arg;
	TAILQ_ENTRY(spdk_accel_sequence)	link;
	SLIST_ENTRY(spdk_accel_sequence)	link;
};

#define accel_update_stats(ch, event, v) \
@@ -813,13 +813,13 @@ accel_sequence_get(struct accel_io_channel *ch)
{
	struct spdk_accel_sequence *seq;

	seq = TAILQ_FIRST(&ch->seq_pool);
	seq = SLIST_FIRST(&ch->seq_pool);
	if (spdk_unlikely(seq == NULL)) {
		accel_update_stats(ch, retry.sequence, 1);
		return NULL;
	}

	TAILQ_REMOVE(&ch->seq_pool, seq, link);
	SLIST_REMOVE_HEAD(&ch->seq_pool, link);

	TAILQ_INIT(&seq->tasks);
	TAILQ_INIT(&seq->completed);
@@ -849,7 +849,7 @@ accel_sequence_put(struct spdk_accel_sequence *seq)
	assert(TAILQ_EMPTY(&seq->completed));
	seq->ch = NULL;

	TAILQ_INSERT_HEAD(&ch->seq_pool, seq, link);
	SLIST_INSERT_HEAD(&ch->seq_pool, seq, link);
}

static void accel_sequence_task_cb(void *cb_arg, int status);
@@ -2353,7 +2353,7 @@ accel_create_channel(void *io_device, void *ctx_buf)
	}

	TAILQ_INIT(&accel_ch->task_pool);
	TAILQ_INIT(&accel_ch->seq_pool);
	SLIST_INIT(&accel_ch->seq_pool);
	SLIST_INIT(&accel_ch->buf_pool);

	task_mem = accel_ch->task_pool_base;
@@ -2364,7 +2364,7 @@ accel_create_channel(void *io_device, void *ctx_buf)
	}
	for (i = 0; i < g_opts.sequence_count; i++) {
		seq = &accel_ch->seq_pool_base[i];
		TAILQ_INSERT_TAIL(&accel_ch->seq_pool, seq, link);
		SLIST_INSERT_HEAD(&accel_ch->seq_pool, seq, link);
	}
	for (i = 0; i < g_opts.buf_count; i++) {
		buf = &accel_ch->buf_pool_base[i];
+2 −2
Original line number Diff line number Diff line
@@ -919,7 +919,7 @@ test_sequence_append_error(void)
	struct iovec src_iovs, dst_iovs;
	char buf[4096];
	TAILQ_HEAD(, spdk_accel_task) tasks = TAILQ_HEAD_INITIALIZER(tasks);
	TAILQ_HEAD(, spdk_accel_sequence) seqs = TAILQ_HEAD_INITIALIZER(seqs);
	SLIST_HEAD(, spdk_accel_sequence) seqs = SLIST_HEAD_INITIALIZER(seqs);
	int rc;

	ioch = spdk_accel_get_io_channel();
@@ -955,7 +955,7 @@ test_sequence_append_error(void)

	/* Check that the same happens when the sequence queue is empty */
	TAILQ_SWAP(&tasks, &accel_ch->task_pool, spdk_accel_task, link);
	TAILQ_SWAP(&seqs, &accel_ch->seq_pool, spdk_accel_sequence, link);
	SLIST_SWAP(&seqs, &accel_ch->seq_pool, spdk_accel_sequence);

	rc = spdk_accel_append_fill(&seq, ioch, buf, sizeof(buf), NULL, NULL, 0xa5, 0,
				    ut_sequence_step_cb, NULL);