From patchwork Fri Jun 8 17:24:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40901 X-Patchwork-Delegate: jerinj@marvell.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 DCC5C1BB0C; Fri, 8 Jun 2018 19:25:06 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0055.outbound.protection.outlook.com [104.47.42.55]) by dpdk.org (Postfix) with ESMTP id C86595F54 for ; Fri, 8 Jun 2018 19:25:04 +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=SpIOCzo67KOrAzPFdJHZEo194DUTcxXOKqe25qwUN4U=; b=D+AyDFWA4YR1wx3URPHhr1ifxuDtGk2k66cb6hs4pBdPFYbFCJYtJjKAZICpz1FkU2fkF/eteRT0HrDuw/jZ5sdDRt3Rcs5XOQbzWtgYjqoOgxUu7Vb0V3qSCvpfBploT192UprVApzZq5g04/azSDb3QORqq6GP4AcGVHttkCQ= 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:25:00 +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:54:00 +0530 Message-Id: <1528478659-15859-2-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:HrumHlURdvkrxqQt1b/KE9W16CnV6e8V5vI1DqMh0T2ifYQHphpc/NrR8HRqLTqUlPSn68sgB9/X1MEQChHJxA5EdX2f9kwoW4kps0Tb6zyE8vIeqMKz0VJtj0sYwb6n/w4lVlwr/peeo+000lV4sFvaZOA4MG/ZKYXD0zLzCtIb9WoHb5I/2GrQMxX/OcjMzrO96x8qou3E3YY2MnzmGbIuDKtIvs4hKgji+sw81uJPlZeWHthI4BDoXcwEoWwq; 25:DCWAFSJyk/MpZ6/1rjYS5E7uLeIcHEcqSQrvfIzLoEWDW1QvQ68j4qzoee5n7deMVttq+KkYwaIBzns6cgvW4mNflSgSQMRkfgy9vVkoyLXUDXjrFTdyVdYIclu5wW+vBslr/2hijAOJhf959wVQRHTSVCMDVVLIOsPPIVAxysAcw2jKgtPDAuz69zyLqwqaancDX55vpt5X2FCO6pW2o86Qjl0zsTtxUG16eZDxciDzVf/oIDdZQk1i0VtcmVqVu2QKhKwRh4TYgO28CBKHh6ruAwy8mDTgS4ywZMYQY7D47YoMZGbZIzr4fUtONzR5UuighYwPzjDf/Qjp1aHAnA==; 31:hjc/Fwny1nDNJC5VOfFqqmUAVD+UbCph07m1T/Nd9hsxUy2hVvJTzekw46fdwR9FjllYGDeKucah6mPsXGrjbUV8dYkd/n74IYLUhEK7covPO3tOQISvCXid+34uUq3carTId9lGQk0IufiMp9UlZ4F18w5wPEH0t5A4kim9hbmz2U9V0wT4PSn/QxDMLx0utSQcYEXrumWgpNgkVFMBIXDBzWIEykccYr2eBE4oGnc= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:zleAVqyCJcfhLx/pZXUXWrSU++vERq/OWJrkU235Q+ILRW1wm1RsUdJh3TliaCfNQDxO+2y33aPkJv0lBiGO6ClSrUmndANfCrTUecen/bZrxzxN5g3k2kIr1oyMvDeLp9DQjgrgfKa9JAED9M4GkPh9j9tu1kvhEYysLe6lRUS4JGUM8TgfBrjNZ73fnmhaqOIofRjwJ7Jmoei50nghMiTvbeEtEVFNwGL+h/sL7Bakh+GyjKBattZP+LXQTqeGYtMNkVbVMNeqRwkMpH4184ps8arNS/tegrLFDw6YfhfRMInxX0aUudIgZiZMglCEYovPrurluM83zTOzR5cNeCojIgsDX/fCdFEH7+RI2NHUh5aXkcpPk7J/MRX11GQpVV44y0SYrX33vRyNHxO3tokXhILEjea7TJX3AmRGrKFJ/B08sa9E5H6zYzUFwXuKqolKCqItXURvqDovGph7FaDvlG/lhEX8nDw3xW9ZyjKYVBw2238xytAGRfBPBcMLgEWla15LJhDyunHXVRBNc8DwUI1VhnMp92+Q5uVISsYxXyS2OtldzMqFXG5ovJ4Jqct96Knff/YBtnxuGqGexOg4aYiWyw7qjbSzAaFOPWY=; 4:9GVFGNUoHgBJ+ZLdJ6DtAsUbKSWat9plTohrKJ6soWXoPO40Cf+3W/nVMUXHJ/LA6UeuBo2KJV1JeQma4AqlUEh93CnhQ3px3IadRco7RatfqQaj39MndqzwgB7TwNEOX+cVH5tSnHtT1axbDQToXGrKtnPH/09lG/3yRvTDu8DtPyE02mqt46mRhFzw8GmMzDhVW9cZSLE9NFS0wQXM7sJ8cziWmEs6UKHItsKnzkj+28KCjHY64zVQ+FWm3RoWSEmrLb4n8amg7Gw+HZfl8A== X-Microsoft-Antispam-PRVS: 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)(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-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)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:nfVWJX55UHuSQVSDRkd+tM45VYTKUY5JlB/80/3Jx?= 4oMYvbC0k2pGD5nKoICgHxOnJFoaDmLfPs5Ofnme4Wn6ImobFRztRjJlGKUA1hjU3QJYWhCzo9iFMwPjSJhTWatAw8Hz0e4jtKf4xNpTeWeyKZ0yBadfJraEWd/25DC0HpVMz+fBtsq1zmTDeSTjvHyxutxXtyWVNSwpQktDD/okp4CfZOuqpBZsx1qbXRwmwag03EuJif6gSPWTjtxQDq2ztjeN/i5Mzxb1HHZhFMyKXLWiDbHAq9pEiwLiYQEHxlSSDCTV4Yezd8NITRz4r2ar9E1/vF5QgDL+FJNzHGZiii0uG/AR8MH493HncIwE8UK2M8y63kRgIwXYf2DrjgvdU/xqhflqE33aQr6+qEPWjn8WIa+FrTKZYqsE0Q8RUCbmqjWUlhHkN+iURB3ztzY9NjdKU8xWG/Jce7I2B2wWpYrAQgV612O20tXamHGytdJ2fOA5+LnCaXsE4oG/oohARfKH4kksv/4SzDH9ZMTRvqYLlDc5ArMYpSKhUa05SH7sbJ0prjWKKpPJnMZt/5mVjtjvb/06AeTi9fJF+SjjVpY1IBLV/X4tcmjiOM9ViWrAoAgX4yOvAi8TT7kTEtzyz3rFwdpCfl+P996QduKMKD2Hxr1agLzh2qOUWhFjBSFlOhw3vY5ClCfiQ3+yqLlYEG0h3VH6DJorNi8buTXKkD6vr9M1oOft0ICDw60UiItBJf3bHxNjDchf0dtiDUjYc3An5wD7dSryhvYV14BwVyLfMkY/O5/6ZdG7wmywB2nDbg5CM3FgQMBiu0ysZ/v/lLOgOS0+KZUj1WJ+ZApYb28JoeGHVAJMksLsOPAsgPI64T7Z8QrBuNUAtBZuwvgvessyTXX1+iJk5k2Y5bJxZKWDBjfulCxf50jqtsuVnCZlMIKaNLYpbIj1d7NZTXNG933SQKcBMMUuNDbSrU0a+gm2lORhePMyC6awLFWFctzN0vaRjjpN1H3uVEn5eMkuoZjSSuANmf+SVMxORBilTXdOR2p1SCh9992Yw/BUwIqebQ8Oqu6mtemb6aw/r1W70OrAHoWI7adc5yMhRjQNWhupLTbH6m8gJ97Hh7jbA2xMejH3TRV9Cpe7BGjkHEguJXr5hCuVmXNX2klk7ZJlPLs4tX2vuevRU9jVMouBYie2phE4XcffO8CE7dbvnSXbHtmSiMUQe4mDi/lqIBc3P/IF+KLZHYhAULFOhkUh+vuc2j+x85v2Ca9iKqJhkJ6 X-Microsoft-Antispam-Message-Info: j3HdDzViyxhqRJx7pf88aV0Ry5sCDpc/9QN1ytkexfhB8sQQNegIIGG0sgKf0ZutbuwE7RypUXXp/PJqmQUlCTIeJ2LfsPeAU9jKGpDgfG6GQpJ9tCi5bz9nemnGEwYNhF2B2UCqb7GObZfRpOuglvzNaa7UM/HSV1MviZj9EEgtb0EUQhmXge2EBrD9g4j/ X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:xgNo6qY65Uv0v2UHLJVVgNXv7vzUMJzgfWJiCuE9Rz2bfu7s7w5pXZ4qCOKXD1S4Sm0rXMrf38sIv6KT7A/HvadCSsfFZDVp+vPgimUa/YfQ4fkCQfyW05m464i1pc4IGwO490c3QLppp0ilVVzklNHPcWiHNZFH9LIJRDGXWMFY30epPw/xy8br9TuCbijz/5+xIK22ERaf19gPHNnkZilfGF/Ut91IYjWMnhdFB3gsWm9jhRncIDet/sn1yFBDDTEP7ZcU7fAmPI6XQ8qkF2rT/tTVcjrpeE1mcJ591x6ucTApcGKSRmFSCVbxLsbNm3glXb3Bm5DjFpOcD2TaSWZ6O2IQTy5tAQVH9PsT9KDBbCoQPCpW7KXk/gL6D/jTy+FsmuvK4rjVOvCoPTi7VOA7PkCTs9dYqJLqXfjMxYKqIBXWpbOiwFFAHBaxBvfXI5ppiuFiTzxUYaJfNHUZ7A==; 5:is8T+Tkh2siBMwjSSTVhW3Vh+BddfHt7WqysuyChLWlxkVV3ZY2rObVNtnnZzrkl1JiX6HFYKd5HSMTQHvv9N+QcXFDEa6A5xL8OE+OxUgC342nahUB4B2NZ9OZRoStZ0QVA6zzhxM3BYN+W35EOm4rqcQI2NUTNofc+IOH87VE=; 24:kIlfV2ZYcazY3R/Q6a2YPbx2P2fFaq+tN11IHB6bi4CXTTn52SIYmliJcDirbT+nCfraDNrAiR0cA1BWLdx8WSBb5t48Jq+9vMtHiR2AvTs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:yYmuzqilpz6pZl7G281UmF7LufEnDNHl6IW2TCt8BaCDEi+nVLGunaXQeFakB2T17uq43Nw+4VysACLPPV4iYX94IQ2g+YNU910tAKP8wzMfFQ9tDp0EKt5BOPiO4+oH6z082ToGDu+52niL48JrSXtbN0K+wU8qg0cOO0h68To3cCAZo5CVyjoNo8xf5/SChPO9GZdqAWkzTE+OABqDlebLjwfn0vM4xF507ReRAxCxWHg6gmRE3eN2D/NFz92j X-MS-Office365-Filtering-Correlation-Id: 1c504ac7-475b-4cef-5ec3-08d5cd64c571 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:00.7632 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1c504ac7-475b-4cef-5ec3-08d5cd64c571 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 01/20] eventdev: add files for eventmode helper 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" Signed-off-by: Anoob Joseph --- lib/librte_eventdev/Makefile | 2 ++ lib/librte_eventdev/rte_eventmode_helper.c | 7 +++++++ lib/librte_eventdev/rte_eventmode_helper.h | 6 ++++++ lib/librte_eventdev/rte_eventmode_helper_internal.h | 6 ++++++ 4 files changed, 21 insertions(+) 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 diff --git a/lib/librte_eventdev/Makefile b/lib/librte_eventdev/Makefile index b3e2546..80a5830 100644 --- a/lib/librte_eventdev/Makefile +++ b/lib/librte_eventdev/Makefile @@ -19,6 +19,7 @@ LDLIBS += -lrte_mbuf -lrte_cryptodev # library source files SRCS-y += rte_eventdev.c +SRCS-y += rte_eventmode_helper.c SRCS-y += rte_event_ring.c SRCS-y += rte_event_eth_rx_adapter.c SRCS-y += rte_event_timer_adapter.c @@ -29,6 +30,7 @@ SYMLINK-y-include += rte_eventdev.h SYMLINK-y-include += rte_eventdev_pmd.h SYMLINK-y-include += rte_eventdev_pmd_pci.h SYMLINK-y-include += rte_eventdev_pmd_vdev.h +SYMLINK-y-include += rte_eventmode_helper.h SYMLINK-y-include += rte_event_ring.h SYMLINK-y-include += rte_event_eth_rx_adapter.h SYMLINK-y-include += rte_event_timer_adapter.h diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c new file mode 100644 index 0000000..b7ff056 --- /dev/null +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Cavium, Inc + */ + +#include + +#include "rte_eventmode_helper_internal.h" diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h new file mode 100644 index 0000000..5d39bd3 --- /dev/null +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Cavium, Inc + */ +#ifndef _RTE_EVENTMODE_HELPER_H_ +#define _RTE_EVENTMODE_HELPER_H_ +#endif /* _RTE_EVENTMODE_HELPER_H_ */ diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h new file mode 100644 index 0000000..5b08582 --- /dev/null +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Cavium, Inc + */ +#ifndef _RTE_EVENTMODE_HELPER_INTERNAL_H_ +#define _RTE_EVENTMODE_HELPER_INTERNAL_H_ +#endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */ From patchwork Fri Jun 8 17:24:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40902 X-Patchwork-Delegate: jerinj@marvell.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 810C41BACD; Fri, 8 Jun 2018 19:25:09 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0085.outbound.protection.outlook.com [104.47.42.85]) by dpdk.org (Postfix) with ESMTP id 44DB91BB46 for ; Fri, 8 Jun 2018 19:25:08 +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=I2/IoIHc7sjkvoqdb8j4sVGLluEpeVt7PnqUeb6ANJM=; b=Pyvk42+zFfCcvbAQRc6i1OyosZXKR8It+wfWAyCGtT3mv0QwBKtLs+btb7og8NMH3fOBTg8kEwsmwDWO22Ybx0uynQTDZ/Qwh9DSFXlimfDC4DogMDAEdZ3rwdKsiIfuezBSGrpXnMMCNjVpq2OqUPyEgcK0aP3Pu0lfd92sKfY= 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:25:04 +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:54:01 +0530 Message-Id: <1528478659-15859-3-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:VMoWJFiNr9n8UtvK8/CKWvme2uFAl/MvsCu665e6MocQDd4wlA+IBhb5Kt7Mwl+SASAkSGxqEtzY7hMjOgq7XOZ2np8sBBg9TD/r9ZaYVb35SpzgI2DSBkutUB2ZJriYNUFSB9ZUpJjyb8+p48EBfBws+F7HpidjcK/uSkuzDUzoD9hCVIK9n6s122h5XPkoqZ+pY5zfuAxLXF/EmCbbU2Mi1Deq0xzSCevi/Wv8BlQjt8yFgtHXr7mbUDj/AgGt; 25:VFqR0L3CVS5sKe1MglTsFipfMq0ycuiKF1QuVUDHgMaJAs81nv44A/xgcxzeHdeQkd91ymzLdaqDsufDLX+U3wztC9Q2i/tAg7ELdS9vkRGyu54gJFZ8HXDYZSOqtvas781vPy81hXpq9lq5707+vrea3FsfERCuO9TlGFPMBjh9qRk5HRku/8y1FUpZv+ytRkwn0bjOfYfB2ZTiDRj5dCLN0eB+xxIxXbeog2oubJIQ5OU4oWDwuLOK5d0Trac9/rZM0i0hGTCMuFYFNfsk/+j2R7nAPG7FCL7f6BWRiX33W00kVSPZfTxmSUadmoQeOpf6WvOMBS1pInqnxIpTLA==; 31:XkC110OATp1XV8CVlLTZAWxmrW6IXyn078XYzQe6clXRW04YCVPkWG8FWVmaV2Ffixqc1UEI0Tz889bgeW19DmuVTm7saK/sivEVRH7fvgaorff9GzLRxyx+3zX6vbKe9TNl7Qc3DiXSwLk0Kczk8hqAaOMWWDPKZuQKHXEoxNzpn+zua5F8Dmbn052RQEOMSNYED0FGmoMlwz4AdysNRtq8iX14KFi8blbJ+2k5Oqg= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:8gPFT+YVnqVIw//dQQ96OtqYMLkOu28eibB/os7mfPqORgV0GgCL7sr/0r24uTEXrNRxrqjoCfGWfvq7LTULZ4wctkMAvAa7UQlg+9ZW7RAXBSANSomA7/KsOgY+rndczBEnR1j2WCvurRomf4DEi/t/aofpPwIoSslzpa+9Otn2GwzDLpO7D8R3iQYDtEEQJKr+KaMx5Cfjd99j523mWI3VewaxFfFQorn2rrwVDkV5XaPg9ZY/TixOs5H38EV4f9i6sSeC6WIseO+fiJVJckwbkY5BNC61ZQn+fGqcI7bC1nglCH9z3lRVJl5E8VLsX/ALk5Wk7Yfw+lJZppu3BmQ5UjM0LSsx353d6qE1DQ1KT0usFlDnvQBOeqoF6BobFEITypzsdBZQmETcmnr0ZpAapBfDUo/AhcNpkvWJj5MGprzc9l1+Mmjt6BeBFPjvfi+r0REEjZp+CPB6oA8C4WnBKIOOdwlRYCYsvFbIu7fJ/awv7XiDz3/iSHqwI+k8VJzSgJqWUpSX4VF724C5fG4fkKLhJ+DRCLBu7WLxfY/v8tqdux1gEkHG4Jud8T174A2JVPyEVsLflsPsVjcAg59PGV2px0DE4M4g8IKN4Kk=; 4:XKl8DngEPxEJIfk1a05mrpQl0OU/jG0Jld+sy9CXvv1Ook2jsSNVZdyt2m1w3iOW7dXgUBa4YsTUQ+Z9p6bGzu394YasYzwqLIJh9VrE5rxIKrluirSpra/LjjbUqgEXrRoh/ELT7tRwq7OZJwKp61QrcN2QAa5dUv56V7+IHQNLZy+F7Nr2Z+/CD4PLY48VuE7wEvmwt7g3gTZZz3ZvLkiz5/mdzfqW1prg/OB/q/+TdYAV9WlC7ClFHQbst/eOxyQfWz5Lf7g6RNqZ4vOjPA== X-Microsoft-Antispam-PRVS: 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)(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-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(39860400002)(346002)(366004)(376002)(396003)(39380400002)(189003)(199004)(186003)(16526019)(5660300001)(26005)(42882007)(55236004)(66066001)(47776003)(68736007)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(575784001)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(51416003)(48376002)(50466002)(97736004)(316002)(6512007)(25786009)(53936002)(6486002)(81156014)(4326008)(3846002)(6116002)(16586007)(54906003)(110136005)(105586002)(106356001)(72206003)(478600001)(8656006)(969003)(989001)(999001)(1009001)(1019001); 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:GIOT0eUq3Bt262Ymbly8NXN5+pbgl1DQwYGo/H983?= 1ulBfRR7msIdYEAiLrkhZcyFCHGgCYvJvgyp17YOxfApWV0Qsq9Fl4seTROkX6x6bewVX8iSzFfI8A6lAuOgRhlS/t1o9CBR1fgN/UFnszG2uxM2nG3BCdTxtJfyMVTlNPlRxxLPb1Dmb7cM2yGkAw993nuDTJwiqyRFsVEXEb0ytNE6TSuk+j7KY/YTuAnbnDNdPHqkoUV7bw8RtqjMnk5EYNHp8w2Y6YQLTJNcmrBuMmYhdj62xRnablO9h3zU/JER8AZnlYiEyO92pBUtsvPTImedBuWbuXRjq1MobgENdokGdze7L41F6/zFZWvPnZDkOudFBneAHEkzSimqDzLc8OKuQVo+lEtwKiKlGc2p6uyQBhK303gDp031W45B0YpsG0GuNYL5oHwtOxP6lizF8r3vmmzxJ4AH84uvWNxYdl7jePz+/dvaVyQTcou47/IXWpmXCReuI2HaqOkgARV99Ye68gY7u7EH2nXrAY81P4aFspTfhAEZUioLotPr1DsJFJ5CDGRJciVqyr7JlOMhYDixwsTUga7ZWqQwu0qO+3aTmwzyF0eaXV6SedGywMX8PZbQ27G317zRl53boQtl4GONsL6laJ47lNsu6BwO/YI9VtTP+iGkcLEOBK5LyNTqvoj1DesYDT7Mq1XsXAULmBXHh5rDjDrQeHtD/ttP5jXn9pzponvDR+sE9WSNXKrcr2IDS6bD7KuLI0AFo8Oi7TsxU+Ypu5o72Wa/+Nfsm8DAKwFZK0H3Tz0VweJAFFJIwVYHqmsJoDd0eLGWo/E8yLjkilnaJvoGCO4n1AzoB/mWV9C7485a/QRTING9vis73I1+LhIY1ByXhd3F+qjRMJM/TB+KQhGVBaX0oLGTQ8GcOo0F4cztS+oyCKN8JfrNZUNcZn9DzurVokAuQhge/KM0B8D0+V0lUIr+0nXYWU3IA0MYWSn3mOlr8Gf2tEyviBLsVa6ZHfhCXQMOKEpK/MfzsxmlgAzW98d/fPUmsvhNx5Dq9zUMevY4deKwmIB0hd2lP6Fby/59MoLSSdYWodzEKW6N/tBkt25Gv20/S5IZ1x3Z/Q+IuRjoZZme7RTOikkjjjE0uWMxLfkdP2SZFzTuHgDW1zCV+Xz0KTJSY7PfisPgR8KJ3eMlnh49bpwbWYCXapMYsI4DY5NR+Olv3uiQmt0ur7lEdXkG7hY4G34MTIuC4V13cuhxNcsW2XAFJvyQDAvvYGFoY+LcnXAAvVkq+OfVKHfk6WIrTQ0/9c4MtucagmIiGtAYRNpCEGGXKvho+F7Rn79GPJGX+/+Mdyq8389qlgqVcIxYYQtSrq0PgVCHfbje5Hkkio9N3+9JntyL6D3hpjaFyN/SlhP X-Microsoft-Antispam-Message-Info: 5Epdf+Uozxms5jrLEp37nx1Ie6XPb5Lrc6HMibgWnpvoSomJy1H6I+gLJluBVgHP7IREWE6j1tFP6VV/9wNcUuXhs41FkfnLmI1lDSfioEA6yZ/KDdYz63O//yqRAKSKTUWcBjPOHhAGSV8mTCn5BcLmp82Hv/Rr98iAOHDsV+rMcqdF6TN3gUKj/zq5GMgh X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:s9ymL/f9mJyi2jn8uQzBj8UzIg5dd/BAWR2Zs3K8WiX4i7GVXMBlPzn7Q3s4gVBt4gjaU737UC7fXNUNZ2gkV8htoqPfNAoE4VIv3l0HfRf4WVMd9BWJqzDYiJyAvy6lpGftWF+TllYy30voCcNtLa/f1EitQWf7cd61DHanZRYY/5JfQuTwno0fezfQ6j6yY+Rkrv25SlZq5FZYCuZM0qNX/ox/zSUa3Tuz8teyvc9EM3W1u6BGosXdkG2VRfcI1LeV0AZov//eQE+ducFAN8lN090xKTcdzzMYKpyuUj9+Y0N0H2b+Sy40ekK41vmwiq2vTuAHiBHKLa2nSm1tAaPQkiHmq8CPo4I0sTHpSxYphSSX6jhrxvq8zalanPKggmofpcbsKEutn+wdglBqY4TY8/PMoh5OvcJplhzk5W8F+oriIJMOdsPQdtVAnmEp62HlyHKxNJdxla1SvOQqyA==; 5:JxTc+C8iCKwFB+Zz2KUVMAGjHHV3Yir3wYbZ6sD+584yibvNF8c++37h5uMPCFJoEgPPpGPJy341IrwhnTtr8kNaFEHFvtOAmG9UuqcQTO6zONmxBpkHHCajo7pPjFmRqD5juoJ/26MYWhzfH4IR0+pENv56e8nAt+Lx8oFBZfg=; 24:i9a6NKb4tEnxYSXxpHw0Q9Hf9skKmIyv1kwpNgTHy9WsKXzIJztwBEYt2P9gcNMVKBsTFTRMne6iZk6YhVyqIPSXPKZKYEoQ3XpbkJ6cCWk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:+MnHzvtpdHbkynsnbKlhf50TMmvQM/JHsJoKFZUrsQN1CR7QOMYXxJLJeVzw4cYdh0xVIfM5SoNlQSwaaiTzMiixvKWyijivBPWEQQSdbXNW3e3rxW7G5bvU+DdovzdNulY8HVuN01RwYmb3hF9fbg7kwKNINy6Yr+7juBMZ1fwR1Nt8KnWVs0YuP4RmqDoPe4VC7TfbJQ7tqwYPnqvwodGA3iO3l+9yqgb2PRl9PZ1Mj/E9k+jh7nNntICw7a7u X-MS-Office365-Filtering-Correlation-Id: d88bd8f4-742e-46e5-210b-08d5cd64c779 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:04.1695 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d88bd8f4-742e-46e5-210b-08d5cd64c779 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 02/20] eventdev: add routines for logging eventmode helper 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" Signed-off-by: Anoob Joseph --- config/common_base | 1 + lib/librte_eal/common/eal_common_log.c | 1 + lib/librte_eal/common/include/rte_log.h | 1 + .../rte_eventmode_helper_internal.h | 24 ++++++++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/config/common_base b/config/common_base index 6b0d1cb..21da7d4 100644 --- a/config/common_base +++ b/config/common_base @@ -594,6 +594,7 @@ CONFIG_RTE_LIBRTE_PMD_ISAL=n # CONFIG_RTE_LIBRTE_EVENTDEV=y CONFIG_RTE_LIBRTE_EVENTDEV_DEBUG=n +CONFIG_RTE_LIBRTE_EVENTMODE_HELPER_DEBUG=n CONFIG_RTE_EVENT_MAX_DEVS=16 CONFIG_RTE_EVENT_MAX_QUEUES_PER_DEV=64 CONFIG_RTE_EVENT_TIMER_ADAPTER_NUM_MAX=32 diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c index 8181189..ee85705 100644 --- a/lib/librte_eal/common/eal_common_log.c +++ b/lib/librte_eal/common/eal_common_log.c @@ -324,6 +324,7 @@ static const struct logtype logtype_strings[] = { {RTE_LOGTYPE_EFD, "lib.efd"}, {RTE_LOGTYPE_EVENTDEV, "lib.eventdev"}, {RTE_LOGTYPE_GSO, "lib.gso"}, + {RTE_LOGTYPE_EVENTMODE, "lib.eventmode"}, {RTE_LOGTYPE_USER1, "user1"}, {RTE_LOGTYPE_USER2, "user2"}, {RTE_LOGTYPE_USER3, "user3"}, diff --git a/lib/librte_eal/common/include/rte_log.h b/lib/librte_eal/common/include/rte_log.h index 2f789cb..e7ffc54 100644 --- a/lib/librte_eal/common/include/rte_log.h +++ b/lib/librte_eal/common/include/rte_log.h @@ -61,6 +61,7 @@ extern struct rte_logs rte_logs; #define RTE_LOGTYPE_EFD 18 /**< Log related to EFD. */ #define RTE_LOGTYPE_EVENTDEV 19 /**< Log related to eventdev. */ #define RTE_LOGTYPE_GSO 20 /**< Log related to GSO. */ +#define RTE_LOGTYPE_EVENTMODE 21 /**< Log related to eventmode. */ /* these log types can be used in an application */ #define RTE_LOGTYPE_USER1 24 /**< User-defined log type 1. */ diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index 5b08582..e946f11 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -3,4 +3,28 @@ */ #ifndef _RTE_EVENTMODE_HELPER_INTERNAL_H_ #define _RTE_EVENTMODE_HELPER_INTERNAL_H_ + +#include + +/* Logging macros */ + +#define RTE_EM_HLPR_LOG_ERR(...) \ + RTE_LOG(ERR, EVENTMODE, \ + RTE_FMT("%s(): " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \ + __func__, RTE_FMT_TAIL(__VA_ARGS__,))) + +#define RTE_EM_HLPR_LOG_INFO(...) \ + RTE_LOG(INFO, EVENTMODE, \ + RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__,) "\n", \ + RTE_FMT_TAIL(__VA_ARGS__,))) + +#ifdef RTE_LIBRTE_EVENTMODE_HELPER_DEBUG +#define RTE_EM_HLPR_LOG_DEBUG(...) \ + RTE_LOG(DEBUG, EVENTMODE, \ + RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \ + __func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,))) +#else +#define RTE_EM_HLPR_LOG_DEBUG(...) (void)0 +#endif + #endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */ From patchwork Fri Jun 8 17:24:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40903 X-Patchwork-Delegate: jerinj@marvell.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 E3A391BB4D; Fri, 8 Jun 2018 19:25:12 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0079.outbound.protection.outlook.com [104.47.42.79]) by dpdk.org (Postfix) with ESMTP id 7B8A51BB0E for ; Fri, 8 Jun 2018 19:25:11 +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=xOSHeKyS7XdVLRlN8b5wKhbklwIbuvxXXO2Vvfc44Zc=; b=UbSlGODZ+MnrUKt+jhilxGede0FfP+FAfyMbm4Pbxu0X0eqT8DpFBY5epUYunoL6nmw2kGQeJqV+WPCTNUO1KxrsrtaRk7sYSeoN5gri0CvNWh9NE6BMmxI0a0MUjIIC3xdiaokDAJ5A+fr+jlvWBZORx4uABoFBUUTK3npnnTU= 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:25:07 +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:54:02 +0530 Message-Id: <1528478659-15859-4-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:lsed3pLz0RJPwzz6Lf5AINScoQRayGwLSZOksbMwjiAtP+Y/eRnVQlXKN6Ntc7UJJly2yFMkPnzPZiThV1RmwGhO0V88OUS9pqtK1dyEVYw40igBJX4LWCHnT/rXrD9NoVCISSEShnwqsNtndVHsyPqaqb2uqJF9psaQogj8CGquklXQqkQ5Q0M0njQ/NLGgsN2aRBBJ6CgkJtfTt4vPm7+gc4I3a+DmTSXOdxazgBkB2BK3yqZrGhYurOL2/l6S; 25:UQLY/gyw6E5f1fxWWGWcFhztnlTVmre20Cri119cprxWRMo25b/j6CtC3hFjH6+pTCQDYBkCehq/7bFWFx5z8Y6aN+G/mLnHMSvzBuxwmKoEMTJn2IUVUCLm7UeRD9i4AQeYrn/dbx5U7qYrUcmV5mmDgZzYNRX7RDNU/yVRl1cfW2IFwphxdln2XXHw7NBKdk4rc12xAXPODuucoSxhMzxsqWAHv+EiJhrj2qlt57jJEnoWUTbZA/6GXWN+3fiCusH30D5N9PCJZrsI0ZSzjhbf/0IwZO8gIwuekDb8uVl7LnTHKbQf6LKTg3SwBzY+nET+Baio9T66Hs/9S8Mm9A==; 31:5vYkc156KHUnrxpJFlLvkVH2pAKSImYLh3Q5lsBJkLDoOtfLPWAvqbXzNv5taZhck53H/oKyA1W0XhqloZORjhj2w942tfddwJAt9r3yTPpsHmpXujpSzoSIm4dKj3tFqAmCj5N2XYezFK7JgzKzUAmPTskumVZmFZjyYuBzekzNCmXBaen5QcO7lVvXCnX1TCYfmpGDFI2BdTjoTdrn5Obi03I1kwcvtBVF9Wk0ZEY= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:muTxdZ/2LFecLU1Xt3ZJOLRYUFHKMaZBt464ijM2vun1fh4jLa8KGAA+QsB/eBm0hk+XC6ufSQBgjSE7+gOv0ur/QXBmKNT3P0lv+E6S7AKdVnvyicyCyh8Jh1GOVSc6w6kfrU2CfsNTTjHiE0NwgG3LKyoCh1pXQX3jhbwdMzLLdqa9xv7NkDD9BWAYY5PlnFWFKi3KIyauOfXmrUqoHpV5FV25IWIKEKoNHIv4BbG6CzG6+1tls+XlAck1CRiu21qTNfIeZZOzJy/wEsBoXsUwFg5qLsFjG0b0KFU7zgZD/AheLG8ZTCcVSe8SWWftrNiRnBSxWW6y3TowVMnR3K5irUixq+xN458kcPnJ43WZt9nZse6aGoAy88+hpAYq8dDdhD6tIDlPTXkGjWmamBUDQWydy7K3qVT7vtVmmjrh0AHEZRfGf8GKhuwIL3gilEhwvjCbh880voF1Oio4GHSKxkd0/7JHtlWc5cRpyEPIlsISoXuwn77POdpHIvE0FhjBtZ9hY9AOjAnRrnmoABL7LmhHxWLmvtW5YnSj40Eue50xVsXrePaRy3B9Q0T3VQk6w39PDegri4/PSq178Rd5mpri52a5xN0bBwqO+OI=; 4:Fd0iCkji2Yd+UzdlBwHMXdbz3ZomUgT5rQ+4GhqDgSetp1Lvjg8OojgaNl0VEQs0s5g4USfD2ThIMFMwghmLAMX+KalJ9OV2SNV59aN/U+KB1bNbAxGcTp/hjnjTlCtYU+7+riA8X6Ws+QLp6eSUyNzKBMYpxqFY0LfMiDkco/U4OPZlJksxoviwgNqA0+vMogpIrknA9kg6l8uzweFqcmXxDz5BiXCG01nk+UD6wC9yu8pzPBn4GzR02mhUfUT7ih6xjVLvlgk4qIchDRF/eQ== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:4xgg/b1wGq7kFv+Bb60RaonK+GAiMxLfbK+5D5COS?= BQtq21g/ObZWFKLKsVfsJfNUFoMjOb8YVkVR0K4uvUlzLh0k/n/uzsCyPDn/Uip7q1dk3R26VQG5bYYdvWMey/XjWb1PYe4IGfXldXMdXT/gGsZwGOzxwcIBWTiQA7VFeivwDa4tGgrC87NS6VHJo3wzeHKG61QY49kLHpf9NDOgAg1HcLo2SBDCuiOiiGPXisw30cAp/DGsXVrfDA9ZqzjLbvHNlZzCCPSzr7e03PZHjZoWoZ3kPib9DTT87wKQWllBBO3R3ykUSGtc8Q0yhCMuulJ+OTHMyWDxqxshM+98QiqkZfjpa6fJh0lT0+lSfBvebG/zKukZbonZMbla8zH5AN4yUgeXZ10JkH7U2QBZSel+435iD7E5+wTkfkBYYzyHLuA+so72Pg996G7gX1pXjN+seF9sw1qo3ek3RcEGfYWkHX3ccUVjjaK/SiKETgo55PnJ74HHzbippOHEh1518XXo3cr3ks6pTjSeJAonu8BffwDkVo7hLz6fiO65wrME8JToiON0zRUtw/MQDCP8r5ZItYc27q+kR84AwYpgCRgdiX9K8MHeHBsZkPMEOh8eJBtHfiBCWwy8ld+PJTBWDRWbxC3qetYzLDg70+k1TSd447p3X/AxdxSTf8uaNVQLjQ/XplHo0i6uwoOhPqJy3u6b5c9wpHVAf/qQbs+CcVb93T3ZDSic232p0w1bnuIGlYyuZv5yMm0neEdn6pZBIMb3m+WjoCmxLPu6W3/iABS2hMLhDk2cUNodsvrHuVXVGQutCglKXxBXIjG2i/6Ain8i9vWNFawqubKkjI1N4iT+Y2zZb4eMClDRfJuNMques7mMpwsk1OL63lHcxq00WxacvpHAUodott4eWmEVYWe/4sImktuk0sQm6UhgFS7i45M2+RaZcaR/GJ1qRGfbmkTXYO8yzZmSrpdbQ3QMA0xYgIwu808Dwt+kjiTfAVMU1IOq3ZgFnhAaaOaDfMxlsU+LNnD/KAoCiMB9vLRfZ0dSIEAs+iPr+qsDQnvQN2TqIw8estLup8NKwfMDECB1xNdss7O/u2K6yLKsPLxyXv7NsuUTITurfyBVgZear3af2gQO2ycoxn8MjzUE2yQwIwnHKXJapa4Fyc3QhWcRWVuka8/YolmWbEnIuuXg+W5rnTvBkrNi3rSvfzbYn/THknejstRrjrn1SNdv15PSHPCAbcZCMpq6CUYp2iOwXsR3VIOJeMcRMhx65Uozzccw7lMRZ0RkjNqU67KT+P5Bw== X-Microsoft-Antispam-Message-Info: hEHN8eEBRaEkGJ75HfIN3QRjH8mBMyZhO8o0aLh/leIZ5hHSvVq/8ldeo4Y5Z/rL1opsCeDQczC35IgeH+j6ul10+AlE+DyVVNq/gPf2c6HTc5WASrKIfhQU9WHhd3aXbMnQ8ZBeFkgDqwEhYOysV8YmAwEI318kC+jADt/mCSWnOQsulRsZtKnWv0ef0u3h X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:1KVF+JUwNolb9mLQ+fgf7anidkY7sBQKn2iTvaJatFDtQ6wNRpJSHL2icHYihMMsq9pVjyg+tVq+FUuNS0O5GWXMhLOq4M9uXv5C2GuDH8NgJ1xdb+kD3wVv8bUG7BSLELjdy0ctbAcpcq1RlIRI6rP5lHnRewX4sf0N8c46oNXKCk/cxNHnib+7cihTLqgWRrlGNoBo/4JKBg5EfXjDHq3sl8rC0inAFl8FGCBaGOAZsSPSSEBymq69pxJxUkigbjpD4tDW/ZwGKUicJqDRov2ucgaqrSLxo0t9GJOHCyOHkhkSOfZrZo3+UV6Rvb7WJ8K3mMfuLpuTmMKzDpEErpm0SKOTqhbvIyfBAQrZonFsuXQlcnT+BR+wsBF1k1SfITiMTcum1LQv7qyivg2FbRdMhK9axkpI5er1578P7b7Lrt7NXyUL7//Oi9LQ3HA2mgq/z/6IHKQ3I2qlHk6JPQ==; 5:laIAOvAMSgFjxTHjsu8LO3t3nZWHmCDdmpw8uwHfCljLtYeYSHzdpoQDD+i56MX3LrkCX879DEjjL29qeDjNHXTQd17BrXseraeZX1ajXvlNAEjZtJH8Ey/KD0E7apqzrVm086ksErM09nYgJn5BQMRmFX1xLZMSFP6yMXtDz50=; 24:92jaFLXiPF52wr5mccXBVi77MYRgM0r+ER869tkA43XV7b8nrukkdXUZwyGSM2FEvLPjJz+K/Ge0txSRb3WAFawB+CcMrJQsEiHie3m8hdE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:vCUhmijPDTm9EcD7J9zjOCz876/1jW3TnvaT9rhtIC9K5/fnkTLPmzUHO/sdPj8YrNGtMDAOP4djh/2OeayuOAk5WCZldpBbkaGIQKR/umzJWxB6TVxZofk2bFfPsdH6pgYpsbq1m9McW1fu/ZdEE418haXujSeRlzw6uOlDOQ+/ZLxGef0ubydELSH+mkO33nCX/vy+cl02afAKopyyzAoFQlRF/4eNyFYPPdzKzNpWd9ew2OgXmFJmNDkp7QkB X-MS-Office365-Filtering-Correlation-Id: 7e562e18-4062-431e-32d5-08d5cd64c970 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:07.4821 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7e562e18-4062-431e-32d5-08d5cd64c970 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 03/20] eventdev: add eventmode CL options framework 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" Adding usage prints and CL parsing routines for eventmode. Option to select packet transfer mode is also added. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 128 +++++++++++++++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper.h | 50 +++++++++++ 2 files changed, 178 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index b7ff056..14ea493 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -1,7 +1,135 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2018 Cavium, Inc */ +#include #include +#include #include "rte_eventmode_helper_internal.h" + +#define CMD_LINE_OPT_TRANSFER_MODE "transfer-mode" + +static const char short_options[] = + "" + ; + +enum { + /* long options mapped to a short option */ + + /* first long only option value must be >= 256, so that we won't + * conflict with short options + */ + CMD_LINE_OPT_MIN_NUM = 256, + CMD_LINE_OPT_TRANSFER_MODE_NUM, +}; + +static const struct option lgopts[] = { + {CMD_LINE_OPT_TRANSFER_MODE, 1, 0, CMD_LINE_OPT_TRANSFER_MODE_NUM}, + {NULL, 0, 0, 0} +}; + +/* Internal functions */ + +static int32_t +internal_parse_decimal(const char *str) +{ + char *end = NULL; + unsigned long num; + + num = strtoul(str, &end, 10); + if ((str[0] == '\0') || (end == NULL) || (*end != '\0')) + return -1; + + return num; +} + +/* Global functions */ + +void +rte_eventmode_helper_print_options_list(void) +{ + fprintf(stderr, " --" + " [--transfer-mode MODE]" + ); +} + +void +rte_eventmode_helper_print_options_description(void) +{ + fprintf(stderr, + " --transfer-mode MODE\n" + " 0: Packet transfer via polling (default)\n" + " 1: Packet transfer via eventdev\n" + "\n"); +} + +static int +em_parse_transfer_mode(struct rte_eventmode_helper_conf *conf, + const char *optarg) +{ + int32_t parsed_dec; + + parsed_dec = internal_parse_decimal(optarg); + if (parsed_dec != RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_POLL && + parsed_dec != RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT) { + RTE_EM_HLPR_LOG_ERR("Unsupported packet transfer mode"); + return -1; + } + conf->mode = parsed_dec; + return 0; +} + +static void +em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf) +{ + /* Set default conf */ + + /* Packet transfer mode: poll */ + conf->mode = RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_POLL; +} + +struct rte_eventmode_helper_conf * +rte_eventmode_helper_parse_args(int argc, char **argv) +{ + int32_t opt, ret; + struct rte_eventmode_helper_conf *conf = NULL; + + /* Allocate memory for conf */ + conf = rte_zmalloc("eventmode-helper-conf", + sizeof(struct rte_eventmode_helper_conf), + RTE_CACHE_LINE_SIZE); + if (conf == NULL) { + RTE_EM_HLPR_LOG_ERR( + "Failed allocating memory for eventmode helper conf"); + goto err; + } + + /* Initialize conf with default values */ + em_initialize_helper_conf(conf); + + while ((opt = getopt_long(argc, argv, short_options, + lgopts, NULL)) != EOF) { + switch (opt) { + + /* Packet transfer mode */ + case CMD_LINE_OPT_TRANSFER_MODE_NUM: + ret = em_parse_transfer_mode(conf, optarg); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Invalid packet transfer mode"); + goto err; + } + break; + default: + goto err; + } + } + return conf; + +err: + if (conf != NULL) + rte_free(conf); + + return NULL; +} diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index 5d39bd3..bfe4fa9 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -3,4 +3,54 @@ */ #ifndef _RTE_EVENTMODE_HELPER_H_ #define _RTE_EVENTMODE_HELPER_H_ + +/* Packet transfer mode of the application */ +enum rte_eventmode_helper_pkt_transfer_mode { + RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_POLL = 0, + RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT, +}; + +struct rte_eventmode_helper_conf { + enum rte_eventmode_helper_pkt_transfer_mode mode; + /**< Packet transfer mode of the application */ + void *mode_params; + /**< Mode specific parameters */ +}; + +/* Common helper functions for command line parsing */ + +/** + * Print event mode options list + * + */ +void +rte_eventmode_helper_print_options_list(void); + +/** + * Print event mode options description + * + */ +void +rte_eventmode_helper_print_options_description(void); + +/** + * Parse event mode arguments + * + * The application can call this function in it's argument parsing routine to + * parse the event mode specific args and create the conf accordingly. This + * function is to be executed on the MASTER lcore only. + * + * @param argc + * A non-negative value. If it is greater than 0, the array members + * for argv[0] through argv[argc] (non-inclusive) shall contain pointers + * to strings. + * @param argv + * An array of strings. The contents of the array, as well as the strings + * which are pointed to by the array, may be modified by this function. + * @return + * Configuration generated by parsing the event mode args. + */ +struct rte_eventmode_helper_conf * +rte_eventmode_helper_parse_args(int argc, char **argv); + #endif /* _RTE_EVENTMODE_HELPER_H_ */ From patchwork Fri Jun 8 17:24:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40904 X-Patchwork-Delegate: jerinj@marvell.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 7E6C51BB82; Fri, 8 Jun 2018 19:25:16 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0069.outbound.protection.outlook.com [104.47.42.69]) by dpdk.org (Postfix) with ESMTP id 9BD601BB76 for ; Fri, 8 Jun 2018 19:25:14 +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=JWpAsz3HPqePWDRr2dbPJUwM2YS0wrWPK1hMklGxznc=; b=AQoykJtLPVuVxb2tX5i1zKyZFKcsUGOSLQ3lDqT43TWF+aOQ9Hf38Q2ReXh6iagqkbiPosVl6r7DrrFc+dvkKvTV9chTRFsvXnx3zEycGv+4OSYjQ09ZKpPzFc0PPohTyrfbylgfwvFlOf5iZu7CxAQU/Neq15gAlOMEm0Glwew= 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:25:10 +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:54:03 +0530 Message-Id: <1528478659-15859-5-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:pHgISTgCm+sjw1GpX4ZpmLoMR4Htgp1YbYVaN5qSMnv4nS29ZZ/+w4rHWcOGDLr1h/STQNH66+6D0s5HfNHHeiEZZ59yFqPcuzUwKS28y3ONZQTGAGqE6QTTcWHrP/a3qMbF4o9r2/nV8cCkVPTnHjMPn3cu2S7+BJ+v4x4mRwDWj8yc0kt+BaNjjEbRKvhBfRHm6jTUjgBWbt9Etf9PBenuLgHpuNf3SMkQjOPZJSkpOLCFo535vGepwgBWltjD; 25:nZUeQ+aeaAZaVFpB8ZQ9e1eXL19vkpxjS5PNP1ceLg9HNtR1uB+OHrIobaV3ztMzPd8Tq8FtZkuRP9v+5+eqQxNe/08V8AHhsDouYzjqh3rqnCSK4pUW8gBTzUu4HcFI8TBv6Z7Tng5+Wp7RJ2I9n6PmOMOQjTPfETdEINR5AXlXDYdpCCwexCf5GjdtsygDS2dF1FUv6cNw5iBO779H/MH+Wt/RwKcXYK88PzAfocmkHOYpAO3x9oPteSWQNgVplvLoqaHWddFr1FlPG2VvJApBD3H6HH1x3PuHuq9CFjN0r2mL5NbOOZqW3t9fW6by+MRXFZxgHKjkzA74myU+yw==; 31:m1UfOv823xFM57p5ZsiEFRr+Tew6mfDav01NshYGkBN6VWXJX1briIBxovbbowS1eWxZ9RQvM2/znF4WDmSb02fxVLxBj/ogDxFOs6iOMPoxLzJ2cyKXeb7BAMgzNTFda3Yc2tcnO9TLQz6asjU/6bJ4R+DdjG6xHysQ82AC9PbzJIYIQ1Rijo69zJFjHN9acja8s/0tcNPj9z1HrGG69VbJyeHp1wUNG0tE/Rkl7FQ= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:bIX3zV++8hyzXem0VspjLBdLS+uktFg5TsIgQ8h5AeHuz5KtLMslhjO6MYu5AGrTAnO4I2CObLZN8AmTLHKVnDDslgUvdaYbNn+57A2sNjppc4q4eMQL4SG7HqKtuvj66UHiwSlZq6hrRYsI4aqz8x6na5eosdM4ywxP6J2xmNQgaJzuT18Ld52z+j0unPxZHItnWRxUoqbASeTCGsTxEnxHVO+ve5o/qwlAzlzo4jk4SHta3WfwllKz1lcJy8IPrGSluQTvRhvHkj1rppM09dIA2BWLmQG+dldvIFlblxny3Sw8ktnSLd4epCuLCrNrOINhnK49qHbHX5f6TmVvZKmdtwO+gr0Sf65u1ZRp2XInqLQIWRdDD551guRpfIK3zzfZ9Gz2AyFtRipJdF6UdOTs+pKmrr5tPvQ7EtmfTp37rdnBqbvdNvJ2lacrqdC1s8WHYdY0Zx8/0yyoTzlN1ItBv17MseLZxG7SpvlvdUhXQhUPyzWT8JFMNaPahg4CmSC9mHxOvMaTeGPrcR0bLuk7JOz6Tl/rdqCGxKn7p1j3wrE6C94vY7b1Jdf/b7Rn2UKVRTlHvwnuRr9yaqjx/e54V2g+ydqpHj9Lq2LXW+M=; 4:8CwounibWqE6/jGpvGvT0SAI7aS7h1gCxcWbVVnwiSsWyr6TpN/du8vAP16H8ISA5+gA64Y3ivfsBh00AlTNMrH9WbH7CKwXVj9Vg3Fx3M41sxl1En9bWv5Mwa8VADZNqJ1Z9c5hpkeeAVqBPRdhYtXac5uu1/RcQftILC55GFIxDteW1/cN3GILbVGs0KREjXUZYr0KxEobcpkyrrVwcERdaQws/7lVkdi/aaeIc1ii55ZkiVQlPGHPkNdKcRkLbRnWzvN4k/mHYtFK19Antg== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(575784001)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:ruYp955hv2/K6bGBQL8eMzqkMK5Yb8E6Mtrf9ltUE?= MX7MieEcb8mMlaaHp0GJ1nvrzMHeqTbU2+ZD9VbU28z3lyemjCMJs5OOwjcC3QsN9qHPRt85MBC2Dz66hb3+iDG8eKX1ji3F//l1OHparyn8nx/WqS+9w0n1lA6Xm2mL17lsYEF57OMRPkdM3K+5xHW3GOo+YNAN5YQHUpHT3ScNlf7MrObdWIB3EmsqJyFysr6eAj2WXwyjiv7XMpTDc0RdSs4lAEENCuIJxbfr13WGkV9D07Aj9PBzb+WARKQ4aUv+HTtatI/UwJWk7ft+DiwZXUgpNhfJ80U5h45wrD67LNOjVffa7KjPJNzrbe+Dx7YSEeK1bvaN1ZZ8X1IPYW86pKNovVCT0eIYCxsoUS1dR2t1Euqx2Bfs0ExRKQuyr0sXUpJrH3e64pLigPNhPrX+Un47+mz6X5bA3UfWY2Vwhm3+JFMJldjWD7oFbMwg+a6xI3I5TCtT/Hi8wjAN7OCRls9lqnbxTgayh5UafBrLgaRlwHQFyUl5y7qRU0jKgh8AFS7A60mOYohU0PNZflpeNKPqwdfBGn+WrHrxwpb9ZuLs7y1LgnEK8JJMIc+ZcRUzklNCk+RVKZ/KqeIfxW1AHl3bFg7nm1BheTT123s4/Lseg1XkW+C1ThoDXuBSBvAEb82r+wsRdFMQO4GtfibVmenFPWdFTaYuaBsCz5fTdeVuSd1NVt7tuRTTn1B9XwM9/pbvzniy5ZDVJYp4tjNdcezikJXttlPjFPO2rId0U8DurAiRFjFUT+11bWRfcTcxMeTpLvYZc1CfVG6kGyXdu8VT4IocViBH87PSExBE/N43pjEQlAPNUtZZbgam/ytQUZmnRE9RNtT7b+1SmPlrq2V5AfFfyUtt1iU8fvx2w+03ks5InT4xbgvNQ1lLzNfpLBdOZNXTQt69u1dwx+TKZwCqAM3ZcAJF1xKtTN5I0k707F69C8I3GFuP2etcq7qrnZzsl1gt183/ODKwtMpP7pF4hB/+/lmQE7ATZPLMqqACfa/KgP3PwHVjn6qD247JtUI4LZMz62gxKb5aWP3JUz+y/6QtSeAcJTyncJ98pLUg7RgVKSrThTlyVgmvEp4qDPjKFpzG6KM/XMbcu0OE7CN0rAxiZW1G2bu2MVKzv2LxeDNvjMuVEUAfoHN2wnrmT07uNGDZ/HqkMBqK3sE8W/l9LvGgkjLKuDk4CN0tVBt1+xxRn8f27OiyhWOM8iLwdI8PTfl4HO6sEnj8gWa2AVKOAoTpVpwzL4eJf01ks+Gwu1dU0CxaLy/LNkVSqo= X-Microsoft-Antispam-Message-Info: dU5LxGfDbHG1KllLBZKU3mS6acRyEPdFk7kzPXl0xwDTLBt4Ejr64A4ZoJEwWXyiA4PvuA9Mv4TjsVGKvbgrIWIYTUys0H36b7KNciLW138JHXrM+Q1D99uSk1rQ7NbCJvLX6uc5PEmaG1PZ6izQvnu9QWwVIEbRT9hylpinnKUazRrtydszWh3cqZ1dU7lE X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:t9OzWZyxRR1D182ogdyXV21rQukl9CYa9sU07BAmrdWcjYAYtlPQSi+kjEaCku2Yc8mTbTkktrUylerLLqrVfrP1TBAcwkrEJKn6SDNyBbO4LPSI8zkAksyDuCnGVLmDva4VZoNAYCWKETsOqjUGvZ1g6jZYq0BSK5gAqf757rY4eeOYjyYY+3xsoC7WqdJEC+H5xYDtWBWs6kLHchgLx5o5CyWcqurUfKjV/lr02y8GyQvS1hCfMd35qQTWrnPYj4LNGLAxAvO+XqDJTOhGiI972Pk/B0l3D/OlO/40bG1lzdpunOt9R8kdmzWYsU8TwVyhOyPvKpADnKhfb97KM/ddDNODDqd5s6tfnlqax6FXT+vYFnXofopg5iD+KAVyy+A46k70Gxr9e9NdptxyokIlbCawTWAp3ictgMj63UTK1AU5z2YgwrYlyxcB3rqxa7mZP21dg6fIJgnQKCY+rg==; 5:ucIJuokywEwy0OqyEuD1rrslNUJb5DhQAcyxTa5/UiWjRusiBlwNoW6IVLQ3rMNry5nz3F8B1zDtVBDBi2cTenGa9H9X3evI9OSSi+3/ceONJzZtPLPpoqPXBY4VFhJDTqljbRujxVljIZZFkRBeENGzaXxHDjY9S4GgANENL9E=; 24:cHFy+uLqAU8wKnfK8LMWaNoVPkGxrDrAfRWLGBxqFJUNkhXV2nWHFqEx52nF1IRtJn9Qq72HfYtXXc8IlW4muqSaqYeik05sA+/FmnSk5J4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:UFJE6Ca1fxkjsfu27CeVRUNaoQG/eoXy1i7hEuBonPFvmRmzqGnnsBwznEs1UlcOUsZTdAql2TVOmGDHgUqNrU+QTClknJPeech1qElWBS+GZzX0VEzn88U+MmGuifpKat3bajQSSRAw4eQ6VjTTQ2xMT5Ki4HAtoiG3K+2mPVBnGxKW7vOkqSLiPgoZri3Rv3LKHpI+257+aDRUec9Rl0oxJT97MCaXq9pK0eTZTRI3RCq1iwR7ANYWgAP6+sNr X-MS-Office365-Filtering-Correlation-Id: 3a45b923-17b0-4adc-e247-08d5cd64cb64 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:10.7634 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3a45b923-17b0-4adc-e247-08d5cd64cb64 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 04/20] eventdev: allow application to set ethernet portmask 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" Application would be required to restrict helper functions to use only certain ports. The field eth_portmask field in the conf could be used for this. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 3 +++ lib/librte_eventdev/rte_eventmode_helper.h | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 14ea493..9282682 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -87,6 +87,9 @@ em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf) /* Packet transfer mode: poll */ conf->mode = RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_POLL; + + /* Keep all ethernet ports enabled by default */ + conf->eth_portmask = -1; } struct rte_eventmode_helper_conf * diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index bfe4fa9..7500f0c 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -4,6 +4,8 @@ #ifndef _RTE_EVENTMODE_HELPER_H_ #define _RTE_EVENTMODE_HELPER_H_ +#include + /* Packet transfer mode of the application */ enum rte_eventmode_helper_pkt_transfer_mode { RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_POLL = 0, @@ -13,6 +15,11 @@ enum rte_eventmode_helper_pkt_transfer_mode { struct rte_eventmode_helper_conf { enum rte_eventmode_helper_pkt_transfer_mode mode; /**< Packet transfer mode of the application */ + uint32_t eth_portmask; + /**< + * Mask of the eth ports to be used. This portmask would be + * checked while initializing devices using helper routines. + */ void *mode_params; /**< Mode specific parameters */ }; From patchwork Fri Jun 8 17:24:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40905 X-Patchwork-Delegate: jerinj@marvell.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 122B11D004; Fri, 8 Jun 2018 19:25:20 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0048.outbound.protection.outlook.com [104.47.42.48]) by dpdk.org (Postfix) with ESMTP id 258CB1D004 for ; Fri, 8 Jun 2018 19:25: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=4iDieXkkqb5OOk3DExOUd3xXXucT15gusIyQY+RHFdQ=; b=o2Z9sAY9YIDpXPqmWzczvwnyn9x6CsFEy+dOg3NPHazQaycOVdVVuZYOcGXoS9RBNYgPLqFxoK/1UJikc2v3xx5CMzTuPNXlaAf2UDvsAejTBaVHg2617meXBOVauOdOAmeahK6bxGZp8rOdXKmYYnfgIOPgfrj+m46Aui50PSg= 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:25:13 +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:54:04 +0530 Message-Id: <1528478659-15859-6-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:evGEP6vT8LJVImWCyFq+CI0xPlaWt8N1tkOt+eychrPCQJ0YpmOtGQMKjNd/fH9zZddHx7w67yYFkNPBHHy9QnyhL1g96YCk3vvOcNo2XxGZjXQYdBiAa/AkCIAQW64yS3/mt/bAOa0/6D4T0b9MPbTXW7WHmE+ztxv2KDeXJowmpH4JXkOOnsWr10wkBOalaWJpooP0csiBfYNBcy8A4g8Abaq5HIgVFwWCojiDf5CtL/E7D3veL3QWBsGj0NKg; 25:JA00JZd6gMirogh8J2JuJJ87qdnVG/sLlkznvlkZe/g6wsv3bDiZF9SJth3hqmc4YUDzpFWStMB4J6cEYS6MDia4n1AdZLnT+bDVHNJYC1fdiUIWAXfJ/Z1oXuk5XvHYjE1nmFqJ4A4w43zdOa0nOxcmmDmcwtTP+syy9Ds7XYfSjCZIWa/gA7BdaXWg7OkGMEPRsQ0GDkvKa4PUVK/vOfXRQvKD2gu2gPA5jtFhuBZrWh5nBXGnmOAeTQUNZFBvn13rnDuIDptub9khqHuwMJfOBNLz5V8vkegViBu9Bhk3wiDdEiOng2/rn/9XKr3triOVhwHrRAvVoQI5pMp5zQ==; 31:VtdyNSHEnq2ukqYaLW057CCkkslQ5xFplEshZNkP2/T2R1qC/Q4+IeofcUbUPoyD1SO6bUiB7It/aD0y6IAtn04mJSlpknKSFmo+6PF2/j/9ypW7JmlPgDu3je9nLkfFKv/i8M8sZFbnZpHMsCWVo8VPjCpscssoZqfrE8lXef+z9/YTbqsr0H3UT8OegPILT3touD5cr05naMKYOXhV56vTXioisUJZlRlP5zYiFbA= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:2Pwfh0GiVdHqegZE/C0fWZNolf2cB5+ulDA0+2JXoivtZMNs63sZdKa9wtSiLG+x0d8UrbHpo+wNPHKInG74+t5+D4Jo8q3MgkLHjtDDEYX6pRVReOoNpe7kw5gUJZeV3QHsVA/SgQRENfakILGr+8QZRNIKwAs8e9o/50pshwR5dErgZ3m0HBhCKTmRkR8La9G8YVr/2UpNGkh/vaC2B+6k7QDE28eL3VuGQCXi9MiuFXGiEhDpb5/KIUwTrzAGWmK6FNZ5TF/rEYDn+6H259m/h4V0iD5Y+VMjYotPf4jA0Yrlyo6LBWJFTA4y+knMoD3L/IrDEtR1wuaLkD/4T4AscWEfu0oI3+QJGQn+R/HdrLNebi8LKYsdiattsAS9fMN0YNkJlrUuJP3J5MIJg9f8g/Bta5pWLc7KqdgL6fmhrw6sZRoihSxB4IzQB2jxwVPg+MT8ybkwTdL7JJDJRgcu0S8CcrCPQuewGoW1tnkxlGP1sHkuhQZLaHjTuXFA5vx26zpGEFcLllmlVo6Zcn2Nl8anpU+lghtHI9PS3IklTQGOGaCyswXPX57LKhg7fVMejAKHAzC2+G8b/wKgtMF1FZEbAbIY0sgQcV+f5S0=; 4:3aBSgESZzb3q+jrH+DhWdOnwDwInKOemwB+aZ5cBgKS7r4D3ma1U8tAhblFi0AzdGyshUu8+/EMoZ2R4C2eI8Grb09BXolEUNlYJZGDvoiIILS0QoDPOLpqAcnTyvNXBvt3DEAyCcBbLfk3rP/nyuZ0lcdLUYBtxKBZ14OA59IZuR30vuu6J9xYIE3/736IeWpQyEYbeqYcy2DRw62AAilbhJjHJo01DGNtW4VtK8kh4KqGIGvZQuTaUogD4x77LWJmCSv2WMnDlSUrbYS8SEA== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:d2/1NEk0xAAz2n5OHYtZqhQ7bnSZM2UqhsFF8FSMJ?= crwv9aEObzMimsRO4rKW0gOUJ2XLh1WfhiFZMNCjjBSbOr4RGSQt2Nd8H+UYsvzfH/0w7+Nrf7PPknnhNARnoG9siQUm3fb36Mq7Vmf4XYmaxRJW4IqOgHxK3E5g/NeHS52haZepMA+DYve+2C+7kN9/ulbEwJdFxZcyZz1xu6h3fbd6PsoI338HlCjw8YAc3xQ/NJnwrvDVEyvF5ubHsf2ayoEFpBb8kOgUrDts5owTMbHr30TlJnslfPPLEjN6acC+/xDT3nXlMnIi7dOAA79Dc4GFudP/h1Lks9Wk09uSV7W7y2TFhDIELHU5OgqwryKJOfT4MrlGY8rQ2/9ZoiQRRiZe3hmF1eJrpB/zxTmfCg+YS7+RcFNtxgTOu7jO4uLIsq1HfWesj0ggybyZrYwkGv35giUzA3QyCDaLqxeosiBjZ5y/sJsCCo6fwbej2aM/57pDh7BE/TdalrHd8gOe+Tb6ESWEs6Ljr9xlVQR23wQsoIaGbzI3fwN4d61+l2GN7XEEDtXI/LvAHTe24tAwUP4RclfyLgmIewOliR24EUcNuJu0VpB2l5gL++DwT/5oCpXq5WMuaKGNnTh9t9BfsIBItAKNGarq5si/j+D8aKGQO26vdS+jmKxmtmUzTf23ngC7KryOGRFcKiN9q2ffgtVqxV2dh4BbSPVxN+hKN2fPN/GTGxHgu0vSrNCWR6e7aU5V/tfs/FlFzjdVi+2wA7323TePNgk+C6F5TgvsVBL4hsyoCrySiUGke7pgybxvDMQMkyXv+LVfBXqyloqMW3fN/+zZ9EVo5kIU8cjERzB4dYjnWu0c7cpYV90B56DfnDXeEMCvnKDQH52w0yf6NHfYWjGzRmJeXKj6/FUzRyv+jkq54qdK5jUQw0vyVncTD/VpZPBtZew/kwGDnDKDh/hFsXKGcM7ziPAfr872TmXNdeIo8QtXt8dW4KN//WwBm5JXUiQ6og7ITajhXErV1agS1tEHp/RE+1YB7asLqG78CcYNLmxoluEKJeVFrwrqWfDcE3O4/gLaiGjE7jMKXgOw1gN5IlyhGXqfHVRV9OQdYm+bUkmVsC+TlK9AqSo1GPiw89ODrYEZPZJKRMb0WexgCyqUCVEj79bElteczYT2WH8oOQNRlIvRo0wJgtGMtmRWFV6hNtu8o1NBlHKMWgFJe6xUSGFDo/bgoYu1kBCyWwZCaWIVGhCbUkDHXku43Qn6tWN8apLFRXTzEAVOEcn9ehnLQ0fdzXiWQFHkQ== X-Microsoft-Antispam-Message-Info: wpPZjYgtmFa38U9/Ukkz53hqi8SiW5y80HibToofJFasGc2tiJNSdfzsSNrxIugsWGu2r9hvuUgIL3/uHxhJ0RhTLuva9S/cA1r3VDM9FkvckRNQOJJq70Q+0+xo8Tm6mycFtOb4b8kFz3lWjqH/mvZGyezdGh3Jq+wTyGodhiDau5VCdEfHoJ0q1Uf0fGGI X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:aIXhdQSZfJReFJOWljst1FvszyQIplvjknf/HPqIAdatORMDb/t7j5pLCaL+HerITPB9Pj1m7lRlRll69zhFzApGKyCpqXIrcewjyz0ilDS8TzeqMw7cGyGv73EyCzZ3u1DCQ8oqC2mcGTap/7PkIPitGopz2g5a8X0xGss7HetwMxZ2+SsPRplqyP/xeKX/iOZxvbwrQBrh94p4uTfEzvtWxtb/lD1Cni1+K+1TPSQvSAgy56AE0WPKLZHzKjK/ar1w8Vnut8kHWazuSE4ZQ3QguKEGDAMVI/1wSMLIupAgqxQsKrKN72taEbcR6Y+wnJkgerODPaLjOetYctwdq6cO7HI0+Yv8P3+hE2m4jfvXcLC4pr1Hj/F92Qe6njDYv2fPezt1p5GrIAsIwuN00s+48jBh0XAmwq2yNb8qXGyhCtN3xkdpr07J8Wyk44GhyqufMbeCSbnYvxrvdoxquQ==; 5:nyBtqOoL9H/7iRMHmsq7lEqsP4iBhSsmINpf6R5N2PldFjauthYq1PV9F6wNsO/CfLfYeCdBFdLyGmOfDpk4/k2OORmRoESBw8JQFx5ojPJfds+4vEB9J08m68NU1NEukZ2MOrzC1EebKD93S1HylYiF7640J5bMZrzGY1X+xSE=; 24:zzjlH95gDPs+bteb8oBG4eLD3FkOAj29TZbh/1KMx68edHGdQ9CsHXj+ixxRWixA8cn3eKIqwLeDL1SFy5oDm+4cwwKpOxbULTf+FLnepW8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:J2u7seBivzwoiaOjfxV/BPL0J8VQ5fIUOZejgC4SCiDh778s+6gLWOzR6cYiyEMUit28aIamNKp8ljNCcGk7osez7KT2f8+a6o/Ljtnmgm43mi5gqJ7/Pmtovp9dj8JcieIK9eqP2pqDqhywmHFLVly8GueOv9VcqW2Keql1C9Xp/iqn4l5Pdra5IW8y/NDGIYhe+xXX7H4b9hblgIz/VyilZgl1DpXvGO8+qU7nF9Y28AF7/mRLQnYjMWQ21XrG X-MS-Office365-Filtering-Correlation-Id: 0e12c2f4-9f84-45ac-ccfd-08d5cd64cd54 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:13.9978 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0e12c2f4-9f84-45ac-ccfd-08d5cd64cd54 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 05/20] eventdev: add framework for eventmode conf 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" Adding eventmode conf which would have all required configuration for the event mode. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 16 ++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper_internal.h | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 9282682..ec014a6 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -97,6 +97,7 @@ rte_eventmode_helper_parse_args(int argc, char **argv) { int32_t opt, ret; struct rte_eventmode_helper_conf *conf = NULL; + struct eventmode_conf *em_conf = NULL; /* Allocate memory for conf */ conf = rte_zmalloc("eventmode-helper-conf", @@ -108,9 +109,21 @@ rte_eventmode_helper_parse_args(int argc, char **argv) goto err; } + /* Allocate memory for event mode params */ + conf->mode_params = rte_zmalloc("eventmode-helper-mode-params", + sizeof(struct eventmode_conf), + RTE_CACHE_LINE_SIZE); + if (conf->mode_params == NULL) { + RTE_EM_HLPR_LOG_ERR( + "Failed allocating memory for event mode params"); + goto err; + } + /* Initialize conf with default values */ em_initialize_helper_conf(conf); + em_conf = (struct eventmode_conf *)(conf->mode_params); + while ((opt = getopt_long(argc, argv, short_options, lgopts, NULL)) != EOF) { switch (opt) { @@ -131,6 +144,9 @@ rte_eventmode_helper_parse_args(int argc, char **argv) return conf; err: + if (em_conf != NULL) + rte_free(em_conf); + if (conf != NULL) rte_free(conf); diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index e946f11..134ddd3 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -27,4 +27,9 @@ #define RTE_EM_HLPR_LOG_DEBUG(...) (void)0 #endif +/* Eventmode conf data */ +struct eventmode_conf { + uint64_t dummy; +}; + #endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */ From patchwork Fri Jun 8 17:24:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40906 X-Patchwork-Delegate: jerinj@marvell.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 50CB31BB6F; Fri, 8 Jun 2018 19:25:23 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0065.outbound.protection.outlook.com [104.47.42.65]) by dpdk.org (Postfix) with ESMTP id 3511D1D019 for ; Fri, 8 Jun 2018 19:25:21 +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=u2ESl+xT/ze0qlz35kvNkKAvz31jJE8LDyjCz3EVjuA=; b=VXRm94bCdwlQe9rdSRXT4oYOtAADcyDuthRdM6Nkcgt4niTWPW8pOwUhaSI88DghhlNmY7A3mJLX5efYfRwfY2EJCn7FM1Nn2/+8NzNCrFzXcH965XPFMamJrYiwARrHcyU23kuaGFVcj0usg0MDNYe3+GxW+X4h/a1Ugvuapvg= 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:25:17 +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:54:05 +0530 Message-Id: <1528478659-15859-7-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:K/Wjy/TYAeaRv+XMsrCkDgXvayXuPZJYC5i4LaYQhZ/Wq8r8BerM3MmF0N3jA7f6PNW6fbDJtngiqEmpOz+9NomzAiXXK9GXr2nI5N/HalQah58dzz1PVe1IQqwhB556Q5a2lTLHm0wLoXz+IB4AhYvm1tk7hOUto1OBNi4igDMn32t1mZ0aozH/WXQ+C6MN6gSKKem5Rrq7MKG2Nxo2AsJ81hzOwvDRDIsMC/cCr1+3IfjewfhBsZuZzC/CmGfv; 25:wcJ+ZdViEZmlHBLjIA+Z7M4HxJ51Qzy8DRricHcmFvMCQTLxObAizpt3FaiBNJwA7D3zXjUgmKmklJ93g6cUO0SMYI/J1sU4sJQQkvOOXW3FpH5mPzBxA5kzoOInwgWXJDztKceunKC90fmIo74w0rEnl/nuHwTTfMmP0m0kXLStqewtufhWNBEazInU1t0R3gk4vCPipiMIchdef8sG3QiA1JbO6lZkI4p+RVAhq5xlZxq5iAPqWvtiRxlyrKLSzY5rEkhZGHEYC6IMthfZ7JYNlfV6W3hXYRF8/vF8RB4h1orPKWe5Ib92ulYMruLtJQGYfHrQwADn1UGrZKbTEA==; 31:m4SfeF/EKEFIAo/vCOabv7EXRXCq6z5vHEptwaDFQQf7FOzMliBlGEqq4EA8CMXrCORNbZ6ENv2LHch7O1gDSRtUvPkn7/PBzGqVAmvnspQYnXjbmOc5jkAtdT3wR3HMbgz/8yRjmVCYpvKg3fsGiYpdySAkUcrCoo/eBCcyfjEbkGj1Me4lAApkWLw7v+xjjzt1EtldfoZIQoa9t/B+c++ArLHdvMHjp8zMPZvYi7E= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:QX+7dQp+O3AT2+RLuda4l+jNEYDrA8H9x+r6TsyGiD9xKuiNbsJO1k8HtK9IUjo4UCC5wz24oBhw3p/SIEr4wqrV+hTEyZn4qG2Kf3gQtijXSlLXB2E7wdlGmo8uEI8CJLo8yhe0RJpAa3WEvr81SX4mKhvmrcws8s1XhmK7neGyX7IKTDsuPrSzmF/gcLsgwnXlYeSuvdZM1FjnfgP50QQlpei1eTZyLgaSTzWuvKGWlk+3UbAU5q6htvQgFTsYx4D0aceuZkQzJbdDl9SZIMbkSPMfqLX4gZJiGoFooXKL1CysyLS+Ryb/FnWZFYpR+Apqi9XARV6+oV7/8OuY+kMHJKKuiGe1XqtZaEWtfCzqannCW8pstmuvHa48ZIS9YPiEvlf5/O93hTrnZ92Vjcd7GHm3w1VMrVVFBhOr0Js2soYpGPgRKgo6ShwwFBMrij1O4v1F69g0q8JyRnq7HOgTjNje7AHJ+nJc4k3Pf0qP+ixmWph1o9sQiXAMRX3eAsksOCJ/oSvHS2+1fOIfL5NPP/FD/OeDhR6F+Eoa3Bhim7QSv0Ex4gmlR1lhFn+BE+l0SOOwUHY87ZkCx21Zg5/rxpYm++HjY99A3N/FzAQ=; 4:2DGTuSxXLEvMKqADHaass5u1otifAPNL8RLwIBRdwOsbMkmiNAZ1pZPIQvIumMRUVOeo6iUrogRXSiFLaldPzb4BEzW8goWelLd1OULW/Kd/EOcY5RT6rk8gmHxQ1lwyzJj5JEWf4tAfXlA+npmR8oG7AHOGjrepzLTpSJ8AP33zi8fUCHw9A1CHlkCJSuO0RXIhFk2iQLFIdRiiQhxKiMkUtz9Y+y2wFZAoYFhFfmtSmxuZnriD5YyP5Z5xKRACOjsJeX5v4Pvuj23Pz+xsUA== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(575784001)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:oJcXSJmCz4m1lPodldimauAN+abJfgW9vEpuyFIzN?= 7LbOJS6xj5Ja037UNYZE8tgLoluwtVeARjyWbMXcFX0hYVU/b7TeOuFxCiC5KGqA5aGvvfMkK2kpksMpEY6PB4GGPotIsUT+QiORJRQgefwtTsshXqjOI8saoDuYETbbRD5uvaLlYYMADQ4if21POkVybIvegAV1Z2kmnpYAxihVlKfufiEZfZi84T4AWSJO/Gu/vn3amsACrOIww2NBlKtu83WSe68YOq47t35HS/2drOCVNF08+84NDdNO0njUX3wevsG3d+yZ8tqCEds73d1H8JjvoubAgM/z7gLy+xfr4n7zZzkHLcqJXUddskxtF4toTCLmq3PTJQL3JP5+o/Q52py2w7DSlM/kvAtxsMY5YsG0i90qGNChr/lDPcWDXRbVqyic4fUBZlyM3icY2yyCpgeB9ukcMT4u8XPrm56cvFL83gwMGANCdXpDQJB+R1WiqEDWl45m2iQ5D9Xc8cCpyURRtnFslMx1E7epO2MPRivgMNj0ltPk4Tef4d7mvZaSFkbk4QqcvltSNBkC25xg1x62Ahm2q60zNZ9052f7Z82h/0KQU4ELDgvFAkWb9pT1Pcu+1p9/yJaM3YKfdjRV1ltLm2+NZ4w7dXM0FLI7IqiY8q9Jx52g0TzI8yvapNwVUgULv5xMtlfIJd3JWnib3sKqA/zdieRHtrubvw1AD2QhihUxfHAzDCThmVnTm6wFXVabKQg5OEVf+kAjqBio+JD+1Vblt77xsRAu4b7Qcy7YkxRT90bFrclVpP6OxshpZkkYfl1AyK/m0n+qKUXDgw234Bg1/seAtJpl+KmapK6BYC81+y8JBPgv6jsdCN5acxxeCgCktHMoK3/rA0hH6eYhKyQnYLOSyp7bh8uIBHQ3CiA7xdQFk5Uf7rjCVmJYphnlT8em8tQQvyEoVTnTbzfT5BRKs8zTFhq0s6vI1+pLJUWx1ylz6W5LeQex2/pMlch3Cat780m9RYZJc/9nC5QSXnA2UUZxxOSkCBJ1gXZbOcQE21p+K9yZ9+as+eu91XB6O66j5HDiJV2I2gdEvqyFnBvOBWDPDvy1xhjxyZ+HKMYfAlfhUuXzpzQ5rB1w7/KjHwmLIPf6tdBmCSzsyxtytYMnHGanz9ji/khTe8aoWt6+KDwsCI4t34fZinR+pP0RZldPYscSMx0lLmXTe/ctTTNAIHik86KhQE7A/wU2WUR/UCPaMUg44PrB0Kqf6hsM/CW7ngnbymXoTsRwe9OIIPIbHiC8Fwcqe1kBwg1TasMpijbfC8aQ16mVymzjmoJ02v1xJN/OdFsHRKx X-Microsoft-Antispam-Message-Info: 6MsYmmhI8HHdv3tJWoY+a8fxUhC+nD0/OcWpnFsO6DofUfEKWOU7o6XiZLprfWCGMd2HGIubNNCIoxZ324Jgv1WYDkeNJ3fJj9YUFj6V45BmtXvkm7XPMBF+1A0Ywvd1bZd2BGQpbjzx5yLMQTgwETo4wbuBP8mMbTQHEXmboMoSRo4gpfFZhm0LcXoiN1t/ X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:/F1KgX/lRajCGG7PNj2iNPYaf45M1longs3Hen1PUAGSppCM+k2TYmBoD/Hs0wVZORQnKzPKMuMRpeABSu2Uba40pPt6dMLi+4Z1xNGfhpqFQ9YFpQpVftNuBMvxVc7PT7E+R5As9U3BfXj1TGBP8GGo9QHiKI11IT4sRmNr5MQg/2UsHjIneLRwie0aWleLX3EfEpXjKSF8qLiGRb9D4+PFXBetG34bE923SePIhCHztzvkHEDI6Nj2sF9vx9JZWqlIqxW2H0m8413rob2nPrz3OvNMi+zuzMcU1/04u+e+2tDMmqhumu6H6GSAjeaCgrV0MBX36ll73vokzUjZoYSF4okxCzIpKpup/oR3NcpoFNoDuqFURrmTaV31Ney1VM0WAmfcV/MEoH0LhATenIsCM7MnPEhMDfCE9UpeMyrxReYYyfPnMQrXD/gDAerPpavZesJNYnX7Q4EX4DY1bA==; 5:y2uLbvjsz1Pi5alc3/manOx0TMu2F0BSICEF0PKgXydyTt98S0zOxxtI3oh8zXt2+e+C5ratlvmdlZJHxOj89S5znd8Vc7EywhvK31oB3fXzTCxdkPRjRRKYS9klK2Rkvr7a/RgEDDbxIQ4CCCXDR0Y1FmOIhU/1d7AXtNhC3n4=; 24:kN6FD4DlHbsXhpFF3qLa4jMR4dIEzLL6mN70fW2yxkFXJGjKkghugnJXj0sCFOvbimeJxf/sCcGMiEpk7XefuWHPrNwhaOQLFwyEO4jA/uo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:TkPAyvz67b83t+Nags1Gxwdxl62fWYm4R7V7QVaUZ5wGQNr45/FoaohktnOyATGcEJPr/5EjErQF2/iUXL1zNo2QFIEvebI0h/klPE7wJTE9RGkpEP5sjGkXNuhHAFUkTis4Z2HldTvSZdg8FvDw/sp5LoA5/9K4csf/Vj+RPXaInV3fvSe83xjxZgzDaf1mAUttiVihkhei/fo70/spUdwozAQ/bTmgsebmcbgou9VuxH1vxWUN/QwSf6qZPNsl X-MS-Office365-Filtering-Correlation-Id: 45765c95-5bb1-4b6b-7c6e-08d5cd64cf49 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:17.2791 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 45765c95-5bb1-4b6b-7c6e-08d5cd64cf49 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 06/20] eventdev: add common initialize routine for eventmode devs 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" Adding framework for common initialization routine for event mode. Event mode would involve initialization of multiple devices, like eventdev, ethdev etc and this routine would be the placeholder for all initialization to come in. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 49 ++++++++++++++++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper.h | 25 +++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index ec014a6..f2c2b78 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -3,6 +3,7 @@ */ #include +#include #include #include @@ -152,3 +153,51 @@ rte_eventmode_helper_parse_args(int argc, char **argv) return NULL; } + +int32_t +rte_eventmode_helper_initialize_devs( + struct rte_eventmode_helper_conf *mode_conf) +{ + int ret; + uint16_t portid; + + if (mode_conf == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid conf"); + return -1; + } + + if (mode_conf->mode != RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT) + return 0; + + if (mode_conf->mode_params == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid mode params"); + return -1; + } + + /* Stop eth devices before setting up adapter */ + RTE_ETH_FOREACH_DEV(portid) { + + /* Use only the ports enabled */ + if ((mode_conf->eth_portmask & (1 << portid)) == 0) + continue; + + rte_eth_dev_stop(portid); + } + + /* Start eth devices after setting up adapter */ + RTE_ETH_FOREACH_DEV(portid) { + + /* Use only the ports enabled */ + if ((mode_conf->eth_portmask & (1 << portid)) == 0) + continue; + + ret = rte_eth_dev_start(portid); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error starting eth dev %d", portid); + return -1; + } + } + + return 0; +} diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index 7500f0c..e1e8a3b 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -60,4 +60,29 @@ rte_eventmode_helper_print_options_description(void); struct rte_eventmode_helper_conf * rte_eventmode_helper_parse_args(int argc, char **argv); +/* Helper functions for initialization, & launching workers */ + +/** + * Initialize event mode devices + * + * Application could call this function to get the event device, eth device + * and eth rx adapter initialized according to the conf populated using the + * command line args. + * + * Application is expected to initialize the eth device and then the eventmode + * helper subsystem will stop & start eth device according to it's requirement. + * So call to this function should be done after the eth device is successfully + * initialized. + * + * @param mode_conf + * Configuration of the mode in which app is doing packet handling + * @return + * - 0 on success. + * - (<0) on failure. + */ +int32_t +rte_eventmode_helper_initialize_devs( + struct rte_eventmode_helper_conf *mode_conf); + + #endif /* _RTE_EVENTMODE_HELPER_H_ */ From patchwork Fri Jun 8 17:24:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40907 X-Patchwork-Delegate: jerinj@marvell.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 1CB171D021; Fri, 8 Jun 2018 19:25:26 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0046.outbound.protection.outlook.com [104.47.42.46]) by dpdk.org (Postfix) with ESMTP id CA4561D021 for ; Fri, 8 Jun 2018 19:25:24 +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=XXgsd+/apug1H7GwN2aHnpPrb34prGa0exDU+EWJi+I=; b=Xuu5fAGuTJbn5q759dEL3vU9qPqwuk/UhlhmrEQCFxlnYM68/m/lyDacjQECSIgwe+N8H6XmdXgo4a0oi05YCHym7lh16xzNtZMYn90TpH6bInwP77FdBGDfpmFkuDGPWQBLzXwOSCPDdd3wWxTkJ5IiIBXEa7I50UfE5KcxiZ0= 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:25:20 +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:54:06 +0530 Message-Id: <1528478659-15859-8-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:FMGLVnEq4E0JyMb2I0teH8KSYcKgk/zvHj8l9beDU/iGX7KcqXiZD3vlyHSH2ZOxW8eKbPWXI4ycBkV2Kk7hAJwgRgPWCtmLaBf4ZX7Tr8z3kDC9kQH5ccsZ9h0C7Kok6ZiQQqpa50n9qvsWAWlKw/qWfbDj/9AMkG7PclPmLd9tm3SYivKHD+wE7MSOgoZesyx0TsLEHzIuZEkmKCIFfstH+bT1afv18HGwEh55Sgjo4H1vo04pJ6mIkc1pgRtc; 25:bupnlL9XEUgfeLjc2lO/UAbIS8hveVroFKPKJmX8xaavdOTo7wjyTBrLWpUuZXfBHFRQoJLoCgx0VKj0pqDZSTpRAhW2izRqd5KfNMVyY+J+OPZAqJdA/QdCWvLgmrOFA7b0XTIRMRotRjh6gLQTyd39uN5i6R6B9CfEQLIDk1SIMPwSLzAqcICMdvirlmIxQd3JZNkES4ReEDHgScf298qVDza+Q/Aq239y8hmeIKaqR8jxMzIHj7KrnPGaRUOTPdguq9BZADhLXuh9Blioxl0VbkU41zYpfQG22eHqa4x1ldxN0H0ZKkceo5g81myDo2mhBHG4u58UijV0StFwGA==; 31:eJluaomNsMCWiSD1vOb9/62HJbCR97/ztrpmW/CnxkbBkPSQX5ovRBfPzW1EHGpX4o9fkRCkNGYOXc50qIZnAhxBbFIzQp4d45AAlV4InsXOaXyu14dRvPJAcMApUfcznbd+TZp2IA8NEn13wenpkHPzwM11vKQmkemgZu3G723BdZQwQrwH2AXJKjKO82olrocsYS8yyrCaafXAncT1QG6Or9Lh+1pd0S1zyx1bhOI= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:OvAoG8hRaPj0dxWqxvSmexeALNFU7V1udlawDy/mtjomWYE0j7W7j0mNbmaVZhNs8k4qwBdjzg7zlPCuOEAHsYjeceKffJMRBEqBU4diBvQUc9algDF7O9dUvXZtm4rKQxOK6foZ6xtPjcKRLdIjEjI4cN6XeqlCxkdLUmeQL0kya0Q/15LSkQcMlhSzygrpQyotCkhi+3pLSxt30q/BN3CY0sg+Z/rRcwvuZcpTNVY95aWWg55XEisZXxKrIRgj8s1cdEkZniH+ZgTzZdyRrKAimbGBCPNx0aTNR6FrJ7X5V2LfaTi34aTTMVh8jJ8SjL4ICsMZ1wifFvS/hZ3wQlW8/0LPXcv8FEmSmXaq6nux82EJ0RWEHKZaru0GCJLeZH5tLR9gQaG3rwyaguQ7faZ6Yn3BhFCIzHQXPbQ+zR55/0VBG4AjtJMCHK/ln6IjcV5jrz/iA8XpFAoVQOpPhO6Ba0QkKeXhZrhReOvDl7/OMPJXnwbLxBCfVpKwm/TCgYu5CRU6Tj5c/+1IaRWewB57fACBSKEB82vuDj39gWsC6MyXaob9UxyFkumVSErn73iFq7+8eV1ksdc7fOIGYgEkm+86l2eyDWOrP6oxCc4=; 4:9V6WCrZEn0zi3xw7/4Kf73H5Wb4Cz9yJItuNpSDTDcLFuyeDTyK0WIuM7HYeiCCbHxl+xgnN8F15kZ1zmYvE5uLdSFbilWWaNcX/lheMuNK6wUm5egC0uqdAhlE2zuRioHpS8ka+gNKwoNlFk1J5KO2Pj7GiLfJRIZYiaCWXQF8bU+yg7fZhlPjWmToeNcUGX1+cj2DaWmCYrEXXEWw6G02jGDOiDkQI0L/+pTKGaf7YmoRi0Le4xKKG70s7yFTixT2n7bH/YcWXQ/0MFQ0CTQ== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:NB5pyOifGWMQi3SXzWvkrCKn0tPm7wDjcyflAB4Vr?= 4vQ4iB2HCjwn6bK02+28htEzBp520TGBG/LGMDAj/O5WqQXWLqL6ucyq+rzualJVLJsg7tJelvSuzd6UZcmWwHPZNpShvzmRHI3qzakW1H/Cn7q8OcDYVDqCxwUdDLyLRwHXuHmYjn9lFxkoRIZJ/f82ryYAMsRGMRXYGKMSmCz2l9IEQiumLfXc0/l3stVz7fMlbhB1LlqKSMI3NWNdmSAMHArub1uXkPxiG3HlYSwAzXH/aM4Td7nU5XHPKdiEda4/SmSrCS4AuWfFfCoMeAsBAs4Ut0otTqT/kHTZcN+HPvochUmeRlKmc4VRMrGnB0C2ul0g5sW1GTJl3f1w7erkNzSAfqNsZDQ/pmtnt99CqvoANctBZliSgBaOy4gtnhFDEky82v+iA7LH1bRmyF8PwhzloLrZOpRCgOA5Yzvb2/NlUyU+qQE+VpoKvATZTL1f6mhNGBoJOGWPLx/6r+IO8wVQSFwBqDnIOjv+fc7JJxBE0nMlluwP17KNPeEzl6DwCts/s6cZQzpWnIdOPhocHQu3Tv65eBdAcCYAIcAE9RaizWhsbzmo+ajP7ySB1ekLnE/pQv9Yu0hvOO0qhBl3NT1KZ6i7KKRgBxb2dER25i0GAP2zUG0SqNMx76j+40n9yEFerBW9PrTZB8lh9y0/YXwqGtwf7hJx8Al6ii+a48rrTm7GnXA2KLMN/8kbVux7NNUh+pp7CNH8R79fuHCnf75ruif40TMulHWC/tgSSDxuTHVWl7HuhHKUhntUUtUWSP8ZhB/hiM9txnjGGH/A4slQ032Jj84b7CZDDE+s5V6gQ1E7dpXIeijc8UvsRiVTeUQfH7wGwv1CrNjYGA8OBeQjLoxlhynsYB5FF41RcE8A8U9SS9ZUUcIQPR5jcowP1Y6X6RCMNBeI+8dZ7o+ZAfTYilAMNqtrDp1KrrMKto9iGCzU5pQOp9O7woRNGxgxtaNceqvuYQIAOQVMIR5lUfTyasgCHhNBPw4YPNhWrv6aEAuvBzvJQ0l/aCKlE+QoxJjDekz5kVKT36dnN1wOPtD9Gj5Yfo05IqhnQxPy7HZfbh0rEbOJHDnWPBxE2cGAI6xPiFK0MUF7m0U+iPcjhs15vuWUSqzHI91XNg6FMSNCMUpaBa0JfnWVwUwkajmO+auLoz414sKjbd/DYXuy0YtJmuwIubFIvdX3k7+t1i/aiUGD5jamm6ncyY7vzJ+GcixOGgiNov7SpzFKy1CHN8MJLFURm8woYS0ophklw+UVuA2P5Hl40wdRJUw7YM= X-Microsoft-Antispam-Message-Info: 49QjzkpuQE6vdHJfnlQvCsZCcka2l+ynuifWys6pYNBZeFrgm1x9Sk7p/JXbowLIxhnLYrbzMtkz79I/vodD4IzG5y8oDUs+mY6bbQ/K6fWgfzSN5tbJq0mpSEnamWlpVyjiR805lXbGRdg4OUBhTVuCeE4uIX+4dqKM4wXJ/tYZDhEQOGdC2zO8xVnPNhgZ X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:5WmIoUzEEyEVQxbsT+DejUg6GEjmV5cfAzo1tRucf40Ux9wFhCmav+bZ/tI+9BBH9z0TbZ9xeSdHMPfkPYBswDZplCcIBXRE+sXBNlprlzBLjNqSfKuqiV7yqngadkoUGikM/15FRphnLBJZ/zXZEbNk7uCCw8CkyMsEX490G9ik1CQtXc7p6in9FNzjqKLI2mg/Go6NW0PIoJazuxPcmsxlqIQGHWE/hIpjgZWmq7rRhk93F5pR694esWWXhRSevl/fhoqVpqQurA7h1hSzk2cacNcdXGDUZ75zA1w+gc26VVu+gu/9nKlEZZf5JEMmw/PzKjCpVklrZnQ3k3hOblLYR76+CUI9EAiD+k1I1mDBPLXJ+h78VkWOetbn9j8LrIEp6JS23LKJKuA17kDt8iUsZrXKbrGVCDFafvE1vLLhRxZsQ2MvUKuJEeXubjGka5ZZwxAnGawvueCE5IwZVQ==; 5:Qsy5Q9Ul8cl3Ho2wgSkq6B0mkxmkEovSgLtX9Zj4QZ6JG3U1NxybtMTRv4wVIzvuWJR1dpDLSEfQ13pjdy40DpWi0il7tqrg4lCII0nIHiowfD768RBcPMkIoJ99vSmRMpNT3FLbAcAb5rBWZjkbbPPOSP0TDhmd5uQ5ZUwIv9E=; 24:2OvX+D8lBLHck0f2hVapWPKJLXq3xhEcMp/q2x0dAui4FhZwBqS5P2PJSWeMz8kCv0dcLi6KV+QXM/JjgWY90UmiB04aafN2jIezFW20lCQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:e+bzgWmQmZsemHMXtjEV0SWDMdsqvOSRcUrg3BM/IVMs+BIx0yVsse/Z/JJMrhpAFHMWFCMB/rPO3IVhPXIwUo2iS+Sd8pFSvxLtPunsPMR/TtdOgFold5xpiV3RMuPn9jb9gV8jaUEAu7H9vsWVvDR81WZG5m8p7TgiUC/cDbKEbIYX8/Qztm7CrvHeaWcJ/NDrBpCSb2W36+Rkar9UNsomCeIONj+8hX8UzAgyQuJsAyAE4imKzgdFUU50tUfs X-MS-Office365-Filtering-Correlation-Id: dccd5a83-9853-4f1f-f08d-08d5cd64d142 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:20.5760 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dccd5a83-9853-4f1f-f08d-08d5cd64d142 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 07/20] eventdev: add eventdevice init for eventmode 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" Adding routines to initialize event devs. The internal conf structure would be used to track device configuration. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 129 +++++++++++++++++++++ .../rte_eventmode_helper_internal.h | 16 ++- 2 files changed, 144 insertions(+), 1 deletion(-) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index f2c2b78..e55d4aa 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -154,12 +155,132 @@ rte_eventmode_helper_parse_args(int argc, char **argv) return NULL; } +/* Setup eventmode devs */ + +static int +rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf) +{ + int ret = -1; + uint8_t i, j; + struct rte_event_dev_config eventdev_conf; + struct rte_event_dev_info evdev_default_conf; + struct rte_event_queue_conf eventq_conf = {0}; + struct eventdev_params *eventdev_config; + int nb_eventdev = em_conf->nb_eventdev; + int nb_eventqueue; + uint8_t eventdev_id; + + for (i = 0; i < nb_eventdev; i++) { + + /* Get eventdev config */ + eventdev_config = &(em_conf->eventdev_config[i]); + + /* Get event dev ID */ + eventdev_id = eventdev_config->eventdev_id; + + /* Get the number of queues */ + nb_eventqueue = eventdev_config->nb_eventqueue; + + /* One queue is required for the final stage (doing eth tx) */ + nb_eventqueue += 1; + + /* Reset the default conf */ + memset(&evdev_default_conf, 0, + sizeof(struct rte_event_dev_info)); + + /* Get default conf of eventdev */ + ret = rte_event_dev_info_get(eventdev_id, &evdev_default_conf); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error in getting event device info[devID:%d]", + eventdev_id); + return ret; + } + + memset(&eventdev_conf, 0, sizeof(struct rte_event_dev_config)); + eventdev_conf.nb_events_limit = 4096; + eventdev_conf.nb_event_queues = nb_eventqueue; + eventdev_conf.nb_event_ports = + eventdev_config->nb_eventport; + eventdev_conf.nb_event_queue_flows = + evdev_default_conf.max_event_queue_flows; + eventdev_conf.nb_event_port_dequeue_depth = + evdev_default_conf.max_event_port_dequeue_depth; + eventdev_conf.nb_event_port_enqueue_depth = + evdev_default_conf.max_event_port_enqueue_depth; + + /* Configure event device */ + ret = rte_event_dev_configure(eventdev_id, &eventdev_conf); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error in configuring event device"); + return ret; + } + + /* Configure event queues */ + for (j = 0; j < nb_eventqueue; j++) { + + memset(&eventq_conf, 0, + sizeof(struct rte_event_queue_conf)); + + /* Read the requested conf */ + + /* Per event dev queues can be ATQ or SINGLE LINK */ + eventq_conf.event_queue_cfg = + eventdev_config->ev_queue_mode; + + /* Set schedule type as ATOMIC */ + eventq_conf.schedule_type = RTE_SCHED_TYPE_ATOMIC; + + /* Set max atomic flows to 1024 */ + eventq_conf.nb_atomic_flows = 1024; + eventq_conf.nb_atomic_order_sequences = 1024; + + /* Setup the queue */ + ret = rte_event_queue_setup(eventdev_id, j, + &eventq_conf); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error in event queue setup"); + return ret; + } + } + + /* Configure event ports */ + for (j = 0; j < eventdev_config->nb_eventport; j++) { + ret = rte_event_port_setup(eventdev_id, j, NULL); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error setting up event port"); + return ret; + } + } + } + + /* Start event devices */ + for (i = 0; i < nb_eventdev; i++) { + + /* Get eventdev config */ + eventdev_config = &(em_conf->eventdev_config[i]); + + ret = rte_event_dev_start(eventdev_config->eventdev_id); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error in starting event device[devID: %d]", + eventdev_config->eventdev_id); + return ret; + } + } + return 0; +} + int32_t rte_eventmode_helper_initialize_devs( struct rte_eventmode_helper_conf *mode_conf) { int ret; uint16_t portid; + struct eventmode_conf *em_conf; if (mode_conf == NULL) { RTE_EM_HLPR_LOG_ERR("Invalid conf"); @@ -174,6 +295,9 @@ rte_eventmode_helper_initialize_devs( return -1; } + /* Get eventmode conf */ + em_conf = (struct eventmode_conf *)(mode_conf->mode_params); + /* Stop eth devices before setting up adapter */ RTE_ETH_FOREACH_DEV(portid) { @@ -184,6 +308,11 @@ rte_eventmode_helper_initialize_devs( rte_eth_dev_stop(portid); } + /* Setup eventdev */ + ret = rte_eventmode_helper_initialize_eventdev(em_conf); + if (ret != 0) + return ret; + /* Start eth devices after setting up adapter */ RTE_ETH_FOREACH_DEV(portid) { diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index 134ddd3..4cd5ac4 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -27,9 +27,23 @@ #define RTE_EM_HLPR_LOG_DEBUG(...) (void)0 #endif +/* Max event devices supported */ +#define EVENT_MODE_MAX_EVENT_DEVS RTE_EVENT_MAX_DEVS + +/* Event dev params */ +struct eventdev_params { + uint8_t eventdev_id; + uint8_t nb_eventqueue; + uint8_t nb_eventport; + uint8_t ev_queue_mode; +}; + /* Eventmode conf data */ struct eventmode_conf { - uint64_t dummy; + int nb_eventdev; + /**< No of event devs */ + struct eventdev_params eventdev_config[EVENT_MODE_MAX_EVENT_DEVS]; + /**< Per event dev conf */ }; #endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */ From patchwork Fri Jun 8 17:24:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40908 X-Patchwork-Delegate: jerinj@marvell.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 D688A1D034; Fri, 8 Jun 2018 19:25:29 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0085.outbound.protection.outlook.com [104.47.42.85]) by dpdk.org (Postfix) with ESMTP id 22CB51CDF9 for ; Fri, 8 Jun 2018 19:25:28 +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=myELBolJDf4pNGkP4mtLoADsN+W26xgXOfu+t4dIjBo=; b=nEcxA4bDQOHw/C+2PKlU7qbq3nLLowhL1eIvMnNM6u+mkYP2zpLuX7iBbdbakeVUyYJfd0WmF0pkx/U2NEuLusVY8E2aN6gJy4INA2IVk/u9a/6hmliyxJs7D9SvlzpPnIWBr4+A/991Vf/hxutoZo93AzT/u9J5utMjdb7Vxdc= 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:25:23 +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:54:07 +0530 Message-Id: <1528478659-15859-9-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:Cn58pCUWVfQy0KEcBtRe54VT4GMbb1tb/BKFBtzGkxTOjkfZKYEQvFOgCc2sekJazWrww7l2Tfsgf34uqKIxSZ+uscDCqOons0dVgat9KYfSdxXxVvxoA+7uuVoKqznra/C5QAvLK4ceFRx5ByPCqdH8F/o4c7PNVxUIlopL0Tj8HDQ8s/7zPy7uRoQlC4Tg2V9x8a4w7tmQXxR++g89gF4W6aHjng9CKh9NhA1TlvGBQS6vSMojq60X7zBco+S/; 25:JiCYVMK7UXGzv5d20KRm6YasmF1HEfvxSZ1ht+CmIk+7aK0hSZKe+HUmFr47h+VrPX3JxkB3ccaYljslR/NFuYNQAbKcdd2hiYQ7s0B1Tkrj18NKIZTyG+nU2dYef7bviVT4X4xmjA0WS3kM7Diku0K2V/pjGB8B3+U3XR1O7RAe4daLPQrkDXf26YGdwL5B+jrglzSHyXZsA0dEGdn7+iKKz6rSfDth427JegGmw8r5GKZdZiuo0AY3kP/DaMEwfF/U8XO15uFXMPrrXi1QDg0l4DRa5Y2bOWP4/WzRzubj3QexulzMkSUFTNtNmbfFuRAwoBV5YeAaFpxOoIgjgA==; 31:R3OqH1+FKtEgWRL5oIW/vLBwlVywhP2rbpdZcZ8FRoUmvFm5YmQgl2o+sNCsaJCqtIZE0tIh4ayETB4Sglgzks1RF8T9lVkuLi8WwPHoh4lJLK6pQvMm/dYciMvydc9jxhZTLmHNbijwOKm9MDYRuNOr2pGKhysierc9VPUQAO/xQ6u9j0V6CXr7ZFPAuOr2pkVVLQkKTRcQWLS/ebWmwIqRgA3n3dMO2keimlMvaS4= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:bDnkjI/kKg9QpBw2fiUQKjvCsyuoO/mFy2RkrxyHqJLhP448MV7VAY4p3D9+Am0abI5a9NGUQ5/5H9juolkhfHUfxUQoxTYxE+5185lceiGaH0FgR0wBxuc381Tt7riNjUZewpOgUER/ytDkVNLHYtpegq0VPsLg220bm/3XRzsO8jfDmc4iCStv2kYiDWw8p3KhSB8y3xJxSyPtL9LEzTnDEkY/ifh4pRzvYQXO41Nut6GbIB4hhkJEZ+BaE7QVij1Ox3EHIXWpjIalDWnym9uNAp/KmE/ZV9EbPDdpd6YozCD1moDbGodnGJTFHW4BDxOF1Cgoir9NHLcehZt08flIT1MIDO+3YQMFDOFT/HRetoezdhEtFU8NqhVlFUcL+mV36I8pLBfURcd8UmbdIaf299pnD/W2OkN5yhYR3G8pzJY6RYvuNFQZ8Q0MXPSUQPjPI1roWCxh7agm7OHf5FvNsOy85UhaaI9Anfv7ND70R+bHgxbsguhz9KY64SEg7bNVxu+tFMq51xQcRonHBTh/AhWaPU/9PzrYmUU1Ycm1FEPn2HY0ZvsfUphMbTYWEszvG07CmOQttsHL1dYY6hgfgcPTrdXtIyfkFkC2O4Q=; 4:i0pJcodU/9zJe3woYJu8RI27bSUZNn4B4CrzDy3ionDGvjitaLd4unzFezsz/RaHEQvbaA1dLR36kq5KatdYx4jdTovJ1SFzm2weOtsWu0+wCkjlhNRIjJ8TrIWDqGD1AyAxzeYwLVmySIcYtcq2PCY7oUFLBsyWQf9xmLrGDHAirNyUiq7FDYA1m4vqOiOA9sSx6eIyYa6VRt1QfGRf4Qhozi5hzLFPFlTmkp2aNWRgGjuaFfxiqwMoB5KXQoJTB8Yl+aMUF/bOejPOEcUVHQ== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:2SeQa9+/WXO+83zy/VNgy8K/D9FK4X+hE1guBofbs?= +fRiPfNH1WTxB9Gv9/09VP6E1crmVSunTCjhvziWyx+K+mZ9saLA8EH3gVK2H8u+VgFXpgjR6s4wFjQfg6oqK8a3oWUl/AbTLj1ejgyC6VoQE/En+yAZG5ucc+QgYtyudpXRI/rZRv2j9f4JpyRdOIG/1CGsfkWXLZamBr4Qir36/+QpfeF7vpGBIRbjw+NO+6LlejiKJotphK++1zqFeezRJGvGoXnh0xUjd1lNmpN8bLACyUn6NNx8on1kGu0nKfTlE3d0rSMqNnGhfrj8xqYupJb++9fpNcCbbGIr1HlNGoA5A9JsMFEnfODo0El3XcMJlvS6e63IH8/CZAyoMnfeUWsbyB2a/E7BqqeoT4wldk4EmiMKtqtOy/lzggfLofa6tyRKHLh/xAQ5h8kPfgx/O0DrvHi9KUVn0yIn411vVxawylBBTaeFCdireRhME7U5gSrMifO2V0zITdYk/ZExv+XbfUO1XU9O0VCUjboBpsld5/O5TxwgSFgISpd/F6k7B6BLG1+3pEi+wGcvhwhTHymwnI2FMPiwqprt5CHK/HhGvXHUGTeFUgFLSwAMrhItNO+TZLFp+2ZCTmuSUAOMMhR17zFozG7EhCX9U0lAwOLilHxwB3/Xz6P8L5kzmwyIB4QZYv7ynBJmUqusuaAixVu1SQtn6izYchAm7hnI+DywEbHIQk4D4lMfG4WqFQtzn4bzZuGmVyVqT18w6PPCpVv43ts9ggVEO5BuHUmSZnm0aXTYj0Rpvio8NmWa7PkB/Oim4pbhmVuqZOw3Neq7ShXoW/n2SKq9qxxIRBkujbAcHidhQjJ/xwPkYMAaNhImP81jGI7WgPSuXy6J42uNHXK3VevJ4PcgOjLzPJNxT4fuY4DawsOOyKSHuf52ZUjxrjNAY2MnzfhaVzKlLpcuGB9271/B6BnfT756Y/a8YAkqyPFGvC6TC1+y2ybVBXiKHB4iCXrqNR4UadWHE2AFu/cM68Qa63dl8JU6q5O89VmE/YCm9R9Ucx7jYEM6jR6sKDuOVEIgqJfDG6LIWRoRqyrheaqqzXRRu8CZHTN1jXZFNGLJe0VEjKA/VSz2R4/51Pj59hFO7cc9qqP3hYmDwOowx7Er6WwwjiaOsa3NRQRad1oue8kmIyKtToLn+MCWH6Vw/cCyghASLCopvzU7DOX9IPvMMZsz6CzdjGlnr60GmBRmy4ri2TirpoTpKR/QDW9rAetCh1U03XnmSlfE8yQC7rFnbEkaayh2mqB5Q== X-Microsoft-Antispam-Message-Info: +hU5M//bARkrv9cmmH+Ux9ryg0kWCtSbRazNIQXmTwLahwxun+MUdTEM8KLBn8TflaV2PXfN5mtYJdikkOJb5TUMhyDxigMiLGy+VXWM7MXIcdx7SuHsMWx+5unMgCSM8wtfcgPn//IcaH9Z0EJALsGwwhQcL0rfsQH/aLeHHFc0heq1i2ZHI0Z74X8g3VZr X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:1fXsd8nV5h7HMHF+0OytMq+p3K93Q6wCBt0SfYtx0Z+aoQ5pfrDNVDzKyizuYem+jJc0QugXXHstPZgGCF5hAYPdYde2vn5/aFvc0CeEoGJuirBSTppqRvSsg7xaVdmYoDdHJQP2J76y55Jhv/oefUSCMO6gvmU+qSHiti9DuYRao6zoP8fWkKPikUZQwm+QHL/WmA8os4u/ecrJ732Khv7NyuledowiRWJBnZGdL4CfllnQaHg5kAb3DRj16fGUDs2Afi9D/N08PHuDSrK2E3aTSah0n/nR2noZ+G/vbMyRxU3VMUMRHnOB01/olPkuDkYj9FZbO3inidqSFd9lHyWGuKuRoOR3wxdbKzxbnXCCp6RZECEEMIKMrkVfuET7ajtzeZekw3uq3y9xvntB5iPV6U2T5KWOsJknaG5Mkji9Ei4XkNbepCiT1NM2LPJmuaVdRt+kuOx7FxnZ8g+jsw==; 5:uC98svATKbNm+Ppj1kTJjLhSCp2bTTSIXvYS1r6vpxUQwF9Q+dXtVjs/5Ryfa/AlSTkOTzpvDsXieinNHjdugUmPe48C7K45aINHrrjkY0HWicmX+UHIlE5OAxJSxC654ziDMf+ygVmmanC6HuUmtlMvie6f7cIIOJ6vruDzr2A=; 24:banknfO5x/iiF2Gm0Ctq7cejO7J1WInZfkChwY3OjSv3WeSBMkr/ZVBQ5oHzvGZbR8fbBxkloDiRDsl1WxSNrWZ892Hxag4+xpA1PZUwiGc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:aqqFxFzJk9KW35C4RDrLg4UwWJ7LGIkXeaPDdFFUKpdGmWo9UpDsfb8L1tfoaeHs1gbDWna9p2lgkhdtUE7tZrafMlqpvdstnesGEHLNSSkdDUkseh2NnoAtEg3MqXjxmm7V4pQwGca78ehBOf3JMnf8tOsTTN33sA1BJlXlhd+z3vcEQEYYbQfXiqlBdKTjU/RQVy588EjL53JgkN41BmXH2FMqn3YxT9o3ke+01WeV2m5xoBGWA3rDlSt4Gzrq X-MS-Office365-Filtering-Correlation-Id: 55a998a8-f4fc-4a2f-025c-08d5cd64d33a X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:23.9042 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 55a998a8-f4fc-4a2f-025c-08d5cd64d33a 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 08/20] eventdev: add eventdev port-lcore link 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" Adding eventdev port-lcore link. In addition, this will also specify which event queue need to be connected to the event port. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 56 ++++++++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper.h | 12 +++++ .../rte_eventmode_helper_internal.h | 12 +++++ 3 files changed, 80 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index e55d4aa..b3469f9 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -46,6 +46,24 @@ internal_parse_decimal(const char *str) return num; } +static struct eventdev_params * +internal_get_eventdev_params(struct eventmode_conf *em_conf, + uint8_t eventdev_id) +{ + int i; + + for (i = 0; i < em_conf->nb_eventdev; i++) { + if (em_conf->eventdev_config[i].eventdev_id == eventdev_id) + break; + } + + /* No match */ + if (i == em_conf->nb_eventdev) + return NULL; + + return &(em_conf->eventdev_config[i]); +} + /* Global functions */ void @@ -165,10 +183,12 @@ rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf) struct rte_event_dev_config eventdev_conf; struct rte_event_dev_info evdev_default_conf; struct rte_event_queue_conf eventq_conf = {0}; + struct rte_eventmode_helper_event_link_info *link; struct eventdev_params *eventdev_config; int nb_eventdev = em_conf->nb_eventdev; int nb_eventqueue; uint8_t eventdev_id; + uint8_t *queue = NULL; for (i = 0; i < nb_eventdev; i++) { @@ -257,6 +277,42 @@ rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf) } } + /* Make event queue - event port link */ + for (j = 0; j < em_conf->nb_link; j++) { + + /* Get link info */ + link = &(em_conf->link[j]); + + /* Get event dev ID */ + eventdev_id = link->eventdev_id; + + queue = &(link->eventq_id); + + /* Link queue to port */ + ret = rte_event_port_link(eventdev_id, link->event_portid, + queue, NULL, 1); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR("Error in event port linking"); + return ret; + } + + /* Link ATOMIC eth tx queue also to the port */ + + /* Get the corresponding eventdev config */ + eventdev_config = internal_get_eventdev_params(em_conf, + eventdev_id); + + /* Last queue would be reserved for eth tx */ + ret = rte_event_port_link(eventdev_id, + link->event_portid, + &(eventdev_config->nb_eventqueue), NULL, 1); + + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR("Error in event port linking"); + return ret; + } + } + /* Start event devices */ for (i = 0; i < nb_eventdev; i++) { diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index e1e8a3b..1ade32f 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -24,6 +24,18 @@ struct rte_eventmode_helper_conf { /**< Mode specific parameters */ }; +/* Event-lcore link conf */ +struct rte_eventmode_helper_event_link_info { + uint8_t eventdev_id; + /**< Event device ID */ + uint8_t event_portid; + /**< Event port ID */ + uint8_t eventq_id; + /**< Event queue to be linked to the port */ + uint8_t lcore_id; + /**< Lcore to be polling on this port */ +}; + /* Common helper functions for command line parsing */ /** diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index 4cd5ac4..36e2a5f 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -30,6 +30,13 @@ /* Max event devices supported */ #define EVENT_MODE_MAX_EVENT_DEVS RTE_EVENT_MAX_DEVS +/* Max event queues supported per event device */ +#define EVENT_MODE_MAX_EVENT_QUEUES_PER_DEV RTE_EVENT_MAX_QUEUES_PER_DEV + +/* Max event-lcore links */ +#define EVENT_MODE_MAX_LCORE_LINKS \ + (EVENT_MODE_MAX_EVENT_DEVS * EVENT_MODE_MAX_EVENT_QUEUES_PER_DEV) + /* Event dev params */ struct eventdev_params { uint8_t eventdev_id; @@ -44,6 +51,11 @@ struct eventmode_conf { /**< No of event devs */ struct eventdev_params eventdev_config[EVENT_MODE_MAX_EVENT_DEVS]; /**< Per event dev conf */ + uint8_t nb_link; + /**< No of links */ + struct rte_eventmode_helper_event_link_info + link[EVENT_MODE_MAX_LCORE_LINKS]; + /**< Per link conf */ }; #endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */ From patchwork Fri Jun 8 17:24:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40909 X-Patchwork-Delegate: jerinj@marvell.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 4FA1D1D03B; Fri, 8 Jun 2018 19:25:33 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0042.outbound.protection.outlook.com [104.47.42.42]) by dpdk.org (Postfix) with ESMTP id C38371D03B for ; Fri, 8 Jun 2018 19:25:31 +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=mQ7kfX07O+BHShBwE3Eh4beH7NC5VtgKZMIDRyiXE/8=; b=MwDljYepr9NBXi4M/GxpFBAYzDtCc4dinParm1ufxddJD22q9Ti4n0ckowmXsiaYJ50hTmQ8LP2RJSB3dd7o8/Mf/pK63sJLjL79bkYERZ3r97MQlvxjswXOzQT+tO5tjdumMtHSg+aaScAWdRcAZG/ENQG3AJc7koDSvwfyuxE= 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:25:27 +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:54:08 +0530 Message-Id: <1528478659-15859-10-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:8MF7Dg7iM/tHF4PceRSFzvmQWJVOsG+PvvbB3O/gpECLMxEGsj64kZAggFyorRW0J2z9ABRndNIHSK11buoJoQYh78wzhZWAasjWmSlXHv0XOI8TwcpvsLaryn+bOr/BteQo5Klm1rtn0XL/ulgKFX6V0s5OxiWhI9q19uqDvycHjknHUYx3YY5QzV1ReAqtb3n5IRE5m8GqrpaCUPYaM63niqZzlaV2fZtJOvznLlSqfO42bjSnOvJmCEzdPA8W; 25:gDqNXtwXbtrReU8iTeyUnMQAboAJJJhvWJXR6i9SLBYJHLMgsC8gVz56QgunkWBcMNZ5mR6rH9NVNk/C9yndmZsgNql3kE9vQXKMywBPN/HKUeOyX07Ai41d+XK2il+mZpjaz1B6C/lXkeeI8CfRHbplPuL58s2zaD/e8qX/F3BcShNVq5BQKAhWWDLgzT08SMnZQ0nPdzb7lN2vl+emNpnq2aP+yO5+ztke9mlJDhVJAJvoIqd7IK2K2eLD736Yxk4E6ZI5fQULifE6ey7eFJnawN9qWGbaksa/EFF/MpL82gqMjirW67xWwqlN2Q0lpKFZj8mOnIXKlRRzTkqwcw==; 31:tvHO4UJLD7M63K3JuZd/JliMLHhX75aFQ137ZBpGeuFNIIfg30H8u2Yyw8d9WnPN1I7E5GVdvohnwtARzNntT/pvQ7ZNMrkCDYF7rRXfGICykWxm+NzqaG0NeyL62huW+idS3fRsZhoNJVjPvgZHHBJO0hpJUfprrlsOxArGmvCQehvZNmvYUzt793JkoN3a0cA0Ahz6v9Cm8Z673GH07a8102M7r3L+2ht6KhJMynA= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:Lk4UA0rMK+dDXsIj/FS7oGBJgMdMWqNBGOtZwJuz0tgkgmz+FN3ZPpNOF1kljy0FLrvJZGyGrXrCI9uI/eyd4SEJdoCVAF3FjFEcu2Ab9LlIH+RwAzkdy9YD4TcuW74vxg2CQsoQdshx4nFzAN3DhNjmhVYSPknPosKuO/jbUTIZpoofJnL/DDOC4xBFqjdqylqEaGuzYKtBXjzNwIueNyxSE1tfbf1Tew1Sl5vxxvI4zwC6bZLZQMCXHkFdqXY4qGoY6SQtTy0cyKbI92KAkGOPvjU4J4IA94jf/+4noq9ptrJriCFgWNhhRQnOeTSQXJt5Rp9PrcRogIuXubbpP7Ut/48XD46eYvhlr9cEbSkipfDm0blvHdnowEmjSkAvY7korpABEoY0VXq/CbXIY38eFvURC3HCpdeMY9pQUV3pTyvDRAAUeWdA+4YXyINT6jqvPi2MjvqRs77XV4ZxjfxYlw7BlxBLuAuionF+BQJPzu1HF3DL03KsuBBtBbttG4apKs/oPKPoSgwtJF5iq80UDfWGkdbqTS0kRIftmA70FLNtzuBrkCzO+y2CoOBCntg12WorH3BkS1wEXtZDE3UIk1sLRQxxonHKL6iM5tM=; 4:db4CZHRmSSdkelUOZsQ/8DJf7hTcQ6ztbt8T4sAKdxjr+ptRKudor2x3GnMlSLy69Kxq9AQqQenHY7cWKZVEsLV39FIj1YoHC+N0W9Y0XYNlB3Lugg2CLsp5/JBDCUqnndtUSJCmKKQqNxNI77+Bv1TyviE5JlMh+O5kUezsKy26IMO9qCbVnaLza9J0aNRHkk8jh3EkIhctlM9QQT4CIzAxpiw7NlqTBD63Cu9x8psQa2M9z27IQ9mPYdxRlwc3UysMHFMm0DeN91cqv87LsQ== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:iwDlvRoUtCozPlU8WRk5Q3Mpm9liXfhAyLgMmcGZn?= oycHmNjwGSI9RmO1t7NvgK42u/KvY5lQ10z5m+EkoBP9A1znF3IBMyCsBiXZY0EkbzMdRvp/+bF/4O+ki3qqDF/t3WoXG5BbnehpVnpS3KnhSy/YSxrrj0gyF49gVSpXRr1rIgccRuDgnyybxAyO0SqCfq83cOB89KTM2dLZ2xj+hHK9Lx1qpBJvnzo+qwfhHWlITTDaakCIU0CjE7ATCqMRmpZBpV6gWhqTj4Wc2gexJw8WwlRSe9WZ+qOvrL6o3PWe5q2svlYXUqLRA0ddsW3//46PrCgwKk1UKs7d8sdZrdNpgHeNQuE0Rh/Efc35Hw6p0iL/5mo4ZuQvjLri0OXKwCmdnx6gfOAT/1t3yfQ4r1Db3Vdri9nauMQYD43AcRiSdEMv/UAihhrJM/NeWoa9Vn+5toPoxDcNugOW7AkIY93BGQXxKQ6MU5rXbKW3CEtTf0oP/X+ZVU08V7xagxp+iHOyQha8b25ufe8YTm8s//lbp1cvViH5QGRSCavJ//3CjDQGQ4PidIY6kAwVN9MDQmVspAD097ZNKdMcWD+fhE3JWyJspPAXIHE8UTxp64q81aSShmNa8yfKtf45kkYxBx+aqLZKSKAEKW+0hqLKx6z1w0NLQgsp9wtS0hygXDYAiNQeIz9sPZoNtEnhQ5XDbzOZSjW9I/Fqn8+Ev5AcmHfct87tdPX9cc3ayXWAvaEP9+rgf414WWY8w7hgT5XRwjrC7PcDTDgDY+S9q2FsNCFSSFSZr/Y6C3SHix5p4vPyu8wBckTrwK2tlxYVkpn27jcs4tJ0BkRtv6rDe/TYajot5l+nXVMZyE9WOdFRSoonI40d1ICjswgX0A1lgPq4NMQMZ0sh8fBpNmZaIaqfLJK7oM1eeTxD6bKr0fNMFNdKqswz7UveJlB64q/M/Wne7I5g4TvqEMRIb5An/2LahTZ0XM+/xLb2j7b+pjbOUsvJMZj7KVmjpkmFPc3IKk7evN+nbf5B9OYpu5lANGNic9x8WpPtQ3SDvShBqXfgwaX4YtMXpREB0iriRWPiDnZdplm/lsMf8NlhHv4LhgZPMfT6Et3ryvyz/R0kpKsDkCebiAoXR4eC73VCGOhMFDYRakCj1vP2mBLzBlnhxFb+DkWzJWEnY+ZybTX1B42rhjOX6WT9OND5X/TluQoxIc81sa4Dgs4USnWESS4P2N6TAF4hNarBa25L5rAlyiC3V7rf+Ll2G8ttJkkM7maAwTgs2Cvn03bl9399w5Nh5x0K8NPNwEvtfPMr/9L7K2H0nY= X-Microsoft-Antispam-Message-Info: ZGiyUjthFdI3scDKx5sBFv+DX+zug4JyrM2pLpr1yLJq3aStJjkzpkVwAaKO6bjkvjwkhJCq09A3CfEn/je5Czto8on6h0SD4UmtiuMgw/qpDmisv9zxRzIFIXq3KWIi7xVSy2fcOSTDMaAHr6ESvQYv+wGldXlhTV3deQoclNeofFtre+PEUqlm/N7MUerN X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:/9nr7DLhtKwVxYCyGjhKY02c3weOn48li1Vhwr2OIMnji2qC81eGwUlBxmP53ktbYMf5V6yTIVhl9jgCxqAt+wb+gJwtYXVuGP5NVEbnCgfr+IfCx8/pdneEww2aW08P7KqQZ4h+BIC2t2ytY/emU09ySHT5JwDwe7HU3E+pBmrZe61r1qzyYTYQ5INdtnOQs4FoLNxtO3Jvq5/I3k7DgizWASLC0+7O9KbaQeOHLMtqSOjtAcJkXfK4EN2zfqXp1K/diSF0ItlBzBfyIDqdPERb2Pk8EXTUp/4KWvGoRR8cDXeWyu74mdPyzTm7Pkqnv3ELCmgpX4k5WqyeIHdg044+Jeadtbq6m9VLC4rnjhbngMHoQLcpVFlNulyID/TAOK5SXDaMjGO9y/QX0n7u44WVPt+TG2aG0/bknRcjg1kuaJNVaEKMnvkydoodME6l2lz6wxC3Sp0rSIJG7wAMDg==; 5:wxvhAoKmtkXmLIYgKn+VfH7RIzfBzAz/hz5QWAA6nOX/EcWZ5H3/q+TzYrlkX5NXx1TYk0ZCvOXzmi4R7xMSrZzOBn7Ie5ykcXUUEpBQe6ME8T5/uzqt4Z366n0tTf4qJ8hvC7uwh58r47eegfSiyb5vqRUyRNzqEQZ88xKVStk=; 24:IKLlzLgpl8TJcREwunnC0mxBssJKUi2cdUMJPVDNCYOe899i2lrFOmCsF4yK9v2Tfi6yk+wKMzQYDvNbNKDWxz8/ZX9va3kL9XS+b44mUTE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:1tIWTBkiCWRQhM3egkFkVNSn6aBYU0ZcyvvIOXv46Kpwx0+fnbEnd9rqTcrgNYVvR8BD1glrqpaaaOnbCMXA9Qhwx/pogsQLHyWgabfOeYyHAkp8nJdkGi+RHXRZL8V8AFsAmKzieS1QoU98U35RwSWjO5WBs8mz0k8I90FkcH6nrr3+i56/q0nC1HHuMrDk5g5JJJ4wpb346jh1IGbw0TcdP4XGqbmmcaCLBev2bCVJKhURvyGXKPyg/rtLwFti X-MS-Office365-Filtering-Correlation-Id: 583c76ea-04f3-42b2-fd3f-08d5cd64d57a X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:27.3417 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 583c76ea-04f3-42b2-fd3f-08d5cd64d57a 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 09/20] eventdev: add option to specify schedule mode for app stage 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" Scheduling mode for each event queue is dependent on the same of app stage. Configure event queue taking this also into account. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 23 ++++++++++++++++++++-- .../rte_eventmode_helper_internal.h | 10 ++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index b3469f9..1c4d88d 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -103,6 +103,8 @@ em_parse_transfer_mode(struct rte_eventmode_helper_conf *conf, static void em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf) { + struct eventmode_conf *em_conf = NULL; + /* Set default conf */ /* Packet transfer mode: poll */ @@ -110,6 +112,12 @@ em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf) /* Keep all ethernet ports enabled by default */ conf->eth_portmask = -1; + + /* Get eventmode conf */ + em_conf = (struct eventmode_conf *)(conf->mode_params); + + /* Stage 1 schedule type: atomic */ + em_conf->ext_params.s1_sched_type = RTE_SCHED_TYPE_ATOMIC; } struct rte_eventmode_helper_conf * @@ -249,8 +257,19 @@ rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf) eventq_conf.event_queue_cfg = eventdev_config->ev_queue_mode; - /* Set schedule type as ATOMIC */ - eventq_conf.schedule_type = RTE_SCHED_TYPE_ATOMIC; + /* + * All queues need to be set with sched_type as + * schedule type for the application stage. One queue + * would be reserved for the final eth tx stage. This + * will be an atomic queue. + */ + if (j == nb_eventqueue-1) { + eventq_conf.schedule_type = + RTE_SCHED_TYPE_ATOMIC; + } else { + eventq_conf.schedule_type = + em_conf->ext_params.s1_sched_type; + } /* Set max atomic flows to 1024 */ eventq_conf.nb_atomic_flows = 1024; diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index 36e2a5f..e9c1b4f 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -56,6 +56,16 @@ struct eventmode_conf { struct rte_eventmode_helper_event_link_info link[EVENT_MODE_MAX_LCORE_LINKS]; /**< Per link conf */ + union { + struct { + uint64_t s1_sched_type : 2; + /**< Stage 1 schedule type */ + uint64_t s2_sched_type : 2; + /**< Stage 2 schedule type */ + }; + uint64_t u64; + } ext_params; + /**< 64 bit field to specify extended params */ }; #endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */ From patchwork Fri Jun 8 17:24:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40910 X-Patchwork-Delegate: jerinj@marvell.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 A94B31D02D; Fri, 8 Jun 2018 19:25:37 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0076.outbound.protection.outlook.com [104.47.42.76]) by dpdk.org (Postfix) with ESMTP id BA15F1D02D for ; Fri, 8 Jun 2018 19:25:35 +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=SfZDlwHtdaiom2iYXc0n9bgMeW7FZYUXKJ5gPzt+5Cc=; b=BfsiO4dk7t7yKcMvOktThDKvI6hzQiP2HTXM8Ihya791W6/+ZIudAEnLBSCKKeyxNENY6pvY4ipBwwr+iGkjYxc5DGES2qENxsSmWIP1cyO+JxYCj/LWOWST2ZHSMPtXfFl9J4Zw2NsnDXc8Ml9kXQtvkyFkcfjsKYiT+htCi2o= 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:25:30 +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:54:09 +0530 Message-Id: <1528478659-15859-11-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:v9aqhhnC0NcP1CvNRONO59U/ibwbKhFs6/UFjydhbiBEvOCPFMja7+2AVCrlOCGYJAcOfUC86PPOJDuQS7YL+s+0i4GNVXsZHOWLOq66eTdsQVxRWanuMds6WGqKGFKBEtEK1HmcB8ZhkmTEa/9KKmaV9jd0TkH1tiIHWmbccCb2J00miQXX2XWYpSQYEHCSEPVJsrlBeTh4ky+lYbdLNDjDGEgxSoGpm8+X3kiIvR3hV19U8JMyYlqCAfxmZRKd; 25:b2blHV3+HFOelG/Pk4kYQN10EmdJ9IuhbAsS8ZEM0CJuyzIlgZEN2eo8Rr9mJK8FyClgnxCBLipAFTJpZieDgO05aVTo1KiagXfIl1fnNfpxZMsTCZrEt1ktdpb7dhBAa82B9mSzXNynp5aNfbGJ0hXKKyenarubtACoHoR5hZEVj1sONj7wtYsybVLUeb69tkXTJiTuiaF4DwS/m3qUx52UqLeL51nGaeZQJG87RyqDtIUtDoGPTJcFtRg5PWgOis/4E+5kAHQvjQy/EKlL+2ACNGigxA/qPwFV002Dd8c4PKi5zRWYkTbPX21lvqx75XPKT28vyxJWFIhuxyZkyA==; 31:0/hKX+de6owihK9UyIM3saGGghMZeJtdigkaXZ6bbcYmTS238asiQfB3qWIgvX0+VSbXKPqhoxzkb0FbLvCs7Zmmj4B0eMxTIEXaUvDLC7WQ9uar8s67ytF6U5dMv9/0tdbR46EAZ0+V8gd/TW9c6I3O/QPxtbQ8orRvoh6x7QvMPDzghfOnTnwJnYCL8NGtsnCv9YWEcqNe6Vday7roy/91WLMqehqLtSfOAVQs67g= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:ZG7ESCRUZa7DyRp22/xpF/c/dCnF3GuEJdFcmL4Iif8evEYhuInhhGNNv84xL2QIi5WQQGa3Oc0ngkHTlrKykLL4WitL1/vspNJrqP7BOzYv3F9OnuaBPl0NlV901zrJoa7tqBpyjfuwDj94B7nWbGBUBZzotRX4eqGw69wYxOBlAx56lTycbAz8RJsmnmaX6p901//r1ioM5TXfQd/yx5csctjZTwI7h0psYSst9h4mfiLJa1OV0VOCv/KANnvJJw6pzNLgGR6dWTEuE+ACqvc/v4rIwVadUXSWc11JHFGCBZE8jqeB/LUkWPcy3Lnwsmg7LHcbcI/uaHQLMDAQ5K/wSLTbWjgy5ogJPAa0I+dVaQXg/F6bqrKjHjv3a0oNFlIdA7e9gqWUnvjbcvG9TwS3kHBILFAqiX37fc7R9Rq8/6i5w/dCJZ0xst6bjdMUMHCO2GxjOTZt0ts3UlyTomkZtlZa2vvzXVEmkPFilhNOckoSp7ozcjR/imx1sUNeFASR5lBHlwuXu0VP2HI4QAVCxqX5t/oQGStYC8UYH+MLB64bPtqFyRKO6oeGFA6gdagnI2iqDV4cmcX/d7SyZWVZStcPAZnVQWN+oejjQkI=; 4:J4nGbD+l5fTOCMmynbFhQYuZISDh21gjIrphChkb8Aeyr/+IMqENl7j6pYnQETNNO6s7fqrXj7OhsmgYC+pKzmvwZQPTG2yqP9oX3kRaKSqy11LQyw1Z8uyWbGN90rrtKkiVPk2io4i1nAhBfnrpLKmzgv5qwM3MKbM8hYcGtX4h4cbjJxJuQAiLY8Ld1uNIi7Ls5DnI0KfUfPMICBbZk8/urcrAsUJUleUrXTa16ngCy1xP0n6mtAbUmZpVAApX5O3KzVq4Y25J20gRupSlIid48/o7wu9w7cmIrKSUVq7ji6eXIVieCYayvD16pnyJ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397); 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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:VwWj/ppD21XXvbt332P6QTnI5kTpmdYGnEzw/RmAL?= wjVy9faGp/F1oHUONbyRipA6OTyFENn2ZLDD4H1LA8lSMsbTx16j36eHS/IvD9Iu55p+/AgSaq35VSzSNysPD/+VGkj0ZioAnwsv55CwTdaN2zVMkH0S5p0qBlJyaRQDsZjTiTYBjcWooKeceA5kbLoy5ewpyuaTJ8QIoo+Vj42JrBQxaEpz6KRktKTqXpdGd/4t/puO2LdJpSuNfCPAkOyMifilO9SownH52WCaBbpwN0sqhIdYrLS8DnMiAyaxmiYVfn9so6nm5b7c2G09WmPdvY8ZgVjj5nNwZiVuyfJrxZK9ywq9F484j0Ybrt22St0kuo9Zo5c1LuV4I6jSvabOaQWGdPrXF4AOxI7ZaP6z6i3GS2yuHFKpoetaaNkeFeoRqtJjDfCMDRNlFs5u45tdT9xwAc+SAyYApnPnTecOSe9m4Ld6Y43sc3/R8I0ISklkpWUL89zwlBxZIlNY+ljT2Hj6yAXDhfns4DOg2ZhD9A2DnDo3mkdf3NOxnrOeh39uHdO4Ip7Kn5HJdyMu1tnsIJ2T3mKbWPdYK7mOgWmJBeFAqDHBoR36d3qb1bqf3J2eqwroU4H2LWG2ZAL05/2Jp4miECwALc5R0VZY9oAa2abydBoGDh9zUjFmPml3dBj0lMOWQ/fu5PGIsdMN9S6Az7rcJQYEK31ttSlZAR5luztJOU9GI5IDA/CzNDYqGW4hAw0izBCo/83/6FRla1EukSi8kLJvud9yrradTNvutl0ss1EGyBAfTmVkkeTSIiX7N6ERe8SrKeSyLIJpbhE9ePCotorvpZhs68wMGgfHmzKsDe+X4cRWZTpdvgrjm8PbJEEvBh04qtSzconuNruyakFYprmLYM6Jy3qEfRh3jx2ZOZiGJQrnTu6MSoQjOBYGyXru0o3cauwICElf/7F5lkfXMRoW671tPXkGwxgcV2iqNtsgknnKvzOuOYDbJgOQaB5B9ALnmJkD4Q/71bM0vHWmf7XfHVV9HIJrRzMOOaHCz5LontHyXXeCH0dQH8f5JyOuwa9IjkPUxfztXyBPh8R33Ph5rS3oLGYimJ49jWF1ZS8kiXyGJjwrCm0wg91cxlukF9UtgqF+gvRrc7jc7Uy1p0t78aRPtymqAg12J7PDdl31lgftMoXsA7xaAFqHkp7NDJogYkat/yoV0yVSfdchzb0vCF7pi+pFMcKOln298yMvof228DljAqZO3WFH7ZczJ9hyNahE7wj95xIMXrK0oU3ykN2tcCHJBvmfg== X-Microsoft-Antispam-Message-Info: H05ktRuI/AKxdSsdlVi0E4fCqfT9/rQ+vDRo/okNROgmnHTI2ueOxvU6mYMLLZQvlOW/WN7xDqUWzuLqV6RaDnxAPAGqQyt3Op+o7zhkKdIlL5xUDAaqupKdlhpB5KZSMmrSxAa8/iejvAKOa1rjuPNwcYWK/O7QKj52fKvtBD1ofZoYzbgoGq4rw2oRT01c X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:dgxTPOt3rZaR6YF0dBOKkl3vDvc3Knf4ZlxZLl4b/WLzlgcqJ5MOZndHv4W2xriyqwYODDU8QIyvcJlUpm9JgCYIkTmlhwNhfamyE8/8eRAPc05Ncs+Hu6GT8QVre30gGicJhHL/4ovwWGHT95dDnGzpbJ0tXh9PczPaij2EK+p1IXbA2VKapcbnnPl+6Phg4h50vUKGw18F07xLQbMN/nnVL09simLiSOXTPAdRMv33kX40U+7VzdlpIKgC+mqxPKSmzVbrv5PPXggQjaRVE9Q7xikUIQO44jApPzZbww5w8xkLjAxlnEoIHyGDsBE/WplWvERKetV4Gk7H2hAkemlSRdwXH826kutzhz9V9AmH8oy8AKVoV7m7OZP7vrDfXAVQT9XFisNiu9UTGhLwjuWCfa83BpSSpFYXKB0WJN/ldPn3AfknM7RFEOtAD+gY+WKyOnpQlShe6BRGvweJ5g==; 5:aXKMc/iwGoRm7MF0W0MTib9wE5mr/Q8X6E2WbbgCmM0HvpFmd5AevRe2WlvAIuzwhVIBg4MpDvw/FOxL34tqIGbZOBhGrT7R0AflLfH7bv02Y6GACN/UCS+mbzZwjn8B3Sffa6eeLHcZhfjnvjT6TvQqLptWF2yPfqDQNWTxs2A=; 24:hAgaCm0EkorVT4VhnoTEOWB8IKyBqMGxJ8z52NsWDcu89iu5Q/CRmfZj8V9BXx3E089EVmIR1svXfnMxB+sLnY2ns7KcF7SIO4bmNE3voNY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:KYgM1gkV379b59aZrlGW7VFIcxqIMXW+gv5prvcv/4zG++1VEVpfAG/v173wWzYCJsHW0byeUKxWMQXl3urq4SjBiSOlG+Etaj+uwxf0V1M6vuHqXXP682gtYVCUruuOUHN9JI8pLS/jheiOWhg93ErxqShm4cQdWgPAYNx38e9ORCqx4x8WPV1fpx+ILOIczzb8B3e2YlHWNuWgwK/aDW3nKXVJOUqrGtjNcDgZDg2VuoL57iTePEZJNay0zayr X-MS-Office365-Filtering-Correlation-Id: eb03b0b4-6da3-4c13-490a-08d5cd64d78c X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:30.9980 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eb03b0b4-6da3-4c13-490a-08d5cd64d78c 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 10/20] eventdev: add placeholder for ethdev init 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" Presently, all the applications would do ethdev init and then pass control to eventmode helper init. So not doing any "real" initialization. But this would be expanded once applications are modified to pass the eth init task also to the helper routine. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 1c4d88d..9f2d6de 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -349,6 +349,14 @@ rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf) return 0; } +static int +rte_eventmode_helper_initialize_ethdev(struct eventmode_conf *em_conf) +{ + RTE_SET_USED(em_conf); + + return 0; +} + int32_t rte_eventmode_helper_initialize_devs( struct rte_eventmode_helper_conf *mode_conf) @@ -388,6 +396,11 @@ rte_eventmode_helper_initialize_devs( if (ret != 0) return ret; + /* Setup ethdev */ + ret = rte_eventmode_helper_initialize_ethdev(em_conf); + if (ret != 0) + return ret; + /* Start eth devices after setting up adapter */ RTE_ETH_FOREACH_DEV(portid) { From patchwork Fri Jun 8 17:24:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40911 X-Patchwork-Delegate: jerinj@marvell.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 A82D81D056; Fri, 8 Jun 2018 19:25:41 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0086.outbound.protection.outlook.com [104.47.42.86]) by dpdk.org (Postfix) with ESMTP id C0E991D057 for ; Fri, 8 Jun 2018 19:25:39 +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=SIFuu2a64h5mwSy0x2PLBcWrQJziXG0AM35HupNWaAs=; b=FarRjjUFqowkYWtz7K5XnHaFi/EtfJzQTyBdvgUHD6pkwB5jL6CQzTP4q0W5m3wgc4jvQpvqu9vz0YTS3aCuD56yP9LWV6Cf8Mt3tWjthauAPQEv02tx3m/8O2x3DBIdjbp1T7aF+mLaKmWW3UgKq03NeiejzRkWUX1UJh2bz+M= 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:25:34 +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:54:10 +0530 Message-Id: <1528478659-15859-12-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:kwz9hDay3hwiUm9nY/lhq2X7gfMDBwqtSt4RTbL0LqfbhIv3/8TIye9kTJ++jMFKeiB4FOouzaVLtpL47D8dqpPo+QjT5XhiToNdWM+nQKaC6uvBXBHl/83uFr54DYQhbvVJG1usU1XgtFve09RFLmG2p9tZZkKyyktpK1mSLS1hfpqiHKz0MtDfMNHFPvuH/0bhpF4aXRBnYS0SIOaVZ8w2r7Yd4CugmfKtSAkgL96N2lb7+VR9Dhw3h37Uboxb; 25:9rpGHHMQBSB5gpPSpW+tNgEss8PcPAVlQcHI7/PC+jBLqu2s9//2Vy17rnf5jpQyYRtJQJM+bJwkN82XrgelIhyGn2z3aAohK0nNmxMEfObYP5Ws6JFcb+29WhFMOERKqtbHZMtK+Z0LhnQDC2Dg3MHg11qcxpRwmgIxu4Puk5WkeGaW2A0Kv+uxPzt9dF38Qkt+cSnA0hrxYLREr68lANLoEkgzsAr+Z3tTdwIluw3++1yLKxY7Yz3iiY6lBFObW4gui2shAB8qNKiZppIA6dBlhq/0CI5RBvcgfb8+WexpkBdnrSEAMACLyINDkMZgF9JpJArD2LEdxPR0ND5Yqg==; 31:87n9Zn3h31zXc3eVngJpIvZA0OMwOciOXgMr/7EPdukHWo810XnSy3aqFISwI0NH39olULHC2t3VirsT62BxJJmnz2qaG4I7wWfM7cEpp3s2S8LbYXkW7MP7Ag5aOfbOlCDrIqiouAMz8fNMw4F5/4/K2udC76fsgafXACr3kaBfpSZaa+TqjtSkjpPdNhCoqIu//1TFG7R87qUAKlBpvEKeAs6jQGtj3vjdeQkmWaI= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:C+hhUUtIu7TRPJbYvS/Et4ov4LXcQpOOReyUL3eWxD0/imYojvVNPBn9apYEqvqrdOoE8uT9ESk5bgHaHlZV9j80jbEB5vxx0qONDdsm6BHlMYcSetsFFbHrQyIznMKRTqEEGOb+mjlbEn9rqIK2k5Y97iuRi41bMuLYTv63il0oyy3X/6AICMeEo5dIhqNZyaBeTV5QcLyj7b0AhYqc3JkDb1PdJTbUOnpkV6deft+S2Sp8t0OsziFykmRep5NVgMYTqseZUx8dvuH7DtRfvp5QwmG/jiOmfvPlkezWSTf1attDDXEcd9UoaQuK1ZY3LVXMN7vLbo6ptvoBKd8pTbgWYx0DKvNuVJqQNuydnNKysrArZngzBaEZKu4qU+HIzQQyWwjh7WNjaSuJwCuvxAk15TSHoA2i0ZIdP8/0qMwhS6HIBjxOotzCZeXc1Ujj7X9oU+agp3KxTmQfKVYGeWlL1VBeA1Qc8+R9gXksv8fugLQooVprn7CwkchW2lckfGxoeks38wh1QnkA+h/B6STXmbSyNKNLeDGyKf7Iu3lcMRpt+0hwT9cb8w605B4cWkyPCrKVkD89xF0YIOmr0GUP1WjvxPD93+RCk4rPApg=; 4:kdQyhswlk6Sincgju76IoGLZ2Q513yX70PzMO9jeQeTnhMzyxc8hYorb0CTfvabdoPHxCd6gXpMp5IQ5n3pcLjQvbowcaf0zyGC7QP1mPC9q+MgOC6ZGi/+BiVrd3bzD4DURMiZy7e+xUSPGvwSaC4SfCDLyYoVXoMx8ZgRsRG4T9+nLTzGfrXibUJwzjOUuw4Psp0hEE5XIAJVzq7WYegrkWUQ62lhXxUmN5glkl6Bi7/mIm8uwlrVPiXQe3ovndiJviRmAB48H7YLRUkr2Cw== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:jfpmYM2SzXPblg377XAaS+o5E4Woct9AOMCDjWy2T?= 2W9RoTbfo1ojtfCG7rUTimExPLbSW3f3pYnGs/2O87oK501ISSgwfo3M28dTZ4L1/KyHcOq4Rg9uLCHoKBdQwWTtPh3be3Bborzsy8AFnnsnV40bH1uHIiyUoPVVG5PWJhQkQDGRRZsjw/4f+a0UVzCMEAsyNrNDKdDehXYcT5h1yIvBQHCaHJ/n/0ESue6MTsLVBKBQqlDf5+7dn1dtP8i7DpQKBpsR9gVZL5+yGwqsrzZ4kNmyacjOq4IGJopuDIkAY91AtUBGcgGzGSGW149Mq97iwhlyRjuDlqvgzOJuD6+Fo2e33VNXH3Y9O3USaaLDJI4kbSt7ISXcV1yfunuq+PAnWiurN4qJKfw5kjizTdlZSpmIf1CEybq+z4LY347hU/y2XU56wIopAGHkiZW3Gh6UL4PnUgC2XdQ0PISJpDqqjMrQvh8IVgsWVOwBOEqJCnL+sPjawPZDhBL/6xX6IT3GuWVihTPCE/b5KvCALqudXJ3z7QDGcBeveL0ylNxXO0uT3Zue99UWisMvKC4KLDfxGgiyPOhFC7/lCAoHc5XYEFG3C0qU0Fvu3c6LYLpuw6yh4J5fWPu0ZFHMPbc9jRHsP8Fjb/xRSjv9x+RIGH7oURxot+KSR0cDwARRjB4TTtUNxCVRonICwH+9+3PIs5yJaLKqqerbKCFb9jN1zOEiV5q8d/aKo1KqHB5DlCexZ1oioi3GiBV/cQZ5NC275jRvaUP/ciFsKsIAQ14SJckWJER6DsOKVd3Xkn71hwjsJFJFupxwPjBvu/oAkdC6Y9Q2+J5rw4FxgVGxx3nKJiXZAMBsiroSapJ++P5ZMkv9tGENSKLnWzlSQ90OjM6h47rWNEy9ThlHD2q3iVxH3nEvEM5QT9m3PbRnITenztDnFYGxRSRPlTtAOFuLn6VSWAqSEgCnw5tmBCLMTpv8BAtIBpbfQxpcj7upD1V81bv4xKJ8wjwWSCF/0gb7cF1iu4BCqSTgqXN4DvlCs76R0jiisZQ1VPF9QiDynJ99n5NUTQZcYYC1faM04dC0u3SxX3Xm1TQN0bG7rDyN3bkrP0I0c6STt5mD8wV/Csn98BcquCM5meNmSISzqK9uiHLcBcvYX465gQVr3eSx0CAm8BQXHMeHNWsEcuswgUQnf7OwvoBTio3IBOAGj60XYl3inq2BQE5zLH2xHT636woIrgcKtx9jD1yhzHFZdWZYZ0qjFk4Q1xzveTlDUCXT4p4nmLfbZAk8Hdz6StiLhTZ1Q== X-Microsoft-Antispam-Message-Info: pcEuy8mSqN3DAkL4EBkpHLhxZRAnlwgQNqJ/JsfmToXj/ljDiTwaiISKXq9OtpyWCdQqqQNEX4MQxFFwIU2LSghyr5PWsM1Q7IWee5k1jST4cUdVVcrFtDo5AFX/ku46HyXiRBFOEfQjraklcXu7hZTlvMYXDeRJu6FaHgL/+pmS1WH8OvreXMaWozhd1rS+ X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:qVpOzLZkFuO8S5Pb4RdSPRrXSdS+m4PiLPOSl2vFNpRAVq7P1ZLEhzbFBGcPw7qKnMcpa+MhQG7+7iB4BIicRtpNijgvsZjXBVdwtRezEbRsAx0vlu2s8rSCEKXcevaIALlkgp8ZTdLhQt1lwqPyIT4tDv2xgiQ6bjvljOTVQDD4Elxe93yaKUFkpRY7Mf1wjtT8hBSR+NUApMhoWxjvXPx1CWDZs58TFI7IynNDu82cg9yKhLC8b0WkbHzHXlDhHRUh05+CEp4VoXDLJ2kRq4NFWRSPOXwNLIaS8a70S/RmBlKZKkc4nwru8XioIAM2qNN3lfePZVlPKePWiTuLhASdDlFlfI3zchTVy6nRdIat4vKQWFzdhrpdLKsDri8PhKeK7E6W87t8YE1GhwJfa0MUzbsYBdTXb/ehMoUzLI9ZvxSHFvApTf4q30a8l0kLbajlAz/AGu4HxaWQM6vadw==; 5:HuUmKRoOOP56R518qbieH9F9c2mVqe7XG7v33Z3GoVQaiJxZXG/gKT4U1NKGIj7QlfBHmC2vorcyM5Uw5LFNpn/+F/edb0t4FqGYpu6okKmiBxPsqp96hRzgKBgwVy6K4AfDIgrHG7t2rlu3UKE7OJLxPPjPwhGPnMAclmjULec=; 24:1zvSe/tgF18V6sNsDsUeLo3toUMEqfB/dDrMaWbiUpBxuMvL95i5moDg+1iBpKq49BidMUFN3zli8zTbAgtO29zRyiNTHG7u8ULuaaqpReM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:mMMyXn8RSD9maSBl+5w8TtLOjQk/aHTFK9cWf2Ia7soGRDQg3yfxdL38HdT8fJ+PVdkZf8MxtBjjv19U7PglwT0jGTDIaxUbv3iHXzfOOlC240M90ASqDS+9uaeeuPVEc3m7se1CtCX6yPGJPBYh5Ik5xMk9Fazy2TzzWlV3oD4lkMS/XQ+F83feZFfXQgKpeDEtuMz4pCs71xiq9/5GnKUZrFdgmA1Gq5Hl96MWRh0VZnKkVmm3w8BaxaxKKJUm X-MS-Office365-Filtering-Correlation-Id: 0657dc78-671e-47f8-e2e4-08d5cd64d9ab X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:34.6543 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0657dc78-671e-47f8-e2e4-08d5cd64d9ab 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 11/20] eventdev: add Rx adapter init in eventmode 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" Adding rx adapter conf. The helper init routine would be initializing the rx adapter according to the conf. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 122 +++++++++++++++++++++ .../rte_eventmode_helper_internal.h | 27 +++++ 2 files changed, 149 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 9f2d6de..aade9e1 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include "rte_eventmode_helper_internal.h" @@ -357,6 +358,122 @@ rte_eventmode_helper_initialize_ethdev(struct eventmode_conf *em_conf) return 0; } +static int +rx_adapter_configure(struct eventmode_conf *em_conf, + struct rx_adapter_conf *adapter) +{ + int j; + int ret; + uint8_t eventdev_id; + uint32_t service_id; + struct adapter_connection_info *conn; + struct rte_event_port_conf port_conf = {0}; + struct rte_event_eth_rx_adapter_queue_conf queue_conf = {0}; + struct rte_event_dev_info evdev_default_conf = {0}; + + /* Get event dev ID */ + eventdev_id = adapter->eventdev_id; + + /* Create rx_adapter */ + + /* Get default configuration of event dev */ + ret = rte_event_dev_info_get(eventdev_id, &evdev_default_conf); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error in getting event device info[devID:%d]", + eventdev_id); + return ret; + } + + /* Setup port conf */ + port_conf.new_event_threshold = 1200; + port_conf.dequeue_depth = + evdev_default_conf.max_event_port_dequeue_depth; + port_conf.enqueue_depth = + evdev_default_conf.max_event_port_enqueue_depth; + + /* Create adapter */ + ret = rte_event_eth_rx_adapter_create(adapter->adapter_id, + adapter->eventdev_id, + &port_conf); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR("Error in rx adapter creation"); + return ret; + } + + /* Setup various connections in the adapter */ + + queue_conf.rx_queue_flags = + RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID; + + for (j = 0; j < adapter->nb_connections; j++) { + /* Get connection */ + conn = &(adapter->conn[j]); + + /* Setup queue conf */ + queue_conf.ev.queue_id = conn->eventq_id; + queue_conf.ev.sched_type = em_conf->ext_params.s1_sched_type; + + /* Set flow ID as ethdev ID */ + queue_conf.ev.flow_id = conn->ethdev_id; + + /* Add queue to the adapter */ + ret = rte_event_eth_rx_adapter_queue_add( + adapter->adapter_id, + conn->ethdev_id, + conn->ethdev_rx_qid, + &queue_conf); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Error in adding eth queue in event adapter"); + return ret; + } + } + + /* Get the service ID used by rx adapter */ + ret = rte_event_eth_rx_adapter_service_id_get(adapter->adapter_id, + &service_id); + if (ret != -ESRCH && ret != 0) { + RTE_EM_HLPR_LOG_ERR( + "Error getting service ID used by adapter"); + return ret; + } + + /* + * Rx core will invoke the service when required. The runstate check + * is not required. + * + */ + rte_service_set_runstate_mapped_check(service_id, 0); + + /* Start adapter */ + ret = rte_event_eth_rx_adapter_start(adapter->adapter_id); + if (ret) { + RTE_EM_HLPR_LOG_ERR("Error in starting rx adapter"); + return ret; + } + + return 0; +} + +static int +rte_eventmode_helper_initialize_rx_adapter(struct eventmode_conf *em_conf) +{ + int i, ret; + struct rx_adapter_conf *adapter; + + /* Configure rx adapters */ + for (i = 0; i < em_conf->nb_rx_adapter; i++) { + adapter = &(em_conf->adapter[i]); + ret = rx_adapter_configure(em_conf, adapter); + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR("Rx adapter configuration failed"); + return ret; + } + } + return 0; +} + int32_t rte_eventmode_helper_initialize_devs( struct rte_eventmode_helper_conf *mode_conf) @@ -401,6 +518,11 @@ rte_eventmode_helper_initialize_devs( if (ret != 0) return ret; + /* Setup rx adapter */ + ret = rte_eventmode_helper_initialize_rx_adapter(em_conf); + if (ret != 0) + return ret; + /* Start eth devices after setting up adapter */ RTE_ETH_FOREACH_DEV(portid) { diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index e9c1b4f..63b2fb5 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -30,6 +30,12 @@ /* Max event devices supported */ #define EVENT_MODE_MAX_EVENT_DEVS RTE_EVENT_MAX_DEVS +/* Max rx adapters supported */ +#define EVENT_MODE_MAX_RX_ADAPTERS RTE_EVENT_MAX_DEVS + +/* Max rx adapter connections */ +#define EVENT_MODE_MAX_CONNECTIONS_PER_ADAPTER 16 + /* Max event queues supported per event device */ #define EVENT_MODE_MAX_EVENT_QUEUES_PER_DEV RTE_EVENT_MAX_QUEUES_PER_DEV @@ -45,12 +51,33 @@ struct eventdev_params { uint8_t ev_queue_mode; }; +/* Rx adapter connection info */ +struct adapter_connection_info { + uint8_t ethdev_id; + uint8_t eventq_id; + int32_t ethdev_rx_qid; +}; + +/* Rx adapter conf */ +struct rx_adapter_conf { + int32_t eventdev_id; + int32_t adapter_id; + uint32_t rx_core_id; + uint8_t nb_connections; + struct adapter_connection_info + conn[EVENT_MODE_MAX_CONNECTIONS_PER_ADAPTER]; +}; + /* Eventmode conf data */ struct eventmode_conf { int nb_eventdev; /**< No of event devs */ struct eventdev_params eventdev_config[EVENT_MODE_MAX_EVENT_DEVS]; /**< Per event dev conf */ + uint8_t nb_rx_adapter; + /**< No of adapters */ + struct rx_adapter_conf adapter[EVENT_MODE_MAX_RX_ADAPTERS]; + /**< Adapter conf */ uint8_t nb_link; /**< No of links */ struct rte_eventmode_helper_event_link_info From patchwork Fri Jun 8 17:24:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40912 X-Patchwork-Delegate: jerinj@marvell.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 181771D05B; Fri, 8 Jun 2018 19:25:44 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0069.outbound.protection.outlook.com [104.47.42.69]) by dpdk.org (Postfix) with ESMTP id 4F3E61D05A for ; Fri, 8 Jun 2018 19:25:42 +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=Tg3OH/VPyaf+HIsG7lD+cUX31BlntRvtiMPnPyLC4/0=; b=kI0annwFLepRw0fFNw7pumJrYwKHdtQ8yd1nu9Qo+WLNXJp5FWHd74ZhFDKxtiJlb47CqVPw4pH+Q9H4gfkGc9HHeFwpqe0jbiRLBFR+I45SWf2EuWvqJwc90AaIAtVEOIEJCf8kafMY03Uz1JSMlrqL89AIr2rUZYXPKq+TVUA= 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:25:38 +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:54:11 +0530 Message-Id: <1528478659-15859-13-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:5Pn0gx0OuYc8p2gDg8ZVKryR30mwXuxvxtDdbEVmf6NLDXkaZWrIIpd0SdF9/H1FcaoEXQEtmC06+uBfbWVejFmr5+vhMtR0xWxS4d4dFo8OhlGSaJAwkO00ArMXQceN4xX/xtiGeB5BfmT8PURS+Hu7SI1t0e9RgoIse61v9mciiszsIzw5KkT5ssDAPiHgsVLZ5WOgimH6icZ8Trw5yYoxQruyl5AoQtEhnA6cOnypOkpj7vBPewhDsb2Vuw+/; 25:cJ+UewcAWVGj9iLr9bHR11z6EfgvuBO7fbL/fRigkbXOwkXlk2q6wH6N2LpIzIA4A5BhsO44T+WdJw6jUdDwkOcC9YatSnPNYs+X5ltxKqCaLKDXjEhzbrzJvco9HWk9kt3oldm5hhoyJppHHz7B0DOz3TWNdwiHHo8f7yxvtEKiKdyqLyaGwhHupf00/KKNQdDFxK4V2g5JZZwfZ2RkwIW5r4Szvja8jbogy7I5MzEENMIE4/DcG/+cmzo7nMN1WBfglOEsvyHnt+boH7sLrhyZ7e1C/Bh05LY0ln1QupXaU7a6Wrjkl9j62Uq9HMlkp+Hrw3cDjSQHVFugKqbLgA==; 31:52xy68MshimKYGEEoND0D0sMStiJm7WwRYEeLDUAl9otiOtlye3l2hA+fdXUx2Ziq0aSyOPoNHTzLns3Tn+00is1LzbOJ0Y7hOGSjCaHcNlnufahPpXAurH6d0BOXAar8CLqAwgIFPN/hrXpxJSLfBYDkGJMPScfNXHejIhMXN1vMEvcofZPWmYitoi5Fkz6EmkUCvaFAjv2gYD0Kceq6LUevgV8RLpLhOk4AR3udFE= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:K0tUPM0zp5gqAjBf37zTM5kvjEnHiFodS3680nDACWSk29xmrKvVyYZxg5xtp5tO472k8KTq+RNeoyJSOM8tpVfmkw+CqEpIhUPaYlbmr2Ehfs0szXtrCqDhKvwRGj/F4zEUiFrepiLEC5E4khqREQqBdr33zDY4V25axkUyvyHsxuWHoN50Phni8limdTvz3uwuNjzy2Dk8YnMNA2YBBjWc9l6bnb1vmYsDCFxKPSR6vnw7CDcVcMGcdAcrR09deMC+AYDFmhhilg21+cgYb8T2bMucbCTgU+LUYjKV+IHCU6zxlnNNvDxmdivtZOVlOo6fZkvHXTD8Yg0aaiIFnyH32fN7ROYCpveQwSmpZlegstSOLgbrUkZVTlRrQzcm+/Bc8iUbNVvaqd8oLyH9VmK4o7lzpor+bpZUqnTgmDx1LJlfjOq0dv4s+Kqx8iuBNgtWWBevbjAGYGkNWS6JhFhFkpUMrXIBbyG2Tn8u2RHePXIX18gPCX7pTsEYB4FemoUtlosvwoz0QZXhry7A5mQo4awg/lVVbR3ZqV/OaPvUjkV0qsm8i0NYYimUj2bOhnB0YrCy+ve3u9afKmv9/M1ni/xDTcTYhbkOwVoZW98=; 4:/LyMS1DDuRlTIIOtwhH3GgVQ1QYfiAIhIdCCRAEH48eisiF46GBlX6YIp6dggj3t+2OY4zpXOAcqTSnK2p6ZcKHh0pfu4pA2RSkWR2Vw8EFobwgGgEa4aZBQAcbVS6ovGo1579mSsI0wmRMuF05ayrVm7KQO3hLGBKhaNYIheceifQgYcKtijcQzRkdwHTtLG0TPa98GaXM6r8G62hx/+d6zPaewnCEVPXJPJepe6IZKUlgUuvsNRlZ0PH6kMbk3RceoByluVGL328CN1emKUA== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(15650500001)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:yTzEm/eWxbe7JfiZVauTPYzf9ERLq/x7IyNo4MbBO?= QjGGC+kABqlMUHKSivhamtwFuKtnNh6sl/g+iuWnHszGLZTbegQJHZvEpugBE8mklGLWEFA85FM0VmEopwDU94c37UQIDTR0Jqcyy+aWHVnBwSp+I69EpIkjoHiCOgG2Rkb2GRCnrn+fjQYi/P/m+9kIQKfSAf6BxR896KrHF/xBU8dGhQworAGuCJ0u+MJXwO1NeYvWLh4GQ/tFyCXHovSJU6twby9rjKzFiYN0fNak17YPZwNXI3RWLkVN9PmYgg6qYel3PWLeurQpCl2Q0DJ8WrHDNn2uhxZZAwigVGq4POqUWSYpiU49GNQfvDUkjc6bpA72jDCw6v1RmExiEn15wpkdqgfrFoyR7fmQmJ3ROk1H1XtTHMErkk2Rn3cXbI2hiHMxUJSnkpvUTVMyM06YiI0O32nr5qnFpEP+2m3p1soQuUA2fsdVm9KJs5yCxW4zpkJ9wiLkFSi/uWSumGyvcIPNRwMG5KqJI3FFcHkmdVEanUPLbD4aBTpjHHYSacCGmitY6mc46Kv4RkCAlovPZvATVlcx1UYZtO4oNYM4fO22yzadkMYIOSwvix/1U0sYJPdwS7YVScs+3odkRoj4WLwzKBMcvB+IsDeAJxG/NFiVt5QqPqFN8O43UTNPAcVpZEx361Et5cq+4ghRuVDKLWwN+ZOarJ88YEEBjOs9So/pyTlfPndv2EotMPJr9VGQ1N8EKMtLy7KuX44yRKvluKLo60HBKvAJsqjI16uAKzUgVdEtSWU8X+oMDhbggMeZupFnVUuAZYeahMtjGaegEm9NCVIior55AdDeIoWNxJ7/kXJH2jVAy52wOaq9WqabjGSMTRa+4fonmC3NOWniuR08z7tbi+NTc4hLJ/tIsO6zuX4wlV6+psOJSCfIE8qXojg5XCZlmMMpHbpSs2YqY8ZKqIzNOhzj0ZLXHYn6m0IFDwOSgq6/+q6RNaCPDwJmZrcQNG4EeIqJsgS4xwHwh4JfB+Mnp23Z3r0v1Ulx38VbigygM7r+Bba3NHPWuKSrpeYlMDkXOjlbpuyp3nv617z3kuOsv0Spp/6ZqA1qO+UuFb4Inu3OUzQrsQeY/esktm0IUbP/ydjj4kOB9PpdDYQqeN/o/D53RcxHW49mKzTeKlhftfOxP5btS3OUy/uWWut4PP9V081E3hNgQig3X8Mh+eh7LdZqqv7d8K8SUoDQQr218Nj1xtIiM4vs5wyRjU2MB0M5TVaA11evEOlniAvR0ZINXlko4y7UvPm2zbw/Cs6xobrkAIq4EUJgfDt8plMfZUFuaZ7n2k19L9K X-Microsoft-Antispam-Message-Info: WZrTrj76PES6Ck7wi8Ufgnta5gLsg4d6WCtSVkMi586+XZbezmVqwInwKSmasJxv2eyqVty/oVdfJquh1CgYeWBfD1IwQZISggk7KwkdEK9MZi0IDTvME5AeIQL6zyCTOeA+p8fAiyur7hfK83zMsYV/kBm1t32lu4VY7Ye5UQXNln6wOOPcJKDoGEgU72Gh X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:uibVNmOHrVc0p+UBZmStmk9CCxnwYcYyq71xSZPgHolCVVQMwlp2djLpH2h4SWzlHwQV9zUqHtHdkKb2OFlNa5SFqXhbVptY/H2PUkzdBxTbqXvLFzaVmp88y/JiVjx+4Hcr7XPlKTZZSdI/TxzvpinvhplTSHa8WVPwpSs1nXfngOGCn3xRr6VhzkratHDH+8T2nlKO2GithB0DRdWmPNH8jS+W2miDCxBwS13IeSiu+EC3rfVyhUg7IQSfSkz2WEbNYJPXRWygDTPp1seIg1SVRffESjF+MvcSblBSWFCyiQp72T1ga0xoBRhQokQFCm36cg82MwKiz6Ml64WVpG5EEFQ5s3hm4aJ+3UuQEDyTXpXkbVekGikgdGyDJbs542yEQl6KmGJmRRWND8sTaHik0GerxohUVBSwgYt8W9Uuye5LhmXcY8LLhXlp/g9bmVOKqpzj9P6tMCNv/1rz/A==; 5:EEcZaur3ES4ca5Khh6Hbms+i4gSfcP6ApmJLtxsfnGLBJFDp8JWm5gpNYX4e5d6bmdUY5hG2lpCuP+ow+Bj1TiiuQQ3Eml2+0NPb2y27Y7sBxlLVEKEenj6jb1/0KfDEMryPyZY4UykA8DPHkX6V0IqlHNl8GDAn58qTAL1tVc0=; 24:FdolpNLVic2CaxuLikDalBnWB2OlD4TqdPdbZVwkAPmZuaAFPnRqkms/neFNN+M5egSOqAkBzeZQ1g/nvZt3MbPw9Pnrs/le3LXX0MQpPHg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:B5lU5cT1AgbKpAc14PGagY5KtP14UZqEud1lzVIIf/fcz3JYy89qm4sZRr0W5fmLNTFbUecFiob9Jsad2rDLkbxXs8JXW2JIDRcxjaqrf++xT3jo7vtn4fg0oqvBReiSmn1DtQSERbZFU+DKRHaYtl1/Nq6PfTAm6I0R0XE2/eZ6dAtblbRDCQ/k2p78Ta6burYwIyDBbhpFUEVaueIy8plOrH6WS6oW7PFokUvI0gVLTkaF8m2HrnqShRC0xYIw X-MS-Office365-Filtering-Correlation-Id: 3ff0ced8-dd59-4510-55b3-08d5cd64dbc4 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:38.2012 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ff0ced8-dd59-4510-55b3-08d5cd64dbc4 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 12/20] eventdev: add routine to validate conf 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" Adding routine to validate event mode conf. This function will verify the conf requested by the user and would populate other fields with default values. Presently, the function acts as placeholder for the above mentioned actions. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index aade9e1..8dbbd1a 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -182,6 +182,32 @@ rte_eventmode_helper_parse_args(int argc, char **argv) return NULL; } +/* Pre-process conf before using for init*/ + +static int +rte_eventmode_validate_user_params(struct eventmode_conf *em_conf) +{ + /* TODO */ + /* Check sanity of the conf requested by user */ + + RTE_SET_USED(em_conf); + + return 0; +} + +static int +rte_eventmode_helper_validate_conf(struct eventmode_conf *em_conf) +{ + int ret; + + /* After parsing all args, verify that the conf can be allowed */ + ret = rte_eventmode_validate_user_params(em_conf); + if (ret != 0) + return ret; + + return 0; +} + /* Setup eventmode devs */ static int @@ -498,6 +524,13 @@ rte_eventmode_helper_initialize_devs( /* Get eventmode conf */ em_conf = (struct eventmode_conf *)(mode_conf->mode_params); + /* Validate the conf requested */ + if (rte_eventmode_helper_validate_conf(em_conf) != 0) { + RTE_EM_HLPR_LOG_ERR( + "Failed while validating the conf requested"); + return -1; + } + /* Stop eth devices before setting up adapter */ RTE_ETH_FOREACH_DEV(portid) { From patchwork Fri Jun 8 17:24:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40913 X-Patchwork-Delegate: jerinj@marvell.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 984F81D03D; Fri, 8 Jun 2018 19:25:47 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0076.outbound.protection.outlook.com [104.47.42.76]) by dpdk.org (Postfix) with ESMTP id A29691D070 for ; Fri, 8 Jun 2018 19:25:45 +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=TbcNoYF21oraiz/77gJzW3FgxLq9Xm8MLLLfXQK1Vfw=; b=CJBOZCeYoy68qFEeTEoYxOyHk3Nj5p/v2O+1PYp/ERXelOL9ZAZCRQDCNuQMN/yq936hQ9go0yd9qOFXMwZVyo63SBLBE4LmGDumvXwOSGLK7mCYj2BD35CWpCbDBBm/sPimCy5eR87CR29Axn4upS2pM3fbHkoZ6nnUCVSqNNo= 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:25:41 +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:54:12 +0530 Message-Id: <1528478659-15859-14-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:Yig608qiJYmhT/8GonDySmZDWyPkWrXFi5lBWiWP57unc0w460yejqJ+k5KBN0fymb+7L8TWf6g8MRi2ATy+1amPU76yRUi7O511b8Hv0lny1NlNrF7YJKPw2VqUuTIN1xv0DtrZTMG6nvZSj7E4wzmTyhHacTfNRTV8jQzgpgnA8rGgRSa4wVm2gZHYlYK5yQ7KigFONlQ4GckaDO+EuDIYWPIk8PG7Bd5qrrEV7H+FYBr6F1mvbuchLEF3yV01; 25:lVgzwOmLQ6m2cSst1egRLIJbuGdUjjWrP7Xn6GcXkKt2n0avdpOCx0xV+oJquJFhu6E8BJSjY/hw2W9ic2L5MmMzvOEk5vAZFTCQ4QI2hMbBYjgvaYYx/BugB3HbPeC7xEhocvQTmDv5tQWMKBIpmWfH0WAcU12pxjLx/KuogTLfAAILA87oBegyDpQbrUdj7SdzzAbir1J3cwskfVLc731vKFoU10YIZAZdCX/Hwg8VCBZTpoXAX1Yx+3EB5smYA7V1itL6s53Fn9ZPt9P2uFhqTqS8Ii+16HNnooJjp9PRpFdNfNuikLFORk+jxspF1HhiSlid8Z1ALN76AVlVpw==; 31:qCdSO7vmCAAprVXmv3NUHDKu2iZkFCtrrGcj/hf/eS/PcUpRlL8kndDr3tBjlg4s6M1mx3ZrTTwHb5QdfZPLpS5XYRX25FLDdeBzx1MuOUJCntpJv4caM+33c/1z6UksEnm+m5bjnGxqP0RxFdf8/wHjnGqYdnQNfobfPYct3dKRHfos4CNhVOTFWpLODudw/FCLq+2sLJfHYCe904BrkjeUrzXcydoHeQNcFLdbvsw= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:GQc47PrXz31yFyqnYkDo+2Q8OXwYbl581cjd0JS7tKauYvcqpj5RW0Ypb2MfO57slvNi44TtFwk9i6b1+GteN0fB1pqaR8xNBUGw3GVgBysL/INbSZC0GWPgQ4LSr90Ii+5ofON90TQ6t7JhDShuxe5IJ5FkEueTDNMUBbMHPxeQ28sSc4ei7VSNiiinaD7cUU238tvgSfHMC6wTnzMVG6FvO1rKCsVB97zYsrL+PwhtwHoKmC9Di3sYbhR6y2tGqOBDeHowOfYOR7Y7Q03s/UDjLNHp5WHf1iM7KgyzYN7cB0ICcIwcgCcSvIPe7SnLo1LIx138b8rSpDEjmnaXIzR6UL1be2TAcFyvzhPd0GeNDle1sgF4bTv5SLOz0guAKfN+6BfTvmHWGKiKqyG3nuMVdONTq3wvpMQSo6gpHxBWaz+9IEx7leJ8xjb0Agb0mW+K6MYrUvzfYln0nlGd5r1p8B8JztdajTGP7QHaYgWRzw3u1hYN6XdvilEKV0AIxELVmoZ8t/JPaOokj6l88zWCHc11pCiQxWoeD76LeocYcWk6kEQ/J5NbWIo6kikOB+/XzFa28HSTQI1coBGSvNIKKwqBoT1LdzwJQ54rEVc=; 4:HZq5H+GF1iBhTIBQSqR0k3aXjNZV+qvn++IvM30KDAWu1g1EnCobDW8YM6l6z4fwCN2KYqEV8bOYZuyK00gtCkXKVYXRYZpHnQ2SQHJSOnQVsw77TxKUBYNPa6EQrwV8VBGGeewdY1v4Rnz2IOV5r4Ao5PB0ICqO2hMFdHtWc3JkHv3NFHxIEGhPdJEWuDka9Te7EqeOq3UNR4L/gRX8XVwBHJn2LzAD4o9jkUl+/p+TVltkCgy+VD6QgK+RtI5zyJQPBsO5Nl4HbFYEnIT54w== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:qiHo6DReWJ+lWDRFTLy/VccIHejr/B1iRWSnQWzgd?= /3uQSfFDWJJKZrzeOfSylvXGRCURama4lgigSpfZNQgIgfNW5EOdyuUMqYn2BkVjl9wx7a14/ROEooJAxRDeIL5flz5FR7fvfxRyu500pyI+Mx0JPYDznBMtpXlB2dtkUyujj3VgNACB+NNddeAt+perAE5znTIAt4OelgVnIlqV6s9kuGwwCVSeYQVuClZkw9oWWXH+E7IVYsAOnwAuxGDEqmZxR5USb0soupS7BXADBkc6ppZZaFMbJV6qPzyYMtuhgUjyeXW18t5aK9wAX8CrU5rl4S6aMt5pYCcs/K/sA20aE9D+J4BvRT/5KgrHR1UXFgqhO0xQ1G2LAjKThwYPktiAR32/g3knFPhvQaQrEF+NdWNVPQ/gxfNpb+0G+gMC0l6TUWUqQHP2ArsIDwv5CK5xbdZkBBmlZUCbeAZbfSZy9CTUL1cKeSLT6IqTKU5XTUrzKs7y3LKWdOtRHV/tatlwGa2YG0eAM7RwgVPx7OQLkpN23xBA0Sft9fWDMNKx7QgN/L7nSOt50sHZ3Xl4y2T138jBgXBEpgdtllFZjDLVS1Iewd7Frfyj8zUGJmaQftEVeyiD2RtfVTfJ0v7CqbN9zkQmkJufprHOkqkOK7hOZ1sInAw3CcHoAtOhO0O+gLBdS60lYZnqX8qgMrXhmQE3emGbElirAbs204pNYVeRYGDgSiSUf74PA7fLXu0AmnCciP8n9dDk7gQpZzXXefG7VW6UofMyO2YDK+pP/kj+vNKw8NXxhUtK4XLTBv2WeUEKOKqLKkpEr6e7sSVQCdr6FUwbxFNf6Slv1eI6dlGeXGJoisIcFxQt3HGTb2+Qd/8khV0P6Ir3kPzee+e0Ita10WqIliHlCDeNQzk0X/Lvk6iUeaGt2X6O+FpbRKDbgJ2Lqef+KyqHFWjBnkbe4kqNU8mV5hgnnQE5E+XBdtn5XkLHZPBxI9wtXKFBKgKMhzAnBBt4pde4rQLAZwaXuXP8FvMQQsGX936omzkNUFSnnaFbLnWdWnRgI7T7f0tb5rt+787H2jb24/xAwMGyRS2VHvuJq6d+B4uON/GNTJFo+2DlSy8N4H4Q0dG60DGjEbt4XPeRdCrrCy7FWyALI0abAPK71y9eAieQITX8CaLA4Tmjas9LYD7v8PxrILQPq0AM4yosdF2GYrxFx3i1i6GbBOpNLhtFDoZQo3HDqezrcCueagliZPn0gWS9BVSa2B7AGKDIeRhtBfxLc2r/C0Df5H8opcl5dGFzQONNeb9FjWpQ5GRmZa8ZloTSk0= X-Microsoft-Antispam-Message-Info: 3tSOTssDjKw51KRqi0pKA7mJUCELeGoZm58SFXvs6EIC5+DlEGN5n/e5ft1BkjX3ppvmcIoV4CdI03Wc8+WwDoX0jtjflztKvQoRSbWFKO5D7WAq+m8vkAxDifDyPSSMCmxxvyLPrbnaZ3jhb5twcak09kHT4sUdhX8Tnkod+cQny+ZCplj26ymD2c4YFUvd X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:Ef/MskN5E0Z9Pa80ejh6QTWz3P63j5hw4UcGQms3Np+Z6xTxDzAqAiK/SwkDj8SGXntXSgbAqUXc/crjAJwW4P1PnnmKSneF0ZC5qyia4JMZgpuu9fU37AToZn8+HrLGNVITy8k//el3XSXf35/2YCKjPLx1uYawj/8rretMtzSUa0HfnxDrpFdDVhepjJrbE85PHU1ITqY06ar9maR/XwQs5G12MMOUn2r47j5knixiiS4EPb4WKjaKlTB9Tpt4V3uw6LpVCmXKqYuO9LolYjywQB7+2sF61hIZOIgt8O7+Fz+OnF5f7xF/Egr4gRAKcNB4kIIO29IYcPKG6qH+HyKtYiRz0aC3SyBcpoTdNPgGWBmJJyfVTI7NAF1E7q/PK+CEBNIJauFVXSkTGAIiEGRStwRHw/T2bJ8/KVDBe5m0+/OPRMqNcZPRDQBQqDy8bRtA2Olf9u7sMSAyy7/nBw==; 5:vhlfeAEnwopKUTNIb3exy2EHQAIPwNOEAP2/s9mD8Yvs5yCQYMxijnMjfFfZG1W87a9Ongi7f65ZO25JcfQp9+5jbvpxNPSNCRu5gLedzffozhufbpDYwf53XCl/JwzW9iLfVuPpCw8JosNrwYckGktoS+J4bYR55IMyKdiL0pE=; 24:m6cdCMTITGbRlPiUOVBQztcMf55UVdhnpCudLlxwQP/q8/3JPbmcXSGUhk9UkU08WfE/6jmQMlGN9tRULbzXNTz8phYnN55HJYRhBOjx/c4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:OoAyiAHo+Yv17FTxRYLlAFJFuEjX4oTqsUpDSkyqgb2M5FGpRoa2qLvo4PsIM1ZgsMAnDuBLrgLQcmrA2auRCAB+Sa5vlsFFmB6ylcv6hy0J4UksQUFpiEKTSDlF+mAButYUBbKa99nVxDXXJ8Mjm2VipDkXfQWwX+nqsz13W/+o4KPiPR9Od26wjZMlr74eDu7WmVJ96fUGe8fV9mgLY5mIBy04WhJNdnPmbiTtVLKFok+VwcUJ4hFRWZH3TNUA X-MS-Office365-Filtering-Correlation-Id: bfe43352-0979-4fcb-3f14-08d5cd64ddd3 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:41.6544 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bfe43352-0979-4fcb-3f14-08d5cd64ddd3 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 13/20] eventdev: add default conf for event devs field in conf 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" Generate a default conf for event devs, if it's not specified in the conf. This routine will check the available event devices and it's properties and sets the conf accordingly. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 8dbbd1a..4d6888c 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -196,6 +196,63 @@ rte_eventmode_validate_user_params(struct eventmode_conf *em_conf) } static int +rte_eventmode_helper_set_default_conf_eventdev(struct eventmode_conf *em_conf) +{ + int i, ret; + int nb_eventdev; + struct eventdev_params *eventdev_config; + struct rte_event_dev_info dev_info; + + /* Get the number of event devices */ + nb_eventdev = rte_event_dev_count(); + + if (nb_eventdev == 0) { + RTE_EM_HLPR_LOG_ERR("No event devices detected"); + return -1; + } + + for (i = 0; i < nb_eventdev; i++) { + + /* Get the event dev conf */ + eventdev_config = &(em_conf->eventdev_config[i]); + + /* Read event device info */ + ret = rte_event_dev_info_get(i, &dev_info); + + if (ret < 0) { + RTE_EM_HLPR_LOG_ERR( + "Failed reading event device info (err:%d)", + ret); + return ret; + } + + /* Check if enough ports are available */ + if (dev_info.max_event_ports < 2) { + RTE_EM_HLPR_LOG_ERR("Not enough ports available"); + return -1; + } + + /* Save number of queues & ports available */ + eventdev_config->eventdev_id = i; + eventdev_config->nb_eventqueue = dev_info.max_event_queues; + eventdev_config->nb_eventport = dev_info.max_event_ports; + eventdev_config->ev_queue_mode = + RTE_EVENT_QUEUE_CFG_SINGLE_LINK; + + /* One port is required for eth_rx_adapter */ + eventdev_config->nb_eventport -= 1; + + /* One queue is reserved for the final ethernet tx stage */ + eventdev_config->nb_eventqueue -= 1; + + /* Update the number of eventdevs */ + em_conf->nb_eventdev++; + } + + return 0; +} + +static int rte_eventmode_helper_validate_conf(struct eventmode_conf *em_conf) { int ret; @@ -205,6 +262,16 @@ rte_eventmode_helper_validate_conf(struct eventmode_conf *em_conf) if (ret != 0) return ret; + /* + * See if event devs are specified. Else probe the event devices + * and initialize the conf with all ports & queues available + */ + if (em_conf->nb_eventdev == 0) { + ret = rte_eventmode_helper_set_default_conf_eventdev(em_conf); + if (ret != 0) + return ret; + } + return 0; } From patchwork Fri Jun 8 17:24:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40914 X-Patchwork-Delegate: jerinj@marvell.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 74F401D06D; Fri, 8 Jun 2018 19:25:50 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0053.outbound.protection.outlook.com [104.47.42.53]) by dpdk.org (Postfix) with ESMTP id 2D6FC1D079 for ; Fri, 8 Jun 2018 19:25:49 +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=ouyqMP73UC/+Hrfjo+LhZ4i9OGxhi24XHfB3SiGAP2A=; b=MZjyp04sZN3fXiU6604WgTAizVWPFuMGBE7Po6CYVFYPLiwMvc3l9ARYs02TzkFOAVMzDhoxUCuTJljHTxGn4cS3nl5hkX2zpjM6/h8HPLcT6GiXcXGjYoy3iFI9ybPbBRkTsszf0sgf7bH81bjRMn9wnKvnppa9v0+knp5wq9s= 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:25:44 +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:54:13 +0530 Message-Id: <1528478659-15859-15-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:w7Z4Ih2u5vN0l5FSF5GIWTiR1ht9g2b8H0gN4IqD1gjx2hyk6khbHeQ46ElGLRTYwMh2uhwU3qJbWakRJ3gynTxqwk2NeyYcnPn2BCV108P8PsFDTTzRyxMKdApUzbXja3wsOYX5csJyjmUeIuuW2WS8KY/a/YIR4RGU0b56x2OEu57C8v2ztOUnfT9rhnmHWEWHTjsMK8qOdeVPubGuKkjwGhcCz2jDRKKbuy6+u6CjLs0UH+EmNtGjI7K66pqs; 25:ZRxQfQPDziko1YL31YyAKnONYvJgZP3jGo5co36OpXyBaKyF4XY91J+hRXQLPITIclL4ko61V/AC1O2y76O8/sBHO63BWMT6bI/fjhUmipjUzUqxS0TEMy1EKrXVZsJSqG5pYlcXFA+xdvMHkhADOIIsyFqO4uIFygpd2mMlV4W26nBNTYeTlW5PVF1p4CTb0vhr/Q3B5UsB3hwPQ1g6mnmCyPvqY7ptAdlhla1ddO0VCkh78Ee+Fk6wrbojNZO6DerfhaA+ANnulG18jI0gWToC1axpooVlwiZSvJ2yC588edzJ/3bxSsBmXXidPpscM1xnC5gR1yum5bqM81Y9rQ==; 31:nxZHEIwJ0SHaEqRW1ZFFwpW4P5MaBq4u+kzWhWCVGhMtdTXLX9ysCihxzF+Cfj+TdtWSko4ArpNbsM5+oEHtdHd965Q2uyCiPJwldyBH0OVkRsCSrbzy04nqGXsRVTYvwgAct7XzK0OJRcUGz8b/dV4fj4tW/m35yz4cG6KtTB3pNaZtfCoJfQ58jnzFUiG7ZHqwfenqO/OvrmpFd3TjtnxqLbZtU7IU1JiUR8fnosA= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:gUOr11z8WMnmwZKhRXlR+ws5DvZDaXpAalYO0ScDxEZUDZGv/D+LAGBQeUXyszSqCQfdfbc0d5GEbABKqkk1Pp0QI7L9YWYRRQcE+wW9us+14mMXmffDkSmg1jVr3POn5WKyRXtv66X88+3C5kYM0ZO5TMpoL1kKYW9sHC+T8bc/5IX/6GxpWVwWY0+Mr5qN//YkkWU9ocG1UxEIBX4VvNosMJrLlWvqNFFMujPHKRJifWP/ZAcLdij5P4JRav3Q0hMCI9Mckvsnj0C/aPdYbbBehjN90gioQ1yrYCy+8wa8smN6pJrHjPxlG5rxkQD0xbtYXheAdgPAeF+dfYDgBWSf8+SPUybO68pul4c01vaARWq7+o/gFTuqDJ49+gNemujJ0RCh9yFzU4/u7phgXt3Mge+CNW4bWJcWtpUYhpaoKZcGHlFjjrJfxjRiOAib40p28S/RKiYrjbz9RoQmq6Xxhk0je1U9FLgBObnFJM9M8QsVLb1F29I4Lnw6OiTGQYhf6p2+hFMXVU+DaCsF6nmkQLkQwbb5spBM+8byVvm1GiMosXV82VZk1dUwhvXfLnQVWtme44pCMdaFyOgju4kV7xXqSkctVF9r3kiB2WE=; 4:SvX6l5zdB/C4quzlb1hsu7VrdiIXxNJ3UhRg+DJ0nwxVtpOdvAnXdlJAU7JsUmfemCgrQIkjCsTqLItmIQFjXtMWEIQJBnygadERevwcnSv/J0nSXsLfG/a91qpLlQ0KXzc7+gBbYQVJHCbEZDzQjWkP4elo4aAqpyDFI4bxjx00FGjoAEW+W6Pask3P1zYPeZajkbPcBU1MaGDXO7SLnXuwyFVQiiSRchy7bLPCXa8Xicoqjn50lpKuUQemuqcbl+a1FzZUFR+5pmbEe+siZA== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:Skv922y6iaP4mluSb57efawbEeltI/cJdcfD0JapW?= CMM8f/AoP+UTO/X8uD7uNPqVV4Y6DiuHmsCrxSUhjgS7EME+3byGekZVgGHNJiheegymLRCxIpcZBT/j+trJcb4TSeWGyLpOH58pOHPFuG8KcuBhq0aS04uR32WPc4Sjffxsy6ScoalwA83Kx4ix3CHI5aH9nC1s5Mmlz5qB1xAwNO4RAIrW4mcgCBJ1YFBebKinkw1rO/7zHp4z7w4sL+/SsY1JVlOHy3Blnd8JwTGY1PDBsEf5nWk3UbqrW3FHkLJpTk9puJRN755tkl5l2shTnkJeTU605fbfhp0rpDt/czRV1boeA1rfvwIZQQdGm2dIPJ+toeThTeqt7+gmV8c+76eWc8F6KE1qLrBOrakZSvZh7xEFNTCMIHM/mzEZrxUo4ElbVqnsMEck7pxD0ovga0HbenovL4Tb0y4l9kHFXijuenaX7G3I7Vmc3UJCiszc3jTm0wr1JWt8z7rTfC77XIU66FDXIT06n8y7vlUlhIt9fitYWDqeuXWlTgeaaDk97NpOfvAefSrNWH0+MFC3QLQHYc6+GVhgYBNMXKrdfTWT0RcSA0PfkJg+4RdD1OAfGE5R+MrJrlHtSBxjtsivwyk1YPT7DUJVTKvnFD2l6kspN5q86/zy6zVIZiMAceIpOAMIHoH1DEGOQSi2AgG729iCnKLZM3e9Bh6xet0VBBI4NQrpMyzvnzn8h+UJKWbHc0ASfXAWksM+tlhfj0lrni6wMl8LN4z2+EYwkGH3zfwYshD+UXWYThb/8ox9UYGn1Vmpc0sYBogoLJN7FQNQfDs1SEzFd5kGjKiPjl8L89hsqm+K6Cc8xM6Qb5/Lmrxizb+1mxkWbgvbKaEfLQANLl32bFL2qnngmzOerkhfErhinjtn3hAMt0+xYahXGpayTan2waDDAMgqXC3xt9REPcpGtbggJ9a4hfrWR6Z6fSYEw3lGIgNlTkAlyMZ3+dQDhthbz4BV7j5iudA7iTw/9jw+vxW41dFdNmGWjZ8d2XQrrWkUIntFQxS31eYqceYPK+vjVXhtsMX6df0RgTUQg73u5MzSSHDf6lJSXwFM9Wldh74b/aXzgbNyAyvUVDQ1BinJpCXFRe9OddDEIWm5fX/qMfyDzsX8mOLhJZY5+x1Qq95cDrCQDSz6ch+170JYUjcNr6hMAi7T8LyHxGy0lnqvTXpFvxI9IKq/tn+qo87sgaluhvcg7ndGv50Gxt/eVTignNXYpQEvZZwub+5euLHoWHR3eNWa58Aio60+ZJsip1ABagRFDbjy/Sc1UU= X-Microsoft-Antispam-Message-Info: G2c+FXBILauR2mKBndEiuAv1z7GF5Yf/qEGq+E3xr+Z5UzLRAxC2PrG1mIY6MIIqjvmtUQ97xpuq+NO766mQ/YVqjulA7eg86HHrLBico3M3ACZ66+Zs369SU7gU3nPvHQ+/uDAwyK1CEx3lEoZd17zKu2hdqYZLJ49b6wdATjB9/cUNVwoRfE+nTom+ywoz X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:tMxGB95FAdSf3DrldD4d7D/yYqPvNJMhVBj0n70JS6ggqjcYsxgN+of0cLWV56K0onfqN1ANx3rI+oPILLCb0LTU3J76vYdbMxModm4AEmLYjwfuSjub+Xn+mS6Cg5cOgoISI7lhf25HOU0gXHSw9tTv5GN8QaE2mXm0fHgzM3So9cSmGg78aOozGOHEH+rU2OhqXOrp8nNyk0YhmSHATb8wNSzc2j1YqX2Ce1Y2fXDs8lkP5hUClZ7uhAbWj9xiTGMjRCLsF6SOwMejIGSU4mcuR0g5ujXyF23S/Oery+WG7IzWRLPgMJQvlyNBndoEkJIYbMNcLBANUioH9YkPux85pR0ivhrxPl1OgSMGlovtz4HZvNfkihlm2DRkKZc0lcPQIFJVjMTWaRpr1VqlMxZN+xIhtIEy5914hfYyEwWiswCmydB/bvwSAfSlFZQmQSFs1ZiQoGm8U7Zx4JUaMg==; 5:a/NPj0CzbxsIlTibWq/MEKhxmWqv4Kqy22yoq3Kv7vCtmHqtA3XEWZQkL4mS8RNu+K/Dx+oiRMMA9CqOD54byExW/tVNXe44pG8cLiJ0rnSN1H+cb0qpYUSN5rTc+Wj8IF0qZG0Pm7DpzSkcolLq4ha29ZfsmOgXdo4SHwD0fRc=; 24:y/Cc0Cr41cJ+no4Cl3vBk1ow8YIBCwFcxWWsWRKtu2kWrzjzdoiEGwLXKAGX/ktADinUVfIWWDQXa7a/ZxhTLPlPYOgPjQRppZwh5Tc6lgc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:RuNYiMCNMVO6+Hm0E0unusK9Nv9WjMpeFbgPjrwN8iMtSd0XRX+ougkkgKcXn5xwrsyovxtBQTyuD4Xs3OrhBYmwCr0X23nHbCnGYF6v8iHSrkrtxJgLaoL+5+5n2p0CkQznOn1EVAeG+q5ErZk98PZZI7aurADXq0xMDesjcw0IXQQnjhK7BTm6q4i5UbNWNtqoHaoMEK1nAppKpl8ldWSWV6VMW2gwvrnQMliA0a9o4sNFHiRF5NuT6CK9LIKq X-MS-Office365-Filtering-Correlation-Id: b435c113-f205-4ccd-50e3-08d5cd64dfca X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:44.9513 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b435c113-f205-4ccd-50e3-08d5cd64dfca 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 14/20] eventdev: add default conf for Rx adapter conf 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" Generate a default conf for Rx adapter, if not specified in the conf. This routine will check the available eth ports and event queues, and maps them 1:1. So one eth port will be connected to one event queue. This way, event queue ID could be used to figure out the port on which the packet came in. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 127 +++++++++++++++++++++ .../rte_eventmode_helper_internal.h | 4 + 2 files changed, 131 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 4d6888c..bec893c 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -65,6 +65,29 @@ internal_get_eventdev_params(struct eventmode_conf *em_conf, return &(em_conf->eventdev_config[i]); } +static inline unsigned +internal_get_next_rx_core(struct eventmode_conf *em_conf, unsigned prev_core) +{ + unsigned next_core; + +get_next_core: + /* Get the next core */ + next_core = rte_get_next_lcore(prev_core, 0, 0); + + /* Check if we have reached max lcores */ + if (next_core == RTE_MAX_LCORE) + return next_core; + + /* Only some cores would be marked as rx cores. Skip others */ + if (!(em_conf->rx_core_mask & (1 << next_core))) { + prev_core = next_core; + goto get_next_core; + } + + return next_core; +} + + /* Global functions */ void @@ -105,6 +128,7 @@ static void em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf) { struct eventmode_conf *em_conf = NULL; + unsigned rx_core_id; /* Set default conf */ @@ -119,6 +143,13 @@ em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf) /* Stage 1 schedule type: atomic */ em_conf->ext_params.s1_sched_type = RTE_SCHED_TYPE_ATOMIC; + + /* Set rx core. Use first core other than master core as Rx core */ + rx_core_id = rte_get_next_lcore(0, /* curr core */ + 1, /* skip master core */ + 0 /* wrap */); + + em_conf->rx_core_mask = (1 << rx_core_id); } struct rte_eventmode_helper_conf * @@ -253,6 +284,89 @@ rte_eventmode_helper_set_default_conf_eventdev(struct eventmode_conf *em_conf) } static int +rte_eventmode_helper_set_default_conf_adapter(struct eventmode_conf *em_conf) +{ + int nb_eth_dev; + int i; + int adapter_id; + int eventdev_id; + int conn_id; + struct rx_adapter_conf *adapter; + struct adapter_connection_info *conn; + struct eventdev_params *eventdev_config; + + /* Create one adapter with all eth queues mapped to event queues 1:1 */ + + if (em_conf->nb_eventdev == 0) { + RTE_EM_HLPR_LOG_ERR("No event devs registered"); + return -1; + } + + /* Get the number of eth devs */ + nb_eth_dev = rte_eth_dev_count_avail(); + + /* Use the first event dev */ + eventdev_config = &(em_conf->eventdev_config[0]); + + /* Get eventdev ID */ + eventdev_id = eventdev_config->eventdev_id; + adapter_id = 0; + + /* Get adapter conf */ + adapter = &(em_conf->adapter[adapter_id]); + + /* Set adapter conf */ + adapter->eventdev_id = eventdev_id; + adapter->adapter_id = adapter_id; + adapter->rx_core_id = internal_get_next_rx_core(em_conf, -1); + + /* + * All queues of one eth device (port) will be mapped to one event + * queue. Each port will have an individual connection. + * + */ + + /* Make sure there is enough event queues for 1:1 mapping */ + if (nb_eth_dev > eventdev_config->nb_eventqueue) { + RTE_EM_HLPR_LOG_ERR( + "Not enough event queues for 1:1 mapping " + "[eth devs: %d, event queues: %d]\n", + nb_eth_dev, + eventdev_config->nb_eventqueue); + return -1; + } + + for (i = 0; i < nb_eth_dev; i++) { + + /* Use only the ports enabled */ + if ((em_conf->eth_portmask & (1 << i)) == 0) + continue; + + /* Get the connection id */ + conn_id = adapter->nb_connections; + + /* Get the connection */ + conn = &(adapter->conn[conn_id]); + + /* Set 1:1 mapping between eth ports & event queues*/ + conn->ethdev_id = i; + conn->eventq_id = i; + + /* Add all eth queues of one eth port to one event queue */ + conn->ethdev_rx_qid = -1; + + /* Update no of connections */ + adapter->nb_connections++; + + } + + /* We have setup one adapter */ + em_conf->nb_rx_adapter = 1; + + return 0; +} + +static int rte_eventmode_helper_validate_conf(struct eventmode_conf *em_conf) { int ret; @@ -272,6 +386,16 @@ rte_eventmode_helper_validate_conf(struct eventmode_conf *em_conf) return ret; } + /* + * See if adapters are specified. Else generate a default conf + * with one adapter and all eth queue - event queue mapped. + */ + if (em_conf->nb_rx_adapter == 0) { + ret = rte_eventmode_helper_set_default_conf_adapter(em_conf); + if (ret != 0) + return ret; + } + return 0; } @@ -591,6 +715,9 @@ rte_eventmode_helper_initialize_devs( /* Get eventmode conf */ em_conf = (struct eventmode_conf *)(mode_conf->mode_params); + /* Eventmode conf would need eth portmask */ + em_conf->eth_portmask = mode_conf->eth_portmask; + /* Validate the conf requested */ if (rte_eventmode_helper_validate_conf(em_conf) != 0) { RTE_EM_HLPR_LOG_ERR( diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index 63b2fb5..9db9684 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -83,6 +83,10 @@ struct eventmode_conf { struct rte_eventmode_helper_event_link_info link[EVENT_MODE_MAX_LCORE_LINKS]; /**< Per link conf */ + uint32_t rx_core_mask; + /**< Core mask of rx cores to be used */ + uint32_t eth_portmask; + /**< Mask of the eth ports to be used */ union { struct { uint64_t s1_sched_type : 2; From patchwork Fri Jun 8 17:24:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40915 X-Patchwork-Delegate: jerinj@marvell.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 5ADF46904; Fri, 8 Jun 2018 19:25:54 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0083.outbound.protection.outlook.com [104.47.42.83]) by dpdk.org (Postfix) with ESMTP id 7D5411D080 for ; Fri, 8 Jun 2018 19:25:52 +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=22MD7jH5Iu1YHBs65tMYGIwS0Rl3u6jzmJPCZWHr5JE=; b=Fz0ibpmqfPGI9htok0wD7CzAKL6GbfM9FuNOkx4uKlqk0gL1anpOP0sZ7RoHRGAzzowBm7VnVpw60vEGOZDsxNlYR6rtJzjC+DwoYQzaAcLzXMf9DRMwKVn2bJR9t1nTYsEjykItXWLpjpNIuFXLtTke8kMJDee1CFZj4Ld+Xfo= 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:25:48 +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:54:14 +0530 Message-Id: <1528478659-15859-16-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:wTGYG0qM+7Qg+3eLvq4INq4nB+JUUa+YYMGVY1at4k9BkB8gtooK7+7IrMPGTUZ/a3HlyVnlzBVbpfsXXYE7wA25dANcmOov53qz1y8QYn4/W2T6GVEmInEbAAbK4iLMyNxQZhhYzizQiNonRjyVykFyxEd4q2dfNxXiJkYXb4DvDy6BBnzOTdrlsCXz0QFBCRwABeUY3U/sWg83G5W2MqXsN0CCf7g36W5uGrd329TyUJziLyNNuqryHAoBi8jL; 25:sCUueyZ+7H2ZwKyKXFjIva/YeYQLo2j2a5JB3iTNst3CUUp2f1bw4ugDU8c1bwBD10oCDa3Ga64JPfbO01oCP/XhEL31Q5nS3NKyTPOtdetYmv1cTZN0/WvTrQC6+vtGZ3EZwJ6j78LwB+5YJNsqQwfww3PCcMh/c+7IWGpYbyoT92UdH3BMLd4C143EVLlaH5Z+ZiSAUi7Dh70C/ChzK3ymXkCpBXYMaH8mJckPfWbt0C2L11ByUL8cCK+/RtpN9vMBo9USSR/xx6jMj+FW5mpfKrOTCuyH/QUZ39M+AOtNlq32emXRQrRK835Wqc9wXdA646xY+rhoaxCwQKEfDw==; 31:9wjr4XEyCrMJ1+f0/Jbdxd7svrPtAvJkBwbYxYdAHrPlZt6fhIrFd28wmbyMHYpGCjs+ITZDfhaKtwuvcrPwoDeTURdK8IfU0NNIl6GuYEbKswXn0cJCfn4U2JmxqYpMQi7yOE8Zofm7POKcz3ptzHsSMv/fSrEWgYol9mugMDb6XoqDqy64EvBN/TjiHPKRFP7jzY30WTK8JUDkM08n/iZe71B/0bspfUCTz/nqBrk= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:3R5CFw7elT5nh4XdjubgIz1u4Usy1j0IjSWP1UgjCIw1+J64QfvVp+Ffie5E289BPTS5d+Lse0NXNmCgjCvC/PBoChyb8HX2UuEZp7QtMmybf5LbwtbSDdOa6P1MMPMF6mstVlfO0VysYnUh5tnSYfX9B9fcraPXkCtaahdB8jJNlQzsT/ewCrG8AvBQtVcMPMH9OiXCejDR2CPYCN1CXh0DeBwLbfUtwRtUiZvIYtBN9HSlsShAW3I+k3cESk6np06HrawWweF1Qml4cvitGpC056R7eqLCNCe6hqqr+0WaYJBMtAKU/G+dRIHj8ticloRMYLJJ00MwjUoPLpUBOHnjU+aQ6coG1S7ghw0JVi3UyegShlSSI5ZvA4iyUZ/fwLi49jvuP4ushfrF9A5FM8z9WTueoolEzWbV93lLklOuqzrFCR9jG3KCG/Pb9O/ofzBZ1eZh7MbREyr9f7MH+nHPjtXIAmtBMPGeOCXdWhLq+i28kL/Cp5gvyvVLM3MS010yi6ERLtDz8GuGYeGZaXYdSmLVj+RObqH1tO1uX/lNg53ePPtDKUcZ26VQfU0fXMcFCJ+k85ATL4LbmS3QMXPcVV9dKZJAmtd91cqmSJs=; 4:S0+y3iQ8RO7FiJklbneVZ200W521N1FJuuvj+stabupV9tU8iKFGxYojIgEVUoYIt5r9tzesxtmi0upb+g003I8zO9IYVUvvPX6iRgMTZkDcTH3nCSPbGkmI7+ziYOQZh5SInvaupntbf+k4yIy9EEpYpwP9J9+jDEXRZcQGSDEgB6V8ZeFVRDJ7gsb1l+LnGiQ/ohd+FoIexM4GmDiA2i6TdthETtgIm1NPzSYreq/uWpYiO9xvsbU442x8RVx37vWSnr6r4Npc5PeQTfrB4g== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:7xYjGHOISTibKvHqSbAsUjsUZFTT7z1tepcqYDvGM?= nkA1GWXTLMC722qFIL/UrxW8j5WlJdquuUqQquvCXReqLLPvNzC5dbyLerxHVlPKMLyp71bGVEi6t+SIwWIQva//knCUKKpYwBaywPLiE7uGHLC+uiHxPorroFs6yRdTolkVIHVwCNriKPVwL4SArKK7uezwFL1culR71qMssTLEVpgWZ81Dh4f2c1UdKH9nff497rL/5TuPgEmZkTPV0+i8lajZbnuBqIJdFNGY71uvP6R+UtsesXd3hvXphq8KOyzG74FilaGTDLG4P3Tc4NWmvphDm3nqKaY7rR1115llTCqJxzdLgLbzTsmx6T1UXbXCH11cVPRIke0b7eaSUyCkyHT9jMhdS/bMZ54elqCRdhEiNv3mt7kyt79TidyYt6n+sUVlRWfyBg8r2sUX0euSEUW8nzhg3TsvrKnLgRS2ewD2uZA0/Rs5kgUN0larXsJIi6osIuvbN6fdPOjmWrz/nrbzFcbFM+nfSAy5Iux0hMIcoU+2cH0F0u1mL4vqiCU8dgoMReVzFEgy/p3uJ473J8NdVLEOpLsAdyfLZt9syAcY3qXuofvjzSC/higCCLT4gL/fYP7owoI1V1p9zkPDl9y+d/HU1xW7kFJnCnPgh+2vrXj+TRXNRI0yxNZRAYWcYezxaqanCu+kBJWltEWq4MdKdLrhRi7+SFb8m7hLEuJ1Fv9jQbjoSWfeMAt9d3Ce0e9SGhoXD90QDJZ+ylSgeymSgOYmuBkx9Jq3onq72i3iZKrDzykKqPQnmL3FEPNEP7e07+/piW6FvMAAZiYMo/Nbydx9JXzBnzQZk3+MqHFL0NAuQ/L1enlbGyqczmSGSehFuD/a9uDSg+46/KDkepjZvKa5X59ZZJ9M58yQaNWgnMVWTdN+tpDlLOIiVO+bZShbknGZqgKa+/wtL8XKXxWjwTtOiGiyVVub8x4JSBcvyM9Q0TIP1PKLFDdj6lBd5UOf73cyyYiPBckSVh8HWO1UC6PHpuk9ySPNDkD34xErvPoy3AKglw1DCknXDGeJzfYbtYURk3AEmyqI+TFb9M4zpD19vKlVlP06E8aU8hc7WwkDv/DBkW76/ZtyvwnoqDZVdgMjEHOI/O2r82lR5xEax5r35sv7cYKUtiNtuthyzCAnjb8wqxwC/9O1v3MlW+o0b/2+sORX9EQji2ypGTKgbkwgTI7XObOUd0mBTJgJP/BJ81DNFiKy9SQM6+s1+qFS3tOpQVQx2k+ActLBDSBIspEZZQCZ0wQ8wnHaHOn+FyNAA5KUVp2GLWY+RY= X-Microsoft-Antispam-Message-Info: 4p3Dv+4VwpfjsF6XqPBexeI9COQ8RYdYmGKTi9TF1Fa98kbRzBH6Jv6S/NomrpHqi3cNaNnN5pv7LRd4c3sb2nWXKu/tyIxzsIicwOw4c1hXz5HFEjrzhoxB+8M4gIYiU4Yb3vPCD6VLcPkzC708OvaizT9G7Iry0y+2WJkEowg/5cYuPVh1FopAMuaPyBhB X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:cFX9R69oy+aee2Q+eaxwzzAxurs50kXVuonpQ+Tc84vkZNsZMnnnWMUzFSG8K3wFc4m6lwfXg7HPKtziQj3CtrMEWUD/FJihCDksUha0h5noYPFZ/v26YTB00Q+Y9GO2MMxRD6tXJWLcVgKMXD7fTB+EKLQoitN7PK3hHfU02qlTrxx7SWGUWpJTGbABWIM+6Fo1Nxzkah2hZDxG9DfnYnj13SC69FWh7iitkp7ODucXuCoQxZyd+96Gydo8bLchm6mVob4q16EbO1NTbQTbJJoWG9NdPEU0YtqoJBVPLIULsBrNpBz6+Rx3C4rVpOXbvgvTOVdSpa8GZAgUGp6q5tHwai2jTLVmjfDM+ijXB+CZzYvKA67uWwo3cpNbRsG3xRXY3uqtcKYUQsG5YprL15rtEiqiyR2TuzOxTsvV8yaiIPl25rf7Spm07e+n0cPb9dlDkg8CdwIhYvuNPKZ5Wg==; 5:PnczIlpl+nPO/+pNJ6RsA855OJCT/zmILwTsDpGkE2iJUtG346irhlG5qYCzKOY2YqdGbEOGZBFbH/r53dNvMo4vSJcNVZHvy6xrtoSDK5HnbwPiAmXrRxguXMcst96tOkasATcYkNxUdwnuY4QMwknDnSHukDjE4EmlMzjJNy0=; 24:Ek5UD5KmFtyQBffz2AdAqPRE8miwlCUtiWXuOD70Of6c7p72cnTxfHl0HU3i7q0EKtF1mig4mt84R5A95IjfJXMLo1ZlMn5xLcmw0wJSnI4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:V68KzoNnG33hsdXqizuDB+hbtxFudBOxgluY74mLzutyUF1S2As93oZUUb4XH+IvsnmR+NKeW/vnU/6TBHYn3/pgZTciMAos91FH2Ghg+vBKIMAKqTmsZ5enUYuopj+InlE4nsZcNEf45wW93z9B1XDR3JjswLSU7ga5Va+Q4DU21Gr2Us72P7aHE1hm97B92cmMQGlPShbXwci0fBM4zIJN5TboGI6aGzj8BMOIhDAQurF1HUY/vc2LYXUQULsh X-MS-Office365-Filtering-Correlation-Id: 8a276f14-b8f5-4991-89c6-08d5cd64e1c8 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:48.2951 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8a276f14-b8f5-4991-89c6-08d5cd64e1c8 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 15/20] eventdev: add default conf for event port-lcore link 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" Generate a default conf for event port-lcore link, if not specified in the conf. This routine will check the number of available ports and then create links according to the number of cores available. This patch also adds a new entry in the eventmode conf to denote that all queues is to be linked with every port. This enables one core to receive packets from every port. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 109 ++++++++++++++++++++- .../rte_eventmode_helper_internal.h | 5 + 2 files changed, 113 insertions(+), 1 deletion(-) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index bec893c..6bdd64c 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -87,6 +87,28 @@ internal_get_next_rx_core(struct eventmode_conf *em_conf, unsigned prev_core) return next_core; } +static inline unsigned +internal_get_next_active_core(struct eventmode_conf *em_conf, + unsigned prev_core) +{ + unsigned next_core; + +get_next_core: + /* Get the next core */ + next_core = rte_get_next_lcore(prev_core, 0, 0); + + /* Check if we have reached max lcores */ + if (next_core == RTE_MAX_LCORE) + return next_core; + + /* Some cores would be reserved as rx cores. Skip them */ + if (em_conf->rx_core_mask & (1 << next_core)) { + prev_core = next_core; + goto get_next_core; + } + + return next_core; +} /* Global functions */ @@ -367,6 +389,74 @@ rte_eventmode_helper_set_default_conf_adapter(struct eventmode_conf *em_conf) } static int +rte_eventmode_helper_set_default_conf_link(struct eventmode_conf *em_conf) +{ + int i, j; + struct eventdev_params *eventdev_config; + unsigned lcore_id = -1; + int link_index; + struct rte_eventmode_helper_event_link_info *link; + + /* + * Create a 1:1 mapping from event ports to cores. If the number + * of event ports is lesser than the cores, some cores won't + * execute worker. If event ports are more, then some ports won't + * be used. + * + */ + + /* + * The event queue-port mapping is done according to the link. Since + * we are falling back to the default link conf, enabling + * "all_ev_queue_to_ev_port" mode flag. This will map all queues to the + * port. + */ + em_conf->ext_params.all_ev_queue_to_ev_port = 1; + + for (i = 0; i < em_conf->nb_eventdev; i++) { + + /* Get event dev conf */ + eventdev_config = &(em_conf->eventdev_config[i]); + + /* Loop through the ports */ + for (j = 0; j < eventdev_config->nb_eventport; j++) { + + /* Get next active core id */ + lcore_id = internal_get_next_active_core(em_conf, + lcore_id); + + if (lcore_id == RTE_MAX_LCORE) { + /* Reached max cores */ + return 0; + } + + /* Save the current combination as one link */ + + /* Get the index */ + link_index = em_conf->nb_link; + + /* Get the corresponding link */ + link = &(em_conf->link[link_index]); + + /* Save link */ + link->eventdev_id = eventdev_config->eventdev_id; + link->event_portid = j; + link->lcore_id = lcore_id; + + /* + * Not setting eventq_id as by default all queues + * need to be mapped to the port, and is controlled + * by the operating mode. + */ + + /* Update number of links */ + em_conf->nb_link++; + } + } + return 0; +} + +static int rte_eventmode_helper_validate_conf(struct eventmode_conf *em_conf) { int ret; @@ -396,6 +486,16 @@ rte_eventmode_helper_validate_conf(struct eventmode_conf *em_conf) return ret; } + /* + * See if links are specified. Else generate a default conf for + * the event ports used. + */ + if (em_conf->nb_link == 0) { + ret = rte_eventmode_helper_set_default_conf_link(em_conf); + if (ret != 0) + return ret; + } + return 0; } @@ -523,7 +623,14 @@ rte_eventmode_helper_initialize_eventdev(struct eventmode_conf *em_conf) /* Get event dev ID */ eventdev_id = link->eventdev_id; - queue = &(link->eventq_id); + /* + * If "all_ev_queue_to_ev_port" params flag is selected, all + * queues need to be mapped to the port. + */ + if (em_conf->ext_params.all_ev_queue_to_ev_port) + queue = NULL; + else + queue = &(link->eventq_id); /* Link queue to port */ ret = rte_event_port_link(eventdev_id, link->event_portid, diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index 9db9684..3a4e52f 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -93,6 +93,11 @@ struct eventmode_conf { /**< Stage 1 schedule type */ uint64_t s2_sched_type : 2; /**< Stage 2 schedule type */ + uint64_t all_ev_queue_to_ev_port : 1; + /**< + * When enabled, all event queues need to be mapped to + * each event port + */ }; uint64_t u64; } ext_params; From patchwork Fri Jun 8 17:24:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40916 X-Patchwork-Delegate: jerinj@marvell.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 3BA131D087; Fri, 8 Jun 2018 19:25:58 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0077.outbound.protection.outlook.com [104.47.42.77]) by dpdk.org (Postfix) with ESMTP id DA5581D080 for ; Fri, 8 Jun 2018 19:25:55 +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=Kh8WgjGVNcPYxYTfhAUVoO2e7OY6058mcDBDuq0AGgw=; b=PVuKEn7yz9aKF0silZozfSaYkAeds/8D3/uRjcvonPAdhUWAv+h24mNObOqgTl1OjOQ4pAi+TR2jQForVO6z3T1MgsPTxzmw7JTioETLwbbqjQSiof81iA6iBc0opxDxhW+uX6KHikkeJcF1SfQ1W1J6ovLbht70joXQPBNKrNw= 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:25:51 +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:54:15 +0530 Message-Id: <1528478659-15859-17-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:Ns5suj+F5Lh4NoptVVx5n/lHbZE4wXyi+xpYpeyjx/Nb5707DGjysbh+bENAhv+zRF52pbtRKUVyKjbW+dIIRuhiriigySU08yfPl22xw6dnMvul1cx0c2El/fyNlM0FgmqwNOiyn0A5UVzt91vbI0f1WL86QVnHlGKk06tNcASL4gmxumcrW9qwst9liho9MLygNhBtIj11hoo+XzV2AyFEyITl81d9R3nHAsAfD/3frw7cxIe7BsWvvWuDlXZO; 25:G3uhShIAVIOGPtt1YdZmHIxcvOCRsG4r24nP0bjaEXDYsSFq+6LE+iqXxK36IdAauVttaQlPpsnx4nbQh4s01jlavXdCC/9TeAjoB6M5f6+Cr+NywIH9dBud3Y45/RuAd7AWDuH7LujFRINNacqOqlLcByZS3sJMhSulo1AnApdk4xCHRxPx+L4D9edyagMsJgAB6Gkpp+M2IzOKB1lD8jcP3qkiqr/1QTPIf9F9LZHwWpvDJOZdQt3ecqIFVzwFv467H0O+oyrAOjDumWzZejBZJ17VOcDiXfXxkn20bJkXKEvnhYSN4sGBqK6SAqMo5A7Enm9cmUvpquX4KTjBcQ==; 31:JjE8xeKwFu6LOFBi/fZoDDw67aW78+bFGrfeT4U4x2I93OuNebADeGZmRx8RRUxtECuYSYY30HJYmgwHwALgAh8UxhFXXQIDJaPsyAyeXsI0G3JBYX1tStI2Mea/ZLrIBdzHNNytXN7VTlV09io3R2VPwbjfo7xqtMNkqsQssl0ZjObBvvT375w2HfnCbnt50IDNSaha39BvFKsGKhNPDe5zrCB519eb9L8axNDlBdE= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:scnhIFKfoKEX1EIQ+FVOrQiQllUouvjrtnsv3C9Cha6/11ngrgG6Kqp4X1cR/l1UEwPe6nDtSrcY/drOXzJ1DlKVIuVF2UnTa9dys2RcKHgAAMlLEidhdUDoKPbSRbUr5bTVRGWE6p485JZJJ/8IzmZtdym/83LmORLVZiyFvwzRIqbKH2pNWOR3E5Iy6XJrSTV8wjoR0HafxbJcYY4mqKUy/BpgUxuWV1gbgMgDR4qBBsFFCJPwZoC0fo6QgkU0wdu/c9n/tnD46dkUtgioYvwwg1EtZMWefaDlNK4tumbnlEAiFhkl2GOWWIf3ciSw7aQ5h6CiJs4YTrcC236ffn+aMb9Bgj/EEw+pqdb3ucCr5DgUzQAFPezxNL+LxASABrUz3qR5d3NxM0r8mwhBa6u/RS0E8KHo6ytefa6fTNjka5eJqtjbVmX17CGlvEtu69GHiYEpNp6/OHQn/7Xilk1+M+bvA2EOy6eJ4d46+cTHmOL4duhd3S7z2EZJRdlml1bXK4jmaYr/Z/we7p1E5H4tsWl7U3LffOwf+sGvJmE+i1ZFnuphRswnhMWsJ1xU8hAijBUZ6LVkF6U/bB8qyEQNUUwLeMVzHo+MyZZ3wKI=; 4:kTRbYukzmbHzWD0KQfPKdGH+j8dhnrOFnYZU5KrrhggLqzQHL+6oL/BjY83zdGBzOMieF76gxoKnPpliDAcqG6JI2E9LEca+ZogfL+Bn4xiQ2K4KG43Xps92N5Omb2gJ8SXklENhtTsH+jFpu5q3+XHuF/2G+gQqhNwDOA3vIW/BHDTfh1VuMMHIKTWhtAN+kCMp72kZTxTr4pEfNkQAcxKOmdD0R1rI/gb+YY5VS8vMU3rrxtlP0L+XPYus4Ec1MgdscHYHX+XUElD2b3JJ9Q== X-Microsoft-Antispam-PRVS: 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)(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-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(366004)(376002)(396003)(39380400002)(51234002)(189003)(199004)(186003)(16526019)(5660300001)(26005)(42882007)(55236004)(66066001)(47776003)(68736007)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(76176011)(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:NbgQu+C10bmScs58sO7V/vVrJrBSV1XfWw0T2soM/?= noJ3w9kUOCiUgRgWhMNAJ2QOgvBWq+h4+PlMeTDYPBL4LVh35o4xh9NzCCB6P5+Gv7FSFmwu/+G0pLyySyFlPPS/WX2BoiaIozjgrDY2oP3iqxbIRdzlbR7Cred3eMXiCjV/MfVUMlZkxHqqEsbTUoJFTN3wl4ZHMg3ZPguavL58waNvPZb+o779cQKpmvKRVhZrA6aSLuO2SPLb8wSnk1lIERuSulTMUE5Q8j20WnaKvSW2NRGBIuNweWnCbO60saWllIA3xom//UAngAWyRw479DOafkLOoaIogEm2/o/JjKOXP8G6tWxSOQkPwPqnPT308N9PeXwjOfXJJJo/X39vIkKMyVkKXwG03iXQrBIarTraWgXcB/NRwo2oNTIDmqbUJGOzGjxE/QJgnSY1xc5fMGKjcnjAdi5OhPcLuHghWy5CvtRqVpYA56T6wyC0wmKnmK9hhOMntMJ853KIevjckS6d26q6V0iNx/6lfYaUXEfC1FL53bg5hf9HQBg7QyGrxAQTRHSptrMIwEZgzI8IFedsI5NtkHU09i4mgj2Il1UFVSnXL3FDK8Z9xUFsd3b6Ec0qdmLKEPWdrF3y0IZCItzlbYOe/nFFfTCY9+UTN2q9pHVV2ePmC1CFtaE/IzE4W829xWW/c0nM0uaXz/k5Tq8igrDskvZH/md/KB1lNaiisvbZyDuoW+cWfOd1jWAKzx/sJbtKIER/mnO1reK5h9JXslPtWyTXbxrsZCxWer92q9Eu7a7Gcqz1zwXLrsuTtJuWbcBusJHlcwHs0lm6cNnx7A60TaisH0x1n/OoDtSKob/RpIO6/VwWFZLfz4elBYDkJXh6C/8hEXFSQpo3oM33c89mFqbh5OlBF6ikoWqwae4vEhjbGvpfFnTMuKelcTq3LdX9LDrzSDKjridOfwusoTCYX30PK2iMlZSlpsxry/PliiqtrZqeQ5jFK6xPGRq0SVDcvvEX/FZHuJEMF0jUMwtMYGZxdOAxevyrtHNJTC8SB9kmDigtKtuoesrG5A2Akl5MogfPH1nl/YcKBccwnU+SVbTM0GG4ktRVgCvTz1BSueXSYPIXYlzibgLI01yI9Ti+ej2BS6Nc7gZFEWDj7CsBC6UhvHqtQYQz9famqKzT8dqGto86VXZkNEnQnyZkYvlSnTcf7bMJRRvoIIzv4DGURJPaKDsbd/xfQKVUzkY+PNuEEF+RVZhPUY8Xuqllr6OEsvEr/zOB96gqyvg8GOMYgr555WsWrZ9jCZHhMwIcQW2dfzTaRLpG5I= X-Microsoft-Antispam-Message-Info: ggm74ih+3DrQDVMi/cujoKrCtug9xTaMLqvXBezmWqHd6qlmhXFJhAvHzHRH1vfqDc36y5/UQ46rfFVtSCi/k1WXPu4OyUvFYfnXqRlxKXf0MJCybNI9cX6SdoZSPeVOndGDtu1atB3zaDJ6PWIRzT0qRrr772H35ws6ylIT/kwHCvh6NwyDNXWutVP6Y4PtIZIC2vVL250JfmgPm7Vx5g== X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:BMLkyDhW/zJxPdxsSwLfdFfqmRDdU7ol7cM1FklehjdNx5trl/p1Q9eK8hXGdD1TlGt5bdoZj569WHi2JoAQKIjW6OJdd+7v4SMcaEOfnmdJ5SY990jQaT8di2XshePSCWttsADKE06igpjlh+kSBd9zuxrZYy26P7Tjw70U2AoLPlmqp9rvVeeSw+9uTfoZAnZE3GTYyWfX4o+rsXwkYHPD2WAW9ykUETBlzxeb7N6NIXKCDZWmWB71t/FlxuzALkmYskijlh4UFFFA7dLa5YX6JcE7TQ60RhvuWAigos9kwBiO1QQGeq+ox0sBLKEp+lAkl+IJuGbcT6iHPotEi4EmpqUiy6cGnkTwahVdouP8sSBn14zo6WXV3icqcVdcrrn1mpp7KnFVGgvI+Z6WTfDhwcD3COKG4di5y2g9ecJ1XxG1nMP4lK93idmMoxtn4bZbP1jDSfhlcSVTW7hNag==; 5:dXvlZXhmmzl2Zwmb2PluyaYFBNp6u7ixplJj1OxrjCTlP18KIkZSl5p724SYREbGyGcnj0bdVqvHyPp4Yslh6up85woUBEbiMARSIh4VcXox4DZrfVvSI+v2vAFaBCxCjVnwlDyicT48yvk2WjHIGzhgOeJ/H4ye0unykLjZJZQ=; 24:W+t9t8Rgn5POy1DeRVV7N8xokavaFrO0JkBDBzDS53x+KmggsF6dwxdayebU/uQOS55xVrYML95no/LX4/SGM/xtG4AiII0XqJ2paYCcHTs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:YH3GKoLPsZ7tsPUCb3jHdX4cwIo4/WZjVuu2Xj2TBlLjiPJwjHrgzwi6YpmqqeY2U9ltdmQjqxvc0SCH4KUAckIN10sgDa6Tp7wlfPX0FdXzL7UliqdFPHucECqLhaAWT3M6m1FiOK5yK334uOvpcpFcwQ+3N/8L8GxFILpK8+Y+mnI4gtbC/RkKxg5ixdpCK0Y1l35wylOHo1xEssTMRowQslRywcJ4mVB9crJcsgrwWsdiTfhD81Gjr6xbGlw8 X-MS-Office365-Filtering-Correlation-Id: 3f2e1e50-377a-4c1b-fc99-08d5cd64e3e0 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:51.8108 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3f2e1e50-377a-4c1b-fc99-08d5cd64e3e0 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 16/20] eventdev: add routines to display the eventmode conf 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" Signed-off-by: Anoob Joseph --- lib/librte_eventdev/Makefile | 1 + lib/librte_eventdev/rte_eventmode_helper.c | 3 + lib/librte_eventdev/rte_eventmode_helper.h | 10 ++ lib/librte_eventdev/rte_eventmode_helper_prints.c | 161 ++++++++++++++++++++++ 4 files changed, 175 insertions(+) create mode 100644 lib/librte_eventdev/rte_eventmode_helper_prints.c diff --git a/lib/librte_eventdev/Makefile b/lib/librte_eventdev/Makefile index 80a5830..c427b63 100644 --- a/lib/librte_eventdev/Makefile +++ b/lib/librte_eventdev/Makefile @@ -20,6 +20,7 @@ LDLIBS += -lrte_mbuf -lrte_cryptodev # library source files SRCS-y += rte_eventdev.c SRCS-y += rte_eventmode_helper.c +SRCS-y += rte_eventmode_helper_prints.c SRCS-y += rte_event_ring.c SRCS-y += rte_event_eth_rx_adapter.c SRCS-y += rte_event_timer_adapter.c diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 6bdd64c..82cc6d3 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -832,6 +832,9 @@ rte_eventmode_helper_initialize_devs( return -1; } + /* Display the current conf */ + rte_eventmode_helper_display_conf(mode_conf); + /* Stop eth devices before setting up adapter */ RTE_ETH_FOREACH_DEV(portid) { diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index 1ade32f..c1676e3 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -96,5 +96,15 @@ int32_t rte_eventmode_helper_initialize_devs( struct rte_eventmode_helper_conf *mode_conf); +/** + * Display event mode conf + * + * Parse the conf and display the current configuration. + * + * @param mode_conf + * Configuration of the mode in which app is doing packet handling + */ +void +rte_eventmode_helper_display_conf(struct rte_eventmode_helper_conf *mode_conf); #endif /* _RTE_EVENTMODE_HELPER_H_ */ diff --git a/lib/librte_eventdev/rte_eventmode_helper_prints.c b/lib/librte_eventdev/rte_eventmode_helper_prints.c new file mode 100644 index 0000000..08b016d --- /dev/null +++ b/lib/librte_eventdev/rte_eventmode_helper_prints.c @@ -0,0 +1,161 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Cavium, Inc + */ + +#include +#include + +#include +#include "rte_eventmode_helper_internal.h" + +static void +rte_eventmode_display_operating_mode(struct eventmode_conf *em_conf) +{ + char sched_types[][32] = { + "RTE_SCHED_TYPE_ORDERED", + "RTE_SCHED_TYPE_ATOMIC", + "RTE_SCHED_TYPE_PARALLEL", + }; + RTE_EM_HLPR_LOG_INFO("Operating mode:"); + + RTE_EM_HLPR_LOG_INFO("\tScheduling type: \t%s", + sched_types[em_conf->ext_params.s1_sched_type]); + + RTE_EM_HLPR_LOG_INFO(""); +} + +static void +rte_eventmode_display_event_dev_conf(struct eventmode_conf *em_conf) +{ + int i; + char print_buf[256] = { 0 }; + char queue_mode[][32] = { + "", + "ATQ (ALL TYPE QUEUE)", + "SINGLE LINK", + }; + + RTE_EM_HLPR_LOG_INFO("Event Device Configuration:"); + + for (i = 0; i < em_conf->nb_eventdev; i++) { + sprintf(print_buf, + "\tDev ID: %-2d \tQueues: %-2d \tPorts: %-2d", + em_conf->eventdev_config[i].eventdev_id, + em_conf->eventdev_config[i].nb_eventqueue, + em_conf->eventdev_config[i].nb_eventport); + sprintf(print_buf + strlen(print_buf), + "\tQueue mode: %s", + queue_mode[em_conf->eventdev_config[i].ev_queue_mode]); + RTE_EM_HLPR_LOG_INFO("%s", print_buf); + } + RTE_EM_HLPR_LOG_INFO(""); +} + +static void +rte_eventmode_display_rx_adapter_conf(struct eventmode_conf *em_conf) +{ + int i, j; + int nb_rx_adapter = em_conf->nb_rx_adapter; + struct rx_adapter_conf *adapter; + struct adapter_connection_info *conn; + char print_buf[256] = { 0 }; + + RTE_EM_HLPR_LOG_INFO("Adapters configured: %d", nb_rx_adapter); + + for (i = 0; i < nb_rx_adapter; i++) { + adapter = &(em_conf->adapter[i]); + RTE_EM_HLPR_LOG_INFO( + "\tAdaper ID: %-2d\tConnections: %-2d\tEvent dev ID: %-2d" + "\tRx core: %-2d", + adapter->adapter_id, + adapter->nb_connections, + adapter->eventdev_id, + adapter->rx_core_id); + + for (j = 0; j < adapter->nb_connections; j++) { + conn = &(adapter->conn[j]); + + sprintf(print_buf, + "\t\tEthdev ID: %-2d", conn->ethdev_id); + + if (conn->ethdev_rx_qid == -1) + sprintf(print_buf + strlen(print_buf), + "\tEth rx queue: %-2s", "ALL"); + else + sprintf(print_buf + strlen(print_buf), + "\tEth rx queue: %-2d", + conn->ethdev_rx_qid); + + sprintf(print_buf + strlen(print_buf), + "\tEvent queue: %-2d", conn->eventq_id); + RTE_EM_HLPR_LOG_INFO("%s", print_buf); + } + } + RTE_EM_HLPR_LOG_INFO(""); +} + +static void +rte_eventmode_display_link_conf(struct eventmode_conf *em_conf) +{ + int i; + struct rte_eventmode_helper_event_link_info *link; + char print_buf[256] = { 0 }; + + RTE_EM_HLPR_LOG_INFO("Links configured: %d", em_conf->nb_link); + + for (i = 0; i < em_conf->nb_link; i++) { + link = &(em_conf->link[i]); + + sprintf(print_buf, + "\tEvent dev ID: %-2d\tEvent port: %-2d", + link->eventdev_id, + link->event_portid); + + if (em_conf->ext_params.all_ev_queue_to_ev_port) + sprintf(print_buf + strlen(print_buf), + "Event queue: %-2s\t", "ALL"); + else + sprintf(print_buf + strlen(print_buf), + "Event queue: %-2d\t", link->eventq_id); + + sprintf(print_buf + strlen(print_buf), + "Lcore: %-2d", link->lcore_id); + RTE_EM_HLPR_LOG_INFO("%s", print_buf); + } + RTE_EM_HLPR_LOG_INFO(""); +} + +void +rte_eventmode_helper_display_conf(struct rte_eventmode_helper_conf *mode_conf) +{ + struct eventmode_conf *em_conf; + + if (mode_conf == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid conf"); + return; + } + + if (mode_conf->mode != RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT) + return; + + if (mode_conf->mode_params == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid mode params"); + return; + } + + /* Get eventmode conf */ + em_conf = (struct eventmode_conf *)(mode_conf->mode_params); + + /* Display user exposed operating modes */ + rte_eventmode_display_operating_mode(em_conf); + + /* Display event device conf */ + rte_eventmode_display_event_dev_conf(em_conf); + + /* Display rx adapter conf */ + rte_eventmode_display_rx_adapter_conf(em_conf); + + /* Display event-lcore link */ + rte_eventmode_display_link_conf(em_conf); +} + From patchwork Fri Jun 8 17:24:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40917 X-Patchwork-Delegate: jerinj@marvell.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 7DF6E1D08B; Fri, 8 Jun 2018 19:26:00 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0084.outbound.protection.outlook.com [104.47.42.84]) by dpdk.org (Postfix) with ESMTP id 569051D08C for ; Fri, 8 Jun 2018 19:25:59 +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=Al+romWSU0PjNM3jC0WIhNA5Dsbx8Ja3Qki3pKpFY00=; b=AZXRxT2IA9089A9YE/ukp8Zs9n3iP9+Tm3IzIZZVhIwlrs05rb9JlvYAPVo6WpCMJI2EzoW4RQSLx3HUUMbWXmkCzMmwpEdzlQ1RRHSZEsB7K25JQdvrylmseTejrbhR+Sn6NdS95uJk8BK7+buAeJsykv52NJ3JheJ6oiu/thc= 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:25:55 +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:54:16 +0530 Message-Id: <1528478659-15859-18-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:rnEEwQs0r5IQ5P6XtGbwB0vvMbzAEhiAq6Ip1uMLghZCX4U6HU20XnLIkLNcr+xglEwhaNQVlvY/UGPLK+fx75yKR8u8QTfROiMsJxBYRJuGpk60eag28jxHsa489+K1GqQMuG9KTpyyM+tmO/hhkO8kjoK8auDQiquapSbiwMuKbRpy/WNUicmUT66w4j43vJjVdQevuBn/ZT5BlxC/OCIj6giCAwTOQxt/W8qbMtdusGv8MlCLwrP1fSuZOyd7; 25:3Tc8BMei3tsNd33zrcHeOlrKQBUH0jONKjnurdv/QiZ2TnXb8g0zzGyHKEbgtjjfWaK1NL2n7ROiO9AjIlnMgCgkDfM9/mM2REneulcZTgir4eJHU5ip1MS+mDQVMLawXNdxsHPrQ7gO79IbSWb/g/TiqjQ+gzRo+WKNL8i2OYm3qW7+wyUWX3Wt6ezh5auTpx+DqLevxKbD1XbSfdeaemkXL4NWwGnSJqRoRqca8HbPN74caA0Zxad9RrEbp27X8kNV07vkkZHgf5ExRGT2BAEibeEIby/MMDWRx12M6OxnBQhydDVSmUGCWxHWBrrtSk6+Dlfyq1d7dFN6tKTFLw==; 31:aI73P4a8hwCukHz8RjzIA4XiwqJT/UAX40cDByq799RZhuz/q7XhH1O1NFiruI4HOVMhqTNI4pDyBdKqIzHf7e99TPX2SQo7hY0d5ZuW4fsvwsawowZ58IYL8OKO+o5QcyBi2cmr+ig5dfKTa0z/ADL/YGqZgS1UwE4Nz9Wowx54ADdpxRHvfyJalMR3JXXwrKCHjUTZuQcUTHFlZLf02F15UxI70zR7yUStDr9BxQg= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:MW3PFbqQb8dLaTXBMIsb+tMgOOZjpqQgEY9+VRvTkKMxuDwmS8XQXfVS9atAdtvZA0N3I4h7bla8IQZ7xaI5pYf4b6cp8ZHGcK2HfhNsIWTkW2905atcgrsv0EBweJwECkpbEefT+tRCG7Kx+5EvGcZl9N7jcnyDQ0DyGoKr9jceLtopK5307wDF3lF4d+PTDVZ2hYjCbj3znA2m+5Mfw7289LD5DSbOg4lRvviZhTZbugrqhExkazCj8Eu9mK0/K6dDYoTkW/TLwqvOXE2HZkIISPnBz0FEfnCS8EHscPlw7uYNPibDfLxoP9kCAHo00RwqdP6e/39NyWF+hf7T1LzeWUkqceudXi+8fGrdNJgbZW8tclEqsKZ/oFO6SeBzUkut+RTjaUjbjdXoEIHwzmJtVqgdl/qzFlq8AEE4Tu5n8zOPqbjKexhSGcDr6LmF6OkJrSdf5hiJU3lnG453iDgx6xkbExwwNrhIscLLgQTQx1kga13IvvWXxT6YIGZzDd159eRtd/R5UlYpj+5QfFYAzjmm+zYxC+pcIUfYzRjGrsAIutMDQZ/pNTYiQzK2CzaC5L6uj5v6i+jjWasD//P+AN7FZQTHUseugSo46OE=; 4:MGxnRNDRqHTkDe83ccfVvmbebwO7/kQU1HQs3He7rMYjmbeAx1Vn0yw3C/9HrBOVpoXKHGdvdpjoYPr5ZoQqXID45Rup3Lmd8TS5A9eH2pv0Iq8MFswxz3uZpTSWRp3sJzPy1rzy/ZgvUOo2Yr2KxLfUDnpyqrouYZCe2Iwjc1GyoF/2DeyKHynBRckg81UZWsKmzxN/V21mcFU5BE8GDenel9aUSv2/fVV3HzjKbMdupdrGvwMJZZ/OErEor1Q3j+BD6xcwBbUn7iRfB2T9Yw== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:4yjlphURVRwxJW6zkb7jEx9o8Y/jWxIhLwDMGCEXv?= RhSWNfMW2uOudBgh7fKTtRT5TA3YqtE44RqaCZVT7/vwUr62L3ZiQlXD6mddWBpXkbEv2DneLDKScQdj1i1uPa0PTG47pAz+lfMTCZCHgXfDL+ptQT/JceFZLH6jVkn+MdzCxuaKRUjSy6jPlZ7N8u4SKii5nXo20hnQdYw5nMuFEd0SbmPOjIILR+azpYzLbeACCOQe9U4ZFFcGJ7s1vrC8KLek4FCpJpMqJnWOSzR/PgI88d9wd7FJ7yisR76O32WAUFiXmifdbu2Le5kOUfHfIa8QPzh3x7WP2jsbAR/qG6ID4VJQWHCGnbIHeODe2kGDZAufu8tUJdW3zGPYPz5aWq2pty0MO3bwu+zOptmbc4+tyc3ouePM61+h1LrnTme60qfWFHOYFC2h+H+BZoFIBuVusQ82YNOshet48Tad3wEPwOc6/7jiZXaLnGIfkkQyuNGOiknU9zDUkFmIfJ0lHbTgzccIhxYC3Y1Z3FBfOZI88eoN4o4M3qidkrvLgybvByZgpwtTD1aY9WFZAp5GOYHLddMVJu/4BOtqALSClpd95oMb2kZGDQbl2Hgfl5skkw7Pg/ocVvQHcf/aah7QDDTmzVnrhdoi5+fAwQJ9pSLbXefzfqyZqxCjGCB3w8kpfKvq6YdnGDTPYBmoD9DhfPMVyItu3po4NYIu410/TB6BaIFHpjY5YXftZP01PDWJQndXW8s6mlYSp9ioLBaWBBt+kZ0gNlRPepuzjBfoct7NlLp4L99Rks7EXHwECBm7zaK0njBUYgqBsSN/VxBpOdFUbejWcwhQaNn1h6ROTSkWaJXGO6BhGTc9cLy88Rn3C702AuLNqMRST/4k5H9tPdVp1B77o7+PMLz6jDVpxz3Rkj2lh87Q9bg1scWNokNwnbLsKjxibTtp0YAMWDqIM7fvLHBHEsimoC2EH3XEv1quJ1zf+lGFDrIneiwdYdUNm/7YYxg8odHJooqTt67dQEYjyNYWMH2kHtJixJguO+cYjmXU2ZlS213JdkYZoFNV5Akes1mYQOatUpB5L8A7YU+en6WvwV9UtZqXgM40OswZ46TBVVoFc9Cs9LgUVRHjUjto+oqtXLajCcnjTzIYmC7P6QsQuNzk1+LBdnIlDSUibtywCpp+bUW5kedHbw7xplpZ5HLXa3TDkXMa3Sk96u0Gg0sobqt2aCvjl8vtjGuoIJM1lVrHvirGGdaXy5NGima7sas3JnowwyeN8aC7pcRYvAqBzcJHZ96RohlXDFkWKryBTL6CUmcXWlNMkQ= X-Microsoft-Antispam-Message-Info: rnpsXmbRKtOrOae63vwIeoyQ8LIQ4EpP2X8nndKCHYyBDeg/F341hanl/AcXrLRPN64IPlszJkSQPcH7dwSW55mlFh4o0Oz6eJtZdI1WRYAnDkyeDVnxQcwfnnaON5BoNH/rMhmT1Vn5j3n5FCZKtTY/L+rUB53lXvxxJ+5K7km2ihJyDqQKKjCJ0DoDbfBS X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:S5X4yWTsS7yECKC3J4NG6fBdoPbC/+Fo2Wi5uJvLD+9puOOzPkQdrn2bLaBeM9stnr1qDsrjJm0xnfHf9iCpvG5IeqJrvM+7qfIYN8XeS1ZOscUutpwuvtK44nyHUCEsVJlwArJu+M5pWXHMCw+3DuF35iJSoQq4Ce21+MJQl5iWYQyLjUgTWBpcwd0g6AixtHPFAEeGt2/ikm8W8AWFl8Ea7yJWYzdUf/J7ulbXBXxWJhIGxoEEo/2k7zCp+1aBkFDV7UwYbXsjGHMgytAREpQXxRNKKT9DWwBplMZ7IPDWJ/9xv3wDhP5u5Fx++IFouY5dq9pPM9o2pzJmugjB1RnqSpJnL8mhMDh6ujpk/chMSFdbFUd/p+BFNpQ7xbUIZhhDzdeaFBT3pUIB3hXY3xMlq/9VFZ/gB02nRW/sZfbIk9MHMnRuqwUUsKCt3sXoZ0PL6Lkyd4KNz8O/LdI0pQ==; 5:weW5xQZ88dS2bneSsnTlcXFgxJbTBQfflrexJ4dGeMuTwe1fVwokK3q8mZCFjtwXloiSNn5Rf53o07cAsy03/0ru1awOKuTqFZb399t4uYtdyh/6I/VQegn7jpwkkUr3g6Kkx2QolDmydyrJxD5C8b70miaIrxzbKyFIsW0cTGI=; 24:kAR4jqYbAcz+1Lpx1FPwTiPnp6pbWuWTxYiccYTZ+CGIGZlY1JphtzJKR6at3OQepZYb4bVWpcPo8A+7UtcNtsP/difHOJU0Xu1yxXvfc0M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:yHIriGrZ4rldRYAOvJoN2FVBxEkeJzoEa6kDMi5nGfDnkEztDV1htV1OFrj8sIKubFRIoy5FX9V332Mi6a1RCVV7jIcZ+VuYPmS6meO6u8Offx4+WhOWA/q4VfIuwcHLQySG9DNplnMsFURRfsBPbDNhCihvWlZo4uZFaFqkTjS0ofOZqoK4tKxyvTdEM3YCwapGgG7ikXkjz3NstkQ2ZDPYycsZv689iP8Yfq2GS+Llyns0YZSLELalfmfEaNly X-MS-Office365-Filtering-Correlation-Id: 6a2b8156-a985-47ee-49ad-08d5cd64e5d3 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:55.1233 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a2b8156-a985-47ee-49ad-08d5cd64e5d3 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 17/20] eventdev: add routine to access eventmode link info 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" When the application is drafted for single stage eventmode, it will be efficient to have the loop in the application space, rather than passing it on to the helper. But application would need to have info on the links to be able to do that efficiently. This function exposes the links to that application. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 80 ++++++++++++++++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper.h | 25 ++++++++++ 2 files changed, 105 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 82cc6d3..7827ea6 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -877,3 +877,83 @@ rte_eventmode_helper_initialize_devs( return 0; } + +/* Helper functions for eventmode workers */ + +uint8_t +rte_eventmode_helper_get_event_lcore_links(uint32_t lcore_id, + struct rte_eventmode_helper_conf *mode_conf, + struct rte_eventmode_helper_event_link_info **links) +{ + int i; + int index = 0; + uint8_t lcore_nb_link = 0; + struct rte_eventmode_helper_event_link_info *link; + struct rte_eventmode_helper_event_link_info *link_cache; + struct eventmode_conf *em_conf = NULL; + size_t cache_size; + size_t single_link_size; + + if (mode_conf == NULL || links == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid args"); + return 0; + } + + /* Get eventmode conf */ + em_conf = (struct eventmode_conf *)(mode_conf->mode_params); + + if (em_conf == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid event mode conf"); + return 0; + } + + /* Get the number of links registered */ + for (i = 0; i < em_conf->nb_link; i++) { + + /* Get link */ + link = &(em_conf->link[i]); + + /* Check if we have link intended for this lcore */ + if (link->lcore_id == lcore_id) { + + /* Update the number of links for this core */ + lcore_nb_link++; + + } + } + + /* Compute size of one entry to be copied */ + single_link_size = sizeof(struct rte_eventmode_helper_event_link_info); + + /* Compute size of the buffer required */ + cache_size = lcore_nb_link * + sizeof(struct rte_eventmode_helper_event_link_info); + + /* Allocate memory for caching the links */ + link_cache = rte_zmalloc("eventmode-event-lcore-links", cache_size, + RTE_CACHE_LINE_SIZE); + + /* Get the number of links registered */ + for (i = 0; i < em_conf->nb_link; i++) { + + /* Get link */ + link = &(em_conf->link[i]); + + /* Check if we have link intended for this lcore */ + if (link->lcore_id == lcore_id) { + + /* Cache the link */ + memcpy(&link_cache[index], link, single_link_size); + + /* Update index */ + index++; + } + } + + /* Update the links for application to use the cached links */ + *links = link_cache; + + /* Return the number of cached links */ + return lcore_nb_link; +} + diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index c1676e3..1d8af44 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -107,4 +107,29 @@ rte_eventmode_helper_initialize_devs( void rte_eventmode_helper_display_conf(struct rte_eventmode_helper_conf *mode_conf); +/** + * Get event dev - lcore links + * + * When the application is doing single stage execution, the execution loop + * will be in the application. So the application would need the info on which + * event port need to be polled by an lcore etc. This helper function would + * help the application in doing so. The 'links' would point to the memory + * allocated for the links list, and the application should release this, once + * the use is over. + * + * @param lcore_id + * ID of the lcore for which the links list need to be populated + * @param mode_conf + * Configuration of the mode in which app is doing packet handling + * @param links + * Used to pass the pointer of the memory allocated by the helper to the + * application + * @return + * Number of links found for the lcore + */ +uint8_t +rte_eventmode_helper_get_event_lcore_links(uint32_t lcore_id, + struct rte_eventmode_helper_conf *mode_conf, + struct rte_eventmode_helper_event_link_info **links); + #endif /* _RTE_EVENTMODE_HELPER_H_ */ From patchwork Fri Jun 8 17:24:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40918 X-Patchwork-Delegate: jerinj@marvell.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 628E51D099; Fri, 8 Jun 2018 19:26:07 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0052.outbound.protection.outlook.com [104.47.42.52]) by dpdk.org (Postfix) with ESMTP id 276AB1BB4B for ; Fri, 8 Jun 2018 19:26:05 +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=0S4P3aWUGEt2VXePOfJbhuM34NPoIDzd/LaKHMNtY4c=; b=Ochk7uLxDEIx+nX3aLwF8s+reUVCtrKPgkATuzbUMFAIdCxSTKXDkIp0jkGSTC/yN2I5ALDS4YLK2MfTmP8utMIRw+s8WvmiPuHX9j19UqSH2RVdQGPkqUth9bffhcXXW64NAgv8vhqM+f2Znk2aPaN0x89hOIFEZ8aQQt5OWeg= 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:25:58 +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:54:17 +0530 Message-Id: <1528478659-15859-19-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:EjU+foOvre2gfy0PyryRxZiA2fniKn2AlHMZX+kDhR9DaNEXIzjqPw9HEDTkGt9vSPjsrI9juHiea//+9P2lc1L7PT1HcJY4qrq2dBn7F3HHOhVUB8EEPLPZ7ZI1fuss6pqwtVojPcdQ3kIRceeA0U3W+BGVjG991AtbuZK235WgVMClFnQ2DNqvcuiRyR/lAhz47DZJKc14x921I7KV/aJtMP4sjhni6A5KdlEGkpCAPnnaiPjM9C0c2hfEPX/e; 25:9ZLo2QZ2u8ZRUkEcUQ/hazqOwDf3IsBtDW+24G2Gi+tiHhGrTQ1uOPILgWJehio7B2eM0fHvu5bOXirL8kF7FyL5OXGGEcBaciAY5NY/vfBifXlSvCGBaJSFrA64cdyjsU2EJObqm9Echgj822TlxSM+1QJ/D4PtdG3WJBOoNXyRtGEeTEsK3E5JCYsjml6GwQyCloB4PGdbFA7f2FpnKJnc+v/4BX4sNzQve3cxkzZqEGn5DuN76RFTAJOilTQn2Pr/acXsfA8nsx2WTSoxTCNxS0u+hsQHYhfoYTRxOjqqGtWpyQ7/0BfxTDMXL0l3+dzdiutpXuxiCojO9GQgkA==; 31:ZI6SDiFnNeUBmm+WrPXYzhBeOHY1Hqa2M2sxTa/lbqkKqB3MenZBFsIKcY0k3U5RddNXSpEFUvNHgp/nlg57uYfl1gieo8XbHt/vlHJlojwHG8DwkWFwI4pO9zFIs4kuHjAbMp5fbjI90H+F36d8mBCK2yF/ExsGJNKbXjoIcDXjb6v/iggjTEvn0jPxw7oCGDiJxAkEIWRZVeVFkq1KZK5Jt06/69PMqdbm9u5OZt8= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:jOGgbYimSPmATDQT8gA3OMyKgkQU2wnydXnPIWzAm1m98zdGiZrjdKnNDGAWQB0c0BePnrlR1id76Dg8M5McPNdW0UQl2ABVqyjdcj4J1+sSsJDg9r1J+XTue7xuh0GEx8GF7e58GfjDn1gDQvMvBh21uHCP1r5lkdv3fnRXAUFz1BLtLrg1jViDY/lcJBCHR8w1vGVlrCn2P4xA33JrY16345ZtiP3pTWK3IWCH/gGOlfSJjuoys3IpU6CzNZgW3fiF9QThUbvwJXtkacrr0Hj4hpl+rrPy78QKbtGUvtAGY6OefE8IqGjZ5GTduErZEFOitgnMOfDdPazwDd+EO4RqfzXyUxz1g3px84faDPfFziOuJ5FjdWXg6jcrfEnTlZAbxoOU2VIR1DF6fiErL3C9cZF9OkQ4bQekLsPEYbjfETa3rbqW7uukkNwPQWlR+yuj7UadvdFBTO3NbGpmZQKu/VzFBbjiEIW0LgLrba2wflcN1cN1/eQB+XM0/kD01DuO4GFPGfvcbeK39u1TbtrBZGlzo+kkwioU1i59P4UG4hjFKgcPZODVg5ZJ/lEHt+l5LkKv/IIsP5bFeZwlbRRBHvBe7toIj7GtAvNWL4Q=; 4:mAiAKuupp3XJZDtuoslnjVjY+8d0qLTO1AN2f6zW7Qif5Hh75CK9GJfw58j3NK/AIds/n7T5+K+Y+D0VcAeNV2JjwEjCzObq+Uwz6RyKYpEvW7RBC/J95xiJgzC9RYD7HeVKgDYqw+wwm/Vf5yPTPvgCIPhfbJ+BjXtkfj3HCyNb1yxo0v9D+f/TqRtcY8/P/qpQ1GyDwkYM2sYHyvRorFS/a2hC2yRXcxtvgTLOul9AuTz5xVD3q2KeVZsKRDNiVpEyuA0ww52Zzdd6giDsaw== X-Microsoft-Antispam-PRVS: 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)(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-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(366004)(376002)(396003)(39380400002)(189003)(199004)(22813001)(186003)(16526019)(5660300001)(26005)(42882007)(55236004)(66066001)(47776003)(68736007)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:HBoNz+I/ocOz8GLeagakYALeJ2OFm1uTBivimBFIJ?= z0IGWsudDlxZ1k80aOC5FIS5CrIhFhsU56lju9vehvwrPtjW3qRuKvq3zdL/4lVSkU4NTRkvMJ9JtrAeQ1C1q7f5tkFoXUK0LdELplVnZk6MPMJ06cklYsV/fg1KNfhOEWpu2jEX3H8PeeHwwX4DcCKvmMxRCo9Q4tMDNE1OZNhsJkZRYE/Km0WlvdC8pjY0BhOb3y0oxVzcEsSKgBU7UbsGtr1oBmRe/QMBFvNWW/5M5tvdqjmMbvl82LjsOf/hoyeIAwm9h0kh6Y9691iB+2FyPgB2r58ss19HrspE8pID7vRV7h6253uQeEZElP94tEfvaCUdoSL5AfXy7Hk2+X0USz/PJOQcCqiCU3XpVd4ZPs9N1qIqnOY6zrCimvgMcWT5MWzGtRAlNADNTdl+W/YAMVEVWFuPjv39luxWBMYvlgkceaRJ57xbsGra6RBhBCSIDhryhf01G4ixgvD1KOu4FXMX6l7pvafvcCGSpmuxPV1WP7qFPfH+Z1weCjYgt0TKvHRDbQ/GsILxE88Eyu9cxORLnd2uaq/VHsmZxiZmWO8lbAqMRiL0dLHEmaUN+vSCaoY/zjA4F0Jal0ep5/+0BgIdNKYCQaJTh5Pk7oSyGAYMjBkNtZOX2cLdOupcpa24VO3gF6ct9auHFNlW42Sx7HKA3oOzcbTFIU096QfliHpYQcV+PxBVHdiJAEotbuWOY0ZxsEEVa0EUbg4nbMdK4xYg0YwUGz4P7Y1grHrS5doSdLotJK408qSVk9SqI300I5aaJhAWM5JiqOiLpQ3uclqNMA/jqT7wpOIhEWBS7ud0VcF+nOa9VRJUmjh4siMGteFL/ox6Gk0mo10iIjALyiFpRRzcswzQmlA3edJHtLLAhn+20tTnkwLR46vpTLLmyJsre2segJNwH7iWLb9u6AYwAp7LfaHsqaislwd7jHRiWl/+iHRwR1iMtPKX7Cakx8t9kL6L6G4s9YsFBeXrvgGpfAF59WFKl7eiXlEv/Wep2427iVuDFKfR52eQu0AjHzxEXd0iiUm157na0QmeKK6di8CpJaDxBnwvALiAIcaTXFkke79kS53J2Li2qiAVOgYRQZpUsbbgpAAcAaAKlSf2DJXu7c61yCrvlNxQVpYBQYTJgfR90E/aHnkkR8RUY43xDWyw0j1VuQA9v6cJkOOJLa69JWduPRz/i21d/NvFADOH1st1xoOBhMuLdfYk31NBzoaFJ+ai5lo5Pi4oekj1w/nLuHJ/KKzIT8NX7TJhgh//nqxfCeQEogwW6H6lQc/m6nO/0vLu3Vu42Gx X-Microsoft-Antispam-Message-Info: auT2x1/ehFN1hFWyi216ix39sRAWub25rNfXeObdivbazcBwEv+Ex7ubGdFXUBe7KwT1KcVG4AR+UMj2G/s5W448XKxgCW7U539g9ckS3mjM8rSAOgEWs4GSZewfbthcNJBCCngHEIGLcDo9SSn3lJ7x9yNAg2aQrJz+kgpfxbaMdFoWgDIk16aE3wHf/tfSwH7DbzKAgxaJYoqNOqY+6A== X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:hpjpuqCDLVlMF7MKPdw6krXhcUQ79tx0xoWJKo2VQBvq7ZWROxxnUwMReZjI6+sLNtDMaJ1ZOD66nSNv9fwfV7m/SdRjx8zl0VRGdunLQTxzzFGt/BxveX2tsxiojaau8OzvrZ7Y2bp81C4S0+AtjmmjijzDpQ42rGZ5huIk8nxx9pBc2hw/EoLmo+9y+M6lihsW4bJlS3GqBuyARafPJ7JCbfflsFk/FYy/qdudsYamZ8XampkCEr1tBR4IEuhnJM5gr9s2Y69nQIBMJGhuvOdAypDqd3rIA7bEpFbAKOND0er8RtktTOQTPrGTIHVWL/2k8eG48zzRjAGHCDKIlwD/YEvTHIEns67Rs757LdSSkixP7yfMD0qnnpfqk9meOgBphQfLRs2fUWK1G15NoaWm9Qu0fD1I9Opje/yCM5wKa5t3S4b470ebcQoYhRzsHxVDIp+qsoqpOckaS6ALFA==; 5:SsrRiGh7e7W1CdaGMepczzJrx4StndyoN8y1YVkO/1MLIN83ztAahMfv2J4XH3wMgh3c1Y6+0g8XRCxPS752SRG4t3KF8MppsvDFI3XWmJpcMlPjm/QpvmUWxq+m9/i8DPGcs9780JG9NjWF9Mv+jNIx6KxD61jGI/D+ITh3pCY=; 24:uUHgBOIOQ0YeraKAAVLsAdAhwnXpF7THPH07DJYWwuOK3dysV70N5HSKjvKhzhNO76Z6UR03huOaUSuqjlzGjNhdIl+H9Ovs7m52uRJ6OIo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:9QBK4zx779hirkGt4xgqbo+o41ovxn3VsK17+x45ejDJzct3jvqJN1VRMqymGmY17/6IIdHlbgzxznXBVFozo9nZ7EB+zwbM3aFtJpKIhi48y2wRw4eT1XBL/1ugHt8E9fofFWu/80uZ5svcmqaGstLAsJE46sGyOQVUzHbrTIGu+pSGUgMOT+p2dSccexye1rSz8OVG8dzHh9rQ832JO+jN44Vj+VnXpc6yj0geS7yFYCAOMDR2Rzi/DDrtj4K4 X-MS-Office365-Filtering-Correlation-Id: 244aa00b-2ec7-4eb4-45ed-08d5cd64e7f5 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:25:58.6546 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 244aa00b-2ec7-4eb4-45ed-08d5cd64e7f5 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 18/20] eventdev: add routine to access event queue for eth Tx 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" When the application is drafted for single stage eventmode, it will be efficient to have the loop in the application space, rather than passing it on to the helper. When the application's stage is in ORDERED sched mode, the application will have to change the sched type of the event to ATOMIC before sending it, to ensure ingress ordering is maintained. Since, it is application who would do the tx, this info is required in it's space. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 35 ++++++++++++++++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper.h | 21 ++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 7827ea6..7f2d269 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -957,3 +957,38 @@ rte_eventmode_helper_get_event_lcore_links(uint32_t lcore_id, return lcore_nb_link; } +uint8_t +rte_eventmode_helper_get_tx_queue(struct rte_eventmode_helper_conf *mode_conf, + uint8_t eventdev_id) +{ + struct eventdev_params *eventdev_config; + struct eventmode_conf *em_conf; + + if (mode_conf == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid conf"); + return (uint8_t)(-1); + } + + if (mode_conf->mode_params == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid mode params"); + return (uint8_t)(-1); + } + + /* Get eventmode conf */ + em_conf = (struct eventmode_conf *)(mode_conf->mode_params); + + /* Get event device conf */ + eventdev_config = internal_get_eventdev_params(em_conf, eventdev_id); + + if (eventdev_config == NULL) { + RTE_EM_HLPR_LOG_ERR("Error reading eventdev conf"); + return (uint8_t)(-1); + } + + /* + * The last queue would be reserved to be used as atomic queue for the + * last stage (eth packet tx stage) + */ + return eventdev_config->nb_eventqueue; +} + diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index 1d8af44..be2fe8d 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -132,4 +132,25 @@ rte_eventmode_helper_get_event_lcore_links(uint32_t lcore_id, struct rte_eventmode_helper_conf *mode_conf, struct rte_eventmode_helper_event_link_info **links); +/** + * Get eventdev tx queue + * + * If the application stage is in non-atomic scheduling mode, then it would be + * required to submit the events to an atomic queue before tx, so that the + * ingress order of the packets would be maintained. This tx queue would be + * created internally by the eventmode helper subsystem, and application + * would need it's queue ID when it is running the execution loop. + * + * @param mode_conf + * Configuration of the mode in which app is doing packet handling + * @param eventdev_id + * Event device ID + * @return + * - Tx queue ID + */ +uint8_t +rte_eventmode_helper_get_tx_queue(struct rte_eventmode_helper_conf *mode_conf, + uint8_t eventdev_id); + + #endif /* _RTE_EVENTMODE_HELPER_H_ */ From patchwork Fri Jun 8 17:24:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40919 X-Patchwork-Delegate: jerinj@marvell.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 AC7CB1D0A0; Fri, 8 Jun 2018 19:26:10 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0065.outbound.protection.outlook.com [104.47.42.65]) by dpdk.org (Postfix) with ESMTP id 98AC51D0A0 for ; Fri, 8 Jun 2018 19:26:08 +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=yWQOru0m6c0y0Dr2Uk6MiRSya4iJuwmYYNVdP26taHc=; b=HSSbuOVbDmuYOJPKK/wBKukio50elqXnhazu2HbUqbv2lCUwghEu8BoSvveEU0AISe78qt3BqP3hG5I6n+DG2idYsViDqD48/eDAtQeguTr+Y0iDn6AIdwsRrBS0N1WFusOoIXOB0RGinOkBWHo/sRExk8LUxQXsfN/zea/hn/M= 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:26:03 +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:54:18 +0530 Message-Id: <1528478659-15859-20-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:POFPSewyZqKCE1j40+bMv7+QN9rLx+MN+uK2/CsQ2xo1FMcqRf/lV9TBPUQmq0EYh9aNUaraQ4/eGPuTVENPmaGnxTXgL4JCfXVsuhGMaGciVjcNAV+hTE6xYegKv6ZmI00ueUw0QyoIX+qtsn6VJv3Tiq+0C0uLbyACWG0Ck68H4Rf/IZKevrE0OISg49adVhqtMhyoDcAKk54I/vr63NvPSDtihZVYYKiUnqtcFhCU2RBtGhax+usBxVWPVFQ5; 25:SQURKKLPK4jJ4pr3F4LsXF6xbpIrs410T8GS9x4smvTm02fqegjFsAOSmNg3f1PD8nnZmqg8/dk+Q1gsbDfNB3Gz+UdToky+mEVSbAKK8ntSrbtfJnLBplf8FksfJEpFZgJd+odwAVxSz4XhQIVQJoypiAWubEOJyHujms+bnY44Ntfi8LuYvhESVVf7IsbVQJjmSDj3R3D+gdKAKrqhYx3UJP7S08EvusR7rLQICLoDMq5kxXAtmVk4fUJxMPx9D95qjGGFbPBPet9WNThAfR0f/3v5ITFkQt40cJEo3mM/q8xx4nL+ges4/Z26wYCHgTSy3UrG8BrLbgiTPtivdQ==; 31:f2T0rN9B1lqWsgcxQqkycvpFjhSEDug1n3z7ywCmJs5C0JFaEg4tSbWVRjEioW0YO+qsKw1hMcCelS+HHXUfsjE/P5zqDG+QX2mXFgD454/KJHerdhM0gOV4dz7VLcjZ8md/787s5DabllzmQDT14bRZSXRWG4LWnuRMdnR2LEoDUQQ4+knX585cAY6K18OGHw81NOo6jSk7GdkKYTOxPYj9FZukS8hPcr671MgpQZU= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:AK0n50CANMwaVTMX7NdOLJWJMLQBagXEAP3cMB0MW0IyTUiEnO9dJ+boE5fxlSGiNdB3aDWTX2k0TVNZIwHHQeR/loIt3BwWMaaZQpZhHaFMaUeW73/T/tnh7gFrX3CquL/Zo8Z3TAkv00OqIA/fNLaEzdg1o7Shj7XNVIjcSUO73Uu6l+YCc1f9oybgaDAl2en47j0FeyclDCBN8tHTwnhZ6hpEQwGmojanCKOrm8rOXNs3XbfaIdSYXccFtXhYjtgBadfRnINemw4Z8bRlEFRED0ty7gc1XkdK80F0Zh1XM2GUmGKb5/E8BJ6ZkvbQqmFuIynd94hmvrlJ6q+Tym6WUybkzDXF3uq7wQqk9DJYoQIOKwCdVrh2ncDgABHdbLofEp+/u+EihJHp+qEK489Hoh0bhCxHwqD7mF6sdMXMKtAAhShgwR0sAMPq1YhwHAQha0JtbqQ9auijk+FolW78EVi2G7m2yLxsGHpiGklmQ2VQjDmv3sRHGyoNV0tlaiF31FPFh1cSmfq1T5oCk2qkI74s1RE2aKrZk2T4pg/l4Hvg5T244CHRebKPlnYuEo5sZryBMmhdwy3eo2O6Y7iK5dxhuCJGdzT60wh1jJw=; 4:isQeOjZ5+iefD/rqWElEZluf1J29z6VbaxeKOhHlZgU6tHgfdc+p8R59/SkrHhsSn1gNdO/rZ8hiuiZ9gRTpGEfiJ/Kgj+/q75CIT8YHpIvbCnJDtvrMiL4sb/JEYuteFieds5ul+seCVLnMe44692MFtFY6MG9OlwB51UySNr03NCj+uFnCUBmeVT7Q40K3JoMu7MB/scwiSqs/xMPuwgebbcDQY4X0P56NnYU8nGX9qkPJet9mFY0PtbAhXCgPPb72CiupCQUNboEe6/QPfw== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:X3gbHrNGq6pl1JKQuR9Scw1Lb7v54wNi+HXL6tXR1?= BLk70QZpbtVBjxVCVRrqPBTdOB9oRtALAIAFLVEr1j3TubyUJvlUbMTsb8aybbIK/kzfUWn6kkjcHknIAxZvcShODMcRXTcSB7VALQh17Wsses1F2dtMMFTa9qIuLtXr2Aj92zUWSFQr7pQMq3bSaPap/VDQWS40AlHlljm9sNSuqL6lSwiavNQzjB1+aSW3v4Ga4dciz778eiASrVRxL2Zd0tRi/n/leCoQVzbGGLMjmeaz7Shpv7Zf6NgIHaYIZXm3iOJo5oYAEDkksqACi+tp5TtkmXTbTFbk0PoqycnyqztgspSudGN1vJpe8YHzkiJ17AYDMQ4JD7zgws7afZTt1hgXstKT6lbsF+zkxpowCfT0CMS5eCkBnDp2dgjpOJJKuWrwCsbb40ZdZQpim2VHl5vRa0QrSkqVyrdfLZyQUxb0J6NB8wXU3BzQbfuphx4dcpMmPjoFuCiF7KwFZSNp3zzcx6TCdpUZWsjYKJuZWUJ6zcUDLEeuXkJwK3gMJ8GUbaBeCoyM/H1os4BOc8h3BZsrm988YtwoBhMaoB0Sd+0QxfK8zjcua5174G6idxFtmPTUVqXLixwIj3u4KEuC3kcg9sT3GlgHnM8GDZoLDh79vMCLBr1zzul0HnKMGtIrshB8YX+h6ereb8qzRRj9o4mCwBUfHbZvLqtkNrLs2qk43Xm61stJ3xxiD10tv0HwNcNb/cQLOVOFZVz93pN1aFIJhfcqMywmaJs9r3YMGIHfCA+19Lz1j2UEBwd1qsqB5JeafuSpOjvdLEOX1pSintjumyiLi7cHrgsh5fJFw8hUW/mR+70D9HTMbjxaJvz+JopBJSoy+K2WZosguBIIYJ4OL5CpSaRWc3dMI4xgc8GAZbPW8epWYZLVhHMQI2aeOfveQ8Lsf36RAAniv6Gi9aHwyiP1NuuUltlEr4MG1hXrX4UQ+5izpCgO+Q9CWI7yX1ESww//8XSrJygPTcgUb/tM6tuluAouaP+m6MNKANZnh/NI0a/NWOGFYQlWXtdx8bUbKF79DFSKzgopX4CFPPyW2yttdd/KF4B5oNeDJGNHed57I3JPvsNd7C3AEpr1k0mUm9qYVevVa3Q6m21PucuuI3OTCRI/GVrtotsUYZ2H/kGB4MrsIvL3MAPE55V8g0h21Q9J5famMVnvoAanLmtwOH/zKfD/br/cdE7OvgpeHcAJxIM9OU9XgWqJ5uBV8DFZ/Ck/T8m1r87hmVJVo4sYhIP6tIOkLqIBosoOiWGUSgngEIxaathlGm2Pbg= X-Microsoft-Antispam-Message-Info: 8O7bnP5hn0wF1Mtfln0rRaq5HXY+hkM2jH7pHMRlg6bW48hWwJzfHOAFkCCUzVJMOeenzjoBotGHf9zojAWm+mpmXKIxq1lsfNZOXFgjNxYQ+IwwtFv2MBYtIFRjemFQKPVbU2KjSOSvhuoKn14e2HzS/2Jm3wqfS4y50/HDDHuOrAPScAnvPkp8y/kJfCEo X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:xcqdWXXiRsRiCMf7EaqMoccYv0MKnnizAcCXiAvZge3Z+ejZ7u7ECyjKSCWkS+zShxVbvKoTnMr3KhY5pRxguY7AnVyAjvQWJ8LJpbnPaBYhmC37C9fclk+s9ZoFIZsOKm9S7cR12x8O+KIZbtQ9R1siS5XCn1yNO9FEzWaKyyN+pmjND/vufPM1ZgUkCtHr3rW45pxpLC5Vz6sKtF5qM3o5KhpfWiFyknZaWjL0xN4gg/fzrUh8OIp+zDH5eR3j2ITkvwJwqboIruTfrYe6jhsjeP8gbm7ozNRfQ/9V+IFxkdxzeC16UQFGKgRPr8V22uuJrYVUP2wnbpoYVgDOzfr1pyE5zrEp6cC3/5S/MyEuPje0pgFxbd/3KXdlgfXBn48j9ZgWjQbN2AP88mu/9hitnbw1ansRKv7f5Y8ySBlQNDAqFfBVP3yYsKo1X3BuvCf6dwYq27W5NC1MVC7Grg==; 5:CYDRKd3comnqRV88ovlo1AR9ejtHnmyRoA36pNlTHODo0B9bukTH+LKMa6RMPE/ZZhs7HX/sQsuToLErSCuLxdhdKW8tEBHW6iF3+Fzno0Ei8zzOV7c4KmvF5sbjDeD+PlQKI6TyRFhrPjxBHng6PB52DZ8SDrHiI4laI8DSrow=; 24:dzLaxBZRL9zjm1/4GHhPnA+HayFB++rQVlFbgJH4KV+mGIw7A8jKUsQxG5MJrU2Q88jRSRfO510w8ghBhX3i+rUt11lnPcBc4tiW098fGgE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:qYYFjaG0rGHXapSbZ4aSRiyR2LhDqpiF5HMErlMY3VZ9Nc76c/0NXPloBB2yYnsbdnznfzWTPFq/AccU5h85XiDp+eSzY0cv/Cl5Cad17Vsgjpzs6fzwGQki9FLzZcTzKxeBYwOBaNzMSrQjFt32GmoCUE+xS5t3zvx2To48MJOFoomFSwqs7JkwCAQT+ZCkvP3ZmMyqM2ovB2BG+7qskZX+wp+yursBbGwp0owbw9AMJzZM2g6ODRCjkvDzBnu/ X-MS-Office365-Filtering-Correlation-Id: 5b498528-d3a9-4dee-c0fb-08d5cd64eb18 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:26:03.9515 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5b498528-d3a9-4dee-c0fb-08d5cd64eb18 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 19/20] eventdev: add routine to launch eventmode workers 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" With eventmode, workers could be drafted differently according to the capabilities of the underlying event device. The added function would receive an array of such workers and probes the eventmode properties to choose the worker. Signed-off-by: Anoob Joseph --- lib/librte_eventdev/rte_eventmode_helper.c | 299 +++++++++++++++++++++ lib/librte_eventdev/rte_eventmode_helper.h | 57 ++++ .../rte_eventmode_helper_internal.h | 23 ++ 3 files changed, 379 insertions(+) diff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c index 7f2d269..25cb4a9 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.c +++ b/lib/librte_eventdev/rte_eventmode_helper.c @@ -2,6 +2,7 @@ * Copyright(c) 2018 Cavium, Inc */ #include +#include #include #include @@ -13,6 +14,9 @@ #define CMD_LINE_OPT_TRANSFER_MODE "transfer-mode" +static volatile bool rx_core_running; +static volatile bool eventmode_worker_stop; + static const char short_options[] = "" ; @@ -110,6 +114,16 @@ internal_get_next_active_core(struct eventmode_conf *em_conf, return next_core; } +static inline bool +internal_dev_has_burst_mode(uint8_t dev_id) +{ + struct rte_event_dev_info dev_info; + + rte_event_dev_info_get(dev_id, &dev_info); + return (dev_info.event_dev_cap & RTE_EVENT_DEV_CAP_BURST_MODE) ? + true : false; +} + /* Global functions */ void @@ -992,3 +1006,288 @@ rte_eventmode_helper_get_tx_queue(struct rte_eventmode_helper_conf *mode_conf, return eventdev_config->nb_eventqueue; } +/* Helper functions for launching workers */ + +static int32_t +rte_eventmode_helper_start_worker_rx_core(struct eventmode_conf *em_conf, + uint32_t lcore_id) +{ + uint32_t service_id[EVENT_MODE_MAX_ADAPTERS_PER_RX_CORE]; + struct rx_adapter_conf *adapter; + int service_count = 0; + int adapter_id; + int32_t ret; + int i; + + RTE_EM_HLPR_LOG_INFO( + "Entering rx_core processing on lcore %u", lcore_id); + + /* + * Need to parse adapter conf to see which all adapters need to be + * handled this core. + */ + for (i = 0; i < em_conf->nb_rx_adapter; i++) { + /* Check if we have exceeded the max allowed */ + if (service_count > EVENT_MODE_MAX_ADAPTERS_PER_RX_CORE) { + RTE_EM_HLPR_LOG_ERR( + "Exceeded the max allowed adapters per rx core"); + break; + } + + adapter = &(em_conf->adapter[i]); + if (adapter->rx_core_id != lcore_id) + continue; + + /* Adapter need to be handled by this core */ + adapter_id = adapter->adapter_id; + + /* Get the service ID for the adapters */ + ret = rte_event_eth_rx_adapter_service_id_get(adapter_id, + &(service_id[service_count])); + + if (ret != -ESRCH && ret != 0) { + RTE_EM_HLPR_LOG_ERR( + "Error getting service ID used by adapter"); + return ret; + } + + /* Update service count */ + service_count++; + } + + rx_core_running = true; + + while (rx_core_running) { + for (i = 0; i < service_count; i++) { + /* Initiate rx_adapter service */ + rte_service_run_iter_on_app_lcore(service_id[i], 0); + } + } + + return 0; +} + +static int32_t +rte_eventmode_helper_stop_worker_rx_core(void) +{ + if (rx_core_running) { + RTE_EM_HLPR_LOG_INFO("Stopping rx cores\n"); + rx_core_running = false; + } + return 0; +} + +static struct rte_eventmode_helper_app_worker_params * +rte_eventmode_helper_find_worker(uint32_t lcore_id, + struct eventmode_conf *em_conf, + struct rte_eventmode_helper_app_worker_params *app_wrkrs, + uint8_t nb_wrkr_param) +{ + struct rte_eventmode_helper_event_link_info *link = NULL; + uint8_t eventdev_id; + struct eventdev_params *eventdev_config; + int i; + struct rte_eventmode_helper_app_worker_params curr_conf = {0}; + struct rte_eventmode_helper_app_worker_params *tmp_wrkr; + + /* + * Event device to be used will be derived from the first lcore-event + * link. + * + * Assumption: All lcore-event link tied to a core would be using the + * same event device. in other words, one core would be polling on + * queues of a single event device only. + */ + + /* Get a link for this lcore */ + for (i = 0; i < em_conf->nb_link; i++) { + link = &(em_conf->link[i]); + if (link->lcore_id == lcore_id) + break; + } + + if (link == NULL) { + RTE_EM_HLPR_LOG_ERR( + "No valid link found for lcore(%d)", lcore_id); + return NULL; + } + + /* Get event dev ID */ + eventdev_id = link->eventdev_id; + + /* Get the corresponding eventdev config */ + eventdev_config = internal_get_eventdev_params(em_conf, eventdev_id); + + /* Populate the curr_conf with the capabilities */ + + /* Check for burst mode */ + if (internal_dev_has_burst_mode(eventdev_id)) + curr_conf.cap.burst = RTE_EVENTMODE_HELPER_RX_TYPE_BURST; + else + curr_conf.cap.burst = RTE_EVENTMODE_HELPER_RX_TYPE_NON_BURST; + + curr_conf.cap.s1_sched_type = + rte_eventmode_helper_get_s1_sched_type(em_conf); + + curr_conf.cap.s2_sched_type = + rte_eventmode_helper_get_s2_sched_type(em_conf); + + /* TODO make this part of em_conf */ + curr_conf.nb_stage = 1; + + /* Now parse the passed list and see if we have matching capabilties */ + + /* Initialize the pointer used to traverse the list */ + tmp_wrkr = app_wrkrs; + + for (i = 0; i < nb_wrkr_param; i++, tmp_wrkr++) { + + /* Skip this if capabilities are not matching */ + if (tmp_wrkr->cap.u64 != curr_conf.cap.u64) + continue; + + /* Skip if the number of stages is not matching */ + if (tmp_wrkr->nb_stage != curr_conf.nb_stage) + continue; + + /* If the checks pass, we have a match */ + return tmp_wrkr; + } + + /* TODO required for ATQ */ + RTE_SET_USED(eventdev_config); + + return NULL; +} + +static int +rte_eventmode_helper_verify_match_worker( + struct rte_eventmode_helper_app_worker_params *match_wrkr) +{ + if (match_wrkr->nb_stage == 0) { + RTE_EM_HLPR_LOG_ERR("App stages cannot be 0"); + return 0; + } + + /* Verify the stages registered */ + switch (match_wrkr->nb_stage) { + case 2: + if (match_wrkr->s2_worker_thread == NULL) { + RTE_EM_HLPR_LOG_ERR( + "No worker registered for second stage"); + return 0; + } + /* Fall through */ + case 1: + if (match_wrkr->s1_worker_thread == NULL) { + RTE_EM_HLPR_LOG_ERR( + "No worker registered for first stage"); + return 0; + } + break; + default: + RTE_EM_HLPR_LOG_ERR("Only two stages are supported now"); + return 0; + } + + /* Success */ + return 1; +} + +void +rte_eventmode_helper_launch_worker(struct rte_eventmode_helper_conf *mode_conf, + struct rte_eventmode_helper_app_worker_params *app_wrkr, + uint8_t nb_wrkr_param) +{ + struct rte_eventmode_helper_app_worker_params *match_wrkr; + uint32_t lcore_id; + int i; + struct eventmode_conf *em_conf; + + if (mode_conf == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid conf"); + return; + } + + if (mode_conf->mode_params == NULL) { + RTE_EM_HLPR_LOG_ERR("Invalid mode params"); + return; + } + + /* Get eventmode conf */ + em_conf = (struct eventmode_conf *)(mode_conf->mode_params); + + /* Get core ID */ + lcore_id = rte_lcore_id(); + + /* TODO check capability for rx core */ + + /* Check if this is rx core */ + if (em_conf->rx_core_mask & (1 << lcore_id)) { + rte_eventmode_helper_start_worker_rx_core(em_conf, lcore_id); + return; + } + + if (app_wrkr == NULL || nb_wrkr_param == 0) { + RTE_EM_HLPR_LOG_ERR("Invalid args"); + return; + } + + /* + * This is a regular worker thread. The application would be + * registering multiple workers with various capabilities. The + * worker to be run will be selected by the capabilities of the + * event device configured. + */ + + /* Get the first matching worker for the event device */ + match_wrkr = rte_eventmode_helper_find_worker(lcore_id, + em_conf, + app_wrkr, + nb_wrkr_param); + + if (match_wrkr == NULL) { + RTE_EM_HLPR_LOG_ERR( + "No matching worker registered for lcore %d", lcore_id); + goto clean_and_exit; + } + + /* Verify sanity of the matched worker */ + if (rte_eventmode_helper_verify_match_worker(match_wrkr) != 1) { + RTE_EM_HLPR_LOG_ERR("Error in validating the matched worker"); + goto clean_and_exit; + } + + /* + * If single stage, then the worker thread will have the loop, + * thereby avoiding the dereferencing of the function pointer. + */ + if (match_wrkr->nb_stage == 1) { + match_wrkr->s1_worker_thread((void *)mode_conf); + goto clean_and_exit; + } + + /* TODO write worker stop API */ + eventmode_worker_stop = false; + + /* Run the worker threads */ + while (!eventmode_worker_stop) { + + /* Launch the stages registered */ + for (i = 1; i <= match_wrkr->nb_stage; i++) { + switch (i) { + case 1: + match_wrkr->s1_worker_thread((void *)em_conf); + break; + case 2: + match_wrkr->s2_worker_thread((void *)em_conf); + break; + } + } + } + +clean_and_exit: + + /* Flag rx_cores to stop, if started */ + rte_eventmode_helper_stop_worker_rx_core(); +} diff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h index be2fe8d..25b1180 100644 --- a/lib/librte_eventdev/rte_eventmode_helper.h +++ b/lib/librte_eventdev/rte_eventmode_helper.h @@ -12,6 +12,22 @@ enum rte_eventmode_helper_pkt_transfer_mode { RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT, }; +/* Event mode packet rx types */ +enum rte_eventmode_helper_rx_types { + RTE_EVENTMODE_HELPER_RX_TYPE_INVALID = 0, + RTE_EVENTMODE_HELPER_RX_TYPE_NON_BURST, + RTE_EVENTMODE_HELPER_RX_TYPE_BURST, + RTE_EVENTMODE_HELPER_RX_TYPE_MAX = 16 +}; + +/* Event mode packet tx types */ +enum rte_eventmode_helper_tx_types { + RTE_EVETNMODE_HELPER_TX_TYPE_INVALID = 0, + RTE_EVENTMODE_HELPER_TX_TYPE_LOCKED, + RTE_EVENTMODE_HELPER_TX_TYPE_LOCKLESS, + RTE_EVENTMODE_HELPER_TX_TYPE_MAX = 16 +}; + struct rte_eventmode_helper_conf { enum rte_eventmode_helper_pkt_transfer_mode mode; /**< Packet transfer mode of the application */ @@ -36,6 +52,27 @@ struct rte_eventmode_helper_event_link_info { /**< Lcore to be polling on this port */ }; +/* Workers registered by the application */ +struct rte_eventmode_helper_app_worker_params { + union { + struct { + uint64_t burst : 4; + /**< Specify status of rx type burst */ + uint64_t s1_sched_type : 2; + /**< Stage 1 scheduling type for the thread */ + uint64_t s2_sched_type : 2; + /**< Stage 2 scheduling type for the thread */ + }; + uint64_t u64; + } cap; + /**< Capabilities of this worker */ + uint8_t nb_stage; + void (*s1_worker_thread)(void *); + /**< Stage 1 worker thread */ + void (*s2_worker_thread)(void *); + /**< Stage 2 worker thread */ +}; + /* Common helper functions for command line parsing */ /** @@ -152,5 +189,25 @@ uint8_t rte_eventmode_helper_get_tx_queue(struct rte_eventmode_helper_conf *mode_conf, uint8_t eventdev_id); +/** + * Launch eventmode worker + * + * The application can request the eventmode helper subsystem to launch the + * worker based on the capabilities of event device and the options selected + * while initializing the eventmode. + * + * @param mode_conf + * Configuration of the mode in which app is doing packet handling + * @param app_wrkr + * List of all the workers registered by application, along with it's + * capabilties + * @param nb_wrkr_param + * Number of workers passed by the application + * + */ +void +rte_eventmode_helper_launch_worker(struct rte_eventmode_helper_conf *mode_conf, + struct rte_eventmode_helper_app_worker_params *app_wrkr, + uint8_t nb_wrkr_param); #endif /* _RTE_EVENTMODE_HELPER_H_ */ diff --git a/lib/librte_eventdev/rte_eventmode_helper_internal.h b/lib/librte_eventdev/rte_eventmode_helper_internal.h index 3a4e52f..996c654 100644 --- a/lib/librte_eventdev/rte_eventmode_helper_internal.h +++ b/lib/librte_eventdev/rte_eventmode_helper_internal.h @@ -43,6 +43,9 @@ #define EVENT_MODE_MAX_LCORE_LINKS \ (EVENT_MODE_MAX_EVENT_DEVS * EVENT_MODE_MAX_EVENT_QUEUES_PER_DEV) +/* Max adapters that one rx core can handle */ +#define EVENT_MODE_MAX_ADAPTERS_PER_RX_CORE EVENT_MODE_MAX_RX_ADAPTERS + /* Event dev params */ struct eventdev_params { uint8_t eventdev_id; @@ -104,4 +107,24 @@ struct eventmode_conf { /**< 64 bit field to specify extended params */ }; +/* + * Get sched type of the first stage of app + * + */ +static inline uint8_t +rte_eventmode_helper_get_s1_sched_type(struct eventmode_conf *em_conf) +{ + return em_conf->ext_params.s1_sched_type; +} + +/* + * Get sched type of the first stage of app + * + */ +static inline uint8_t +rte_eventmode_helper_get_s2_sched_type(struct eventmode_conf *em_conf) +{ + return em_conf->ext_params.s2_sched_type; +} + #endif /* _RTE_EVENTMODE_HELPER_INTERNAL_H_ */ From patchwork Fri Jun 8 17:24:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 40920 X-Patchwork-Delegate: jerinj@marvell.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 151BA1D0AE; Fri, 8 Jun 2018 19:26:14 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0070.outbound.protection.outlook.com [104.47.42.70]) by dpdk.org (Postfix) with ESMTP id 302F81D06E for ; Fri, 8 Jun 2018 19:26:12 +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=3pcx5I535udSgZSGUtMlcudL8Dt+Q9RlNRpZwGzoEKI=; b=bM5KLxGIqHUhTGy9F0C3Z1v9nfl9wJzREcL4Y8tVuwR+XZhAMIjbRoB8ntPtpklX0lYqNmf2SesCAPhLH/ZD3D75i0t3wOqV8FmzE9qYoXtTboNLv3FyxFNmZHrBUipWelVlS+bHIRTE58fftbp+NYajBB142Z5tnEHh66G8uMc= 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:26:07 +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:54:19 +0530 Message-Id: <1528478659-15859-21-git-send-email-anoob.joseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> References: <1528478659-15859-1-git-send-email-anoob.joseph@caviumnetworks.com> 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:qAOGS7xLaKFuFNIJ0xSXNFjk8GFjXuavXRirI+eqbzVlb6f3JPAc9VyLkljpDXgwuIPwKoU4YW9oO9ktICrclFhoNyk0E0/N5rzXyQ5IjvE0YqzIwoyUTUL9L9pUgl2CHWea1hv5+uXq8KYWsnpKeLDxW0KwMjHcker6vyTfQ0tyLhsIWYH+GlIMpdzYPJEO92ON22bcDVgfp6HuRVbnV9y1ezFmXfDYQ9BnBXrT7rf0mmiSoLnyWfEJhEM9kETy; 25:L+BOv6sztv/vw2mSvDvsNvgG0/AXBhG72TYBM/JQ2OaNasRnpESj0v560GsQNgVfvT1qOQ2kOK/jF/0dPwxEPIcVK1FljsoBdsmCYFaymTbAeDgTmfPbhOpc+j/4KC2bWauOgp0to3ZXjKkET2kpExWj0r2zrh1IVQClZQwwklrLW46aq70peBAsmoy4XYSS5x+2uyHjEI4XlwclLF2AjFHpLtWvELAUwIVftDG1/gyJlAtpxCJEZqugwWISn2gYizW7W63LsMRRqvi4vEPvqbTDPyHUe/dTHTYUfxEIOUGpvWJ4TktqazDMh/aL7um6erHtZ/iIBHqVe5BnaLnN8g==; 31:gbxSXzkDjiiz6XBMcx9Rfy4Q1DoBBOl6woXXL1h9FmTdOm85tMEkU0AMopFyE+99QjSLui8phKcjPhsD2/6W5ueAOri1TGMO38kya/gd0IdKvSSG7Pp9f5gcXglBCnspvUKxy5g5xt41dQj6D1dSM43IzY64h5TgL2zko1Rh5lL2Zf0TshSelPN9MMSnx2EJcSmSJFsIbUZILzdY4WY8vFih0VdWjsc/AD9tgqQmwpI= X-MS-TrafficTypeDiagnostic: DM6PR07MB4906: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 20:s1+AePawPiukkP/eT8vX5Yo3bQE7rVi+ksxRb3w8DmRCmMeRuIo1XWmyTgajUugDF/1wh+hGL+4aarMlumVTnCw18i+3ljXjZs09syhZ6NHhGcDTQjzya63VWnbRehTSPYoNnovpvZThCQYjmrRs1L4H/SM24IfVZSvvH2uup1xV5tYAE7woqPtxuyXMTJNV+jexdoHZ1lMVp9WFANAYemEVhgK7A22QQf0e9Nns+08d13QDQ2OsP1W1ObWt8H0Ol5oLWO9jlm4gNg2/AO8ONLlp2VeG0YkwSh7htMjd3vYOrlksMwOl91R1Dld50AEtQUj4DV0fAsooZW5ihACeRk5MnqVGzDA85S+y6pPWo5VGnooeEn9S9w/YWdliKeNADVTz3Uj4JTQuBlU+wzOBRZ3fFrif5kUnOcVe9kQQeI0+do7ItHiVayLG8y0xOur+oAX87oIaAuZF4Ye4Jqns8dMyeEabVts16gkT6inRo9iGeR64a8EDNKNAp9n8pUiZyFAUxDMv6K8YxevtN7VsGAwlHGaUgUkt8tJTFLeMncqrw4fl/BfA+7t9LJe7cgxUVP1VGfuUylbqnMU8FK5h+dYXaBlRD1+cthUhDu3ypf0=; 4:5tA7pRFG2067EuRkfcn+jmwOwx5UEztcW9knSEnwKzIOHoTL+56ZXSWYj72MQQVQO4/9f02O93WWd0JHyZrC63eVFxXFHSPj4knL4khOelbwIgpcWz4yQdAN0Fsqe/PC9BY03wbJPp84Z73NbdJUZRPsZ03zwaGVDTVCJfyIH3P0iHyXL2FY5jJlPaW99UIyfhYtOQicb4DcBnUdzIZk2KFzRSbrz3YzxHcZkIt1b7rDYbvq+Yrg1tqTwVONCKIdiG79ji0RYguivMCl/hlDGA== X-Microsoft-Antispam-PRVS: 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)(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-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)(6666003)(305945005)(2906002)(8676002)(7736002)(8936002)(36756003)(52116002)(2616005)(956004)(476003)(446003)(50226002)(575784001)(81166006)(11346002)(44832011)(6506007)(386003)(486006)(59450400001)(76176011)(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:xpCSgfrE0tIoG1D0lRkTduwXZfSroqdEkZF7BiY0m?= ALZXxezQ7HeBmmMe310e5tKS8Ri++aEXsK1PwwDFzzN5m+4DIloGU3sKCzHhbWzSHf7U+Q0qjWHIZCavmt3lzq/dFfLZ934LkyUwgOOg3+Ozo/YoTveu5YQH2s7V7MFWIu7nPf+8BCQ8jSM8nnfb6o7G+IyOftyJawotnDhgmRuOPGorbHdXdvO0G6Dy9RY/o0At6Zqh69V8BVV2jd7HJ1RyZVlfk3bvhFfXhk3XCLIMLrMk1Z10hpz8MjjVMEgLdFpdzv21vS18x8qpBG5uVJN7ZyDCplDfjs2BNxeD8/3xJKJpiylEiYsuwWiP96HleuXhxLwyQhJ6Y5BFcMSZCW0heZMs7DgHQ/2sC6Bo2GqV0ULXbN4Olc/qnuq4gsBzC4I4zjbS0PTViH6/VXGNQngPQ3BLEtGI6RF1PqFC6tR8VOh/jz54eT1OOAbKuOiylIN9bnai9uN2zOHrUb7o4QO957K1QCebTe+O7at4K5VBHDjj3N4AVHc0iv3x17hp/hFz3BXzgUEvbvfiELIjl7bzSKSRmo9d3vhM0EyswUdRI2ISWW1zV+zAC0JJ9jGHms5377cn5SBLFWnqlfIeaKxhyLkYNq0/odMz75hCAP3AWN1TBawi8eSQIfya8pc96jug+LGvmuy39mtJGsrUiuNWnSnfEKJHjpszzlCPvX3Ql0X2j+P4CoXKY9DxXRhcTNu02YMqix+Kz9lNbbgxM8Wo8IOcwB+m9cRlMq8sgmK69Vk2Hea5rqp+OTHEDPmXzVzftJ+r7Az3zUqPySPI/gYzAgC/ckFcf8bvRkE6Zz9EmfH1iizRSXRw331okDffURNdOlmUw/rIv3TH3lZ9K63xnbHNor+PKqkiQfgH1F2I7w8x5i2rQ2qqsAkgnHMyjjgj8VqS14cvD8MEBhMgPZeqVL0YwwJ2umLHWtYO15vmVu3Arg9mmef2WgIuIj7n9MDkcr5HPkcd1agIFXjvyPiLPPR2FrVmM8OnMhxwP/F0Z8GRuFUM8EDdaL4/APzVbHuZCrJ3yf274IF5J2YmUaXyaM0bZkpu7W/mf0CA9JM1++F0SCHSGwIiOFkbRqBKFwfvo/1YFU6GEcrKyTLgZbFZdRuZ4iE53u+WUXingTEPKhSe6oZzKzlHlAMhU8SQ0SQvaEC8keqALbgsy+w8EdvRUfoy+tY+dB38nZtb1v4Zb2LQ7U/PjabGywz0jms493uu3563WYm+FWz6RWHU3eeh7BcKc4nT6qT+76q748B0BVHeZsRqM1ujVUNkAd+0iABXrejx8mwihDYcqYVuBHA X-Microsoft-Antispam-Message-Info: hTmdTa+D/EmwbVUY1Xf8y+E2tDwdvPBsHtOvMwyHrWtFRB4cpXIhZZE6cNkcTTwUPFYHyTNln3UwqhfwVO0PKQzzVWGqtmyq0bWLbBtRP+0Zx3hGSBiL3sTqotjLPFbsUTL5okIHek0XCqIbUZ5zrnpc/VmwOe4MKDW8RSl2F0N5Nmcic/pmuI2ExbadSRPj X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 6:r3MDoyQLzkzZBQcvsrAll9vZVvgPDegY/b4Frbqa+M0Fqu6/OQ3asF0LWeo5WIN82jIrIyE3c8VJwn2tAm7A7eFw1ohblKBfFIrnXN3FvKvaNSCEounosLDH4Hm7JiB2HoqL06e7zaZiHCXpLvEUazYQULZq34dxKIXeCs5gaLVB2MYRlajSP0DWjLv6Mv4lranlVo5vNgXtssjLJSPTdUOeWCnplhu2gGjXZ82AVlXSNizF32u8PHmuHFs6HvhfTipfmlW6VQLoFEZEjS9VLnurQhUuefitk/i6yEIkN8lo3BQKgIY8olMqe90okdi0ODlWK8q6B2IZSzs5PcXhCpbp66QYKBTK1fzwo9T6IpAqH0sHHxbkWZZvdtcoNOJVLHAeBb/dBVXQly6i66wpobXGlt/e62KuYCP5LcOCelhh2/NwiYxsgRLcafVNxG4pIfgfy5gfDGOQnoMrmQAEXg==; 5:R1I8+l+A31mX61S9+n3lLvy24sFPyffwKiAz9qbAde59EYfBtaYEkHE+aiBG+mi2KkD+afwJyxNv1efHdznIcMLnHCtMeyFnjCqv+k5TuoKV6gdtaNvtY2Mc1/Scny7UXuERwrWsz15QggEXFAidwSMB+CYed/Kk9Dc/KNuH5H8=; 24:Tc6XOkpa+mJfTkDao3TenV73mYIBJDz9udS8H1QnXRZB5+ScgpYhPbouINKqHaPayDxxR7XeLHgC5/01jhvZvLjHhlkAyuP6yZY0InH3ORE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4906; 7:wQ1GEVL5iE8Ylpx5Jl0BzD72CIvgVYJBlbz/1WJXIYCHftYy0b/EMW0iJv0cvd4o36/B2xbKJFNu7GLLtxGMBwnNbUo6Qk4cNqrsbH9YEyUkCOAS87+a8LsL1PhG+Ym3X+LD/b1foGAa/VoRSeNtDg8blfqjzGONbp0SFhmsCDWZteRrzMsHbEpjUa3/af7k8ksgTEmYhHgUFhgdd0ZjxHlidDo3lXNEEkb1dCW8d8tcIyTLs/ktT0pHVOYtMORf X-MS-Office365-Filtering-Correlation-Id: 29ce72b9-9114-4e3b-a7ba-08d5cd64ed65 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 17:26:07.8110 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 29ce72b9-9114-4e3b-a7ba-08d5cd64ed65 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 20/20] examples/l2fwd: add eventmode for l2fwd 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" Adding eventmode support in l2fwd. This uses rte_eventmode_helper APIs to setup and use the eventmode capabilties. Signed-off-by: Anoob Joseph --- examples/l2fwd/l2fwd_worker.c | 815 +++++++++++++++++++++++++++++++++++++++++- examples/l2fwd/main.c | 64 +++- 2 files changed, 864 insertions(+), 15 deletions(-) diff --git a/examples/l2fwd/l2fwd_worker.c b/examples/l2fwd/l2fwd_worker.c index 56e0bdb..bc63b31 100644 --- a/examples/l2fwd/l2fwd_worker.c +++ b/examples/l2fwd/l2fwd_worker.c @@ -25,6 +25,9 @@ #include #include #include +#include +#include +#include #include #include "l2fwd_common.h" @@ -138,6 +141,16 @@ l2fwd_periodic_drain_stats_monitor(struct lcore_queue_conf *qconf, } } +static inline void +l2fwd_drain_loop(struct lcore_queue_conf *qconf, struct tsc_tracker *t, + int is_master_core) +{ + while (!force_quit) { + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, t, is_master_core); + } +} + static void l2fwd_mac_updating(struct rte_mbuf *m, unsigned dest_portid) { @@ -180,9 +193,45 @@ l2fwd_simple_forward(struct rte_mbuf *m, unsigned portid) l2fwd_send_pkt(m, dst_port); } -/* main processing loop */ +static inline void +l2fwd_send_single_pkt(struct rte_mbuf *m) +{ + l2fwd_send_pkt(m, m->port); +} + +static inline void +l2fwd_event_pre_forward(struct rte_event *ev, unsigned portid) +{ + unsigned dst_port; + struct rte_mbuf *m; + + /* Get the mbuf */ + m = ev->mbuf; + + /* Get the destination port from the tables */ + dst_port = l2fwd_dst_ports[portid]; + + /* Save the destination port in the mbuf */ + m->port = dst_port; + + /* Perform work */ + if (mac_updating) + l2fwd_mac_updating(m, dst_port); +} + +static inline void +l2fwd_event_switch_to_atomic(struct rte_event *ev, uint8_t atomic_queue_id) +{ + ev->event_type = RTE_EVENT_TYPE_CPU; + ev->op = RTE_EVENT_OP_FORWARD; + ev->sched_type = RTE_SCHED_TYPE_ATOMIC; + ev->queue_id = atomic_queue_id; +} + + +/* poll mode processing loop */ static void -l2fwd_main_loop(void) +l2fwd_poll_mode_worker(void) { struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; struct rte_mbuf *m; @@ -241,9 +290,767 @@ l2fwd_main_loop(void) } } +/* + * Event mode exposes various operating modes depending on the + * capabilities of the event device and the operating mode + * selected. + */ + +/* Workers registered */ +#define L2FWD_EVENTMODE_WORKERS 4 + +/* + * Event mode worker + * Operating mode : Single stage non-burst with atomic scheduling + */ +static void +l2fwd_eventmode_non_burst_atomic_worker(void *args) +{ + struct rte_event ev; + struct rte_mbuf *pkt; + struct rte_eventmode_helper_conf *mode_conf; + struct rte_eventmode_helper_event_link_info *links = NULL; + unsigned lcore_nb_link = 0; + uint32_t lcore_id; + unsigned i, nb_rx = 0; + unsigned portid; + struct lcore_queue_conf *qconf; + int is_master_core; + struct tsc_tracker tsc = {0}; + + /* Get core ID */ + lcore_id = rte_lcore_id(); + + RTE_LOG(INFO, L2FWD, + "Launching event mode single stage non-burst woker with " + "atomic scheduling on lcore %d\n", lcore_id); + + /* Set the flag if master core */ + is_master_core = (lcore_id == rte_get_master_lcore()) ? 1 : 0; + + /* Get qconf for this core */ + qconf = &lcore_queue_conf[lcore_id]; + + /* Set drain tsc */ + tsc.drain_tsc = (rte_get_tsc_hz() + US_PER_S - 1) / + US_PER_S * BURST_TX_DRAIN_US; + + /* Mode conf will be passed as args */ + mode_conf = (struct rte_eventmode_helper_conf *)args; + + /* Get the links configured for this lcore */ + lcore_nb_link = rte_eventmode_helper_get_event_lcore_links(lcore_id, + mode_conf, &links); + + /* Check if we have links registered for this lcore */ + if (lcore_nb_link == 0) { + /* No links registered. The core could do periodic drains */ + l2fwd_drain_loop(qconf, &tsc, is_master_core); + goto clean_and_exit; + } + + /* We have valid links */ + + /* See if it's single link */ + if (lcore_nb_link == 1) + goto single_link_loop; + else + goto multi_link_loop; + +single_link_loop: + + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", lcore_id, + links[0].event_portid); + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[0].eventdev_id, + links[0].event_portid, + &ev, /* events */ + 1, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + portid = ev.queue_id; + port_statistics[portid].rx++; + pkt = ev.mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + l2fwd_simple_forward(pkt, portid); + } + goto clean_and_exit; + +multi_link_loop: + + for (i = 0; i < lcore_nb_link; i++) { + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", + lcore_id, links[i].event_portid); + } + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + for (i = 0; i < lcore_nb_link; i++) { + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[i].eventdev_id, + links[i].event_portid, + &ev, /* events */ + 1, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + portid = ev.queue_id; + port_statistics[portid].rx++; + pkt = ev.mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + l2fwd_simple_forward(pkt, portid); + } + } + goto clean_and_exit; + +clean_and_exit: + if (links != NULL) + rte_free(links); +} + +/* + * Event mode worker + * Operating mode : Single stage burst with atomic scheduling + */ +static void +l2fwd_eventmode_burst_atomic_worker(void *args) +{ + struct rte_event ev[MAX_PKT_BURST]; + struct rte_mbuf *pkt; + struct rte_eventmode_helper_conf *mode_conf; + struct rte_eventmode_helper_event_link_info *links = NULL; + unsigned lcore_nb_link = 0; + uint32_t lcore_id; + unsigned i, j, nb_rx = 0; + unsigned portid; + struct lcore_queue_conf *qconf; + int is_master_core; + struct rte_event_port_conf event_port_conf; + uint16_t dequeue_len = 0; + struct tsc_tracker tsc = {0}; + + /* Get core ID */ + lcore_id = rte_lcore_id(); + + RTE_LOG(INFO, L2FWD, + "Launching event mode single stage burst woker with " + "atomic scheduling on lcore %d\n", lcore_id); + + /* Set the flag if master core */ + is_master_core = (lcore_id == rte_get_master_lcore()) ? 1 : 0; + + /* Get qconf for this core */ + qconf = &lcore_queue_conf[lcore_id]; + + /* Set drain tsc */ + tsc.drain_tsc = (rte_get_tsc_hz() + US_PER_S - 1) / + US_PER_S * BURST_TX_DRAIN_US; + + /* Mode conf will be passed as args */ + mode_conf = (struct rte_eventmode_helper_conf *)args; + + /* Get the links configured for this lcore */ + lcore_nb_link = rte_eventmode_helper_get_event_lcore_links(lcore_id, + mode_conf, &links); + + /* Check if we have links registered for this lcore */ + if (lcore_nb_link == 0) { + /* No links registered. The core could do periodic drains */ + l2fwd_drain_loop(qconf, &tsc, is_master_core); + goto clean_and_exit; + } + + /* We have valid links */ + + /* Get the burst size of the event device */ + + /* Get the default conf of the first link */ + rte_event_port_default_conf_get(links[0].eventdev_id, + links[0].event_portid, + &event_port_conf); + + /* Save the burst size */ + dequeue_len = event_port_conf.dequeue_depth; + + /* Dequeue len should not exceed MAX_PKT_BURST */ + if (dequeue_len > MAX_PKT_BURST) + dequeue_len = MAX_PKT_BURST; + + /* See if it's single link */ + if (lcore_nb_link == 1) + goto single_link_loop; + else + goto multi_link_loop; + +single_link_loop: + + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", lcore_id, + links[0].event_portid); + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[0].eventdev_id, + links[0].event_portid, + ev, /* events */ + dequeue_len, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + for (j = 0; j < nb_rx; j++) { + portid = ev[j].queue_id; + port_statistics[portid].rx++; + pkt = ev[j].mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + l2fwd_simple_forward(pkt, portid); + } + } + goto clean_and_exit; + +multi_link_loop: + + for (i = 0; i < lcore_nb_link; i++) { + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", + lcore_id, links[i].event_portid); + } + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + for (i = 0; i < lcore_nb_link; i++) { + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[i].eventdev_id, + links[i].event_portid, + ev, /* events */ + dequeue_len, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + for (j = 0; j < nb_rx; j++) { + portid = ev[j].queue_id; + port_statistics[portid].rx++; + pkt = ev[j].mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + l2fwd_simple_forward(pkt, portid); + } + } + } + goto clean_and_exit; + +clean_and_exit: + if (links != NULL) + rte_free(links); +} + +/* + * Event mode worker + * Operating mode : Single stage non-burst with ordered scheduling + */ +static void +l2fwd_eventmode_non_burst_ordered_worker(void *args) +{ + struct rte_event ev; + struct rte_mbuf *pkt; + struct rte_eventmode_helper_conf *mode_conf; + struct rte_eventmode_helper_event_link_info *links = NULL; + unsigned lcore_nb_link = 0; + uint32_t lcore_id; + unsigned i, nb_rx = 0; + unsigned portid; + struct lcore_queue_conf *qconf; + int is_master_core; + uint8_t tx_queue; + uint8_t eventdev_id; + struct tsc_tracker tsc = {0}; + + /* Get core ID */ + lcore_id = rte_lcore_id(); + + RTE_LOG(INFO, L2FWD, + "Launching event mode single stage non-burst woker with " + "ordered scheduling on lcore %d\n", lcore_id); + + /* Set the flag if master core */ + is_master_core = (lcore_id == rte_get_master_lcore()) ? 1 : 0; + + /* Get qconf for this core */ + qconf = &lcore_queue_conf[lcore_id]; + + /* Set drain tsc */ + tsc.drain_tsc = (rte_get_tsc_hz() + US_PER_S - 1) / + US_PER_S * BURST_TX_DRAIN_US; + + /* Mode conf will be passed as args */ + mode_conf = (struct rte_eventmode_helper_conf *)args; + + /* Get the links configured for this lcore */ + lcore_nb_link = rte_eventmode_helper_get_event_lcore_links(lcore_id, + mode_conf, &links); + + /* Check if we have links registered for this lcore */ + if (lcore_nb_link == 0) { + /* No links registered. The core could do periodic drains */ + l2fwd_drain_loop(qconf, &tsc, is_master_core); + goto clean_and_exit; + } + + /* We have valid links */ + + /* + * When the stage 1 is set to have scheduling ORDERED, the event need + * to change the scheduling type to ATOMIC before it can be send out. + * This would ensure that the packets are send out in the same order + * as it came. + */ + + /* + * The helper function would create a queue with ATOMIC scheduling + * for this purpose. Worker would submit packets to that queue if the + * event is not coming from an ATOMIC queue. + */ + + /* Get event dev ID from the first link */ + eventdev_id = links[0].eventdev_id; + + /* + * One queue would be reserved to be used as atomic queue for the last + * stage (eth packet tx stage) + */ + tx_queue = rte_eventmode_helper_get_tx_queue(mode_conf, eventdev_id); + + /* See if it's single link */ + if (lcore_nb_link == 1) + goto single_link_loop; + else + goto multi_link_loop; + +single_link_loop: + + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", lcore_id, + links[0].event_portid); + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[0].eventdev_id, + links[0].event_portid, + &ev, /* events */ + 1, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + /* + * Check if this event came on atomic queue. If yes, do eth tx + */ + if (ev.sched_type == RTE_SCHED_TYPE_ATOMIC) { + l2fwd_send_single_pkt(ev.mbuf); + continue; + } + + /* Else, we have a fresh packet */ + portid = ev.queue_id; + port_statistics[portid].rx++; + pkt = ev.mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + + /* Process packet */ + l2fwd_event_pre_forward(&ev, portid); + + /* Update the scheduling type for tx stage */ + l2fwd_event_switch_to_atomic(&ev, tx_queue); + + /* Submit the updated event for tx stage */ + rte_event_enqueue_burst(links[0].eventdev_id, + links[0].event_portid, + &ev, /* events */ + 1 /* nb_events */); + } + goto clean_and_exit; + +multi_link_loop: + + for (i = 0; i < lcore_nb_link; i++) { + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", + lcore_id, links[i].event_portid); + } + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + for (i = 0; i < lcore_nb_link; i++) { + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[i].eventdev_id, + links[i].event_portid, + &ev, /* events */ + 1, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + /* + * Check if this event came on atomic queue. + * If yes, do eth tx + */ + if (ev.sched_type == RTE_SCHED_TYPE_ATOMIC) { + l2fwd_send_single_pkt(ev.mbuf); + continue; + } + + /* Else, we have a fresh packet */ + portid = ev.queue_id; + port_statistics[portid].rx++; + pkt = ev.mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + + /* Process packet */ + l2fwd_event_pre_forward(&ev, portid); + + /* Update the scheduling type for tx stage */ + l2fwd_event_switch_to_atomic(&ev, tx_queue); + + /* Submit the updated event for tx stage */ + rte_event_enqueue_burst(links[i].eventdev_id, + links[i].event_portid, + &ev, /* events */ + 1 /* nb_events */); + } + } + goto clean_and_exit; + +clean_and_exit: + if (links != NULL) + rte_free(links); +} + +/* + * Event mode worker + * Operating mode : Single stage burst with ordered scheduling + */ +static void +l2fwd_eventmode_burst_ordered_worker(void *args) +{ + struct rte_event ev[MAX_PKT_BURST]; + struct rte_mbuf *pkt; + struct rte_eventmode_helper_conf *mode_conf; + struct rte_eventmode_helper_event_link_info *links = NULL; + unsigned lcore_nb_link = 0; + uint32_t lcore_id; + unsigned i, j, nb_rx = 0; + unsigned portid; + struct lcore_queue_conf *qconf; + int is_master_core; + struct rte_event_port_conf event_port_conf; + uint16_t dequeue_len = 0; + uint8_t tx_queue; + uint8_t eventdev_id; + struct tsc_tracker tsc = {0}; + + /* Get core ID */ + lcore_id = rte_lcore_id(); + + RTE_LOG(INFO, L2FWD, + "Launching event mode single stage burst woker with " + "ordered scheduling on lcore %d\n", lcore_id); + + /* Set the flag if master core */ + is_master_core = (lcore_id == rte_get_master_lcore()) ? 1 : 0; + + /* Get qconf for this core */ + qconf = &lcore_queue_conf[lcore_id]; + + /* Set drain tsc */ + tsc.drain_tsc = (rte_get_tsc_hz() + US_PER_S - 1) / + US_PER_S * BURST_TX_DRAIN_US; + + /* Mode conf will be passed as args */ + mode_conf = (struct rte_eventmode_helper_conf *)args; + + /* Get the links configured for this lcore */ + lcore_nb_link = rte_eventmode_helper_get_event_lcore_links(lcore_id, + mode_conf, &links); + + /* Check if we have links registered for this lcore */ + if (lcore_nb_link == 0) { + /* No links registered. The core could do periodic drains */ + l2fwd_drain_loop(qconf, &tsc, is_master_core); + goto clean_and_exit; + } + + /* We have valid links */ + + /* + * When the stage 1 is set to have scheduling ORDERED, the event need + * to change the scheduling type to ATOMIC before it can be send out. + * This would ensure that the packets are send out in the same order + * as it came. + */ + + /* + * The helper function would create a queue with ATOMIC scheduling + * for this purpose. Worker would submit packets to that queue if the + * event is not coming from an ATOMIC queue. + */ + + /* Get event dev ID from the first link */ + eventdev_id = links[0].eventdev_id; + + /* + * One queue would be reserved to be used as atomic queue for the last + * stage (eth packet tx stage) + */ + tx_queue = rte_eventmode_helper_get_tx_queue(mode_conf, eventdev_id); + + /* Get the burst size of the event device */ + + /* Get the default conf of the first link */ + rte_event_port_default_conf_get(links[0].eventdev_id, + links[0].event_portid, + &event_port_conf); + + /* Save the burst size */ + dequeue_len = event_port_conf.dequeue_depth; + + /* Dequeue len should not exceed MAX_PKT_BURST */ + if (dequeue_len > MAX_PKT_BURST) + dequeue_len = MAX_PKT_BURST; + + /* See if it's single link */ + if (lcore_nb_link == 1) + goto single_link_loop; + else + goto multi_link_loop; + +single_link_loop: + + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", lcore_id, + links[0].event_portid); + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[0].eventdev_id, + links[0].event_portid, + ev, /* events */ + dequeue_len, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + for (j = 0; j < nb_rx; j++) { + /* + * Check if this event came on atomic queue. + * If yes, do eth tx + */ + if (ev[j].sched_type == RTE_SCHED_TYPE_ATOMIC) { + l2fwd_send_single_pkt(ev[j].mbuf); + continue; + } + + /* Else, we have a fresh packet */ + portid = ev[j].queue_id; + port_statistics[portid].rx++; + pkt = ev[j].mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + + /* Process packet */ + l2fwd_event_pre_forward(&(ev[j]), portid); + + /* Update the scheduling type for tx stage */ + l2fwd_event_switch_to_atomic(&(ev[j]), tx_queue); + + /* Submit the updated event for tx stage */ + rte_event_enqueue_burst(links[0].eventdev_id, + links[0].event_portid, + &(ev[j]), /* events */ + 1 /* nb_events */); + } + } + goto clean_and_exit; + +multi_link_loop: + + for (i = 0; i < lcore_nb_link; i++) { + RTE_LOG(INFO, L2FWD, " -- lcoreid=%u event_port_id=%u\n", + lcore_id, links[i].event_portid); + } + + while (!force_quit) { + + /* Do periodic operations (buffer drain & stats monitor) */ + l2fwd_periodic_drain_stats_monitor(qconf, &tsc, is_master_core); + + for (i = 0; i < lcore_nb_link; i++) { + /* Read packet from event queues */ + nb_rx = rte_event_dequeue_burst(links[i].eventdev_id, + links[i].event_portid, + ev, /* events */ + dequeue_len, /* nb_events */ + 0 /* timeout_ticks */); + + if (nb_rx == 0) + continue; + + for (j = 0; j < nb_rx; j++) { + /* + * Check if this event came on atomic queue. + * If yes, do eth tx + */ + if (ev[j].sched_type == RTE_SCHED_TYPE_ATOMIC) { + l2fwd_send_single_pkt(ev[j].mbuf); + continue; + } + + /* Else, we have a fresh packet */ + portid = ev[j].queue_id; + port_statistics[portid].rx++; + pkt = ev[j].mbuf; + + rte_prefetch0(rte_pktmbuf_mtod(pkt, void *)); + + /* Process packet */ + l2fwd_event_pre_forward(&(ev[j]), portid); + + /* Update the scheduling type for tx stage */ + l2fwd_event_switch_to_atomic(&(ev[j]), + tx_queue); + + /* Submit the updated event for tx stage */ + rte_event_enqueue_burst(links[i].eventdev_id, + links[i].event_portid, + &(ev[j]), /* events */ + 1 /* nb_events */); + } + } + } + goto clean_and_exit; + +clean_and_exit: + if (links != NULL) + rte_free(links); +} + +static uint8_t +l2fwd_eventmode_populate_wrkr_params( + struct rte_eventmode_helper_app_worker_params *wrkrs) +{ + uint8_t nb_wrkr_param = 0; + struct rte_eventmode_helper_app_worker_params *wrkr; + + /* Save workers */ + + wrkr = wrkrs; + + /* Single stage non-burst with atomic scheduling */ + wrkr->cap.burst = RTE_EVENTMODE_HELPER_RX_TYPE_NON_BURST; + wrkr->cap.s1_sched_type = RTE_SCHED_TYPE_ATOMIC; + wrkr->nb_stage = 1; + wrkr->s1_worker_thread = l2fwd_eventmode_non_burst_atomic_worker; + + nb_wrkr_param++; + wrkr++; + + /* Single stage burst with atomic scheduling */ + wrkr->cap.burst = RTE_EVENTMODE_HELPER_RX_TYPE_BURST; + wrkr->cap.s1_sched_type = RTE_SCHED_TYPE_ATOMIC; + wrkr->nb_stage = 1; + wrkr->s1_worker_thread = l2fwd_eventmode_burst_atomic_worker; + + nb_wrkr_param++; + wrkr++; + + /* Single stage non-burst with ordered scheduling */ + wrkr->cap.burst = RTE_EVENTMODE_HELPER_RX_TYPE_NON_BURST; + wrkr->cap.s1_sched_type = RTE_SCHED_TYPE_ORDERED; + wrkr->nb_stage = 1; + wrkr->s1_worker_thread = l2fwd_eventmode_non_burst_ordered_worker; + + nb_wrkr_param++; + wrkr++; + + /* Single stage burst with ordered scheduling */ + wrkr->cap.burst = RTE_EVENTMODE_HELPER_RX_TYPE_BURST; + wrkr->cap.s1_sched_type = RTE_SCHED_TYPE_ORDERED; + wrkr->nb_stage = 1; + wrkr->s1_worker_thread = l2fwd_eventmode_burst_ordered_worker; + + nb_wrkr_param++; + return nb_wrkr_param; +} + +static void +l2fwd_eventmode_worker(struct rte_eventmode_helper_conf *mode_conf) +{ + struct rte_eventmode_helper_app_worker_params + l2fwd_wrkr[L2FWD_EVENTMODE_WORKERS] = {0}; + uint8_t nb_wrkr_param; + + /* Populate l2fwd_wrkr params */ + nb_wrkr_param = l2fwd_eventmode_populate_wrkr_params(l2fwd_wrkr); + + /* + * The helper function will launch the correct worker after checking the + * event device's capabilities. + */ + rte_eventmode_helper_launch_worker(mode_conf, l2fwd_wrkr, + nb_wrkr_param); +} + int -l2fwd_launch_one_lcore(__attribute__((unused)) void *dummy) +l2fwd_launch_one_lcore(void *args) { - l2fwd_main_loop(); + struct rte_eventmode_helper_conf *mode_conf; + + mode_conf = (struct rte_eventmode_helper_conf *)args; + + if (mode_conf->mode == RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_POLL) { + /* App is initialized to run in poll mode */ + l2fwd_poll_mode_worker(); + } else if (mode_conf->mode == + RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT) { + /* App is initialized to run in event mode */ + l2fwd_eventmode_worker(mode_conf); + } return 0; } diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index ac81beb..278b9a8 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -38,6 +38,7 @@ #include #include #include +#include #include "l2fwd_common.h" #include "l2fwd_worker.h" @@ -69,6 +70,8 @@ l2fwd_usage(const char *prgname) " [-q NQ]", prgname); + rte_eventmode_helper_print_options_list(); + fprintf(stderr, "\n\n"); fprintf(stderr, @@ -79,7 +82,9 @@ l2fwd_usage(const char *prgname) " When enabled:\n" " - The source MAC address is replaced by the TX port MAC address\n" " - The destination MAC address is replaced by 02:00:00:00:00:TX_PORT_ID\n" - "\n"); + ""); + + rte_eventmode_helper_print_options_description(); } static int @@ -158,12 +163,14 @@ static const struct option lgopts[] = { /* Parse the argument given in the command line of the application */ static int -l2fwd_parse_args(int argc, char **argv) +l2fwd_parse_args(int argc, char **argv, + struct rte_eventmode_helper_conf **mode_conf) { - int opt, ret, timer_secs; + int opt, timer_secs; char **argvopt; int option_index; char *prgname = argv[0]; + int options_parsed = 0; argvopt = argv; @@ -212,12 +219,31 @@ l2fwd_parse_args(int argc, char **argv) } } - if (optind >= 0) - argv[optind-1] = prgname; + /* Update argc & argv to move to event mode options */ + options_parsed = optind-1; + argc -= options_parsed; + argv += options_parsed; - ret = optind-1; - optind = 1; /* reset getopt lib */ - return ret; + /* Reset getopt lib */ + optind = 1; + + /* Check for event mode parameters and get the conf prepared*/ + *mode_conf = rte_eventmode_helper_parse_args(argc, argv); + if (*mode_conf == NULL) { + l2fwd_usage(prgname); + return -1; + } + + /* Add the number of options parsed */ + options_parsed += optind-1; + + if (options_parsed >= 0) + argv[options_parsed] = prgname; + + /* Reset getopt lib */ + optind = 1; + + return options_parsed; } /* Check the link status of all ports in up to 9s, and print them finally */ @@ -315,6 +341,7 @@ main(int argc, char **argv) unsigned nb_ports_in_mask = 0; unsigned int nb_lcores = 0; unsigned int nb_mbufs; + struct rte_eventmode_helper_conf *mode_conf = NULL; /* Set default values for global vars */ l2fwd_init_global_vars(); @@ -329,8 +356,12 @@ main(int argc, char **argv) signal(SIGINT, signal_handler); signal(SIGTERM, signal_handler); - /* parse application arguments (after the EAL ones) */ - ret = l2fwd_parse_args(argc, argv); + /* + * Parse application arguments (after the EAL ones). This would parse + * the event mode options too, and would set the conf pointer + * accordingly. + */ + ret = l2fwd_parse_args(argc, argv, &mode_conf); if (ret < 0) rte_exit(EXIT_FAILURE, "Invalid L2FWD arguments\n"); @@ -521,9 +552,20 @@ main(int argc, char **argv) check_all_ports_link_status(l2fwd_enabled_port_mask); + /* + * Set the enabled port mask in helper conf to be used by helper + * sub-system. This would be used while intializing devices using + * helper sub-system. + */ + mode_conf->eth_portmask = l2fwd_enabled_port_mask; + + /* Initialize eventmode components */ + rte_eventmode_helper_initialize_devs(mode_conf); + ret = 0; /* launch per-lcore init on every lcore */ - rte_eal_mp_remote_launch(l2fwd_launch_one_lcore, NULL, CALL_MASTER); + rte_eal_mp_remote_launch(l2fwd_launch_one_lcore, (void *)mode_conf, + CALL_MASTER); RTE_LCORE_FOREACH_SLAVE(lcore_id) { if (rte_eal_wait_lcore(lcore_id) < 0) { ret = -1;