From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0044.outbound.protection.outlook.com [104.47.34.44]) by dpdk.org (Postfix) with ESMTP id 2B19B237 for ; Fri, 8 Sep 2017 10:45:54 +0200 (CEST) Received: from BN3PR03CA0095.namprd03.prod.outlook.com (2603:10b6:400:4::13) by SN2PR03MB2271.namprd03.prod.outlook.com (2603:10b6:804:d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12; Fri, 8 Sep 2017 08:45:53 +0000 Received: from BL2FFO11FD023.protection.gbl (2a01:111:f400:7c09::160) by BN3PR03CA0095.outlook.office365.com (2603:10b6:400:4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12 via Frontend Transport; Fri, 8 Sep 2017 08:45:53 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD023.mail.protection.outlook.com (10.173.161.102) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Fri, 8 Sep 2017 08:45:53 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v888jmoX023063; Fri, 8 Sep 2017 01:45:51 -0700 From: Hemant Agrawal To: CC: , Date: Fri, 8 Sep 2017 14:14:58 +0530 Message-ID: <1504860327-18451-2-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504860327-18451-1-git-send-email-hemant.agrawal@nxp.com> References: <1503658183-4078-1-git-send-email-hemant.agrawal@nxp.com> <1504860327-18451-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131493339534141640; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(81156014)(6916009)(498600001)(4326008)(2950100002)(36756003)(53936002)(77096006)(189998001)(54906002)(97736004)(85426001)(68736007)(8656003)(110136004)(305945005)(104016004)(356003)(8936002)(48376002)(50986999)(105606002)(76176999)(33646002)(2351001)(50466002)(8676002)(50226002)(5660300001)(106466001)(5003940100001)(2906002)(81166006)(47776003)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2271; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD023; 1:L5ihSKCqJ4E7D+62AI/DDjmPTpGvBaJQ0GatuTebNoWQAAMRIOHmCpmVKw0+qIh/Jvki89HxrDx5D1rZG4h38uSXhWvgAG4V8BFTLnhfr2q94uGEdRAQz3DEY9KT0Pf2 MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 934bca80-a419-406f-c767-08d4f69603b7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN2PR03MB2271; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2271; 3:7E/G9XtuZXPoz0MSE3MYa1hDP0NSb2Vs18Rfj4waHVCsRfZ6k3XyT76OO2Tv8yIiucSDWeQw/5AFUSKrXilOcIGYPUqbHtt5v+r+SaTl2ZEUyOE4oYepNSHd64ipytGUrMIxpI2B9sHynyqhCereoNyycdIO5BAV9kpC+88NRADxbVhD4FXm73VnuRb2Cc3jP/Jl5VnXVD4Y6e+h9QoZjFMKA/nyWZ2WTP1wacb2Pq/3XaDTK+317kzhqJTGc2QXeoB7C3ggi+xwKSMYdCQY5UyhRkOIM5GFch30KMdIARoqv/1yTLt6SCBj5TpzErlOCuY8jiBynN6mc8xZcGbYmRW6LMlSUPq6zvVMkr0Sv1E=; 25:4Ltf2qpSvF6Y+2SKU+p3DNcEks93VmxtPWPNxUP9k/gWQ0ofagxxE5ceCPEATzzt6IBTQ9Ierayi+7z2I6rZd8Yr7wtLGrlLiy+BC8mH9NY0A45xc6DM1wCO+ZsXUNPm1VoHad+m9hHqihMYT2ebxzuJt9+dIbfbdERBIXOtk23vCv1qNEIi/gRn2t2Z3hJpzXQfJqN9cXiCMAnMXFjEdbQWtiF30Ftnk+deKjNVe9V8WNgP1l1w+fuQlFGYIuyxjacQGuqwbrFCimEmV80A+AGcTTzA8WAfc1YkNWtxVMHxwEyHraTt45gXmRPsMsOz59DC/FOwRXj/QsGMqQxIew== X-MS-TrafficTypeDiagnostic: SN2PR03MB2271: X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2271; 31:wcciMbqvXULW6DdY69TA54v1j/kyMpfJb804b41c3JPD6RGbwaTpc4wSG8NSen29aJL21fQ5FEUgGQC9bSHsONv/TQEOIT0PeF8P6HgNd/QtT14iyw1582PHfUMFGdgGq12ogKgpOom07wR+TAiq7WucwlR/vQe4zCWtti5FdOmtYkp8TMyb0zLbGB+47sGqZhmtHVOH46QmqSqYnUQl09169cJaGx8FTXKAWkG+U38=; 4:3bUP3zV/+5x5mtpZ+TsQIExwVlDjIyeypMKOd+C83qpKFZk4ymFmhiHDfnuuavbfQziJgC7lwkne3LIUabKZqnngXe+btV5V1eO+jU/ABtjAQx8jTkBZaGywzVM9wVuJX5XuOTC4Qeq/TjDwwKxI2j6bLnxW8GdCHmB9w9YK7IMv0YFRfTDUH6gUdFHjTLBPi4VRD7Soo8cC+ramEoJBWOh/Y2edxXZrbjExaT/R8KuXGG8oJY70m9ce2Sv/8wZH4TGU0uAwtZ9pU3b+7ZsyKIMoSg/nJFJ7VoqBmfu6xbmDIgc3INX3Me2A++MvzdiqqwObJ59DGzAtwV1jMZhPGg== X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(788757137089); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123561025)(20161123563025)(20161123565025)(20161123556025)(20161123559100)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR03MB2271; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR03MB2271; X-Forefront-PRVS: 04244E0DC5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR03MB2271; 23:F9o9dWzxCDOX/KqPTK6Q5yOvLArSd9lXQ1L/3ZImt?= =?us-ascii?Q?9P11wNN4OAdvrvh6tkVQo6Vviyr5/lazo2teVRqV1ZA5SUQ87BSrsEhrb1ek?= =?us-ascii?Q?DXp0//y32Cr3sGzyYHnGi7WhnXhf9ZrHoYKQA1sGhZY7ZZHozVboeAtuRMLt?= =?us-ascii?Q?0GIA+vIWMp1dVgNKJAd0lVGEV68773DmEfcwshzFpKwqF37lLwWAwfn7pYcV?= =?us-ascii?Q?FqRYSzUS8Oikf7xSw9a625W6wrZBKeR35qx7p/7OUcDxE3FioT65RCMsgzsW?= =?us-ascii?Q?3td4wXDQKG3NBsJPyjPwpp/j2fCifeGH1JefTwOIjBUEcIVEv073tct4PNSh?= =?us-ascii?Q?qXrpGAT/rt0dNuZteY78tJwflFAqSLpn0eUgUDw450+UDE9DB7i3tmBbe+IB?= =?us-ascii?Q?0FgvkMQuDRG3jsCw5khJNKXJV4mdGlYPhIOs+ckauOZ/8+DmHC8pD6unJv/3?= =?us-ascii?Q?jda/92PryJF6AjgRjO99P7Io2gSIsi8xtnZIRQZjWrTw64REAh5hf8Rj9Lkg?= =?us-ascii?Q?EzcJXM/Q+J1YE/u3SK14s/4JvHZ/DaI8E3k3Ixt3hwevqmXrzr5VNz3vgEVf?= =?us-ascii?Q?U8EK2DLBYdZJMGXvYdlUFdz7mlUaZSTAu/IE/ZP2J1GMIX+H8lm6mOcAcE1B?= =?us-ascii?Q?S7Ut6slqEq//BbA5Go4NvOEY/fpY+DPb5lDuOAtCx9A6m+32dwh9z9yn+iZ+?= =?us-ascii?Q?pBl++oDxSP1REdLNrTjHLAbmXPG3F6fDJqySVXv03Us8OXP2+6GZW7d8x77D?= =?us-ascii?Q?P1w7dlQy2l79bXkB35ulfgTk0ic91bcMX5qA2q3A0ed9LGQ5Ns9lL1uX/eyu?= =?us-ascii?Q?qpcey63uhd/5Ox1q70sFZkSCtyc6A2itYKQ92NbTK9KJpStpHrq0KZog7OYQ?= =?us-ascii?Q?l7MuZATljJYKFw2lpFI710xhxiSlYSWMYweqHUAhv94PhxCppswaUAwQCA/+?= =?us-ascii?Q?oqroHctQ9toiPtCKOAXU/3gxle8tasgFdjq9yE3UkiaMf2nLeAuiNjNFbFBT?= =?us-ascii?Q?HyuaJLn+EJsESJn3ulrkNwgMUZgHa3uxcgTpmNWFkO4WWx64yoYrdtTlUFQG?= =?us-ascii?Q?nCRjplQopsix0ndP3+RrW2ALTkkgTZKCUPMx1kRPpn4xeGD7Q=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2271; 6:WkjKTGnNtNTogh02rDBPs2CtEjGvpEcxDyAYgEO7Qb3pNPMi7BtoQ/6uHYvyaYDRr/rAZYsoFXuYHH/TxKOCfXZ0JQUBhBy2Mqq/F44oH3+coHjkhU8I5JZS6utf0daQeJv04iAIcTlJXf3KB6GSx3rGcG3vSUSaviaPKAPpdx4gdPz7/8ivCLtl/R/TCdCHrsDp5SoGlP433KTrNfcw7M/YS6MVgugRcmepGUuv+NAvI7mP58K/6E//iUH1U3mSkP8txkPnasb6HIFyTdImK4RTXNxH74O9pP+jOD75wuybhxfw4zxM74nqTL6OtRDw/XYCYpCUYoXP/inha2dIoA==; 5:UrBTk/Lua7mr9XpQ4zVC4EUhEdnxenVB4miaclYN2Fq2q2rHN/ZUtOhcAUKB6O05QCsQ/vZBAvBfIsahHsr+bUvCrSAcN99vi3+Ds2r3VRGXUzq2LxEgeobO3MnLHa9MG8OnkAJdy7k+PMENNWpBaA==; 24:0KOYNQ0EZyiOkSpGA3f6ZYBaC96bIgrzUelmaa78rLt9BUQbHixKcPlyfsxrOesNNQoM3aa0TaT06uZnTWH2zEBzgdT+/5H8eUwtV3p4mik=; 7:00wl0jA324pJRvPINGpghBGYhgyNe1K7gFYyhNsItBV3B+RqNqbHy7D10v+m2K3WbeFmAEtzAm0ZK+QZrZbKDZACQV6lvpGRajmz0tpxgD6XcHVVn+9Ib2EUOca23KpWjayNnMDygiuyTjMh/95h5PLfB3LIjHgejCC8b4BrVRd7llVN3vECglFju9VF0RKYCO80NzyjRXM5FtDJaXpxgbulH8fZK9M2LBRRcI/ypJY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2017 08:45:53.2425 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR03MB2271 Subject: [dpdk-dev] [PATCH v2 01/30] bus/fslmc: qbman replace word copy with memcpy X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Sep 2017 08:45:54 -0000 From: Haiying Wang The word_copy is not as efficient as expected, so remove it from this driver. Signed-off-by: Haiying Wang Signed-off-by: Hemant Agrawal --- drivers/bus/fslmc/qbman/include/compat.h | 42 -------------------------------- drivers/bus/fslmc/qbman/qbman_portal.c | 12 ++++----- drivers/bus/fslmc/qbman/qbman_sys.h | 9 ------- 3 files changed, 5 insertions(+), 58 deletions(-) diff --git a/drivers/bus/fslmc/qbman/include/compat.h b/drivers/bus/fslmc/qbman/include/compat.h index 529f1ea..7b69fd1 100644 --- a/drivers/bus/fslmc/qbman/include/compat.h +++ b/drivers/bus/fslmc/qbman/include/compat.h @@ -229,48 +229,6 @@ typedef uint32_t phandle; #define __raw_readl(p) (*(const volatile unsigned int *)(p)) #define __raw_writel(v, p) {*(volatile unsigned int *)(p) = (v); } -/* memcpy() stuff - when you know alignments in advance */ -#ifdef CONFIG_TRY_BETTER_MEMCPY -static inline void copy_words(void *dest, const void *src, size_t sz) -{ - u32 *__dest = dest; - const u32 *__src = src; - size_t __sz = sz >> 2; - - QBMAN_BUG_ON((unsigned long)dest & 0x3); - QBMAN_BUG_ON((unsigned long)src & 0x3); - QBMAN_BUG_ON(sz & 0x3); - while (__sz--) - *(__dest++) = *(__src++); -} - -static inline void copy_shorts(void *dest, const void *src, size_t sz) -{ - u16 *__dest = dest; - const u16 *__src = src; - size_t __sz = sz >> 1; - - QBMAN_BUG_ON((unsigned long)dest & 0x1); - QBMAN_BUG_ON((unsigned long)src & 0x1); - QBMAN_BUG_ON(sz & 0x1); - while (__sz--) - *(__dest++) = *(__src++); -} - -static inline void copy_bytes(void *dest, const void *src, size_t sz) -{ - u8 *__dest = dest; - const u8 *__src = src; - - while (sz--) - *(__dest++) = *(__src++); -} -#else -#define copy_words memcpy -#define copy_shorts memcpy -#define copy_bytes memcpy -#endif - /* Completion stuff */ #define DECLARE_COMPLETION(n) int n = 0 #define complete(n) { *n = 1; } diff --git a/drivers/bus/fslmc/qbman/qbman_portal.c b/drivers/bus/fslmc/qbman/qbman_portal.c index dd62e9a..f360760 100644 --- a/drivers/bus/fslmc/qbman/qbman_portal.c +++ b/drivers/bus/fslmc/qbman/qbman_portal.c @@ -480,8 +480,8 @@ static int qbman_swp_enqueue_array_mode(struct qbman_swp *s, return -EBUSY; p = qbman_cena_write_start_wo_shadow(&s->sys, QBMAN_CENA_SWP_EQCR(EQAR_IDX(eqar))); - word_copy(&p[1], &cl[1], 7); - word_copy(&p[8], fd, sizeof(*fd) >> 2); + memcpy(&p[1], &cl[1], 28); + memcpy(&p[8], fd, sizeof(*fd)); /* Set the verb byte, have to substitute in the valid-bit */ lwsync(); p[0] = cl[0] | EQAR_VB(eqar); @@ -512,8 +512,8 @@ static int qbman_swp_enqueue_ring_mode(struct qbman_swp *s, p = qbman_cena_write_start_wo_shadow(&s->sys, QBMAN_CENA_SWP_EQCR(s->eqcr.pi & 7)); - word_copy(&p[1], &cl[1], 7); - word_copy(&p[8], fd, sizeof(*fd) >> 2); + memcpy(&p[1], &cl[1], 28); + memcpy(&p[8], fd, sizeof(*fd)); lwsync(); /* Set the verb byte, have to substitute in the valid-bit */ p[0] = cl[0] | s->eqcr.pi_vb; @@ -549,9 +549,7 @@ int qbman_swp_fill_ring(struct qbman_swp *s, } p = qbman_cena_write_start_wo_shadow(&s->sys, QBMAN_CENA_SWP_EQCR((s->eqcr.pi/* +burst_index */) & 7)); - /* word_copy(&p[1], &cl[1], 7); */ memcpy(&p[1], &cl[1], 7 * 4); - /* word_copy(&p[8], fd, sizeof(*fd) >> 2); */ memcpy(&p[8], fd, sizeof(struct qbman_fd)); /* lwsync(); */ @@ -799,7 +797,7 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d) */ qb_attr_code_encode(&code_pull_token, cl, s->desc.idx + 1); p = qbman_cena_write_start_wo_shadow(&s->sys, QBMAN_CENA_SWP_VDQCR); - word_copy(&p[1], &cl[1], 3); + memcpy(&p[1], &cl[1], 12); /* Set the verb byte, have to substitute in the valid-bit */ lwsync(); p[0] = cl[0] | s->vdq.valid_bit; diff --git a/drivers/bus/fslmc/qbman/qbman_sys.h b/drivers/bus/fslmc/qbman/qbman_sys.h index 5dbcaa5..9ea55de 100644 --- a/drivers/bus/fslmc/qbman/qbman_sys.h +++ b/drivers/bus/fslmc/qbman/qbman_sys.h @@ -47,15 +47,6 @@ #undef QBMAN_CINH_TRACE #undef QBMAN_CENA_TRACE -static inline void word_copy(void *d, const void *s, unsigned int cnt) -{ - uint32_t *dd = d; - const uint32_t *ss = s; - - while (cnt--) - *(dd++) = *(ss++); -} - /* Currently, the CENA support code expects each 32-bit word to be written in * host order, and these are converted to hardware (little-endian) order on * command submission. However, 64-bit quantities are must be written (and read) -- 2.7.4