From patchwork Fri Jun 8 17:23:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40900 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 BE4761BAA8; Fri, 8 Jun 2018 19:25:03 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0050.outbound.protection.outlook.com [104.47.42.50]) by dpdk.org (Postfix) with ESMTP id E51761B009 for ; Fri, 8 Jun 2018 19:25:01 +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=6jtbS+fUztWoJI+t4OjEC9d/uUmLTtN926MxAuWiOqY=; b=cVmnOpq9Y5TdbabhDDd25BQO8ZdtBa+UNl9S6NeR/6kGpTogkJhByK5NvbTFvxU1b5P5FeYO2w4k9lYKOpFf/SBgylDV574ubSVpniEk5+JdoacUM0+K3k12twnqBxtq3y7WmZ9CwcBmSnBMqAEXI3r4o33wDQLdpDg5BAh+46E= 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 DM6PR07MB4906.namprd07.prod.outlook.com (2603:10b6:5:a3::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.17; Fri, 8 Jun 2018 17:24:57 +0000 From: Anoob Joseph To: Bruce Richardson , Jerin Jacob , Pablo de Lara Cc: Anoob Joseph , Hemant Agrawal , Narayana Prasad , Nikhil Rao , Pavan Nikhilesh , Sunil Kumar Kori , dev@dpdk.org Date: Fri, 8 Jun 2018 22:53:59 +0530 Message-Id: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: BM1PR0101CA0050.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:19::12) To DM6PR07MB4906.namprd07.prod.outlook.com (2603:10b6:5:a3::11) 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:DM6PR07MB4906; X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 3:YB3+cI9FJUZOVEI3VTuqdfbmcYb3UG/8wfNhmoBNgHwjHgjeZcHioiSLDcKYeGXR68tfBlQPJChekeutSbIgGg68OBTX9QN8nY1lBBTNR6kLzlzZ143xjeD3kznznNiezvSzeSrvc/fEdm3iOWphOgMZM9JQTlRkVuua8fiYOrSVK+mIm1bECVnGjokkVfqIqUbmwFrZpmkCJj2FPoUTkgjXYULzwTFH1T4P5q0PUzMjUZ8sBBo8OY/EhyJ5n9Ut; 25:ZInG3JWEB6/HUdXwjej0cAokZpdrnOtVV8Cv74gy6kbCBrjju0Q7h0RYm7XgurXG9jAKBFrvJXYVJHEMUm/xdsGq/g2X7u+JISZ/uyFh/lzmZLD1xZJP/ITVwk6IX4XPe2wEUS1kZ6UpzazoQhbnFEegBkAp3nlOS6mOgduKCzgtBp3gEBEolSn9+xduajVX1EDkjBr822f6cs9EQfF/58a7llwUn54JWWEfVl4pK5Tm6iu9j+Y0m3d5XXY7E+/sbv6We8pzZ1PyYAygoeKJkhg3/caT2oNDBCzYmpgBotcFQBEEgKRhQra0TnjQvt1DoF8NYoJkgoa30OTIZ2qhUA==; 31:Vf21E1DJRE9lWHjGE4n37DbE7eIzdEfgeDIV1D7RhOGNf+c4yRBnW8bKji+Bvix5PGCvYYGX0VSAdl8JUM4dHq/ujzmh8Moyvtaz1LJVEYOJHGrlrETaZ4XdmRJErn3GH2Q60drDjDajiVYn8WxhvI7ETlTBbeC5chOYByysk2MlC78DbrWDOPAbm7j4G3NvQ/Oz2eEoyOEYUOXwana4vmLeWY+RUfJ74KPaGUbZnI4= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:oaLtXORWwzNKoUkN5LtEyUFkg2CfTd2m5DyhSwgpOle+x23KwbEUVu1CKfrWIGGdtDmgRRfDOZxuZFnglGK6nF8sFoX9huN28T/63WWxi70WF9uKKvN77sfHKSORu88+w8im0OKDTW42WTL+q0Av0bKpFNifMvCrz5X/xzhD7e0SMcZANDET11Brb5XCQaR2BiqFbTBQPQHf7pwXT13edNBZVRzQPVKRmRVoIJb/QE8+D5m71K/uj1huT9amZXPNQEI9dswDX4aYqp6jTQkQ4a6wtLANkmvpOJuUfM5WnPzcTGug+IvEDhmhpZx0ufT4UsXm1vOdfXa3vYCEf1i/Vyn7B6Wu2uBJqIrajr1zMXhL6t7mnn0TAIs/kpQlieT9KcOd4muMRA30oeV//i2jHUh7ewvrk+dqQpjS1TqTC/JE33i/vCIJBrcsdTJ9foJ16iN5lWcYWcBkX8jGsC9QFCe3GT58zOherAUrF3tBjijmFXUeAulKmXIo9JZQg+AxvtiJsoCxjPufVXa0+Nsx+ezjrqJlY1MBCK8Q5yXUt6yPAJjim2Aqp94pNBiOFLvjHmH3vr2tjhTxXUftL38hPRy4rijrsYAw+oLGhYialLk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(185117386973197); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(3231254)(944501410)(52105095)(10201501046)(3002001)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:DM6PR07MB4906; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB4906; X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 4:4TkuaEPx4U9pCDxf4sBc/DQnKhze43EzYT6Gkp3A6Ez/tgTtrRsJzNXzZ4g1grHOkRKjqej0bQMZYTGVhhDT2K3YOledYL/QlFhLHWJk/78jA2z0V2B3oJWO4FDSF6D8qbMeDWsVj8igHhtBwOtdhlgwmy+ujKHaPs4Uwzn86YwRNXPsLg8EmqPUd1aIcjwCyBlHwcRyhI27W39YcOCvMn85ilGdwKtrC6beZyxUNgOt+O1nS6FxhloSkhqYwYHWhVWMQ1bZFqi6/DN1op1lqtkBzkQL8JFAyBz9Yjlybu3rL7p4ptIW69H+i/n0XtrdOqjEPE9p+03n7jblyr/qgKrfsdovud84v4jNyvn25IE= X-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(366004)(376002)(396003)(39380400002)(189003)(199004)(186003)(16526019)(5660300001)(26005)(42882007)(55236004)(66066001)(47776003)(68736007)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(50226002)(81166006)(44832011)(6506007)(386003)(486006)(59450400001)(51416003)(48376002)(50466002)(97736004)(316002)(6512007)(25786009)(53936002)(6486002)(81156014)(4326008)(3846002)(6116002)(16586007)(54906003)(110136005)(105586002)(106356001)(72206003)(478600001)(8656006); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB4906; H:ajoseph83.caveonetworks.com.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR07MB4906; 23:rVMtFPHdgvdZxrpmJwJqVvHVI4UXSXMqDD0W+ymZA?= PshAq8Clhqn66OelJZfLHbu1kOKWEPSrYfN3noIayw9svztNZV1akGSEsd+RsWXSsoI7W+e/oWzCyzdI/C9sBnffmnngQFJjPQaHoJDRc7pXhpFNzDq1h7nFy6sqBAhRLxTqqjTenIQ7qQ74kmG3S4gm8FQn2Zl61m0xCacupNMh3Nzpp9q66Yp/f0U87+75k07p+HZ64BM10oEjIKhTIbrqD/JHhLBIvPDzvk60U5NGg5+2OrDFz0cPQERRDDtdbl7/Te//kJFp9aIR5WVD63G3621iHhJwFju/PH1bFsTGgulXt/4SJwlLEOw0O/SKWdmAuwrtKyzykKF/Z3XoLpqkCE9irRIWfO6d4jueXA69DxV0UM+T2L4rr1BohWOkTGZj1C6eu1/YIU2MAvjAHThX+X8h59qZoaqhThJNpGFT4fKyBXhWSlAoHL1t2G8k4caNeoxzC3O20syY3p0LaSRNYi7HBJ0IKGQIhfFw75iQAcDqpfOhS63yc15YSnUIi4azRLJUuUMjdoCU0nuA3KRzb4YhOuQuNCHIuCDNp5RGkqrSCRavZFXL0utblboc7uUZDdYdzS6GYtQg6oPb2bjHEpQ9DAkBs8kd7u+ZpvhgLOw1F4ILCEP20L/siUqyJPWzsrkpdzXzp6Xh7bJoBEdn+ai+grLQ5G9JYkw93AtZKQIooRzQxswwOYCBra6reImmmGZIiN1YW7JUVCKZUQQt4pT3WROroJ1pL5DISjXYSexECRAM+2hfzfEByMV4Fx+FWOyaJgPAO7keHz+cQJ6g2OU8JJr+S1QYl2JsCNuQ+nXo8a+8eR3GM3Tt+8llZKKm6B9NqztQOtS2OzHAchkHz+Fq2PIsugHLyY53Ysm3S8oOwscLBfqXiCvwTuGd30b/ILeT7U4BIhal9x7YOkhnUnsrQ72euBWxVmg7f2RU4II3f//EnnMl7tqk/wWsR7La2tAvDMiIhcABf+efNG9vr/E4+4tm44FdLMFrGtkG2vRJZbNrdctwIxH3SrJZu46/qVm+ygN6wxHuYbuRHKylrX26kb86cJ1bplMsbvNAJRVvsF3NgPqNjGFkiL60YR+06jazRtSxDSkBVHl/ighXdFlk5Q1XNfCaTSXIyB/blXXq1Nb1g4kIga3EQSIiMJMH7g8HWnxnPLNxqmMnUceXOSuLVKRdY20Oa0vGTCHYA== X-Microsoft-Antispam-Message-Info: 4+Y8tYzEcC6MVZ9usX5jwqZ2ib6yVYWuxW2qXHieOJCE9nSlGTSwVXH6C21FPr/A0+FiSwDycdC9zDcvmGknXcGGyJ7mbcsc0VwxVhxoyxURfWUagg0upZ/Lr4QRB6S6kldcq7mJoK/Y35pvCvYDYIh6QbBp4SeatG0gakAz8YFngMN91DrqPBk/dUs1pFn9 X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:4TBvo95IftoL4RsKsSO6uHCf3pHUkR8xD8Dyci9uX2wR0MokymY/V7S4uOYaNb8Z6z69AvWUqIVRgQ4S1fJSX4T7Z8lWZg0Npsl8MPzP0WSQXRFiFP0uIqOvAik3OsCKtRjZIwLLI8T4l2NlUJjH7oYXrYHcBtrrjG6JsZBMIpVsWrviQSmO0yHNNMAWpWdnyLfCx5aB6loAETioouynL8JgGWbI8tx+UDJOToMpPFrYU7OakpCNRrG3hxXEA4ADMzcPdraoiXI3kLgPQru8WlEJWqH3dEgf3dlnDJ1fcDCEffkvUxry7S2G/ZjTUmHnUfGj91NAF2w8j2nd1odDMJCNaHjJAkxP3Uu77DOtKQtb0NPeuiZz5aYL24dNFptCJQ3mr0yqGJCLD+7BL496P8uXvRvRpT6SFZUA3DjHgyBFlU0vAKOVRkXUWd++GfR0SmxOVH4b0mHwtj6QfOywGQ==; 5:Q342eh3OAXTx99sck1orv2FIWc0eQKmnnwAeoZZiOdaIKABM4fdRvoNPIthU3AtwRtaVnqLA6vXSZQmY3kkCY78VRXm2ZfMdrnUxOBcr1S9Z6VdDu+/onvEGv6eHhp1tGMqQsXwkbimYrsL/c45DDFSnOZQ/kY6NZsK5MAsu/jg=; 24:jVBegivA+7o5W7vdmA983gub2U4ldG7tmRljVD2s90kivXDEwbJ83QVXRQdZEzZNWUFQbVnlQg0Kmhht6OaW73A9jX4AqBvrBdVZtBraPrM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:Dd2TSfhBea1o7pSotjkBbcUw/kjEzsf7CibAF8c5gTskBmkF52HxU0pO4/NGs3ukuydtJVSw1zM17c2BPZWGUNRCqB3tpZoBuj94OlWb96KvEjOMNLNLsUnN+Lg19xQgRpK2NKrgGqWtQRtj6Q7Z8J/u3oUGgg6JXNdbZvdbLF+xq5U/Yi+ZsD7KNkRuEHpj8W1N5m/B7jsqOTCw7eZu9oqzEixZXS24TP8YFm95fS1FQK9Jm2sUw+LQW6PdnANc X-MS-Office365-Filtering-Correlation-Id: a76e10a4-a4af-4d4b-883d-08d5cd64c375 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:24:57.4351 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a76e10a4-a4af-4d4b-883d-08d5cd64c375 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB4906 Subject: [dpdk-dev] [PATCH 00/20] add eventmode helper functions 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" This patchset adds common initialization code required for using applications in event mode. The APIs exposed, abstracts the complex configuration options exposed by eventdev, ethdev & eth rx adapter. Also, this enables the usage of multiple workers fine tuned for the features of the underlying hardware. With these APIs, existing poll mode applications can be made event driven easily, and the applications can better leverage the event mode's capabilities. L2fwd application has been made event-driven to demonstrate the usage of helper APIs. Tested with nicvf eth PMD and event_octeontx event PMD on Cavium's CN83XX platform. Parts of this patchset is inspired by an RFC send by Sunil Kumar Kori Anoob Joseph (20): eventdev: add files for eventmode helper eventdev: add routines for logging eventmode helper eventdev: add eventmode CL options framework eventdev: allow application to set ethernet portmask eventdev: add framework for eventmode conf eventdev: add common initialize routine for eventmode devs eventdev: add eventdevice init for eventmode eventdev: add eventdev port-lcore link eventdev: add option to specify schedule mode for app stage eventdev: add placeholder for ethdev init eventdev: add Rx adapter init in eventmode eventdev: add routine to validate conf eventdev: add default conf for event devs field in conf eventdev: add default conf for Rx adapter conf eventdev: add default conf for event port-lcore link eventdev: add routines to display the eventmode conf eventdev: add routine to access eventmode link info eventdev: add routine to access event queue for eth Tx eventdev: add routine to launch eventmode workers examples/l2fwd: add eventmode for l2fwd config/common_base | 1 + examples/l2fwd/l2fwd_worker.c | 815 +++++++++++- examples/l2fwd/main.c | 64 +- lib/librte_eal/common/eal_common_log.c | 1 + lib/librte_eal/common/include/rte_log.h | 1 + lib/librte_eventdev/Makefile | 3 + lib/librte_eventdev/rte_eventmode_helper.c | 1293 ++++++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper.h | 213 ++++ .../rte_eventmode_helper_internal.h | 130 ++ lib/librte_eventdev/rte_eventmode_helper_prints.c | 161 +++ 10 files changed, 2667 insertions(+), 15 deletions(-) create mode 100644 lib/librte_eventdev/rte_eventmode_helper.c create mode 100644 lib/librte_eventdev/rte_eventmode_helper.h create mode 100644 lib/librte_eventdev/rte_eventmode_helper_internal.h create mode 100644 lib/librte_eventdev/rte_eventmode_helper_prints.c