Received: by 10.223.185.116 with SMTP id b49csp3926201wrg; Mon, 19 Feb 2018 08:13:52 -0800 (PST) X-Google-Smtp-Source: AH8x224lQQN/efZVcuGY4t/GNlPJJ6cT0ztskRaRfo0LqIh691qxh0l57nTZRWruEgluNe6cSpaG X-Received: by 2002:a17:902:7b98:: with SMTP id w24-v6mr14730881pll.328.1519056831881; Mon, 19 Feb 2018 08:13:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519056831; cv=none; d=google.com; s=arc-20160816; b=gv8RuSOK293hHkhpE7UV2YHPXiLqU30liRpmVox4ehlH5cr9TH8xMiWODcJaqJJVAE Uqx/1GYyiEEixu46Ab/JOOLl+TdvneNn4mw+X35WCsd0FNPVWfjKNfjjHCsDJfTlDBDA Y1BpHVVVVGhv5XenpQuZt4GqpUFWVZWv3rga9zVLEd5DMelZX/2fP+VOaLbWlkNXXYXU 8y+tqfKSk/xMFOzRngappP0vn9B8Mv0plUj8PuhE4wTqnZyqKQUt9VV6rQbgRZHscy8b vF/UtrwiCzzjxqPQDfl3S2Kj0cg8ekZ96uI2GRsPXrLH9Flrk/wXcrNj3uyHj7gQp0vM +sRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:reply-to:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=8RTogdQetIk8elCfU6rXFxh/IkjWx5xscHUTx26qDZ4=; b=cwT/Q9av/paoVl0HVodWoo1SVLnX0mmFGu9bOFXcsn4krEwadhxZLnymsRJvdfCsaS 3oiYDw7FohMpVTqt2LbFyl3Vh3nX99xEu6Gzw4SwI5+q5j8yn3O4mqSUN9kXEYZ1ZRAK c7SG3QpbAb/9y7bKlpXEImDN6Qr6iVGqYMB9zsThFhTNZ2hI8dlgII99+RrOCBMdrMvK FP0ypMxXjTwzYbWX3v2EDornybxVYfTa38Xf6rqUy6smRfnAoTSBCWzq3nO/nkr9TCcZ DUfvSBkWiTinp14f6NXUn8qEzCLg78n7XnofGPgJ/Y6Wb5v5dkUjdbLsT/xgg+TOiAvT tIkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=txn3MsoP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z1-v6si4406680plb.178.2018.02.19.08.13.37; Mon, 19 Feb 2018 08:13:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=txn3MsoP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753087AbeBSQLS (ORCPT + 99 others); Mon, 19 Feb 2018 11:11:18 -0500 Received: from mail-ve1eur01on0082.outbound.protection.outlook.com ([104.47.1.82]:51239 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752857AbeBSQLO (ORCPT ); Mon, 19 Feb 2018 11:11:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8RTogdQetIk8elCfU6rXFxh/IkjWx5xscHUTx26qDZ4=; b=txn3MsoPJb4JPeY8qzhCJKMgXx/PtBWqjRz+d6swn5Vt7NdiHbEcYSzQHLrtL6G0d2BV1Yodt5yya4APhoq7uNz3qNPPMBNiC7+uclnO2UF5Hou8uOjQrugR8ob/mQl1+Ewb4bXbUpmgeEA01lZ2vXUuRKyVqYXNUe1YhsFmqGE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=madalin.bucur@nxp.com; Received: from rhuath.am.freescale.net (192.88.168.1) by VI1PR04MB3278.eurprd04.prod.outlook.com (2603:10a6:802:f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Mon, 19 Feb 2018 16:11:10 +0000 From: Madalin Bucur To: netdev@vger.kernel.org Cc: davem@davemloft.net, linux-kernel@vger.kernel.org, Madalin Bucur Subject: [PATCH net-next 1/4] dpaa_eth: fix SG mapping Date: Mon, 19 Feb 2018 10:10:41 -0600 Message-Id: <20180219161044.30279-2-madalin.bucur@nxp.com> X-Mailer: git-send-email 2.8.3 In-Reply-To: <20180219161044.30279-1-madalin.bucur@nxp.com> References: <20180219161044.30279-1-madalin.bucur@nxp.com> Reply-to: madalin.bucur@nxp.com MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.88.168.1] X-ClientProxiedBy: MWHPR06CA0020.namprd06.prod.outlook.com (2603:10b6:301:39::33) To VI1PR04MB3278.eurprd04.prod.outlook.com (2603:10a6:802:f::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f0d4315a-5924-4fc5-63e6-08d577b364c6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:VI1PR04MB3278; X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB3278;3:bLJTZ83sK2kf/IZkuvjZrWkx1Ljfjvjx9uB7VIeFwAKq/h+fVNcOp3Zjq28y9XtR1nORytV9HT5aHUbyrNs4Efu9xT2gcGJZF8z/6scslXJHDIXpDl5WwfaenMWoQuFQPm/H6Xdtsip3DK0RE05ocy62ZoTfmGH00YJey7FR/+ZPlLQ0dlsjtCavfeQQfxKL7+mOcGVlLCGvfHHi8nHJm7PzhE/szdltE6ZUaFTPL4KVCbpuzZKfO7OfN9ID9lC6;25:ZUQ6PTvDMeYlybrBbeqrconKzV/w8c3v9b1C+rgq4FBOFcVLSG3CDYvr7QrdlecKJyFPjHIXIda3UiHj/F6BM5QCDYWDmAfzFkZXTlU+e1gPR1vZvUaKVtykpMet6jl9/gxTP0jhtzmAa3t/JBbdAPUkGYSVK4TqL9UKctWYeqCq78WkALmwrANqAOGi48ch1BKN/Uc2O3RwyGAAYP1HSvIPt3w7nR7ARjTo7wonQQDnYsF2ytOt4edv+npMwWOlyIJzcl2ocWCh88wlTpVVmbGHpQ7ab/83/FuzI5qaHewhfx+2N+pJSmiSjvUOVJRi7iQheZ38DD2f3zUT4DgKEQ==;31:VOehWudLQ9Y3gth/eTVmvFtGPrOzjSdPO28/xacY9drp1koqYhLjRxeiFw6DnayVDH34gCbxcS1GWkNXy7EQG5vTfie9O8gNyzUNLhO2Z3mZgMMsT1FRzgdNY7dWxMBSMjh/Oy8lmVVe+zLFNCw4zSaG5IAGMbK06libeCbGvahIMJ16lXUi2vNqHFGzSMIT8bx038NyZqIpzkpsqI5War9TtpVShzyhQRoI79AZOcI= X-MS-TrafficTypeDiagnostic: VI1PR04MB3278: X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB3278;20:EtiDUTs5qpZv2TXPe81s4BSqH5oxR7fJ3H9PoyevVN72BNiZzwURhsn/zG/veREcfFO5U6v4eYcIWCP39LkHKa6rCcOX1VCDdFqLt4Rbda/ZPnrocX+jgvEJqC4YoNtIWm+lb/hc9afUZ5vOx9zqpANm+jZwyQc15Q1nzO7NeIDjkilhCwy9o03mb3tG/FWe8GlnmGQ3jwv0ElRcjiFJJpsRDTuAZtUQz46NHvX14LC1X/C2SngnAKOq8cfrprdLFg05rTylXZ8dMBD3rt+vfshKXG4yWdM5nQVrV5KAxUKV/fHs5pPlUBZNzuvlUTyHrRmOQjJ987/7V63SFCxPk1W60C1un8iwku6E5RJggkW5pWQ31X3XMCbKLlkhPfM7n+G1n3a5Nu0AHy+KppyS6TbcJRSHA6nzd7AzqOx2Pgoke6mcig35QX1+7c/JbTBf+E9h+dAqZh2/lI6uvhvpM3LLtv8t+lRsDg231d8NEM8suCOqT3ZSM1W7doKNMvzk;4:My6zN1g5YDMGMiwg6xfSav9i46zSiufF1GNIhauruCyGj5Dz/Iypeq6N/A2eqrfjgJfltHCvHLi7tvOGhOSMYRKnH7AiviHfLD8orUTkQohGzRKtc5w3mrXXLtJMDSfJUy5tgrn+fMBtEb2LPU2GhJCncWSvL7yQ1OC9elrrfI0YtfMkGfMogEUu0tMSwj196QSPD4NuQz8uqfhPVVRwdvRD34g3wPZF1JtaEGKO1MHm8WYXzUVfOvAd515cwRkOMBXXyRoBgB5d2sQzpvTLx+HrwE8A4SEijv1KU1dgp8fPsdwVpGsQCdg76lXpd182 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001056)(6040501)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231101)(944501161)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123564045)(20161123562045)(6072148)(201708071742011);SRVR:VI1PR04MB3278;BCL:0;PCL:0;RULEID:;SRVR:VI1PR04MB3278; X-Forefront-PRVS: 0588B2BD96 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(376002)(346002)(396003)(366004)(39380400002)(39860400002)(199004)(189003)(68736007)(105586002)(26005)(43066004)(6486002)(16526019)(3846002)(81156014)(81166006)(6116002)(66066001)(8676002)(1076002)(186003)(2906002)(47776003)(86362001)(50226002)(2361001)(3450700001)(2351001)(478600001)(6506007)(386003)(4326008)(7736002)(36756003)(76176011)(52116002)(51416003)(48376002)(50466002)(305945005)(25786009)(6512007)(6916009)(5660300001)(2950100002)(8936002)(6666003)(316002)(106356001)(16586007)(97736004)(53936002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR04MB3278;H:rhuath.am.freescale.net;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR04MB3278;23:LWK6x4eLIjc7v65e3JJ7PMa9z999qzY+uZ+ZbN+K7?= =?us-ascii?Q?UZjKfrImCJCV216+4eSiEZe/448ZLeCRwTC3VG7wyfooJGi0rlQGILxRZLgD?= =?us-ascii?Q?UHyg8V03Xx271cRrc3nQwbsocbCQZm0Yu83Nz0aPB9Cr3R43ppsT8TGIb2TB?= =?us-ascii?Q?WOZECOYtB90tH1eBwm5feEtyetiehiF6mDHFZ1rHdWPqrqNE6ew9SfPf5AJc?= =?us-ascii?Q?TqOl6YngpNsivyAue1/HVjSnILwq/3HRqDnyTzqDJYi0obCL6quHpXVYA1Xw?= =?us-ascii?Q?iOvODdy5jdSVV/oKcR8ikrnYXelNkgmsvILgvmAsDYNfqXX3LwoPb2ts5+1T?= =?us-ascii?Q?njTcVsbh+BL3cAC4wiL91I309wabnOkmPR6Zr3q+ukvt9XLVT51beGwMF2Qg?= =?us-ascii?Q?5XrJ4MCNZ2Lh9Q3XlLEcbk/WJOdXZlAWIE0ljRSCMpUyj90mX5xAEyMx9zNm?= =?us-ascii?Q?fLOJoKNU8sKPjOvQi//7LjFtQucDaiASeZettNjt0mgKoI83wGOu4LdZOGQK?= =?us-ascii?Q?vvRDevI1+qADVH0bRQIadSwTyHEsHLUotQClT4eJwtjbC2WLgf7Sj/Ba3jPA?= =?us-ascii?Q?YSAuxgm76p65O73+oSYMzQMNPSRMmJIwl8M9bFYpLz9sMUkJ5XQ8igY3en+H?= =?us-ascii?Q?U1AuWoFSn16FVmbaR6dGqxEFOsdOUn9EX6x3+wtBGNEM8iAMRP+/41CPg6q2?= =?us-ascii?Q?sNp1kzEm7HdfZNujW8Jaef5y+qv3R/cRi8kzUhiVCbsBpYT1ObK2OmAi/T8I?= =?us-ascii?Q?z3E5IwAlHdunUcHj1/Po3AWbE9cNITaDZM0RVzbUfEjHovGH81K4n8aQPwmg?= =?us-ascii?Q?+XUTlOxNnTNxyL1RVAQhVBOIa8W7BAMAvHhvho4a0kim1fVV7uwcBHwR64on?= =?us-ascii?Q?Y35tVInYvDO4utxaYoWuMaqGjcXwiFbu7nToNpskMCOVU7VwM0Gvkyya41RC?= =?us-ascii?Q?zu6PqSv90i3ZZ1C9/KMc7YAwMgEl2REHfL4QvR3GsrsQMWpFGipcSexCFPcu?= =?us-ascii?Q?4E0AdlbEEs1PejnXJ0cf5bUoLTMoXvYvI+bw8YNnQUahqBfrhnWFG6J9CIGl?= =?us-ascii?Q?d737qIiw6DDcDjfw6tUXJF2OLJzhWOHH0Zd3GXABULFsD8kJRGlEeWTjm01C?= =?us-ascii?Q?IoackIprZ13yoUYMllAcbhT9w9IH4SiW0Cc7ciLdz/ku1RMFi130SjbC7sj0?= =?us-ascii?Q?K8sVI1VR4aHjvJcsSwgUWHp8PjL28Q3uEOe?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB3278;6:CLXet71cOvTe0ZCS7q/03sj26KebAXns6K+ACjunm/V1RP0x6ma30qozJBo3X6iDsE99Uy0mBxB8A0X+zsKgNFmWgoRI4cXtYQ6JxS6Zt6ozvnBm5stC0EzU/jM/9U2AlyRV+yS4YGDC7EEoommDCKXS6rdlNXc2HBmvRNC09MGMNnFerRHyjvKPHE6P3SYVKqX8s1G8rDzeQRDh4T9waB3VVE8FYZUzs2FbUsowF/TTwBTP9qWq7gET7SmBHNzd2/Akn64uWZG56BLda8Angvsua4ydvvCAgYVEcR0g5e/wtGwPeeNilAY3D/xMfq5zmPdW01cdwqIBEa0B7+1mXQKjH6qtv8EvI1U3/jGwAes=;5:wm8Dh7//GG5glS22hLiEHbpD1YD0A2rcmV2vaouQc2zXqtDUxfuNtxQjsZ2D+XTog7k0KtFTsAp0/1NbEhko0MdPHS9TaCsSgke9H3hbrejmwQqmhimihDNPTkER3yGIPcs1bj1do88bsGUAYltZ8TDkso+C85qlSKTbp519ZNo=;24:KV6EsaezVZB990ck4Ct0uxIFEA/Oyt3Ox4dNAQPYConT7SgNpVHklfKl/o7PTMNXskPGEd7vb9w5fokD/Q03NtXLA3U7hYLUV1QGRv1Pegk=;7:fxNmT+QwYTfwFAjMk9/05ofA4HCG8aC+HzzdzjBrspf5rxG1dGYmG8XpIUOtwHygNBK1ns+/p6hXppWS22tzAv3VAdJYYspqF9nOocol6RKx6TLf3HbpRUCLe8HEHQcNlqNhvqvcPrDihJX4TYMEiUkrJQB3+DQpMI/FUfBgGESIRy+yxDQMXusY3+4ijD/AGft8c4zVp8GAAKM5btlWVY2YvQ0X0d2kjL/9SSZhet4qrUtm/cZzNHrxfWf57IH1 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2018 16:11:10.3711 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f0d4315a-5924-4fc5-63e6-08d577b364c6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3278 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org An issue in the code mapping the skb fragments into scatter-gather frames was evidentiated by netperf TCP_SENDFILE tests. This patch addresses the issue. Signed-off-by: Madalin Bucur --- drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 27 ++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c index a998c36..a5afa60 100644 --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c @@ -1889,7 +1889,7 @@ static int skb_to_sg_fd(struct dpaa_priv *priv, void *buffer_start; skb_frag_t *frag; dma_addr_t addr; - size_t frag_len; + size_t buff_len; void *sgt_buf; /* get a page frag to store the SGTable */ @@ -1916,8 +1916,10 @@ static int skb_to_sg_fd(struct dpaa_priv *priv, goto csum_failed; } + /* SGT[0] is used by the linear part */ sgt = (struct qm_sg_entry *)(sgt_buf + priv->tx_headroom); - qm_sg_entry_set_len(&sgt[0], skb_headlen(skb)); + buff_len = skb_headlen(skb); + qm_sg_entry_set_len(&sgt[0], buff_len); sgt[0].bpid = FSL_DPAA_BPID_INV; sgt[0].offset = 0; addr = dma_map_single(dev, skb->data, @@ -1930,27 +1932,28 @@ static int skb_to_sg_fd(struct dpaa_priv *priv, qm_sg_entry_set64(&sgt[0], addr); /* populate the rest of SGT entries */ - frag = &skb_shinfo(skb)->frags[0]; - frag_len = frag->size; - for (i = 1; i <= nr_frags; i++, frag++) { + for (i = 0; i < nr_frags; i++) { + frag = &skb_shinfo(skb)->frags[i]; + buff_len = frag->size; WARN_ON(!skb_frag_page(frag)); addr = skb_frag_dma_map(dev, frag, 0, - frag_len, dma_dir); + buff_len, dma_dir); if (unlikely(dma_mapping_error(dev, addr))) { dev_err(dev, "DMA mapping failed"); err = -EINVAL; goto sg_map_failed; } - qm_sg_entry_set_len(&sgt[i], frag_len); - sgt[i].bpid = FSL_DPAA_BPID_INV; - sgt[i].offset = 0; + qm_sg_entry_set_len(&sgt[i + 1], buff_len); + sgt[i + 1].bpid = FSL_DPAA_BPID_INV; + sgt[i + 1].offset = 0; /* keep the offset in the address */ - qm_sg_entry_set64(&sgt[i], addr); - frag_len = frag->size; + qm_sg_entry_set64(&sgt[i + 1], addr); } - qm_sg_entry_set_f(&sgt[i - 1], frag_len); + + /* Set the final bit in the last used entry of the SGT */ + qm_sg_entry_set_f(&sgt[nr_frags], buff_len); qm_fd_set_sg(fd, priv->tx_headroom, skb->len); -- 2.1.0