nvme/tcp: Minor cleanups for SGL operations

Using naming rules consistent with other related libraries is helpful
to ensure the quality as verified by this patch series.

This patch changes a few parts to use iov and iovcnt for SGL operations.
Besides, name of an array points to the head of the array and is
constant. So copying name of array to an another pointer is not
necessary and can be removed.

Change-Id: I2324f28126b3088098c1c767cf6c060f22c175c3
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455629
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
This commit is contained in:
Shuhei Matsumoto 2019-05-24 16:36:12 +09:00 committed by Darek Stojaczyk
parent 127cfac020
commit 3ff1ff004e
3 changed files with 34 additions and 37 deletions

View File

@ -248,19 +248,19 @@ _nvme_tcp_sgl_append(struct _nvme_tcp_sgl *s, uint8_t *data, uint32_t data_len)
}
static int
nvme_tcp_build_iovecs(struct iovec *iovec, int num_iovs, struct nvme_tcp_pdu *pdu,
nvme_tcp_build_iovs(struct iovec *iov, int iovcnt, struct nvme_tcp_pdu *pdu,
bool hdgst_enable, bool ddgst_enable, uint32_t *_mapped_length)
{
int enable_digest;
uint32_t hlen, plen, i;
struct _nvme_tcp_sgl *sgl;
if (num_iovs == 0) {
if (iovcnt == 0) {
return 0;
}
sgl = &pdu->sgl;
_nvme_tcp_sgl_init(sgl, iovec, num_iovs, pdu->writev_offset);
_nvme_tcp_sgl_init(sgl, iov, iovcnt, pdu->writev_offset);
hlen = pdu->hdr.common.hlen;
enable_digest = 1;
if (pdu->hdr.common.pdu_type == SPDK_NVME_TCP_PDU_TYPE_IC_REQ ||
@ -317,22 +317,22 @@ end:
assert(plen == pdu->hdr.common.plen);
}
return num_iovs - sgl->iovcnt;
return iovcnt - sgl->iovcnt;
}
static int
nvme_tcp_build_payload_iovecs(struct iovec *iovec, int num_iovs, struct nvme_tcp_pdu *pdu,
nvme_tcp_build_payload_iovs(struct iovec *iov, int iovcnt, struct nvme_tcp_pdu *pdu,
bool ddgst_enable, uint32_t *_mapped_length)
{
struct _nvme_tcp_sgl *sgl;
uint32_t i;
if (num_iovs == 0) {
if (iovcnt == 0) {
return 0;
}
sgl = &pdu->sgl;
_nvme_tcp_sgl_init(sgl, iovec, num_iovs, pdu->readv_offset);
_nvme_tcp_sgl_init(sgl, iov, iovcnt, pdu->readv_offset);
for (i = 0; i < pdu->data_iovcnt; i++) {
if (!_nvme_tcp_sgl_append(sgl, pdu->data_iov[i].iov_base, pdu->data_iov[i].iov_len)) {
@ -349,7 +349,7 @@ end:
if (_mapped_length != NULL) {
*_mapped_length = sgl->total_size;
}
return num_iovs - sgl->iovcnt;
return iovcnt - sgl->iovcnt;
}
static int
@ -426,15 +426,14 @@ nvme_tcp_readv_data(struct spdk_sock *sock, struct iovec *iov, int iovcnt)
static int
nvme_tcp_read_payload_data(struct spdk_sock *sock, struct nvme_tcp_pdu *pdu)
{
struct iovec iovec_array[NVME_TCP_MAX_SGL_DESCRIPTORS + 1];
struct iovec *iov = iovec_array;
int iovec_cnt;
struct iovec iov[NVME_TCP_MAX_SGL_DESCRIPTORS + 1];
int iovcnt;
iovec_cnt = nvme_tcp_build_payload_iovecs(iovec_array, NVME_TCP_MAX_SGL_DESCRIPTORS + 1, pdu,
iovcnt = nvme_tcp_build_payload_iovs(iov, NVME_TCP_MAX_SGL_DESCRIPTORS + 1, pdu,
pdu->ddgst_enable, NULL);
assert(iovec_cnt >= 0);
assert(iovcnt >= 0);
return nvme_tcp_readv_data(sock, iov, iovec_cnt);
return nvme_tcp_readv_data(sock, iov, iovcnt);
}
static void

View File

@ -383,9 +383,8 @@ static int
nvme_tcp_qpair_process_send_queue(struct nvme_tcp_qpair *tqpair)
{
const int array_size = 32;
struct iovec iovec_array[array_size];
struct iovec *iov = iovec_array;
int iovec_cnt = 0;
struct iovec iovs[array_size];
int iovcnt = 0;
int bytes = 0;
uint32_t mapped_length;
struct nvme_tcp_pdu *pdu;
@ -402,14 +401,14 @@ nvme_tcp_qpair_process_send_queue(struct nvme_tcp_qpair *tqpair)
* Build up a list of iovecs for the first few PDUs in the
* tqpair 's send_queue.
*/
while (pdu != NULL && ((array_size - iovec_cnt) >= 3)) {
iovec_cnt += nvme_tcp_build_iovecs(&iovec_array[iovec_cnt], array_size - iovec_cnt,
while (pdu != NULL && ((array_size - iovcnt) >= 3)) {
iovcnt += nvme_tcp_build_iovs(&iovs[iovcnt], array_size - iovcnt,
pdu, tqpair->host_hdgst_enable,
tqpair->host_ddgst_enable, &mapped_length);
pdu = TAILQ_NEXT(pdu, tailq);
}
bytes = spdk_sock_writev(tqpair->sock, iov, iovec_cnt);
bytes = spdk_sock_writev(tqpair->sock, iovs, iovcnt);
SPDK_DEBUGLOG(SPDK_LOG_NVME, "bytes=%d are out\n", bytes);
if (bytes == -1) {
if (errno == EWOULDBLOCK || errno == EAGAIN) {

View File

@ -755,9 +755,8 @@ static int
spdk_nvmf_tcp_qpair_flush_pdus_internal(struct spdk_nvmf_tcp_qpair *tqpair)
{
const int array_size = 32;
struct iovec iovec_array[array_size];
struct iovec *iov = iovec_array;
int iovec_cnt = 0;
struct iovec iovs[array_size];
int iovcnt = 0;
int bytes = 0;
int total_length = 0;
uint32_t mapped_length;
@ -776,9 +775,9 @@ spdk_nvmf_tcp_qpair_flush_pdus_internal(struct spdk_nvmf_tcp_qpair *tqpair)
* Build up a list of iovecs for the first few PDUs in the
* tqpair 's send_queue.
*/
while (pdu != NULL && ((array_size - iovec_cnt) >= 3)) {
iovec_cnt += nvme_tcp_build_iovecs(&iovec_array[iovec_cnt],
array_size - iovec_cnt,
while (pdu != NULL && ((array_size - iovcnt) >= 3)) {
iovcnt += nvme_tcp_build_iovs(&iovs[iovcnt],
array_size - iovcnt,
pdu,
tqpair->host_hdgst_enable,
tqpair->host_ddgst_enable,
@ -787,9 +786,9 @@ spdk_nvmf_tcp_qpair_flush_pdus_internal(struct spdk_nvmf_tcp_qpair *tqpair)
pdu = TAILQ_NEXT(pdu, tailq);
}
spdk_trace_record(TRACE_TCP_FLUSH_WRITEBUF_START, 0, total_length, 0, iovec_cnt);
spdk_trace_record(TRACE_TCP_FLUSH_WRITEBUF_START, 0, total_length, 0, iovcnt);
bytes = spdk_sock_writev(tqpair->sock, iov, iovec_cnt);
bytes = spdk_sock_writev(tqpair->sock, iovs, iovcnt);
if (bytes == -1) {
if (errno == EWOULDBLOCK || errno == EAGAIN) {
return 1;