Commit ed87975a authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

nvme/tcp: report accel sequence support



That allows users to submit requests with an associated accel sequence
that will be executed prior/after the data is sent/received (depending
on the IO type).  The support is only advertised if data digest is also
enabled, otherwise there's no benefit in doing so.

Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: If83808c60b78cddfbe591b23e0239c6b6fd6c6ce
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18799


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@gmail.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 2ed026b1
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2562,6 +2562,12 @@ nvme_tcp_ctrlr_construct(const struct spdk_nvme_transport_id *trid,
		return NULL;
	}

	/* Only advertise support for accel sequences if data digest is enabled, otherwise it
	 * doesn't provide any benefits to finish the sequences here */
	if (opts->data_digest) {
		tctrlr->ctrlr.flags |= SPDK_NVME_CTRLR_ACCEL_SEQUENCE_SUPPORTED;
	}

	tctrlr->ctrlr.adminq = nvme_tcp_ctrlr_create_qpair(&tctrlr->ctrlr, 0,
			       tctrlr->ctrlr.opts.admin_queue_size, 0,
			       tctrlr->ctrlr.opts.admin_queue_size, true);
+4 −5
Original line number Diff line number Diff line
@@ -200,16 +200,15 @@ CONFIG

"$rootdir/examples/bdev/bdevperf/bdevperf.py" -s "$bperfsock" perform_tests

# Check the stats and verify that sequence is executed once for the encrypt/decrypt operation and
# once for the crc32 operation (chaining is disabled since the TCP transport doesn't report accel
# sequence support)
# Check the stats and verify that sequence is executed once for all operations (either encrypt+crc32
# or decrypt+crc32)
sequence=$(get_stat_bperf sequence_executed)
encrypt=$(get_stat_bperf executed encrypt)
decrypt=$(get_stat_bperf executed decrypt)
crc32c=$(get_stat_bperf executed crc32c)

((sequence > 0))
((encrypt + decrypt + crc32c == sequence))
((encrypt + decrypt == sequence))
((encrypt + decrypt == crc32c))

killprocess $bperfpid
@@ -236,7 +235,7 @@ decrypt=$(get_stat_bperf executed decrypt)
crc32c=$(get_stat_bperf executed crc32c)

((sequence > 0))
((encrypt + decrypt + crc32c == sequence))
((encrypt + decrypt == sequence))
((encrypt + decrypt == crc32c))

killprocess $bperfpid