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

accel: add retry counters to stats



These could help to find quickly miss config and miss behaviour of
overall system under workload.

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


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent 74dcb373
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -299,6 +299,7 @@ _get_task(struct accel_io_channel *accel_ch, spdk_accel_completion_cb cb_fn, voi

	accel_task = TAILQ_FIRST(&accel_ch->task_pool);
	if (spdk_unlikely(accel_task == NULL)) {
		accel_update_stats(accel_ch, retry.task, 1);
		return NULL;
	}

@@ -788,6 +789,7 @@ accel_get_buf(struct accel_io_channel *ch, uint64_t len)

	buf = TAILQ_FIRST(&ch->buf_pool);
	if (spdk_unlikely(buf == NULL)) {
		accel_update_stats(ch, retry.bufdesc, 1);
		return NULL;
	}

@@ -817,6 +819,7 @@ accel_sequence_get(struct accel_io_channel *ch)

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

@@ -1319,6 +1322,7 @@ accel_sequence_alloc_buf(struct spdk_accel_sequence *seq, struct accel_buffer *b
	buf->seq = seq;
	buf->buf = spdk_iobuf_get(&ch->iobuf, buf->len, &buf->iobuf, cb_fn);
	if (buf->buf == NULL) {
		accel_update_stats(ch, retry.iobuf, 1);
		return false;
	}

+7 −0
Original line number Diff line number Diff line
@@ -32,6 +32,13 @@ struct accel_stats {
	struct accel_operation_stats	operations[SPDK_ACCEL_OPC_LAST];
	uint64_t			sequence_executed;
	uint64_t			sequence_failed;

	struct {
		uint64_t task;
		uint64_t sequence;
		uint64_t iobuf;
		uint64_t bufdesc;
	} retry;
};

typedef void (*_accel_for_each_module_fn)(struct module_info *info);
+5 −0
Original line number Diff line number Diff line
@@ -445,6 +445,11 @@ rpc_accel_get_stats_done(struct accel_stats *stats, void *cb_arg)
	}
	spdk_json_write_array_end(w);

	spdk_json_write_named_uint64(w, "retry_task", stats->retry.task);
	spdk_json_write_named_uint64(w, "retry_sequence", stats->retry.sequence);
	spdk_json_write_named_uint64(w, "retry_iobuf", stats->retry.iobuf);
	spdk_json_write_named_uint64(w, "retry_bufdesc", stats->retry.bufdesc);

	spdk_json_write_object_end(w);
	spdk_jsonrpc_end_result(request, w);
}