From patchwork Tue Apr 2 09:53:25 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: 52088 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 9807B316B; Tue, 2 Apr 2019 11:53:36 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 917CA2B99 for ; Tue, 2 Apr 2019 11:53: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 x329j4Fm014061; Tue, 2 Apr 2019 02:53:34 -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=LOlWy8ZGIiqhigYTj8T+vOkM4Rhp8qt5iIZlSY5lYx8=; b=fkgpFsjKCekXZWnPH3BsvKYaq5jty4WQdHnnSsZ5f/U7M3nyRGPqVjTRcxtumRzju9pK Mo12nMuxtTVDhBGy1MmncTVLt2zB1XQRGY/SE6K+ilQ5wgykKM8No+DlaJr/mTFi0G4d eVEbFNeSbaYXMdBjl3d761k1Rnu5nkDAtaWzE9t+Bpx7jWVT5itdppkDcXTxG0hbWQ5m Ws5OkayopEYmBciF4KS3DoOFm+YbCxX6scbf/X/BZPNK3T05g7sPQRIbj3LJuWDYU0WY x4b928XLT6M0B4USjCW63/t2RhMoQIHxTCumNXSHj+sn510L1kZX4HilKqT2D79bUQVZ Ag== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0b-0016f401.pphosted.com with ESMTP id 2rkrb49wy3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 02 Apr 2019 02:53:34 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 2 Apr 2019 02:53:27 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (104.47.32.57) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Tue, 2 Apr 2019 02:53: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=LOlWy8ZGIiqhigYTj8T+vOkM4Rhp8qt5iIZlSY5lYx8=; b=i+99WtpYXlH7heGxPaBPy/yFPQTf7z4GpKDUVFPi6psktQIaWUYmCD6EJvLbQCEk4yWpNyW1Df17WzBZn8IlWe7QuX8WoPROfItLceWEAvf096V4SiAmZNxo1tpT7dv//TWtkuhRS9fqNGUccvUhO6FJaPYNFY/tZLRj6JZFfM0= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB1926.namprd18.prod.outlook.com (10.171.255.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.15; Tue, 2 Apr 2019 09:53:26 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d%3]) with mapi id 15.20.1750.021; Tue, 2 Apr 2019 09:53:26 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "ferruh.yigit@intel.com" , "bernard.iremonger@intel.com" , "alialnu@mellanox.com" CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula Thread-Topic: [dpdk-dev] [PATCH v6 1/4] app/testpmd: move eth header generation outside the loop Thread-Index: AQHU6TnqdxZKp+84Pk6xF0nPOKXqag== Date: Tue, 2 Apr 2019 09:53:25 +0000 Message-ID: <20190402095255.848-1-pbhagavatula@marvell.com> References: <20190228194128.14236-1-pbhagavatula@marvell.com> In-Reply-To: <20190228194128.14236-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR0101CA0029.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:1a::15) 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: [115.113.156.3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 27592073-2a16-4c96-58c6-08d6b7510cd0 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:CY4PR1801MB1926; x-ms-traffictypediagnostic: CY4PR1801MB1926: x-microsoft-antispam-prvs: x-forefront-prvs: 0995196AA2 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(346002)(39860400002)(376002)(189003)(199004)(6486002)(8676002)(55236004)(102836004)(106356001)(26005)(486006)(186003)(86362001)(476003)(107886003)(2906002)(105586002)(36756003)(11346002)(66066001)(2201001)(8936002)(71200400001)(305945005)(7736002)(2616005)(478600001)(4326008)(71190400001)(446003)(97736004)(6436002)(256004)(1076003)(2501003)(50226002)(54906003)(6506007)(316002)(81156014)(14454004)(81166006)(53936002)(25786009)(6116002)(52116002)(76176011)(110136005)(3846002)(5660300002)(6512007)(386003)(68736007)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1926; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: 1WF/+hp43PvFSWnewox/GOLN+BLluvuiYHqewjLeqYG8nSQDM4reWl7I8qpHKYpHxsioZT2nB9sy6r6jiGGDHCGl33eeqKUs4S7puKh9/tqt4EnjqAzP7e8PeCnZWaKFpdNTUzVh5l9ogrI2JzWNALqiCLAQPcRoRlo0QxoDIrqrmTkWjGOW2c3GN8eRtI3cG1Q+UZdYEdan7p2TiCgut/P6Mld8Brk78Rn2OrTOVpp6jL2V07cj51xN96RLnoAG37vNNqNlkASCU92pmmyAvpFHwyxkshlmJX22VnT8XDn6zj9sC/FrsEra0cblbX4jiL1rdm/34cdWxJeQMdOPMLrZSFPfIR5Zv26oPN1GN0FEcicrX9qoDssda+kVKvX/T64FBMVqYx+5BXDqXq6z3GQZM1BJ9+/Z3/Se8MITqhY= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 27592073-2a16-4c96-58c6-08d6b7510cd0 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Apr 2019 09:53:25.9602 (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: CY4PR1801MB1926 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-02_04:, , signatures=0 Subject: [dpdk-dev] [PATCH v6 1/4] app/testpmd: move eth header generation outside the loop 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 Testpmd txonly copies the src/dst mac address of the port being processed to ethernet header structure on the stack for every packet. Move it outside the loop and reuse it. Signed-off-by: Pavan Nikhilesh Reviewed-by: Ferruh Yigit --- v6 Changes - Rebase onto ToT. - Split the changes further v5 Changes - Remove unnecessary change to struct rte_port *txp (movement). (Bernard) v4 Changes: - Fix packet len calculation. v3 Changes: - Split the patches for easier review. (Thomas) - Remove unnecessary assignments to 0. (Bernard) v2 Changes: - Use bulk ops for fetching segments. (Andrew Rybchenko) - Fallback to rte_mbuf_raw_alloc if bulk get fails. (Andrew Rybchenko) - Fix mbufs not being freed when there is no more mbufs available for segments. (Andrew Rybchenko) app/test-pmd/txonly.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) -- 2.21.0 diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index def52a048..0d411dbf4 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -190,6 +190,14 @@ pkt_burst_transmit(struct fwd_stream *fs) ol_flags |= PKT_TX_QINQ_PKT; if (tx_offloads & DEV_TX_OFFLOAD_MACSEC_INSERT) ol_flags |= PKT_TX_MACSEC; + + /* + * Initialize Ethernet header. + */ + ether_addr_copy(&peer_eth_addrs[fs->peer_addr], ð_hdr.d_addr); + 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) { @@ -226,13 +234,6 @@ pkt_burst_transmit(struct fwd_stream *fs) } pkt_seg->next = NULL; /* Last segment of packet. */ - /* - * Initialize Ethernet header. - */ - ether_addr_copy(&peer_eth_addrs[fs->peer_addr],ð_hdr.d_addr); - ether_addr_copy(&ports[fs->tx_port].eth_addr, ð_hdr.s_addr); - eth_hdr.ether_type = rte_cpu_to_be_16(ETHER_TYPE_IPv4); - /* * Copy headers in first packet segment(s). */ From patchwork Tue Apr 2 09:53:29 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: 52089 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 CAB1B4CBD; Tue, 2 Apr 2019 11:53:47 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 57F104CA9 for ; Tue, 2 Apr 2019 11:53:46 +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 x329j7TW014284; Tue, 2 Apr 2019 02:53:45 -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=W+v9sI79nakrsfAu7P7vz12Jx78gz6RzalQiO7Ci4dI=; b=xecKy8X8ih8y+3ilO60IrmL/YokHHtMrMd+eNxo/6HbSm454+uIYvjAxQ28sjbfZmFDr qmkOVlM2XrC8h7C/TTBd048yyH2CBwXjZqItN6DvlkSl8DIjZvOqpS0QPGncBGBJldn6 8rXBAAfCIHHEAPqzbzuzR5Go/shg1WXIQX/IEqNiTOHqjwUDhr4aiZ4BUJTAg3wNiphW 1Mpbai83LwzL9ia89GJkAYMUQMKXjSc86G0OlXVfSb5AETARH4gRnOtBV/uCPcEHTX2k 9H57Cgc5qXmfwuVNqTSfBqHBNktxsqZbZbPN6KL6iJ3hJ35iTSjcR7k77DSCQbwDBVpw YQ== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0b-0016f401.pphosted.com with ESMTP id 2rkrb49wyb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 02 Apr 2019 02:53:45 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 2 Apr 2019 02:53:33 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (104.47.32.57) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Tue, 2 Apr 2019 02:53:33 -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=W+v9sI79nakrsfAu7P7vz12Jx78gz6RzalQiO7Ci4dI=; b=XuM6+dKkF57+NldtS4iJncQVGM3A+omJnI8zvGW8f+YNGxBu78LlgFRxVstj/VV8PK66oXUwQZr20gfr5ciMFbQxPJeojgAKlZRaX2eCyxeXzZKid9NMlbFhbhS5NOkh7YIO4iUbhugtDt0lqVABXcnF/hRbAKkJRE+u8Bk9QQg= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB1926.namprd18.prod.outlook.com (10.171.255.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.15; Tue, 2 Apr 2019 09:53:29 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d%3]) with mapi id 15.20.1750.021; Tue, 2 Apr 2019 09:53:29 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "ferruh.yigit@intel.com" , "bernard.iremonger@intel.com" , "alialnu@mellanox.com" CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula Thread-Topic: [dpdk-dev] [PATCH v6 2/4] app/testpmd: use bulk ops for allocating segments Thread-Index: AQHU6Tns0Gz3n/2CFU6CoEKy+UvxpQ== Date: Tue, 2 Apr 2019 09:53:29 +0000 Message-ID: <20190402095255.848-2-pbhagavatula@marvell.com> References: <20190228194128.14236-1-pbhagavatula@marvell.com> <20190402095255.848-1-pbhagavatula@marvell.com> In-Reply-To: <20190402095255.848-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR0101CA0029.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:1a::15) 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: [115.113.156.3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f5e444c1-2b9e-49d8-aeaf-08d6b7510ee9 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:CY4PR1801MB1926; x-ms-traffictypediagnostic: CY4PR1801MB1926: x-microsoft-antispam-prvs: x-forefront-prvs: 0995196AA2 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(346002)(39860400002)(376002)(189003)(199004)(6486002)(8676002)(55236004)(102836004)(106356001)(26005)(486006)(186003)(86362001)(476003)(107886003)(2906002)(105586002)(36756003)(11346002)(66066001)(2201001)(8936002)(71200400001)(305945005)(7736002)(2616005)(478600001)(4326008)(71190400001)(446003)(97736004)(6436002)(256004)(1076003)(2501003)(50226002)(54906003)(6506007)(316002)(81156014)(14454004)(81166006)(53936002)(25786009)(6116002)(52116002)(76176011)(110136005)(3846002)(5660300002)(6512007)(386003)(68736007)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1926; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: UhTSkmN7g2gOdLtU+SFb6f/7KNAQLb0EgJnnrgbGmaf/XvG7WJD9S2aAzNCQz+mXPn5/bLUry/F2abf/IMspRxJ8Swg/qJrKupM1/FZeHvbs4V19BDKRVR/vx54RNfr3k27zejPie1gHpoanazoUYPPdFlm4YWCSlnAzl2gO4LU33p2q0a4GuCWXI2suU3liPSgN0f016WToyTkdcWcGOkAsAcbYdmT8b6hMiwxzmg7j+Y2WPf1SO5VZV5LSiR0epoUKJpPKr+zVCnexnYo5+7MWEtVVK9UdUn4httu7opPkuPOC19MGSAN10yezYoGOlxMjfaULs465isy5h1NRVw8aOBntTy1zbCzHeb9E04DMvOcPwcoNX8tX2BVijlnPeEHBDMNAmzBSgF2W0EzmnZRVVPBcuCs63RS6EQozHpY= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: f5e444c1-2b9e-49d8-aeaf-08d6b7510ee9 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Apr 2019 09:53:29.4246 (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: CY4PR1801MB1926 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-02_04:, , signatures=0 Subject: [dpdk-dev] [PATCH v6 2/4] app/testpmd: use bulk ops for allocating segments 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 bulk ops for allocating segments instead of having a inner loop for every segment. This reduces the number of calls to the mempool layer. Signed-off-by: Pavan Nikhilesh --- app/test-pmd/txonly.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index 0d411dbf4..65171c1d1 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -155,6 +155,7 @@ static void pkt_burst_transmit(struct fwd_stream *fs) { struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; + struct rte_mbuf *pkt_segs[RTE_MAX_SEGS_PER_PKT]; struct rte_port *txp; struct rte_mbuf *pkt; struct rte_mbuf *pkt_seg; @@ -216,18 +217,23 @@ pkt_burst_transmit(struct fwd_stream *fs) rte_pktmbuf_reset_headroom(pkt); pkt->data_len = tx_pkt_seg_lengths[0]; pkt_seg = pkt; + if (tx_pkt_split == TX_PKT_SPLIT_RND) nb_segs = random() % tx_pkt_nb_segs + 1; else nb_segs = tx_pkt_nb_segs; - pkt_len = pkt->data_len; - for (i = 1; i < nb_segs; i++) { - pkt_seg->next = rte_mbuf_raw_alloc(mbp); - if (pkt_seg->next == NULL) { - pkt->nb_segs = i; + + if (nb_segs > 1) { + if (rte_mempool_get_bulk(mbp, (void **)pkt_segs, + nb_segs)) { rte_pktmbuf_free(pkt); goto nomore_mbuf; } + } + + pkt_len = pkt->data_len; + for (i = 1; i < nb_segs; i++) { + pkt_seg->next = pkt_segs[i - 1]; pkt_seg = pkt_seg->next; pkt_seg->data_len = tx_pkt_seg_lengths[i]; pkt_len += pkt_seg->data_len; From patchwork Tue Apr 2 09:53:33 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: 52090 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 B6A5E4F9B; Tue, 2 Apr 2019 11:53:58 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id EBB154CA9 for ; Tue, 2 Apr 2019 11:53:57 +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 x329j38j014051; Tue, 2 Apr 2019 02:53:57 -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=mX1WT4Pb1HmpArq5smM+bHGDHdq9F3s+w0CTpO7aUOA=; b=ICnS2waF5/BdsLgcoV4IrBqKsY0KWiDL9E2v9Pno1wta7qdM6YY664N8NHyvfcSeTZ0h YvQDxuq4NAm6TEgwbTC/Pnt5wTaAOpqhpSkVSLa/6GtFds8kh1+7gyA3UZOhkWsLYq+M K4pup+wUVQbnMR4HygaVf1ujaSRH1OOaaq0SKCs/CRbe7ORicbSwRBVoLiziATPbsOIR XHpuNPeiUew3yhaUA8FSH1ikrm12esACpjyrFU7dyZH4Yfkd0H1tG2E4hMnJp/ICeTME o1doN71osiP2n5dziBMkInaSdrypLQ8mACR5jZm896kg87HSe81vVp1DO5vwoGVvbrbi 7Q== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2rkrb49wyv-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 02 Apr 2019 02:53:57 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 2 Apr 2019 02:53:44 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (104.47.32.57) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Tue, 2 Apr 2019 02:53:44 -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=mX1WT4Pb1HmpArq5smM+bHGDHdq9F3s+w0CTpO7aUOA=; b=Rl322w4ojcMV5ch+TTKzKe/uIxZWQzLDCbJOiiq70gDDGLqtPyiVBzfJVw89Wc3EkiWT9eribzaliWSJG9iJA87WqX7Oi0pe4PqL+u2kgKZH9ux8i3rxm4McG+V6gQ/OHOG7KIDNrt/TCJkzRMxdR+ZuB3mZLAZpG2fG4kl64Bo= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB1926.namprd18.prod.outlook.com (10.171.255.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.15; Tue, 2 Apr 2019 09:53:33 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d%3]) with mapi id 15.20.1750.021; Tue, 2 Apr 2019 09:53:33 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "ferruh.yigit@intel.com" , "bernard.iremonger@intel.com" , "alialnu@mellanox.com" CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula Thread-Topic: [dpdk-dev] [PATCH v6 3/4] app/testpmd: move pkt prepare logic into a separate function Thread-Index: AQHU6Tnuk6OIfXNVpkavSaGgCzn9HA== Date: Tue, 2 Apr 2019 09:53:33 +0000 Message-ID: <20190402095255.848-3-pbhagavatula@marvell.com> References: <20190228194128.14236-1-pbhagavatula@marvell.com> <20190402095255.848-1-pbhagavatula@marvell.com> In-Reply-To: <20190402095255.848-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR0101CA0029.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:1a::15) 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: [115.113.156.3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5351d818-27f9-496f-84a9-08d6b751111c x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:CY4PR1801MB1926; x-ms-traffictypediagnostic: CY4PR1801MB1926: x-microsoft-antispam-prvs: x-forefront-prvs: 0995196AA2 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(346002)(39860400002)(376002)(189003)(199004)(6486002)(8676002)(55236004)(102836004)(106356001)(26005)(486006)(186003)(86362001)(476003)(107886003)(2906002)(105586002)(36756003)(11346002)(66066001)(2201001)(8936002)(71200400001)(305945005)(7736002)(2616005)(478600001)(4326008)(71190400001)(446003)(97736004)(6436002)(256004)(1076003)(2501003)(50226002)(54906003)(6506007)(316002)(81156014)(14454004)(81166006)(53936002)(25786009)(6116002)(52116002)(76176011)(110136005)(3846002)(5660300002)(6512007)(386003)(68736007)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1926; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: lGZ0djcqH7g8qtVeVwfxhmQgAJL0dm5jBUqA/OItyZvMdCliWs+t/zO16lSRJn63CcXoX9g/SlVTenC6ISQMunqD3mzuXVnYRiynVzE9LdhLRkMZCc+MKwoKTuGS5+RI23Pg3mG35Wbt/q5Y3CYUZ401WENPTJn/hphc/4Tr4T/x3BJIlTKXcE4rZD2UvLOwIo7PJfpGbPUaa/kIWUMjn+luvAhU+pSI9evWiu/48hlS5oZEAE53SInEe4E/Jc0RBparUuP3GSkddODTO8sWYf4rGR5ISvAoV2i9lys/eHnaJ6ZHZM5QsWE7RfsZUV7BbjJbXmPgNIGL/5Zcrf9ACH1o72ivjvnROm18epr/HeY+zv1zRDel1Uuii+EGjegEtNhvgZ6ybGcAjRa7UfHlP1Evjr2T5Vo2rB7DI/r8wPY= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 5351d818-27f9-496f-84a9-08d6b751111c X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Apr 2019 09:53:33.1192 (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: CY4PR1801MB1926 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-02_04:, , signatures=0 Subject: [dpdk-dev] [PATCH v6 3/4] app/testpmd: move pkt prepare logic into a separate function 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 Move the packet prepare logic into a separate function so that it can be reused later. Signed-off-by: Pavan Nikhilesh --- app/test-pmd/txonly.c | 163 +++++++++++++++++++++--------------------- 1 file changed, 83 insertions(+), 80 deletions(-) diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index 65171c1d1..56ca0ad24 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -148,6 +148,80 @@ setup_pkt_udp_ip_headers(struct ipv4_hdr *ip_hdr, ip_hdr->hdr_checksum = (uint16_t) ip_cksum; } +static inline bool +pkt_burst_prepare(struct rte_mbuf *pkt, struct rte_mempool *mbp, + struct ether_hdr *eth_hdr, const uint16_t vlan_tci, + const uint16_t vlan_tci_outer, const uint64_t ol_flags) +{ + struct rte_mbuf *pkt_segs[RTE_MAX_SEGS_PER_PKT]; + uint8_t ip_var = RTE_PER_LCORE(_ip_var); + struct rte_mbuf *pkt_seg; + uint32_t nb_segs, pkt_len; + uint8_t i; + + if (unlikely(tx_pkt_split == TX_PKT_SPLIT_RND)) + nb_segs = random() % tx_pkt_nb_segs + 1; + else + nb_segs = tx_pkt_nb_segs; + + if (nb_segs > 1) { + if (rte_mempool_get_bulk(mbp, (void **)pkt_segs, nb_segs)) + return false; + } + + rte_pktmbuf_reset_headroom(pkt); + pkt->data_len = tx_pkt_seg_lengths[0]; + pkt->ol_flags = ol_flags; + pkt->vlan_tci = vlan_tci; + pkt->vlan_tci_outer = vlan_tci_outer; + pkt->l2_len = sizeof(struct ether_hdr); + pkt->l3_len = sizeof(struct ipv4_hdr); + + pkt_len = pkt->data_len; + pkt_seg = pkt; + for (i = 1; i < nb_segs; i++) { + pkt_seg->next = pkt_segs[i - 1]; + pkt_seg = pkt_seg->next; + pkt_seg->data_len = tx_pkt_seg_lengths[i]; + pkt_len += pkt_seg->data_len; + } + pkt_seg->next = NULL; /* Last segment of packet. */ + /* + * Copy headers in first packet segment(s). + */ + copy_buf_to_pkt(eth_hdr, sizeof(eth_hdr), pkt, 0); + copy_buf_to_pkt(&pkt_ip_hdr, sizeof(pkt_ip_hdr), pkt, + sizeof(struct ether_hdr)); + if (txonly_multi_flow) { + struct ipv4_hdr *ip_hdr; + uint32_t addr; + + ip_hdr = rte_pktmbuf_mtod_offset(pkt, + struct ipv4_hdr *, + sizeof(struct ether_hdr)); + /* + * Generate multiple flows by varying IP src addr. This + * enables packets are well distributed by RSS in + * receiver side if any and txonly mode can be a decent + * packet generator for developer's quick performance + * regression test. + */ + addr = (IP_DST_ADDR | (ip_var++ << 8)) + rte_lcore_id(); + ip_hdr->src_addr = rte_cpu_to_be_32(addr); + } + copy_buf_to_pkt(&pkt_udp_hdr, sizeof(pkt_udp_hdr), pkt, + sizeof(struct ether_hdr) + + sizeof(struct ipv4_hdr)); + /* + * Complete first mbuf of packet and append it to the + * burst of packets to be transmitted. + */ + pkt->nb_segs = nb_segs; + pkt->pkt_len = pkt_len; + + return true; +} + /* * Transmit a burst of multi-segments packets. */ @@ -155,10 +229,8 @@ static void pkt_burst_transmit(struct fwd_stream *fs) { struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; - struct rte_mbuf *pkt_segs[RTE_MAX_SEGS_PER_PKT]; struct rte_port *txp; struct rte_mbuf *pkt; - struct rte_mbuf *pkt_seg; struct rte_mempool *mbp; struct ether_hdr eth_hdr; uint16_t nb_tx; @@ -166,15 +238,12 @@ pkt_burst_transmit(struct fwd_stream *fs) uint16_t vlan_tci, vlan_tci_outer; uint32_t retry; uint64_t ol_flags = 0; - uint8_t ip_var = RTE_PER_LCORE(_ip_var); - uint8_t i; uint64_t tx_offloads; #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES uint64_t start_tsc; uint64_t end_tsc; uint64_t core_cycles; #endif - uint32_t nb_segs, pkt_len; #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES start_tsc = rte_rdtsc(); @@ -201,85 +270,19 @@ pkt_burst_transmit(struct fwd_stream *fs) for (nb_pkt = 0; nb_pkt < nb_pkt_per_burst; nb_pkt++) { pkt = rte_mbuf_raw_alloc(mbp); - if (pkt == NULL) { - nomore_mbuf: - if (nb_pkt == 0) - return; + if (pkt == NULL) + break; + if (unlikely(!pkt_burst_prepare(pkt, mbp, ð_hdr, vlan_tci, + vlan_tci_outer, ol_flags))) { + rte_pktmbuf_free(pkt); break; } - - /* - * Using raw alloc is good to improve performance, - * but some consumers may use the headroom and so - * decrement data_off. We need to make sure it is - * reset to default value. - */ - rte_pktmbuf_reset_headroom(pkt); - pkt->data_len = tx_pkt_seg_lengths[0]; - pkt_seg = pkt; - - if (tx_pkt_split == TX_PKT_SPLIT_RND) - nb_segs = random() % tx_pkt_nb_segs + 1; - else - nb_segs = tx_pkt_nb_segs; - - if (nb_segs > 1) { - if (rte_mempool_get_bulk(mbp, (void **)pkt_segs, - nb_segs)) { - rte_pktmbuf_free(pkt); - goto nomore_mbuf; - } - } - - pkt_len = pkt->data_len; - for (i = 1; i < nb_segs; i++) { - pkt_seg->next = pkt_segs[i - 1]; - pkt_seg = pkt_seg->next; - pkt_seg->data_len = tx_pkt_seg_lengths[i]; - pkt_len += pkt_seg->data_len; - } - pkt_seg->next = NULL; /* Last segment of packet. */ - - /* - * Copy headers in first packet segment(s). - */ - copy_buf_to_pkt(ð_hdr, sizeof(eth_hdr), pkt, 0); - copy_buf_to_pkt(&pkt_ip_hdr, sizeof(pkt_ip_hdr), pkt, - sizeof(struct ether_hdr)); - if (txonly_multi_flow) { - struct ipv4_hdr *ip_hdr; - uint32_t addr; - - ip_hdr = rte_pktmbuf_mtod_offset(pkt, - struct ipv4_hdr *, - sizeof(struct ether_hdr)); - /* - * Generate multiple flows by varying IP src addr. This - * enables packets are well distributed by RSS in - * receiver side if any and txonly mode can be a decent - * packet generator for developer's quick performance - * regression test. - */ - addr = (IP_DST_ADDR | (ip_var++ << 8)) + rte_lcore_id(); - ip_hdr->src_addr = rte_cpu_to_be_32(addr); - } - copy_buf_to_pkt(&pkt_udp_hdr, sizeof(pkt_udp_hdr), pkt, - sizeof(struct ether_hdr) + - sizeof(struct ipv4_hdr)); - - /* - * Complete first mbuf of packet and append it to the - * burst of packets to be transmitted. - */ - pkt->nb_segs = nb_segs; - pkt->pkt_len = pkt_len; - pkt->ol_flags = ol_flags; - pkt->vlan_tci = vlan_tci; - pkt->vlan_tci_outer = vlan_tci_outer; - pkt->l2_len = sizeof(struct ether_hdr); - pkt->l3_len = sizeof(struct ipv4_hdr); pkts_burst[nb_pkt] = pkt; } + + if (nb_pkt == 0) + return; + nb_tx = rte_eth_tx_burst(fs->tx_port, fs->tx_queue, pkts_burst, nb_pkt); /* * Retry if necessary From patchwork Tue Apr 2 09:53:36 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: 52091 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 CA76B5589; Tue, 2 Apr 2019 11:54:00 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 1D0E25424 for ; Tue, 2 Apr 2019 11:53:59 +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 x329j38l014051; Tue, 2 Apr 2019 02:53:58 -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=bgierSivJ9Wec3fS0gTO+/JkdYY4ZwxqD2zSD1XC0lQ=; b=XuTVROQuy5odYglXr6OR7VYSWGhi57EZN+D8SCwEBA/JPJdhZW9UTkE7uiDkYrW7QWDR q6/3LRod17t9OnYz0/1sKz1/cXaqA9o4jHHMeelUWELlXtb3z9mLuBhMow4tKLX1jnJU vy4N4Xps+WVTp6QJgGKlFkAM8T+F8gIwwcIgbyZEclR9BpftZikVBiXRHDzp97336yMm vIpFS10+8AwWXP7iHmDNY7Nf5c5GlI3Xn3ULuFnLFNRv6wR+uKDOrA+xycDMIzwnnP+i 1nrRactdLjP/shCAhFeqIVXKMEYfoD4/cDSVs0lSwLA+RCyOdsFF1tHV8doQyI5ES05v bQ== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2rkrb49wyv-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 02 Apr 2019 02:53:58 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 2 Apr 2019 02:53:55 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (104.47.32.57) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Tue, 2 Apr 2019 02:53:55 -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=bgierSivJ9Wec3fS0gTO+/JkdYY4ZwxqD2zSD1XC0lQ=; b=iVy9yCBdcbsb/+WDgJX+jISPYtN1dU+CY2y/EwQeHcqCG4oBL86sxeQJkpgcvI+ON79pt+ZVYjaZ21phLMr3EaocqaOjsDYEOZtgQTWubo78ZU/sL+vN1GIOE9mD7SRzoF2RExfd0J1WquUyC19o4bKtpkuSmgx2Ml2axvSY3ds= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB1926.namprd18.prod.outlook.com (10.171.255.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.15; Tue, 2 Apr 2019 09:53:37 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::e980:fa09:c83a:851d%3]) with mapi id 15.20.1750.021; Tue, 2 Apr 2019 09:53:37 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "ferruh.yigit@intel.com" , "bernard.iremonger@intel.com" , "alialnu@mellanox.com" CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula , Yingya Han Thread-Topic: [dpdk-dev] [PATCH v6 4/4] app/testpmd: add mempool bulk get for txonly mode Thread-Index: AQHU6TnxNNXgRzJmD0Wnzkp7ILi1DQ== Date: Tue, 2 Apr 2019 09:53:36 +0000 Message-ID: <20190402095255.848-4-pbhagavatula@marvell.com> References: <20190228194128.14236-1-pbhagavatula@marvell.com> <20190402095255.848-1-pbhagavatula@marvell.com> In-Reply-To: <20190402095255.848-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR0101CA0029.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:1a::15) 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: [115.113.156.3] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c5981ad5-626d-4c76-bd8c-08d6b751136d x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:CY4PR1801MB1926; x-ms-traffictypediagnostic: CY4PR1801MB1926: x-microsoft-antispam-prvs: x-forefront-prvs: 0995196AA2 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(346002)(39860400002)(376002)(189003)(199004)(6486002)(8676002)(55236004)(102836004)(106356001)(26005)(486006)(186003)(86362001)(476003)(2906002)(105586002)(36756003)(11346002)(66066001)(2201001)(8936002)(71200400001)(305945005)(7736002)(2616005)(478600001)(4326008)(71190400001)(446003)(97736004)(6436002)(256004)(1076003)(2501003)(50226002)(54906003)(6506007)(316002)(81156014)(14454004)(81166006)(53936002)(25786009)(6116002)(52116002)(76176011)(110136005)(3846002)(5660300002)(6512007)(386003)(68736007)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1926; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: SOZqTNV4XOxSQvsFHJT79VDMqLPHZEbgAtM9cXBkIC7uqaSs56OgjenyVqdRho8PhP66Ab8uTK+uubJTf/BSHkgNbGszeV/B1PUviyRpbw6D/3OTDhy7i/S+5tlvYa3F9cZbsjgRKOa4eDEjqxs9dEV1mXioVMuMMivoWILDAvdf7K9qdZeZ9pV0OzueLpA6m4HKDKmNuCwhewyeHGNT0xcSiwZYn6ePHeUPoegTJbaBAEaYMiFtq1/kn0n5gp5wsvt/bJKmvV60Z5Lg2RPiztLRt2HPzhZd8d025zZkvQfOEWjuV768EcI+PTbFsGuNO5e09BJENus7YNW3LqvssXPjfmZku472V2sXH2Vt18g/8SepzrZZmMy6kEB7ycyeWMPxSf/YXFQk9EzDI9tGKeLqqFa5gKaNx3cEopc9yKM= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c5981ad5-626d-4c76-bd8c-08d6b751136d X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Apr 2019 09:53:36.9979 (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: CY4PR1801MB1926 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-02_04:, , signatures=0 Subject: [dpdk-dev] [PATCH v6 4/4] 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 | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index 56ca0ad24..66e63788a 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -268,16 +268,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_pktmbuf_free(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_pktmbuf_free(pkt); + break; + } + pkts_burst[nb_pkt] = pkt; } - pkts_burst[nb_pkt] = pkt; } if (nb_pkt == 0)