Message ID | 1528477766-15788-1-git-send-email-anoob.joseph@caviumnetworks.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 8134F5F48; Fri, 8 Jun 2018 19:10:20 +0200 (CEST) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0089.outbound.protection.outlook.com [104.47.34.89]) by dpdk.org (Postfix) with ESMTP id 0C13B5B32 for <dev@dpdk.org>; Fri, 8 Jun 2018 19:10:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a2VFvTFWKc1+kGyQrDabVIx1waMK0d/4ov0R9x6rfeQ=; b=RwjUfb7812Ty3vdSIhDfuTZhk+GwaYgIa+93IdAD5zFQPCgps0499Iu0kgYHv3w5hpc4PdU3zUBww/VO3vEFP5OzmGHJ+6TJulHd3BihrTkFQLxo/SywmFaPwPNvr//mLo1BwN8VQfkTISKuJeNfrxhPvEFMMIdLZr4vR2WDjUQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Anoob.Joseph@cavium.com; Received: from ajoseph83.caveonetworks.com.caveonetworks.com (115.113.156.2) by SN6PR07MB4911.namprd07.prod.outlook.com (2603:10b6:805:3c::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.15; Fri, 8 Jun 2018 17:10:14 +0000 From: Anoob Joseph <anoob.joseph@caviumnetworks.com> To: Bruce Richardson <bruce.richardson@intel.com>, Pablo de Lara <pablo.de.lara.guarch@intel.com> Cc: Anoob Joseph <anoob.joseph@caviumnetworks.com>, Jerin Jacob <jerin.jacob@caviumnetworks.com>, Narayana Prasad <narayanaprasad.athreya@caviumnetworks.com>, dev@dpdk.org Date: Fri, 8 Jun 2018 22:39:11 +0530 Message-Id: <1528477766-15788-1-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: BM1PR01CA0111.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00::27) To SN6PR07MB4911.namprd07.prod.outlook.com (2603:10b6:805:3c::29) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:SN6PR07MB4911; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4911; 3:dPFmDtdf82yvfBjzzrHeMC6dodWWxTJC1rSkqtLZpWHHGfRrrQCpfavI0m2JNm8hO8gVqqmswp1t6wrwJebavpnS0IBOSQtVl/JQDy87/auhc1n7bVcAZiPrcYHb8nMSXqHw2yzZ8bLNlkz0pYgLWcOHvg4m0DFPYETUrRQNdokAXUZd/EaSyjIPCFiuyUiZ6Ys+OGpJLD3z+qN0E+yF5To/qk1g9HUJeMCZbjx8ciOmOQtAZfM2EeGI+NP6pr+P; 25:L/5v7aQkVe9E3AHRp91visX3sVfsv+5M8ngf2dxNdKP/jNc+9UqcXmtde6ALjlPqoQHEelmNwioasuSrs4pv+McV10Ksw5hfavZQUI8c05bUanttUdQe792TMRwRlYeKD9QklUrRILP32LKopaU9nMnjpUbxsgw67Rd6ads1+yoeocpZa6TEsZM+HGuaidz2eIZFT6AqIGNq7M6Kbs/orfdMcodCdgWbXMiB9VQjuuQFq4iYwRCqPa6J8er1qNVmz55NoXCKDq0/SqGrTnglhoj3vc9YRO/Cp3DYf8ZhmcKxcn6KDhZjUlRIkjmTKw+YELrXD4PKFrko6+yghMcSaQ==; 31:nKYT2a0QzkD9Y9HwyS1nBDqz8+nIYoiICy8ZJW1e2Yju6jSbct2wM1ucIuLoiYST3xumoupOqu6l/0jav/2gm/v0ms+PnqYZ5gEl9o+IVQFKQegnTT9zLCwx4pO9oUxVqiq3K6Q5PZroTpotwR8RLAIbmpVD0m97AdjuSD2G3wXS5hbQKXmVA7rSiTXCwe0Zh0bMkZOJDCQMKFxCPeuTwpSxoq8kjWTaynpqtJKT7xA= X-MS-TrafficTypeDiagnostic: SN6PR07MB4911: X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4911; 20:MbqG+t7fsJtOhEtNQQEl4iUbP9F1gcpIBV1i98mmvz7z8SzbvsmqwCXIrqJfZhpc6W7nCVeCsDicroCpAmqi0vLcklmK6amFw6f7oQkjkyBj7yi3roi9fazQtrtfWeCxkpF1/oM5isXRcYkWhrSzVrmkvOv8zEmTmi8Fs6uh1fsMo8uhaviak+IJLXUkClGrLPVa2COShjx4oIJPPbcAtOkApfNzqXAtAFB4xDOcJ7dojuPhtBve/+tmGVDhtliAiJ1f8a35QUBJkMUFFPS4f5A5CloyUTObCJJs2bilnUBKO2MZpnhU7hbL2cso8FQlF3tLp4N4XE/bTsMYgNH06tpXKOw/QTTrZFEbd0JoezXs3P/+tF0BraRkuntfObJjywTsXnrK/gvRimFhY9v7yMvp7wCzlzGBl+yIl7jgW/ffeqTNpMaH9wokX1iD8ZBgYAeQpPhr5kfY27jnxmQMCcq2/o7nUWYekQUXUsJYyGM6fEsRgeAHozWQElbvV1nsXcDWAGR5ER0RjP+R0uRXVkaz7Fb0Wpw5WOdN+WA3fTY4essBGqCBJYhisfEtvvgCKdnH2DmoAuVQKJwf2QZyedIBrtGe5P00IXhC9Wsxe3o=; 4:iDhL853P7sMxzXizr1G2b+Jet3vh2I9/2Qr3sDAuMFJqaNRf+qhBGTczAfOtXyKuHtd6vLxm9B2lzw6rW3RkuDqeYWrbPyQy4vXWZi9QfaC4KDWNtin/U7X2kiS+SbvVIjPyiWkqwB/CdMGXIuS3nzhTsuZQD4SGdszpH5CCaeU8L5CTtsFRvr+sVi8X1s7y0ogxFBdM3Pudr+HGsR4KO6aJvgSFwjZY58j5cVo+3rZklM+X0RvEFteCIojpLEiXdONbIzvQlr65R/UODb3J8g== X-Microsoft-Antispam-PRVS: <SN6PR07MB491199CC39423795C74CE652F87B0@SN6PR07MB4911.namprd07.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:SN6PR07MB4911; BCL:0; PCL:0; RULEID:; SRVR:SN6PR07MB4911; X-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39380400002)(39860400002)(376002)(396003)(346002)(199004)(189003)(6666003)(4326008)(54906003)(5660300001)(25786009)(48376002)(50466002)(59450400001)(386003)(186003)(16526019)(2616005)(42882007)(44832011)(51416003)(476003)(66066001)(110136005)(36756003)(316002)(55236004)(2906002)(7736002)(81156014)(81166006)(8936002)(50226002)(106356001)(105586002)(68736007)(52116002)(26005)(956004)(8676002)(305945005)(53936002)(6512007)(47776003)(486006)(478600001)(6486002)(6116002)(72206003)(3846002)(16586007)(6506007)(97736004); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR07MB4911; H:ajoseph83.caveonetworks.com.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN6PR07MB4911; 23:RpmxDsZ8Y+wBXzw/orlqMoKA66szHzSJmUQFzlIT/?= sMbI1agTt+/6um7nkkC1PcCNv+cZDCVAwRvNcCjawKacQpkAaTsPUhMnOuSr+dFw9koX/ZKfiyexn/xdxRmilPG8f+CzcrY/ySDvwx/FODzMVd2wqguFioM+erB32638eUgF/loN+WFFPdFjWtXA6wXpqkbjSf5S9eyOwvx5Ou+36kf1tG6gNliDGcACEGM/fGXpCOPEGKO+0J0yTzFc42vrCRI6TWarygTxLWHqH7S6akZOfZHcLfuSRJkR0OZHsjNRw0SBU7i9B7cMqLmmvBhHocIBlwnBoDyVmN7mJzYNpOgG0wpFCQr4UfnigHNGsx8YpDEAPBkhfWN0OgjzUhsTy/smZomzgz14cAOgoaqlvjLdp79WtU+YiimOIhoCK0ZkyUDg6n/kzd3b45oB5XsPAvcY4eGUMHfRhuHVAbSSjwe09bhZHTBkeuMbX8y2vuduT+C84x7GotaK/iULB080gfWU21owRF/dO1Dya8+bJEyU0Hy+zgj34sSPap2b3cwmPIuftKHej3TxLY97Ljky/SpmK+d/KFR2jeWMUSUDZGC40ANmUI49j0EXusd4OslrO6PCIKTQHst5EkQvz7JBu+IfCC/5dkYrSyQt4JnW3hTxG9pS6Y86UQT9WhE3Gf6cplBWzGgl16A/NYCAlqh1OxguzaYFdxz0DNdtEZuZnQi8NJMQT3RFJraRFyghRq1lt83IbZthqkRIO28fEJLnYc2pf6RFTx7VXb+Rd5Wop/EptWWCdQRC0hVAEhiBE30BzMkoMjVpyzm/zXIFq/8FlU/ecUmT8aeAE3YGDUrSyuDsvFu4DFHLrprlB3kNnLZonh/vdb3qz2jG4I3aFB6ogcWl8bo5k3V/yi1Mjmn5CYmU/MhXfZyulqWNJqopN9gAnTaX3T8C9d8/3xNyVgscMGWB1ctkKoz6vqiZ7ugfuFJTCW2ydFtMEnRNF/q7BofN1KKVCA5OvtVPrkB3Gm76A5He1iSwSQW75e1JQO2Kl9kiPANn6lBpKT8AwlBQ43WX4HMquhFvHWCVmfQJDvYu7Gc6YpzGlhIf55ThqaOlJpjXXpOTjayh4xZ0vsrSluqB1KEpFmyXT++9Ygkbs1zoNSHo5Khhc/3J0odQk3My1TQlP39kaJsn7YT953mW1QQLyg4rodjJcU5fgC5vjOr4VmYvrrb98PP9+wbc6JoYg== X-Microsoft-Antispam-Message-Info: NgGUtLBGQPC1nwfGfxpW10crDct8O/kxb5D5GSrbCAgKrZ108Yd0YGeiwBl8O8z+1pe/ylTswrzWVR/hSEAx4fXncjJ/imvQtfhjPT2FffrKIUXm3xRN45w1sMv6fB+Zrsuzy9P7JDY6Ner47ajDvyMbuP+V4N4lDf6VqS4zZ86iZ/S4qJ3BgCaa++Ik+R9y X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4911; 6:Q1DQrl/FeQyUj1mpjd8iBYqGhptJTr06ciykP4PA6bF2lZH9itiuG4UYB+/zx+MPhxauldiyeXZu7W9uSs6Wr1h2VjfPgMwUhA8CZ+Fy+ZtNdwjx9/ty1zFHU792REn29C56BJDeDjhuC4JpuBCS8Epx4Mj+5nsSdBmPv+ZA93922IabjAPz01ND3VwCojWBwu/2HrJlWlAdiUpNCVPmOxRrHs+Pcd2SdXNTAV2E+5UR4Deb1IhzCZpETuSS06xFuT5kIW+ofX4TjvcxL8MOFnVB07SK28VAacP/cC2ob+AH/Elvq7Ep4yPsN52e3zDclr+/p6PcbNh5VG8qXr/yWVfNlNjMwQ5CxeEl+/VCcw8J9xqEYC2J9XxVuMoq2yyjJgfREnw749jIxPvOk9UfTnwjnNt8lw59Bnvb5IPVfOIkaKDFClzVPOPdOCsueI8sb2+vylwbyTOz1jhS4Cpw8w==; 5:t8Nae7Aolub7DTmrzfauI8pHbyALamUV4yITLHmAibPS6hKGkORGOzYfawI2twby5Zi4S9tIUJ9yGIazlkA2fQzrvqgsu1lgElPi/zOQ0Z/GD+RFx+yPzFRs5dN6v8AURbx6uLR0ImWK3ZKUi4FkznNEzW6o9D4Bvk2T1PtsexI=; 24:Rkj6JzCjlncenjn/LhxqLk9gq4/LSDKwrstujtR9BGLkIzWq3Bf49cKzzrxwMri8X6gsRo8LJ/WanU5Qzrt0b5e106iPdK1di7mwq+RykbE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4911; 7:tkYwZnhdkDRxhF4pzLEhiBf/LpzdQxr5d8oAmzT+DLeTuCES9EMdmJEE7Chswo+cdfvMGgkB4e4tplxol3wtoHVvLfOTwQQVXNLdGuG7n+3m+6ESsvaVsn1Xu/3IflvZEAlSDlqdwD0bRaXEsL76VuH8U4az05GosOM6jjGnsaG04SvVCtErvGYoW5sSr0WyowQrlNLuyV1YGY1CwCy+DU+0U/DONTl5uQBGKCQuZhY//O1dfPBa/2nvbw5eezYG X-MS-Office365-Filtering-Correlation-Id: 4dd9adf3-e3e6-4013-8bd1-08d5cd62b4a0 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:10:14.1867 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4dd9adf3-e3e6-4013-8bd1-08d5cd62b4a0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR07MB4911 Subject: [dpdk-dev] [PATCH 00/15] preparing l2fwd for eventmode additions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
preparing l2fwd for eventmode additions
|
|
Message
Anoob Joseph
June 8, 2018, 5:09 p.m. UTC
This patchset modularizes l2fwd application to prepare it for eventmode additions. This patchset doesn't change the code flow or logic, except for few minor improvements. Some of the newly added functions are used in just one place, but is added for efficient usage with eventmode. Anoob Joseph (15): examples/l2fwd: add new header to move common code examples/l2fwd: move macro definitions to common header examples/l2fwd: move structure definitions to common header examples/l2fwd: move globally accessed vars to common header examples/l2fwd: add missing space examples/l2fwd: fix lines exceeding 80 char limit examples/l2fwd: move dataplane code to new file examples/l2fwd: remove unused header includes examples/l2fwd: move drain buffers to new function examples/l2fwd: optimize check for master core examples/l2fwd: move periodic tasks to new function examples/l2fwd: skip timer updates for non master cores examples/l2fwd: move pkt send code to a new function examples/l2fwd: use fprint instead of printf for usage print examples/l2fwd: improvements to the usage print examples/l2fwd/Makefile | 1 + examples/l2fwd/l2fwd_common.h | 62 ++++++++++ examples/l2fwd/l2fwd_worker.c | 249 +++++++++++++++++++++++++++++++++++++ examples/l2fwd/l2fwd_worker.h | 16 +++ examples/l2fwd/main.c | 276 ++++++------------------------------------ 5 files changed, 363 insertions(+), 241 deletions(-) create mode 100644 examples/l2fwd/l2fwd_common.h create mode 100644 examples/l2fwd/l2fwd_worker.c create mode 100644 examples/l2fwd/l2fwd_worker.h
Comments
This patchset modularizes l2fwd application to prepare it for eventmode additions. This patchset doesn't change the code flow or logic, except for few minor improvements. Some of the newly added functions are used in just one place, but is added for efficient usage with eventmode. v1: * Fix all checkpatch reported issues Anoob Joseph (15): examples/l2fwd: add new header to move common code examples/l2fwd: move macro definitions to common header examples/l2fwd: move structure definitions to common header examples/l2fwd: move globally accessed vars to common header examples/l2fwd: add missing space examples/l2fwd: fix lines exceeding 80 char limit examples/l2fwd: move dataplane code to new file examples/l2fwd: remove unused header includes examples/l2fwd: move drain buffers to new function examples/l2fwd: optimize check for master core examples/l2fwd: move periodic tasks to new function examples/l2fwd: skip timer updates for non master cores examples/l2fwd: move pkt send code to a new function examples/l2fwd: use fprint instead of printf for usage print examples/l2fwd: improvements to the usage print examples/l2fwd/Makefile | 1 + examples/l2fwd/l2fwd_common.h | 63 ++++++++++ examples/l2fwd/l2fwd_worker.c | 249 +++++++++++++++++++++++++++++++++++++ examples/l2fwd/l2fwd_worker.h | 16 +++ examples/l2fwd/main.c | 276 ++++++------------------------------------ 5 files changed, 364 insertions(+), 241 deletions(-) create mode 100644 examples/l2fwd/l2fwd_common.h create mode 100644 examples/l2fwd/l2fwd_worker.c create mode 100644 examples/l2fwd/l2fwd_worker.h
Hi Bruce, Pablo, Any comments on this series? Thanks, Anoob On 14/06/18 17:18, Anoob Joseph wrote: > This patchset modularizes l2fwd application to prepare it for eventmode > additions. This patchset doesn't change the code flow or logic, except > for few minor improvements. Some of the newly added functions are used > in just one place, but is added for efficient usage with eventmode. > > v1: > * Fix all checkpatch reported issues > > Anoob Joseph (15): > examples/l2fwd: add new header to move common code > examples/l2fwd: move macro definitions to common header > examples/l2fwd: move structure definitions to common header > examples/l2fwd: move globally accessed vars to common header > examples/l2fwd: add missing space > examples/l2fwd: fix lines exceeding 80 char limit > examples/l2fwd: move dataplane code to new file > examples/l2fwd: remove unused header includes > examples/l2fwd: move drain buffers to new function > examples/l2fwd: optimize check for master core > examples/l2fwd: move periodic tasks to new function > examples/l2fwd: skip timer updates for non master cores > examples/l2fwd: move pkt send code to a new function > examples/l2fwd: use fprint instead of printf for usage print > examples/l2fwd: improvements to the usage print > > examples/l2fwd/Makefile | 1 + > examples/l2fwd/l2fwd_common.h | 63 ++++++++++ > examples/l2fwd/l2fwd_worker.c | 249 +++++++++++++++++++++++++++++++++++++ > examples/l2fwd/l2fwd_worker.h | 16 +++ > examples/l2fwd/main.c | 276 ++++++------------------------------------ > 5 files changed, 364 insertions(+), 241 deletions(-) > create mode 100644 examples/l2fwd/l2fwd_common.h > create mode 100644 examples/l2fwd/l2fwd_worker.c > create mode 100644 examples/l2fwd/l2fwd_worker.h >
On Tue, Jun 19, 2018 at 03:34:29PM +0530, Anoob Joseph wrote: > Hi Bruce, Pablo, > > Any comments on this series? > > Thanks, > Anoob > > On 14/06/18 17:18, Anoob Joseph wrote: > > This patchset modularizes l2fwd application to prepare it for eventmode > > additions. This patchset doesn't change the code flow or logic, except > > for few minor improvements. Some of the newly added functions are used > > in just one place, but is added for efficient usage with eventmode. > > > > v1: > > * Fix all checkpatch reported issues > > My main concern here is how much this eventmode addition is going to complicate the l2fwd example. l2fwd has always been a pretty basic example app to get users started on the basics of DPDK use, and I'm not sure how much we want to move away from that. Is this eventmode-l2fwd better being a separate app, to allow l2fwd to be kept as simple as it can be? Looking for more thoughts from others here, since it's a community decision as to the scope of the examples. /Bruce
Hi Bruce, Thanks for the feedback. Please see inline. + Hemant, Nikhil, Sunil, Gage, Harry, Narender, Pavan, Thomas, Akhil On 19/06/18 15:39, Bruce Richardson wrote: > On Tue, Jun 19, 2018 at 03:34:29PM +0530, Anoob Joseph wrote: >> Hi Bruce, Pablo, >> >> Any comments on this series? >> >> Thanks, >> Anoob >> >> On 14/06/18 17:18, Anoob Joseph wrote: >>> This patchset modularizes l2fwd application to prepare it for eventmode >>> additions. This patchset doesn't change the code flow or logic, except >>> for few minor improvements. Some of the newly added functions are used >>> in just one place, but is added for efficient usage with eventmode. >>> >>> v1: >>> * Fix all checkpatch reported issues >>> > My main concern here is how much this eventmode addition is going to > complicate the l2fwd example. l2fwd has always been a pretty basic example > app to get users started on the basics of DPDK use, and I'm not sure how > much we want to move away from that. Is this eventmode-l2fwd better being a > separate app, to allow l2fwd to be kept as simple as it can be? > > Looking for more thoughts from others here, since it's a community decision > as to the scope of the examples. > > /Bruce The eventmode helper abstracts most of the changes required by the application to run in eventmode. This was taken up following the comments on a patch submitted by Sunil(sunil.kori@nxp.com). http://patches.dpdk.org/patch/37955/ With eventmode helper, an application can be moved to eventmode with minimal changes. For l2fwd, the key patch which enables eventmode is, http://patches.dpdk.org/patch/40920/ [The aforementioned patch is dependent on this patch series] The bulk of the code in this patch(40920) is adding multiple event mode worker functions.The existing init code and poll mode worker is barely touched. Multiple workers were introduced because a single event mode worker would not have made the best use of the varying capabilities of event devices. Single event mode worker could've demonstrated how minimal the changes can be. But the ability to register multiple workers, fine tuned for varying capabilities, is a good feature to have since it will enable applications to utilize the full potential of the hardware. Eventmode helper patch series: http://patches.dpdk.org/project/dpdk/list/?series=61 The rules that were followed while drafting eventmode helper were very simple, 1. Move any code common to multiple applications to eventmode helper 2. Expose all capabilities of the devices involved (event & eth devs) 3. Minimize changes to the existing code For l2fwd we can opt for a new eventmode-l2fwd app, but this might not work for more complicated apps like l3fwd & ipsec-secgw. L2fwd app will stay the same even with the eventmode additions. It will still be a quick-start, easy-to-use app. In addition to demonstrating DPDK, it will also be able to demonstrate how easily an app can be made to run in eventmode, using the helper functions. With more event adapters getting added (tx adapter, crypto adapter, timer adapter etc), the helper will prove useful in abstracting the complex configuration options exposed by adapters. Similar changes would be required in other example apps, and the additions in l2fwd is to finalize on the approach. The current patch series just re-factors the code with couple of patches fixing preexisting checkpatch issues. The rest of the changes are split into individual patches for ease of review and testing. Hence the large number of patches. Thanks, Anoob
Hi, Gentle reminder! Thanks, Anoob On 19-06-2018 19:37, Anoob Joseph wrote: > External Email > > Hi Bruce, > > > Thanks for the feedback. Please see inline. > > > + Hemant, Nikhil, Sunil, Gage, Harry, Narender, Pavan, Thomas, Akhil > > > On 19/06/18 15:39, Bruce Richardson wrote: >> On Tue, Jun 19, 2018 at 03:34:29PM +0530, Anoob Joseph wrote: >>> Hi Bruce, Pablo, >>> >>> Any comments on this series? >>> >>> Thanks, >>> Anoob >>> >>> On 14/06/18 17:18, Anoob Joseph wrote: >>>> This patchset modularizes l2fwd application to prepare it for >>>> eventmode >>>> additions. This patchset doesn't change the code flow or logic, except >>>> for few minor improvements. Some of the newly added functions are used >>>> in just one place, but is added for efficient usage with eventmode. >>>> >>>> v1: >>>> * Fix all checkpatch reported issues >>>> >> My main concern here is how much this eventmode addition is going to >> complicate the l2fwd example. l2fwd has always been a pretty basic >> example >> app to get users started on the basics of DPDK use, and I'm not sure how >> much we want to move away from that. Is this eventmode-l2fwd better >> being a >> separate app, to allow l2fwd to be kept as simple as it can be? >> >> Looking for more thoughts from others here, since it's a community >> decision >> as to the scope of the examples. >> >> /Bruce > The eventmode helper abstracts most of the changes required by the > application to run in eventmode. This was taken up following the > comments on a patch submitted by Sunil(sunil.kori@nxp.com). > http://patches.dpdk.org/patch/37955/ > > With eventmode helper, an application can be moved to eventmode with > minimal changes. For l2fwd, the key patch which enables eventmode is, > > http://patches.dpdk.org/patch/40920/ > [The aforementioned patch is dependent on this patch series] > > The bulk of the code in this patch(40920) is adding multiple event mode > worker functions.The existing init code and poll mode worker is barely > touched. Multiple workers were introduced because a single event mode > worker would not have made the best use of the varying capabilities of > event devices. > > Single event mode worker could've demonstrated how minimal the changes > can be. But the ability to register multiple workers, fine tuned for > varying capabilities, is a good feature to have since it will enable > applications to utilize the full potential of the hardware. > > Eventmode helper patch series: > http://patches.dpdk.org/project/dpdk/list/?series=61 > > The rules that were followed while drafting eventmode helper were very > simple, > 1. Move any code common to multiple applications to eventmode helper > 2. Expose all capabilities of the devices involved (event & eth devs) > 3. Minimize changes to the existing code > > For l2fwd we can opt for a new eventmode-l2fwd app, but this might not > work for more complicated apps like l3fwd & ipsec-secgw. L2fwd app will > stay the same even with the eventmode additions. It will still be a > quick-start, easy-to-use app. In addition to demonstrating DPDK, it will > also be able to demonstrate how easily an app can be made to run in > eventmode, using the helper functions. > > With more event adapters getting added (tx adapter, crypto adapter, > timer adapter etc), the helper will prove useful in abstracting the > complex configuration options exposed by adapters. Similar changes would > be required in other example apps, and the additions in l2fwd is to > finalize on the approach. > > The current patch series just re-factors the code with couple of patches > fixing preexisting checkpatch issues. The rest of the changes are split > into individual patches for ease of review and testing. Hence the large > number of patches. > > Thanks, > Anoob