From: Tatyana Nikolova <tatyana.e.nikolova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org,
dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
e1000-rdma-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: [PATCH V2 04/10] i40iw: Optimize inline data copy
Date: Fri, 9 Dec 2016 11:54:58 -0600 [thread overview]
Message-ID: <1481306104-19352-5-git-send-email-tatyana.e.nikolova@intel.com> (raw)
In-Reply-To: <1481306104-19352-1-git-send-email-tatyana.e.nikolova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
From: Mustafa Ismail <mustafa.ismail-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Use memcpy for inline data copy in sends
and writes instead of byte by byte copy.
Signed-off-by: Mustafa Ismail <mustafa.ismail-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
providers/i40iw/i40iw_uk.c | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/providers/i40iw/i40iw_uk.c b/providers/i40iw/i40iw_uk.c
index 9b1a618..bf194f3 100644
--- a/providers/i40iw/i40iw_uk.c
+++ b/providers/i40iw/i40iw_uk.c
@@ -432,7 +432,7 @@ static enum i40iw_status_code i40iw_inline_rdma_write(struct i40iw_qp_uk *qp,
struct i40iw_inline_rdma_write *op_info;
u64 *push;
u64 header = 0;
- u32 i, wqe_idx;
+ u32 wqe_idx;
enum i40iw_status_code ret_code;
bool read_fence = false;
u8 wqe_size;
@@ -468,14 +468,12 @@ static enum i40iw_status_code i40iw_inline_rdma_write(struct i40iw_qp_uk *qp,
src = (u8 *)(op_info->data);
if (op_info->len <= I40IW_BYTE_16) {
- for (i = 0; i < op_info->len; i++, src++, dest++)
- *dest = *src;
+ memcpy(dest, src, op_info->len);
} else {
- for (i = 0; i < I40IW_BYTE_16; i++, src++, dest++)
- *dest = *src;
+ memcpy(dest, src, I40IW_BYTE_16);
+ src += I40IW_BYTE_16;
dest = (u8 *)wqe + I40IW_BYTE_32;
- for (; i < op_info->len; i++, src++, dest++)
- *dest = *src;
+ memcpy(dest, src, op_info->len - I40IW_BYTE_16);
}
i40iw_wmb(); /* make sure WQE is populated before valid bit is set */
@@ -510,7 +508,7 @@ static enum i40iw_status_code i40iw_inline_send(struct i40iw_qp_uk *qp,
u8 *dest, *src;
struct i40iw_post_inline_send *op_info;
u64 header;
- u32 wqe_idx, i;
+ u32 wqe_idx;
enum i40iw_status_code ret_code;
bool read_fence = false;
u8 wqe_size;
@@ -544,14 +542,12 @@ static enum i40iw_status_code i40iw_inline_send(struct i40iw_qp_uk *qp,
src = (u8 *)(op_info->data);
if (op_info->len <= I40IW_BYTE_16) {
- for (i = 0; i < op_info->len; i++, src++, dest++)
- *dest = *src;
+ memcpy(dest, src, op_info->len);
} else {
- for (i = 0; i < I40IW_BYTE_16; i++, src++, dest++)
- *dest = *src;
+ memcpy(dest, src, I40IW_BYTE_16);
+ src += I40IW_BYTE_16;
dest = (u8 *)wqe + I40IW_BYTE_32;
- for (; i < op_info->len; i++, src++, dest++)
- *dest = *src;
+ memcpy(dest, src, op_info->len - I40IW_BYTE_16);
}
i40iw_wmb(); /* make sure WQE is populated before valid bit is set */
--
1.8.5.2
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-12-09 17:54 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-09 17:54 [PATCH V2 00/10] i40iw: Fixes and optimizations Tatyana Nikolova
[not found] ` <1481306104-19352-1-git-send-email-tatyana.e.nikolova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-12-09 17:54 ` [PATCH V2 01/10] i40iw: Optimize setting fragments Tatyana Nikolova
2016-12-09 17:54 ` [PATCH V2 02/10] i40iw: Remove unnecessary parameter Tatyana Nikolova
2016-12-09 17:54 ` [PATCH V2 03/10] i40iw: Fix incorrect assignment of SQ head Tatyana Nikolova
2016-12-09 17:54 ` Tatyana Nikolova [this message]
2016-12-09 17:54 ` [PATCH V2 05/10] i40iw: Remove unnecessary check for moving CQ head Tatyana Nikolova
2016-12-09 17:55 ` [PATCH V2 06/10] i40iw: Return correct error codes for destroy QP and CQ Tatyana Nikolova
2016-12-09 17:55 ` [PATCH V2 07/10] i40iw: Do not destroy QP/CQ if lock is held Tatyana Nikolova
2016-12-09 17:55 ` [PATCH V2 08/10] i40iw: Control debug error prints using env variable Tatyana Nikolova
[not found] ` <1481306104-19352-9-git-send-email-tatyana.e.nikolova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-12-10 14:34 ` Leon Romanovsky
[not found] ` <20161210143421.GC2521-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2016-12-13 20:02 ` Nikolova, Tatyana E
[not found] ` <13AA599688F47243B14FCFCCC2C803BB10AC7081-96pTJSsuoYQ64kNsxIetb7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-12-14 17:11 ` Leon Romanovsky
[not found] ` <20161214171111.GA4521-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2016-12-14 21:21 ` Jason Gunthorpe
[not found] ` <20161214212103.GA6947-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-12-14 22:36 ` Doug Ledford
[not found] ` <57fa42c9-5ef0-c6f5-f7fd-88ec5948d387-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-12-14 22:41 ` Jason Gunthorpe
2016-12-15 6:48 ` Leon Romanovsky
[not found] ` <20161215064807.GB811-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2016-12-15 16:54 ` Jason Gunthorpe
[not found] ` <20161215165420.GA3264-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-12-15 18:35 ` Leon Romanovsky
[not found] ` <20161215183537.GH811-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2016-12-15 18:50 ` Jason Gunthorpe
[not found] ` <20161215185034.GB16552-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-12-15 19:17 ` Leon Romanovsky
[not found] ` <20161215191751.GJ811-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2016-12-15 19:55 ` Nikolova, Tatyana E
[not found] ` <13AA599688F47243B14FCFCCC2C803BB10AC7E53-96pTJSsuoYQ64kNsxIetb7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-12-15 20:10 ` Jason Gunthorpe
2016-12-15 20:19 ` Leon Romanovsky
[not found] ` <20161215201917.GL811-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2016-12-16 4:26 ` Jason Gunthorpe
[not found] ` <20161216042632.GC3797-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-12-18 8:19 ` Leon Romanovsky
[not found] ` <20161218081915.GC1074-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2016-12-25 16:16 ` Yishai Hadas
2016-12-09 17:55 ` [PATCH 09/10] i40iw: Use 2M huge pages for CQ/QP memory if available Tatyana Nikolova
2016-12-09 17:55 ` [PATCH 10/10] i40iw: Remove SQ size constraint Tatyana Nikolova
2016-12-09 18:33 ` [PATCH V2 00/10] i40iw: Fixes and optimizations Nikolova, Tatyana E
[not found] ` <13AA599688F47243B14FCFCCC2C803BB10AC5AA2-96pTJSsuoYQ64kNsxIetb7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-12-09 18:36 ` Jason Gunthorpe
[not found] ` <20161209183650.GB10830-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-12-09 23:24 ` Nikolova, Tatyana E
[not found] ` <13AA599688F47243B14FCFCCC2C803BB10AC5C2C-96pTJSsuoYQ64kNsxIetb7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-12-09 23:45 ` Jason Gunthorpe
2016-12-10 14:47 ` Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1481306104-19352-5-git-send-email-tatyana.e.nikolova@intel.com \
--to=tatyana.e.nikolova-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=e1000-rdma-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
--cc=leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).