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

nvme/tcp: allocate nvme_tcp_req aligned to a cache line



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


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
parent c69768bd
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -155,7 +155,9 @@ struct nvme_tcp_req {
	struct nvme_tcp_qpair			*tqpair;
	TAILQ_ENTRY(nvme_tcp_req)		link;
	struct spdk_nvme_cpl			rsp;
	uint8_t					rsvd1[32];
};
SPDK_STATIC_ASSERT(sizeof(struct nvme_tcp_req) % SPDK_CACHE_LINE_SIZE == 0, "unaligned size");

static struct spdk_nvme_tcp_stat g_dummy_stats = {};

@@ -278,7 +280,8 @@ nvme_tcp_alloc_reqs(struct nvme_tcp_qpair *tqpair)
	uint16_t i;
	struct nvme_tcp_req *tcp_req;

	tqpair->tcp_reqs = calloc(tqpair->num_entries, sizeof(struct nvme_tcp_req));
	tqpair->tcp_reqs = aligned_alloc(SPDK_CACHE_LINE_SIZE,
					 tqpair->num_entries * sizeof(*tcp_req));
	if (tqpair->tcp_reqs == NULL) {
		SPDK_ERRLOG("Failed to allocate tcp_reqs on tqpair=%p\n", tqpair);
		goto fail;
@@ -294,6 +297,7 @@ nvme_tcp_alloc_reqs(struct nvme_tcp_qpair *tqpair)
		goto fail;
	}

	memset(tqpair->tcp_reqs, 0, tqpair->num_entries * sizeof(*tcp_req));
	TAILQ_INIT(&tqpair->send_queue);
	TAILQ_INIT(&tqpair->free_reqs);
	TAILQ_INIT(&tqpair->outstanding_reqs);