From patchwork Sun Mar 31 13:14:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 51950 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 [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BBE784C8F; Sun, 31 Mar 2019 15:14:37 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id D26344C93 for ; Sun, 31 Mar 2019 15:14:35 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2VD4vTR027109; Sun, 31 Mar 2019 06:14:35 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=EffVtxXk1XyeTlko4g0VL5UCoqBLGIySe2cLurik1Lw=; b=UZmkcESaxeZjdORT0Dh/Gnkl0IlC3//TpMhzFWXVlZsJOMu/e9w3Y7d8IVnkqAOrs+zW mftjYhPuDIQ9z/AzcXe3bgRazAs4XqJGBsdtuXutvclT82pKCNrndNPdi3NxB8M4VFyv grPdddLcbn+vhJnmWBi8p61I+YO+nCmid9gK6dUJzaB+zDJLLScnPJgwlC5fpBHPqju0 469Wv5KLGPXiLhX+wHrAOcpRhcHaN2+nP6rVeUa4BuUI2eS9ANX/X1NQH35D7a1PUl11 VfbJ85wK+e11ofkgIxpbFZylJJis31dSEBtgH1FqaMSRsNS5CGNRGXXO08J/lTj/NJbK Og== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2rj7yk2nh7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 31 Mar 2019 06:14:35 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sun, 31 Mar 2019 06:14:28 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.56) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sun, 31 Mar 2019 06:14:28 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EffVtxXk1XyeTlko4g0VL5UCoqBLGIySe2cLurik1Lw=; b=qeDD+jtRY6zdD+yCYthyGkpA5ViIOMKUlak1W+700QTi6gpVbgxglq0/SxToN3D/1PtVpvmCrEvhVGDB3HJdihjmf3MmIkORuuIFKyfKH4JwING4yRhHkLi9XfGG0YRKOK+x+uJc1pwaHDYjD+Tz/etuBqcTEJV+ETQEAXxSJss= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB2071.namprd18.prod.outlook.com (10.171.254.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.15; Sun, 31 Mar 2019 13:14:23 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa%2]) with mapi id 15.20.1750.014; Sun, 31 Mar 2019 13:14:23 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "ferruh.yigit@intel.com" , "bernard.iremonger@intel.com" CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula , Yingya Han Thread-Topic: [dpdk-dev] [PATCH v5 2/2] app/testpmd: add mempool bulk get for txonly mode Thread-Index: AQHU58Ooco2GZKCql0i9WdLRVCb8yQ== Date: Sun, 31 Mar 2019 13:14:23 +0000 Message-ID: <20190331131341.12924-2-pbhagavatula@marvell.com> References: <20190228194128.14236-1-pbhagavatula@marvell.com> <20190331131341.12924-1-pbhagavatula@marvell.com> In-Reply-To: <20190331131341.12924-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SG2PR06CA0178.apcprd06.prod.outlook.com (2603:1096:1:1e::32) To CY4PR1801MB1863.namprd18.prod.outlook.com (2603:10b6:910:7a::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.21.0 x-originating-ip: [49.205.218.5] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 889b2750-c138-468d-f079-08d6b5dacb15 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020); SRVR:CY4PR1801MB2071; x-ms-traffictypediagnostic: CY4PR1801MB2071: x-microsoft-antispam-prvs: x-forefront-prvs: 0993689CD1 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(136003)(346002)(396003)(39850400004)(366004)(199004)(189003)(2906002)(76176011)(8936002)(6506007)(6436002)(81156014)(386003)(8676002)(81166006)(102836004)(26005)(5660300002)(4326008)(110136005)(1076003)(186003)(71200400001)(78486014)(7736002)(6512007)(2501003)(6486002)(99286004)(97736004)(54906003)(3846002)(6116002)(52116002)(316002)(105586002)(53936002)(305945005)(25786009)(71190400001)(86362001)(68736007)(2201001)(486006)(106356001)(478600001)(50226002)(66066001)(11346002)(446003)(476003)(2616005)(256004)(14454004)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB2071; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: kxfzSS5rIB34LgMsGiz+T0/nwkMfkqUX1/aMHA61VhfqCdTVFw/TnDpzzNiyr701PrsV+1PjTuRw5DR0XlgrF0ocEwbrCoihPBnRyjxdbw1xPh8StwQ6IMh7aeu+vFPmWp/Tsc+mUKJMDq2Ps8fCG1eTepKDSUMGe2ktlRBThUzBVOeR6Ea1MFffbVsZbqp8cLIdmclsQGCEE2d0XPyEGrI6XAAoID0q796EynJsaPCi+nRcLOvh8XBy+L5GlkwoxyhTMXfLCGBgUpsKO4xSodXJatwXxmnYxeLBdJa1aRRSh1CnTGpkAxRA9NSw0TsrUV5YTFRgpTJNvwXLrOSwCu7kwEhLI5w0s4JOYJ/eZmxJPD/DVWFzEWetURvzP6+kF6tCbtaSoH+2mVYr6UiSf29T358/MFaVuOd2rRyA1as= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 889b2750-c138-468d-f079-08d6b5dacb15 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2019 13:14:23.8867 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB2071 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-03-31_08:, , signatures=0 Subject: [dpdk-dev] [PATCH v5 2/2] app/testpmd: add mempool bulk get for txonly mode 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" From: Pavan Nikhilesh Use mempool bulk get ops to alloc burst of packets and process them. If bulk get fails fallback to rte_mbuf_raw_alloc. Tested-by: Yingya Han Suggested-by: Andrew Rybchenko Signed-off-by: Pavan Nikhilesh --- app/test-pmd/txonly.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index 9c0147089..4c34ef128 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -250,18 +250,33 @@ pkt_burst_transmit(struct fwd_stream *fs) ether_addr_copy(&ports[fs->tx_port].eth_addr, ð_hdr.s_addr); eth_hdr.ether_type = rte_cpu_to_be_16(ETHER_TYPE_IPv4); - for (nb_pkt = 0; nb_pkt < nb_pkt_per_burst; nb_pkt++) { - pkt = rte_mbuf_raw_alloc(mbp); - if (pkt == NULL) - break; - if (unlikely(!pkt_burst_prepare(pkt, mbp, - ð_hdr, vlan_tci, - vlan_tci_outer, - ol_flags))) { - rte_mempool_put(mbp, pkt); - break; + if (rte_mempool_get_bulk(mbp, (void **)pkts_burst, + nb_pkt_per_burst) == 0) { + for (nb_pkt = 0; nb_pkt < nb_pkt_per_burst; nb_pkt++) { + if (unlikely(!pkt_burst_prepare(pkts_burst[nb_pkt], mbp, + ð_hdr, vlan_tci, + vlan_tci_outer, + ol_flags))) { + rte_mempool_put_bulk(mbp, + (void **)&pkts_burst[nb_pkt], + nb_pkt_per_burst - nb_pkt); + break; + } + } + } else { + for (nb_pkt = 0; nb_pkt < nb_pkt_per_burst; nb_pkt++) { + pkt = rte_mbuf_raw_alloc(mbp); + if (pkt == NULL) + break; + if (unlikely(!pkt_burst_prepare(pkt, mbp, + ð_hdr, vlan_tci, + vlan_tci_outer, + ol_flags))) { + rte_mempool_put(mbp, pkt); + break; + } + pkts_burst[nb_pkt] = pkt; } - pkts_burst[nb_pkt] = pkt; } if (nb_pkt == 0)