From patchwork Fri Mar 24 07:27:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 743094 X-Patchwork-Delegate: dlu998@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vqFQ222gdz9s3w for ; Fri, 24 Mar 2017 18:28:10 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 5BABA892; Fri, 24 Mar 2017 07:28:07 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 34FD67A8 for ; Fri, 24 Mar 2017 07:28:06 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0067.outbound.protection.outlook.com [104.47.36.67]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 52AC910A for ; Fri, 24 Mar 2017 07:28:05 +0000 (UTC) Received: from BN6PR03CA0095.namprd03.prod.outlook.com (10.164.122.161) by BN6PR03MB2786.namprd03.prod.outlook.com (10.173.144.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.977.11; Fri, 24 Mar 2017 07:28:03 +0000 Received: from BL2FFO11FD038.protection.gbl (2a01:111:f400:7c09::121) by BN6PR03CA0095.outlook.office365.com (2603:10b6:405:6f::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.991.14 via Frontend Transport; Fri, 24 Mar 2017 07:28:03 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; vmware.com; dkim=none (message not signed) header.d=none; vmware.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 BL2FFO11FD038.mail.protection.outlook.com (10.173.161.134) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.977.7 via Frontend Transport; Fri, 24 Mar 2017 07:28:03 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v2O7Rxhp000726; Fri, 24 Mar 2017 00:28:00 -0700 From: Hemant Agrawal To: , , , , Date: Fri, 24 Mar 2017 12:57:55 +0530 Message-ID: <1490340475-3775-1-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1490258133-1008-1-git-send-email-hemant.agrawal@nxp.com> References: <1490258133-1008-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131348140833128079; (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)(39400400002)(39450400003)(39840400002)(39860400002)(39380400002)(39850400002)(39410400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(50226002)(5660300001)(105606002)(2906002)(106466001)(189998001)(33646002)(50986999)(76176999)(38730400002)(305945005)(77096006)(356003)(104016004)(53936002)(5003940100001)(47776003)(81166006)(8676002)(85426001)(2950100002)(50466002)(86362001)(48376002)(8936002)(36756003)(2201001)(6666003)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2786; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD038; 1:mw1uRUySiG14cx2a29sVbsDKDipbUkINP9oENiC/cWToJBx/djoPzaj9pq57lKJSyT4Sf9GlMBrPKNNZS3dvc5QPeMkkYQ00ZJi0DYvBCkzwO6V6F3dih8nNZSFGEeEL+BKgyCgYRMsrLzyYg6IsmhSp/INkui0GAZNjb2EzLNUYfr4Q/s7mMhGkr/CZ49mj6OS5hV7/iSGnpCp/ePO654y/rgGBKI4KKsWj/1w4Z8Wfnl8yuUrreISlD6PlGixq4MVq6FxHaK5R+0VtjhBbo8y6vwKRs2LJR/5QdYmhFZ7Zb5UF3ge5N098SVzEE1D0sR/LNboh/Yw7yF4ZMjuZGStPs3nGbV28kV4pvoXHA9GicTDoZoDbeeiPpSPiULN6l4ffaTbbxovhv43RPAT5cg/Uq0LOdI4oaWLP3pjWU5KO+eR3UdcoEC7lCaiVnvkrTivcrD/SQkW5yjzg/Vsa5jtj125AgVcxVpQv1tBWXpBLMWzQbWeJddWnXKe2coUSgj67JO1bMeQnGH3XYFH5ITkn9r0+1quTZ5oC9pUMxs5tXFwYtEce+Jg8LE+psC7NIYSks9Aes6L0D7js4E0Mj9o6QhKS/AiVmjyGFU7TYbN7xJ4EM60dcHHQcaJEmwDicnhnBs0523BMud6jFFP6pg== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 753ffaf5-cbc9-455d-3e8f-08d472874ebb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN6PR03MB2786; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2786; 3:xPZMYfCjatPRhIOnrmqNjoynkYWBcX7KWGW5qG29JJXjrWX9jlMoixb5SiC0/LdgMM8vWIHPwNvzxwgErVu3jJCCZiyCxHyBDJGjTh56aruNNjPP1ZK4yy1n3W1sP32NgfrJMimmsrXvMI4mhkvNBSJ7J/KcsiCWLXjJSyIiwBlUyBGZ4ZfyA4BpKMk5dEUL3Pskr92HJFRJW6/RWoRyCB7bHozFHvWiae+vawRc7GQdTY4ZzvBeVCDi10QJKkliViUoY23dNaPMLqFsRunyc7kBJVLd8tRWkbjF2ovZIWMfhEvBKSYNICNoQ0WaxvNELyN16V45EwMWyuaoEFBxdk2wWiptXpWr45lC1bGGnB3HOIXNdSHkvpGwJpQ+iwyr; 25:TarGe0mXrfwiB/uAxaFU4Lr/jKjXFG4wg2Wxwag1bUcuSolYT5e1Ld0Ci8o9zHq7D5e1fftB1t2ot9PFRKaJiLdUFZbIT9iL95JLOhOd3woL7h+z0qeV5KA+ZpxEmVhHZzvNPJwaBl/wFiJsW/Y5DEHBu34jOVpoYkvwuaqk3rVHs3xkE+32nDxiodwjY0yD9ZY94Hd4YRdaWaQTS6kvKojnYaHsJfgZoJN10gGtMxlx/dAQrWoX4MHjJ0M8yg3rf/48YjX7EbA1T5yCpsPAvmsvZoaFt4CmNqqO+n7/WKwKk2I5xEe8L9W94+oHkYebFY364Mlo2fC5cQdpGAJNehPFuPsmyIrHih7OxAmVtDTxm68NTSlfleDqrsaAVQxqHEr7t6NHobf7nme4kJGhyTjWN4GwLSFT68hDPCjiviG+pYSRY0lekUXoaw8XvzB92VxVslcg+PG2ciR1FWYRbg== X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2786; 31:QUz0IRDYiX7h++b0+ttxdJOjZWrMwtUvqLKBBFL//o+C8G3Ud3QdCP4MLkKCfi9LH1ZGmJoGNbVp5SPd1YLydrpeFhoCUByKhgE9dTItP7mOGrUQSX9oUHH5p540TBQlEd+1M7C25Gx0TrKD/vWHT3zUhcJvPHdGWRWAorTqmeyFRKe0ucUkHtlfI1cNZ2BKwV/rtWOgaR9FmurKG+fuR30MIS8uNxB7MdW5vPXWzVaBjuafSVeEFeOh/Bv4/eDSXJJxgC2FDWqCd6CVP2TjSsFudnUz7ob4AKEgs0I8oB8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(5005006)(13024025)(8121501046)(13015025)(13023025)(13017025)(13018025)(10201501046)(3002001)(6055026)(6096035)(20161123559025)(20161123556025)(20161123565025)(20161123561025)(20161123563025); SRVR:BN6PR03MB2786; BCL:0; PCL:0; RULEID:(400006); SRVR:BN6PR03MB2786; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2786; 4:hFOWoLLQga2pTlIhRh0rRkid7Y3mlEuv8dpp5RUCL1j4GfFOXAw3UNENozzAxH2cZ4Uv5Sfkio8XTM64OgqJjzF96/pMWPTl8f6u/VK9f4+1KPzF3aguzlPczCEgWzKb/XgLu/vNGHhDXHg15tlTyOJlLc4IMF6gna7kzmD1vlWo0YT/++Jxsg7miRJIFJgLoHbGVUpZKDfiGHZ/KlWkKwTlgOAG5zzBA3+1WH8Wbb3x6MAtWVE2oikufSVz+lfXQZrPbwp0SlXJwv1h9CnDm+u9k4nkDUuMpzQFmJZJ2YcXJ66sfgrcgUmiXJwShVpYpvfW2YkHkh2rFV1E06ouYVxRMiwd9A2wB2P86wFtx3xOkTQARq6AFV7VooJ/fWVQ/mBvkNWRjFCoNxgYg8nZRXi8XXidfyQzhZ1g04tXvlv06Proj78h6oUNW+toR16qov9qmJnRJjt2tsSyz7evWK7rkeA8KnkT1voDovsGM0mqgxl29PqnTEgGKDZeR0vZWixyopFmuLKPUPt+sBu34Zcf7E34bp2D5yJrKwhyIbs8e6M7F5hXlYjgWBJewDzAP6EPJD3bZS0VVShkbp7vKQA7bWEsoAzaRZsMhl6isRl4cmpKweBt8kk3Z2fyjamYgtQ178UTq1q6GWmgcnYONlQNaBnHeGko3GCy+MOBMb2qhQDDKZ5177C7A2tlu9Irbrl/3tdDcq56lHlxT3MQvj+UdFkuyg8qmkKPehaLoxb4Y4XC/q8m0QWoTTlwxnhU X-Forefront-PRVS: 0256C18696 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2786; 23:8ZJLMpxO/FX8HCrtBAJCswpOibYxQSaJPzoJGlI22?= =?us-ascii?Q?LjDa/OhXOcxYEcz9p8Fcv27qG3H/4KjZMAq8FLTfKwxvFgB2J5lrXra12zMO?= =?us-ascii?Q?B6SAUZnTkF+oBEtGPkroDc0R7wIRD/7W71eAMDqU5VjUsUb+rTOxBEBn2ZqH?= =?us-ascii?Q?E199Mx00PYvk639HpTLdOuFdu9dpOoR6k4fh/8xjuukl7C0//dMwPhZ4S2hD?= =?us-ascii?Q?GWEP2EXCjVbHKKfBdK5NR64p9pE0x6qt1jGYmWAZlk+EH7oGdKskofJ5v0nm?= =?us-ascii?Q?VLmUuqyPW6Iz81LfcChzlQwNsB2zDeWVj3bCayNQSgtVZbhzSZJWzg0N1Fam?= =?us-ascii?Q?PcdCcAR4uliyWDDFhQtQjRzjdjo2u0euwSZqIKgnUqfYl4LI0zkpmo/cUcJ1?= =?us-ascii?Q?rl9dazjv7OKTN6Xwa9/TCYNLlCbv1QYoE9xlGOxqIGAvVbCFeHkBTz7BeiEa?= =?us-ascii?Q?do9j1/YbOLn/t2UvrKv1CzFqpaO48pyDKvJe84gLHhGf5O55LjIBdVJBY/s/?= =?us-ascii?Q?qqEgF+xJ7l1Osxc9uJD2TH1snGNuL4HEiJefIM9O4LgQ9if4QycQvTf/2N+V?= =?us-ascii?Q?2NvpLIns37ehVgLIiKTheArN/oK+6QxMQRP1GsU3PijYd93KTt6P/as6pJy2?= =?us-ascii?Q?oJJxOloaFVg12dlAAOYenwwhNZCWELixEVFJo5lUGv2cEW2HYX195yFGR+C8?= =?us-ascii?Q?MWDZxsCJumQuDS61qBGPtLQzchLEmCAEs28ZVifp+SrfEJ/EXQzZcCBbnEzZ?= =?us-ascii?Q?EMyimYDlMPGCPS488LwVePrtVbKyL8zfyqMtst3SwQwl4CxMU+vERCqoAKIg?= =?us-ascii?Q?k/gsmN8b121d6XNTnQor0naQfyvKuwjQR1sIg5xjdt/9yN+C624dqqIs0JSF?= =?us-ascii?Q?sYeXPPca0nKv1Flzr9UyoQIbQS5JilGdQ61sOaIKkMHHMXkqTEIxR3TIvGnI?= =?us-ascii?Q?L0R87hgHaMMB3m51PwbCIktBQUjwPAm8sp1y84/wDt7WoaLUW0XdGLV2uFYH?= =?us-ascii?Q?KMkU2geD63dKvXA6+Q5RVRjW9EARGpCJvqCemTwpgOjgzfaDO9HX83heTX42?= =?us-ascii?Q?EtXfJSqMcv5wIs4zaTCeTNh2nn39xRSrr4Y8R5C+kOl/QDhXl6v2uEgKq8j6?= =?us-ascii?Q?id5V/2R/+6pSJhR7u7J8ERzOkF6yeMY?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2786; 6:VqOEsMV5kt8g3YNB+NSKHrhQE7ukahR4U4rcuoK56yKGgWjO0OtHQB9ZO0A02EghQxtho7wDxpdA5y4qEIPZP6yF7B+QNEOQEE+ho/gsTOGVPeNpSJtSlldBt5qWphQVoLSY2cYwhSo8QYuFXXJAbfFpTSry4bnmTkBNy+u/XUfv4tiY0i5P6qggv/06YuyFioQQ4ohHloLOSo1el+4TgVooRG3Ti0gvdttg6FSisgxnPrenVy1kPDLEx40v7YybElCq05DHGBhhr82Dj/Y7vFZeKywdMV4+3O969KPGxmPSf7c28B9IbzE/WqV3UEteRH9k9lslI01s4AxwAdjOOcYPFaiuvTQ2YkF2PrjvfFPBTecWwLhMMOw6/0na74BB3zckhwEGkZMmeCLhBz8S3xyoMld0X8QKu9x9BQNdZRA=; 5:P0oYHE3bTQ5ir+F7RODXcJDpAk3svTTmps3VdBcqOxdtnx1y17KXhVKf8oJHRo2m4vhgz2uIE3uW4l7Y6/bKl1dsb2o3o3S48/FOMiZSdOrCzQwKMnQ31HrSZ5MmKxUyq8zt8aiSIrbzVqzkIMlAIK9BZn3sVVli0txyqCf+TnHoPaVB6smcgKbjGN+SHItr; 24:xsHlu3enK93GSCEq1cpw+f1/Tj166j0/cv+R43HjVf+jbiPOue54UpCJnhvw2j+k4J4jRmDJn0WfrhoZkvZ/kKZe/V++EqSAR+nyBgf3wpY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2786; 7:CHH6iSreIhD9KO7witk7CKLHehy7KClrTGucczz76t7ZDl7kaWJaQsUT+yUNYzr85SoqwtD2UQp5p5Qr8ozLSrxx9m0C1jRZMoC5nieZJ9QtnXqwZKid/HacIxBWyi1RpWQCU+zT6hv3ChNkaIRavs7hfy3PZrDFBZrRwgiNDaoCMt3MFV6qYGXKqAeEiHRmYIFoZvsE/oLvAdRBwvrL8TbtzKMaSZJ068DvHC1VVZIKshYQx4gxRWsbq3QS9MGJq/qAJTmcEE2Rkq1CSQViENgLTOT/gnMYNHa8EmawTNW0vCi1FWCeY74jXdnpxSSD+WGygXWJhjJGfo6lIbmm2g== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2017 07:28:03.1256 (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: BN6PR03MB2786 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH v3] netdev-dpdk: leverage the mempool offload support X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org DPDK 16.07 introduced the support for mempool offload support. rte_pktmbuf_pool_create is the recommended method for creating pktmbuf pools. Buffer pools created with rte_mempool_create may not get offloaded to the underlying offloaded mempools. This patch, changes the rte_mempool_create to use helper wrapper "rte_pktmbuf_pool_create" provided by dpdk, so that it can leverage offloaded mempools. Signed-off-by: Hemant Agrawal Acked-by: Jianbo Liu Acked-by: Kevin Traynor --- v3: * adding OVS_UNUSED for mp parameter v2: * removing rte_pktmbuf_init as per review comment lib/netdev-dpdk.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index ddc651b..39021cf 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -451,22 +451,19 @@ free_dpdk_buf(struct dp_packet *p) } static void -ovs_rte_pktmbuf_init(struct rte_mempool *mp, +ovs_rte_pktmbuf_init(struct rte_mempool *mp OVS_UNUSED, void *opaque_arg OVS_UNUSED, void *_p, unsigned i OVS_UNUSED) { struct rte_mbuf *pkt = _p; - rte_pktmbuf_init(mp, opaque_arg, _p, i); - dp_packet_init_dpdk((struct dp_packet *) pkt, pkt->buf_len); } static struct dpdk_mp * dpdk_mp_create(int socket_id, int mtu) { - struct rte_pktmbuf_pool_private mbp_priv; struct dpdk_mp *dmp; unsigned mp_size; char *mp_name; @@ -478,9 +475,6 @@ dpdk_mp_create(int socket_id, int mtu) dmp->socket_id = socket_id; dmp->mtu = mtu; dmp->refcount = 1; - mbp_priv.mbuf_data_room_size = MBUF_SIZE(mtu) - sizeof(struct dp_packet); - mbp_priv.mbuf_priv_size = sizeof(struct dp_packet) - - sizeof(struct rte_mbuf); /* XXX: this is a really rough method of provisioning memory. * It's impossible to determine what the exact memory requirements are * when the number of ports and rxqs that utilize a particular mempool can @@ -496,18 +490,21 @@ dpdk_mp_create(int socket_id, int mtu) mp_name = xasprintf("ovs_mp_%d_%d_%u", dmp->mtu, dmp->socket_id, mp_size); - dmp->mp = rte_mempool_create(mp_name, mp_size, MBUF_SIZE(mtu), - MP_CACHE_SZ, - sizeof(struct rte_pktmbuf_pool_private), - rte_pktmbuf_pool_init, &mbp_priv, - ovs_rte_pktmbuf_init, NULL, - socket_id, 0); + dmp->mp = rte_pktmbuf_pool_create(mp_name, mp_size, + MP_CACHE_SZ, + sizeof (struct dp_packet) + - sizeof (struct rte_mbuf), + MBUF_SIZE(mtu) + - sizeof(struct dp_packet), + socket_id); if (dmp->mp) { VLOG_DBG("Allocated \"%s\" mempool with %u mbufs", mp_name, mp_size); } free(mp_name); if (dmp->mp) { + /* pktmbuf only prepare the rte_mbuf, prepare the ovs bufs */ + rte_mempool_obj_iter(dmp->mp, ovs_rte_pktmbuf_init, NULL); return dmp; } } while (rte_errno == ENOMEM && (mp_size /= 2) >= MIN_NB_MBUF);