From patchwork Sun Apr 9 08:11:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 23390 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 95F10D1F8; Sun, 9 Apr 2017 10:10:17 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0071.outbound.protection.outlook.com [104.47.36.71]) by dpdk.org (Postfix) with ESMTP id AF612D1F8 for ; Sun, 9 Apr 2017 10:10:14 +0200 (CEST) Received: from CY4PR03CA0015.namprd03.prod.outlook.com (10.168.162.25) by CY4PR03MB3110.namprd03.prod.outlook.com (10.171.245.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10; Sun, 9 Apr 2017 08:10:13 +0000 Received: from BN1BFFO11FD006.protection.gbl (2a01:111:f400:7c10::1:128) by CY4PR03CA0015.outlook.office365.com (2603:10b6:903:33::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17 via Frontend Transport; Sun, 9 Apr 2017 08:10:13 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none; caviumnetworks.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 BN1BFFO11FD006.mail.protection.outlook.com (10.58.144.69) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1019.14 via Frontend Transport; Sun, 9 Apr 2017 08:10:13 +0000 Received: from DTS-02.ap.freescale.net (DTS-02.ap.freescale.net [10.232.132.223]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v3989Aov015502; Sun, 9 Apr 2017 01:10:09 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Sun, 9 Apr 2017 13:41:19 +0530 Message-ID: <1491725483-6619-19-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1491725483-6619-1-git-send-email-hemant.agrawal@nxp.com> References: <1490362538-20854-1-git-send-email-hemant.agrawal@nxp.com> <1491725483-6619-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131361990132059947; (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)(39850400002)(39410400002)(39400400002)(39450400003)(39380400002)(39860400002)(39840400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(86362001)(38730400002)(76176999)(106466001)(50986999)(36756003)(53936002)(33646002)(48376002)(8936002)(85426001)(50466002)(81166006)(6916009)(2950100002)(50226002)(2906002)(6666003)(8676002)(77096006)(110136004)(105606002)(5660300001)(4326008)(305945005)(54906002)(8656002)(189998001)(5890100001)(356003)(47776003)(104016004)(5003940100001)(2351001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB3110; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD006; 1:27UbabB734i2SNz8/LjQSSsoppEFOyPrkdA2Lr/AGjoL950pr8DtoBYpsBELx9zrowvno6XOIPamV+9N92SubLbeEsKApK2aIx1Y0CGcTuI877lVJoArdBK1z7Te1sP43vxS5SIAZ/jNaYb0cq9uFp+Sl2/3CY9yfirrJwfZHUhOYZVbD6h4V7lK6HM1NmYBOa6KyUWy7NiOyt3B2aI4l4UkDK9a0VKGk8v7csacfMjodnWA7uR5xpbqOX5w3CvCYXAAys1ufwhpv/yYSgr6EV2tILVuiSO8LlAoM9WWo5GHg24ehJtSbmLmxnARJgOiXPwDqDMg4fTBDMuUCDD21UsSo/4VrPLexT3XmilcCmPFZ1KHlI4cLKQb5IwT3fpPNJUCUz8lXP1nYcqgM1wCfk21g5mV2GU7VuLWUahLDsIC8Cltdpup8otoLJjV8zCUEttsK6nDKND2MMbo4Ozm/d0Xj3i09V8PW2LYPqNrP/BeYCCJl9TUkxObUiQItsSQOn7O6Q2IQ2aTifazvJOpdxFofYUClR/TWYKnnX86jNh89Dg+tCtEv3ZR1t+XiGmyCf4qCGzWtO9/sJqf+HDDXy2hVzVDbx5s3MyS5Y0BG8+f34fXhaUPfa57YS52PFx4kheyvgR5uSHPoKUYJP+Kdsf4EdmcnKTj+yR8dmwkABQ= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c7854970-427f-421d-4f2b-08d47f1fd946 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:CY4PR03MB3110; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3110; 3:N1HM6yaOXEUcqKDSkfU1nyVriXO8zZ0D2YwARC10MRaZUyhkLO+eQJlFArnRcvhp5hof6fcX4FnIbtMhdoR8pEu32ReVE1G3K4ia04Xzp5PukJ456iQPpTBnbhBmB+mGZMMttuIs+oAy+8EzsL6rX3zOBeDzqOXfLyi35Q2xuXUaQSKMIBquavlHtO50d8M9DRRj5NZfAyRrKVWYKwgyHtsz6i059ind7C4L3hlFgN4mWn7VN67qfYS8UMpW2K2tzCIQUCaxnJspUrYZjcL30AEFc7m3W716euKRNXiq9FI84iNeZllggQd7aUA4iiXvo3YdIfd6n8WBWkiKRA/w4nXlhjsvkyWTpEyBPpaS78ceMVQqHEOrY3I53hr0QOeGeYsZuzKsobafP3lI2V0qNhJVGj4/DGekRss/1HcC453sIgMLS0q8OWJODIkfshLb; 25:2skeB1dkm4g0+urBTZBQLgI6CY4//vhr7IUUVfQTZuGtu3h9hnT1Rzl4FrDpMb3M2Iu9N6ai8gkHnUkLVIPg9BBpIBWU0xKtfyH47TECEMp8TWI41Vu593gdLo0CGspH8a5fZihMlihSUoKxHlpqx6Z+xqhvol/YxFfFcsLme2qrDJGMXKbkm4GlWASbLW7FDzayLfzdupqrXjTdYC+XmdxUV9CLLRjzCEKiJdXgIbZgdROPcOCLO7gvVBD8+Y1f9/wJFwFPB5ZnIK/IvQAB/KIf6uT0dfEBVY1enR8LEoZQhOG8VyLdfmOwr2ZjeVea+aDxr5Boy6/DvN1lOvdjfjf0YY3+6W5uUYRY+N/NJ+l3Jyc3XLaDVZW4tetL6v3zfMGGXdtnetOuE0czc2AXKh22/V6S6aYOm/K6LJKBn3r+snkzcQCFxrfprIhx05NiprEO+TolFyIZ19hqy6cN4g== X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3110; 31:nyFymg7VeVH4BfaND27jLF6+jft6hHy7jBXRUknCmAhDF0LVI1ra9Vz/e34Bc0z3NVEVKktlkNWkZpNPpYU3ObroYinm7qv9HKLmhgCifoEcYwbiCntU7fke4P7shHSsTGAU24/wRfx91u4TlsOL4nFkEjH6KIfmZmg/IDcNeBmgty5MWuoNvu8fjICa7uTt2NKSxG6eu1YmftQWVMVh4JfXVP7+AxTGoeThCrt4En8FOhN0R7dOg3yGfhQlEAePywFpXWPVNAhJCxq2vqGTJ6j479ASRUoGsN0oG4mQ5D0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(8121501046)(13015025)(13017025)(5005006)(13018025)(13024025)(13023025)(93006095)(93001095)(3002001)(10201501046)(6055026)(6096035)(20161123563025)(20161123561025)(20161123565025)(20161123556025)(201703131430075)(201703131433075)(201703131448075)(201703161259075); SRVR:CY4PR03MB3110; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB3110; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3110; 4:Z4sSzYBJX+hxeOvluNxenm62mNVVftAXRO5Bn1vdctmxnfZvdJpJYqVfrg+Ogz8GbAIYaBsmt3anh71YAlgBgyrDXP4HAeMerd2uCyvob8cP6d7ZKjWhjkvroV5nVSvdtTLJQmf5/D6YaD6FkctyldJhHDOHT7KREB7wIZ/HNNyoAPNnRmws2tbtUICk9HBNEsLtNVlMCmX11DR9xySfCTAZQiaIbLadd8otX4hKtwCICb/ZFEEA+Jmhlxx7Zq6vCjOPug4BLYUAGP3IQm05P3YLe44rWwA8T9fgPW4UaU4EFTiIIP+taPqGRWqH1THhnG4k7kFpe94lLtC63JN3u+oNhi0DfSIJzqUQNdNtZoIBaXEPlE5dXYAV2JtlZQD5c9ooSyVoXGFUxfa4VeOMEo9cL6p/usDTA9CCF2WjmudxkhrGm+3WIac49LDEwz5dMNQWRF1IosEZ4PLqWFmP8fLJafXEvUuhogbeWt2XKd6/ZhETcap+mop73srmopxYk6M3K+VhPbKhEze/nHjJc3k1hWaD8WNRj/hiTqizq24HwwqWGUNjfjQGmbPipJ9OZlPCeceLRFNUQhO4AzlvvhK1FlCwtjRjXHhA+U8eVaZAHj+UqUbnknykHf+tJPVUjQVP3lfpJB29LAnE5Ocw6lnF6rfw+rbHnv8pOr3J0ldP39wTRByh8T3Tjgw0JdzaIhHLfYLaEBuM4u1oHECDXZ+M6HYKK9Zze2NHha+DYdKRCiSqBbbXwPlChIBAapQChpTcxav6iS40AHzVfX2LXBGCb6f2m09Ev2Vg0PIgjDoyFypexg5FNACukTePjUEwN51mujMQ7sL04taAMFhCjj07up8os5QL8LTxTQ7j2eW1wADjaytc+RJFPKA+2gqI/ZriYUsbOjvHiyPZEAmAMw== X-Forefront-PRVS: 02723F29C4 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3110; 23:kEPS7ZW6HkVNtPSrRCYJLVkOGxM/Xjrl80Uu67snD?= ZhMp7vENaD6TCpJ/dYyvq8PPZ1eF83Xhc6QklMVVj+vh9yHp9SD1mVC9eJ5z8j+hNCXD/1p2tIcjl3+l1IHlgiLB1FWk1S8WlxDh0P5lQlE5OZkKThg5Atk1hQAEgEzVDdJg1Mf39LCoqzZYLZWiWJ0QrOFNZiWcxlanSwrXKkIL9IjXwGBSDBDAn32EsKiNNlV8VWF45aUIFKpurBStr6eMpLJnqtgFzHryvOPaOb5nTYzKT8rmwwqGDM/WTT0yWck513tuVGat0aYegSVXSttgOMYDb9SCMyUHC3I6QEWJTuTw6hRkjDbxNv8qtTC7EOLa70+cRhCKKqkaA+JqAz8bANPkjwF99QQ2Suus70v0j8rQ9TCp/rhOF+7mYqjnxEFOZQTrqlZxBGRjdzoqZAaeTgY5/IBMNJaCZ0I92UgE1cyJTjKkSzRMr0+wNQNYwgDN5FmuuQyvutLrswHKjOUS7lUouq5IbBaM5729ZDmX0YM83mzeWW8DeI40PfsY49WOJjP+qxa8mvlAlU3I+Baqjzs4zOamkguZi7c9og7ZNYFC9ooF4Gu+pjfLBU4NvXdTknUNeEfJDVTAz5sBi5yRxaPrk83jZKNTEVGHmrF3mwgJ/my3fCYgmZFSqJwjjVQ5QKgyybbGrI8fZynodDGBhEATAPK85ms5BYlthHRl1vhc3majhN+bLeRw95b9RxEoQrGuz5pSV6gY2qUccIp7ez7EwDtaeGEcxm2n/c5nnuMJcvTurb27J8B81gCeDYMGO6Tdd9f1ZB7mZnpDLBn3m+ovgYsPTQMrBK4YS2hsUrcXtKq4sBk+i/wbDHz7w7JbpRERWTlhuY+9uKCL74+b8Nc/N8GN6iCUXflUOIEi19dPJKMrnTeQL7x87UBG2ux3ZZfzR5K0m+NNXZWsekGiAubxHhhGA7RYlGRFISXoeF4x2DVmW3ksHIOMuy+D7V+yCFAv9g9c96glQl2bJMBgQiE5xMiejuGlPLacwnBX5m1/JUSQygHXKDNLTJ6t+oRqsYuGxR80IdfE1rg/QCCyVEt6F7DsetmGFqrkSmG1MZLjY316/SVj9d/Qdgb/okVcWc+NaaakYldYnQCoSnzIX0OaCXxDmXSOAyy2D+JihWc0/zPcCe5qyD7X50r7nU5qr/u7I+wftUFdHf+tG+25lHzkSvRWOmYfNT9lT5i+mEgylMtl8jA//h7i0s2bWk= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3110; 6:UX9Bp4ApeNPIpjkf+0vUf9bL7jbk/W7sO8GsiZ2XZeH7wEgoXITKh92arrQReG9EHESSqkAJoCzrWBV9GxPBYLAMtuhBMWES9rlCan/n0M8hyJT8cj3MsAPLXQiaxa7Ke46iQcLLhWrhGNqVZHDTV9qJgmhrlb2IeiHwEum5V+Gc3NE6Md3c38azgyMeZEBuUHML3kktWNqlnXGvS6DB5J3mL+GZDzqKgfaVwM64nrZgcX4/bsD/xSv5cgy/FgHDq3QV5iwJIBBjquqqKkyEMika9E9zBgRlLZNiZ2CX8WePXaczc9nMq8qRqregIuzTlrBeEm+3slveWjq4jySPt1xi2gsVA6EvbV91n2rkBXoJ/l/uT+5tEod+wgwiB4pTKEsI8wowV3YV8QIx3NVXNIrsMZpdDEPFUKIH2jHn/4R/Az7QpT/Z02Xkbbmsx5YPFc5MjkcaXGiWJZjnYo54Jw==; 5:wOxfNj+B9m7rsshvnjNvqRGpCL+/uUXzx9VNmR0DbYFRLxxAOMR9iqHosbxZDZMsysynIGtE1o63c08YbmirHMxoFu0xkmov3TBoJv+woRVSv4jzwHBAa9wcdQqYlo9Mtt/K9QUcFlsl24L+uUma7l2RF8cVjXo0V8qHiW3oE6Soa74XHfwKun0VzZFQfuED; 24:4wEn8RIibEqNA0zoBo9VA7L5k+uXeszen35JGxkLAy8LbQWc5KNzNWzEvhncnGkWKCxxb/LrtDXhdzRdjX2XRu2XRc3fk/FOHUMJABWmuJA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3110; 7:8sMDpsc4zzZA3fYJVVq0UurIB/2Knq+pJgmazOVwxrAC75tETzy0yFg6xsZBdY5MHGm/LbnphnRP1nK2MSNdgJ5g4P3pzhNnoW4v4U30pF/rVXZTTQcotP76bZ6LR/XrevZbcoAFVTSq/NigPImo6pBGKSJwIDebD0yNngQ3WBb2PYa4n37hywkiyhyUMcjE0bl1RarVbW1vUG07VINjUkTYGMveu+AVC9q1Qm+97B6cvsDF+AV8uh9R8GcPUrfGiePXLwGSLgp4tEq/aHwHef8b1wAs7jQBrLBSG4Xtxhw9OAuRfMKsKHOX2upou9l7MBwt+WNQ1CV1vbT8pph4Xw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2017 08:10:13.0187 (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: CY4PR03MB3110 Subject: [dpdk-dev] [PATCH v11 18/22] net/dpaa2: handle non-hardware backed buffer pool 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Hemant Agrawal --- drivers/net/dpaa2/dpaa2_rxtx.c | 75 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index c1ea33a..deec210 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -191,6 +191,55 @@ eth_mbuf_to_fd(struct rte_mbuf *mbuf, DPAA2_GET_FD_BPID(fd), DPAA2_GET_FD_LEN(fd)); } + +static inline int __attribute__((hot)) +eth_copy_mbuf_to_fd(struct rte_mbuf *mbuf, + struct qbman_fd *fd, uint16_t bpid) +{ + struct rte_mbuf *m; + void *mb = NULL; + + if (rte_dpaa2_mbuf_alloc_bulk( + rte_dpaa2_bpid_info[bpid].bp_list->mp, &mb, 1)) { + PMD_TX_LOG(WARNING, "Unable to allocated DPAA2 buffer"); + rte_pktmbuf_free(mbuf); + return -1; + } + m = (struct rte_mbuf *)mb; + memcpy((char *)m->buf_addr + mbuf->data_off, + (void *)((char *)mbuf->buf_addr + mbuf->data_off), + mbuf->pkt_len); + + /* Copy required fields */ + m->data_off = mbuf->data_off; + m->ol_flags = mbuf->ol_flags; + m->packet_type = mbuf->packet_type; + m->tx_offload = mbuf->tx_offload; + + /*Resetting the buffer pool id and offset field*/ + fd->simple.bpid_offset = 0; + + DPAA2_SET_FD_ADDR(fd, (m->buf_addr)); + DPAA2_SET_FD_LEN(fd, mbuf->data_len); + DPAA2_SET_FD_BPID(fd, bpid); + DPAA2_SET_FD_OFFSET(fd, mbuf->data_off); + DPAA2_SET_FD_ASAL(fd, DPAA2_ASAL_VAL); + + PMD_TX_LOG(DEBUG, " mbuf %p BMAN buf addr %p", + (void *)mbuf, mbuf->buf_addr); + + PMD_TX_LOG(DEBUG, " fdaddr =%lx bpid =%d meta =%d off =%d, len =%d", + DPAA2_GET_FD_ADDR(fd), + DPAA2_GET_FD_BPID(fd), + rte_dpaa2_bpid_info[DPAA2_GET_FD_BPID(fd)].meta_data_size, + DPAA2_GET_FD_OFFSET(fd), + DPAA2_GET_FD_LEN(fd)); + /*free the original packet */ + rte_pktmbuf_free(mbuf); + + return 0; +} + uint16_t dpaa2_dev_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) { @@ -331,8 +380,29 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) DPAA2_RESET_FD_CTRL((&fd_arr[loop])); DPAA2_SET_FD_FLC((&fd_arr[loop]), NULL); mp = (*bufs)->pool; - bpid = mempool_to_bpid(mp); - eth_mbuf_to_fd(*bufs, &fd_arr[loop], bpid); + /* Not a hw_pkt pool allocated frame */ + if (mp->ops_index != priv->bp_list->dpaa2_ops_index) { + PMD_TX_LOG(ERR, "non hw offload bufffer "); + /* alloc should be from the default buffer pool + * attached to this interface + */ + if (priv->bp_list) { + bpid = priv->bp_list->buf_pool.bpid; + } else { + PMD_TX_LOG(ERR, "errr: why no bpool" + " attached"); + num_tx = 0; + goto skip_tx; + } + if (eth_copy_mbuf_to_fd(*bufs, + &fd_arr[loop], bpid)) { + bufs++; + continue; + } + } else { + bpid = mempool_to_bpid(mp); + eth_mbuf_to_fd(*bufs, &fd_arr[loop], bpid); + } bufs++; } loop = 0; @@ -345,5 +415,6 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) dpaa2_q->tx_pkts += frames_to_send; nb_pkts -= frames_to_send; } +skip_tx: return num_tx; }