From patchwork Fri Jul 3 13:46:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73007 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 14EBEA0519; Fri, 3 Jul 2020 15:47:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EB8C31DBB4; Fri, 3 Jul 2020 15:47:05 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2079.outbound.protection.outlook.com [40.107.20.79]) by dpdk.org (Postfix) with ESMTP id 386B51DBB2 for ; Fri, 3 Jul 2020 15:47:04 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IZtJxIOPotwtBkAE7QTBi45IYSEFgMyykHfYwQshFUWpIKR3xA2bOthjoSgOwWebJeAJ/UGswIPP3B85mRHfpCNHVYBnbUqEEkMBztW5muODD1/8AIqJd8MB4lx7+OgnSglklt22/gyRvItrTYlNnK+O8+0jPfexJdZ9nFgmdQeXG7HqepdDCnyoPWB693Cqv1u9hG+Y9EujZrf2tFMqm9mdvCZQTr4sD5klqFOrTIXI3RUAYGCS2QhX8BrCIK+DZUD81pVCmnx7Km/vo/nChEQkAZfqP7iRcNj+I1OzMimkPpkLd9gR0f5o83Bv/OKjI7nNCRZPWxvyLm4rZUmkxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HWLKpJWeU7H+f0WP5Ic734R3aJY1CYaBZFAr0Zjimjg=; b=DedIgGGq4A+0LPOnuxMETlZcp+Z00yWG1DZP1IvQqOnBfAHbzxjZ5sbGTqDk/Ei8I9QBq9pDwOnqi/cCYVNT00HZ2w+vEUFaKWcNlpmPzkzJqUimREV/n5k6ic7WNZlngpxgQOJq+e0rNRB9yOvIieuZ6XEWEBeiwFP6IGHvSSJepuYZvqZND4pvUygkiEcfle4F9mbK+eyP00WuWO4z7erdIDRflJN0lJyHRGRMkvNKYzVfst9GYzB3vVoaP7bxW9rthrjdH7Zy9fpbGuAFE5q7FLy8nHCE1w4TU2eZDtrYrKzAbA5duorryw7lMx8gcG/skp5tkbjk4VxgHJQS8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HWLKpJWeU7H+f0WP5Ic734R3aJY1CYaBZFAr0Zjimjg=; b=LpTqzmOq9BBzubJ8/HRkTE4M790yWbxXvOgOlo0pOqep6FkHHxbdZrp792aPsThIBmsnnNol12x8dRZ/7Y/09iDudiMIQkxMzKsx7Vdf5RrYHduPTV96A3Jy+X5eW5OXdMmzKvXnIdiq9dab4/v9tQenkkl22cCLbk5qtEFjnug= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3345.eurprd05.prod.outlook.com (2603:10a6:205:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:02 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:02 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:32 +0300 Message-Id: <20200703134641.386297-2-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:01 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 187d3b80-888f-4727-d315-08d81f5790ab X-MS-TrafficTypeDiagnostic: AM4PR05MB3345: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1079; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1tzkwO6k171jZUZsvHN66N9pcmGWNFjq16UgglqSbK+08XHebe7K2V3rPGRQyEuFPIAd8dcrbT8Qv4Umu2RBTUAnxVj7GxvpzewcIZPdQX0syaRSaRntq+XJNiuPAnXvkwti1O7sfMc7ZFsQFnUOVERx37NHAlQTGIunHyyAXlEghxTr2XRt5qukzkQhifvlkOmfnSysDPaJx8EZhU8Si4BCQG0x3euTBMX5SAByPKAhrLyoyLr4mwrrxG+55gDr4BNQ/iC0Cl1wiGHFmXffAoU6rGtdI/Ap3JjNuka/B6xYx/KNudh0TPOXMvB4LobWiCvqoYKwSevEE+t6fit/sg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(4326008)(66476007)(8936002)(4744005)(8676002)(6486002)(6506007)(478600001)(66946007)(52116002)(956004)(6666004)(186003)(26005)(1076003)(16526019)(107886003)(66556008)(5660300002)(2616005)(2906002)(86362001)(36756003)(316002)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: BQw1yelrgCMbuPfweo2215qc8IOkZ3oIGjSmZp8mA28ro/MxIKPeSKE/bnsxoH5677fD/f0HyBmaUWdrJ98MQs1SPdpD6a60vt1oiTzfgEikIjAeg9fnw35V72L41mxTR4MoyWsQcIIQh1WzkyI65rDcENY/pOBVTA6QkCOpz6ZJGZpiBMTVb+m2fD30FNgMX8b7hqpOokC5ymwJ019agzSfQr/UYxm01US41Co2XUS+GHN8eY+MRyilgmDGeH0yqb9gJ2Lkr9CftXXN0g6WCB2lBRV4YxYqXhMxYHpndTTgAxF4SXo/2ltSa1OuJOR/wAqZzHE7oCq95Q8PlNr+0yWNIz734Hxbz0KsjWw8HwaD30HcrKXEFwZrio4TkuSxPWwUEnXarjbt9nS7PzjDjfm6fOkItK3+J6s29RvFpfaXkgNfWARViObPAMGk18EBGLLAiMfrkqhHwaFHE7AUZMn7IyxLU9xzv+ZB7cCX5df3E3eDIceTx8f/meDixrwJ X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 187d3b80-888f-4727-d315-08d81f5790ab X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:02.5779 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: upxaKtaIwDJDxD0/9+czX5m2X3Dcfc4P45Vvn1dKvf9HapQoOMbj4G0LiphVtCA/B9n6Cxfr96mBeuDBX1pzcA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3345 Subject: [dpdk-dev] [PATCH v4 01/10] eal: introduce macros for getting value for bit 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" There are several drivers which duplicate bit generation macro. Introduce a generic bit macros so that such drivers avoid redefining same in multiple drivers. Signed-off-by: Parav Pandit Acked-by: Matan Azrad Acked-by: Morten Brørup --- Changelog: v1->v2: - Addressed comments from Thomas and Gaten. - Avoided new file, added macro to rte_bitops.h --- lib/librte_eal/include/rte_bitops.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_eal/include/rte_bitops.h b/lib/librte_eal/include/rte_bitops.h index 740927f3b..d72c7cd93 100644 --- a/lib/librte_eal/include/rte_bitops.h +++ b/lib/librte_eal/include/rte_bitops.h @@ -17,6 +17,8 @@ #include #include +#define RTE_BIT(bit_num) (1UL << (bit_num)) + /*------------------------ 32-bit relaxed operations ------------------------*/ /** From patchwork Fri Jul 3 13:46:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73009 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 82BDCA0519; Fri, 3 Jul 2020 15:47:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 615421DBCC; Fri, 3 Jul 2020 15:47:08 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2067.outbound.protection.outlook.com [40.107.20.67]) by dpdk.org (Postfix) with ESMTP id 661731DBB2 for ; Fri, 3 Jul 2020 15:47:05 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nnsDUul7EoOTZYCTKlP38uvlhQMdb3i5hjs3M9prLs1dNeROvUEsuoRy8lniMB4hypcZUqlaQw12vzHR6+Aee7lzGNIIqJGT4KOI/Xw1n2VC4mHqMCblNGe4WSwd0PjKHQ4N94csRRH4+qDsMqouQbxqlRMEvz4gaUJIPV2qLB5mvyChVICWg0GnV7CYSeYI7eeolXxE+MbTpjS13SAkLviGUk33Rw9Iln3On8FHJ9NT4ReogQw6Ox3l9sN8n3CvQujyT/JJiSjZed+FgeqGjToNO0Y4+VVmaEH/J91v+SHiZJe/AgaVLyNI4VYTQIhRjpgxqRwCJL3r96xuplAOXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u8+VAkRbLivlLv+kZYmk0wYzc79x57Szokxjs7EpOUg=; b=KoAwlTtUZMr+2D4El/jUNFVq1ksO9Kt6eE4nqC5ctUY8ss3HnQlmo3Pci/zNMDOOcUi58RP+inJx6W5jlo07yFKsPs8PnFxjELGdzfKtK7BTj/l/kcuvSj91VTnTBpzK2AkN+Qd07tyZzYQlvezfz9ieaYALaDHkksYlMZV/VstecK2An2AbuVGCGKGJhkvy5q9ETAfzKs7GaJYe0RUy/g73jWcTjVasW6n8QZR51FC2KIo3r3Qar/wvNcqRNFOtNZpV+bhQXUtlaHGK3j5CJg71IEKq1tnA4GZ3KuNFEEfUUjS4PEtg8oqaTVlQeNFf7HNxcoRyXJ1pZSrusvNWKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u8+VAkRbLivlLv+kZYmk0wYzc79x57Szokxjs7EpOUg=; b=gzFUTi1RePrHqNhT2tsEFTcTRfCvkQ/rM6fLyHeSvEMn9OS+Wq2z+nfHJ9udXltAUtrK/NGpLQAEP5yxDcqWxQidG9eNC4/5jQrWQey4FAkCWagzvQJgwhBuBn9c6NfQ3cPuixzM0EY+QVhmLJTlK6RdnhdCj6t4yKfvCo0j98k= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3345.eurprd05.prod.outlook.com (2603:10a6:205:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:04 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:04 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:33 +0300 Message-Id: <20200703134641.386297-3-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:02 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b8a466c6-66d7-452c-bf9a-08d81f5791cb X-MS-TrafficTypeDiagnostic: AM4PR05MB3345: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mPG4RxE/8/2hjdHt2sL1jGW5yQw8Ddx3LoWlbBrVk2JQ66QxLroVGGm7AmGkh5UpYitQbe0qYHiMhiWbrAy494EaBRT1nc+bn8oBnTFlzPSu84ayPzCo/o0ydeIY1PzpoIvAB8q7OYGs3De/6XHBqjBfF5YP1v9NbknDs2pbAnjJVeTP1i+end/jw/Bt8X733Xf5BMOlmp5TLO8SspV2ZqN7nwn/PVrYwydEjUFAAaAoOFxdO655OuIN5gsV4Vylmua32EsX7IPuiBtzC24Eh0biKq/w0GmggD/hG+Or1Bu9oey+gYNjvMD6HDiUJpKx X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(4326008)(66476007)(8936002)(8676002)(6486002)(6506007)(478600001)(66946007)(52116002)(956004)(6666004)(186003)(26005)(1076003)(16526019)(107886003)(66556008)(5660300002)(2616005)(2906002)(86362001)(36756003)(316002)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: IJdtt8/lgUZTKY+A/KrU3dSYT1H+np9w7Z/rhn+dKBWneyMb6lyU+NRXuf1qs51wxVkvCYkaNl+7mP11ISGn0WbJI1vFFf9xB/omf1CZWL/Ya3rChfxKDvI7yspWE02ZXmAEUdj0+5zP77s+mVMQp0fh6vED3WjvXIMO9eh32Bik9HX1sMEpYSMFTiEMzOjWJwikdfgADEjV9M92QAMPuSrL64LBYqIJKivOLDl46zg2ATpZQshdEp8Whl7zB3RM0i0jHMquTWzK65KpXoizNZmJkl3GILdP6KoGWSeayUbJHAl10eiTTMwrWChOgsOuqYfoifHBKaJVieS7HiOye2sgeHD2BJgTSpmCEN0M2lVNgShZfWQC95/0O7RNFHs8s9WKwqVb0KP/qUKITRwnqJD68FpJFsot5LPE/qzzEHiM2Eh9l0FTnQP8MGG9PuHgiz7T11S/DBiflSIWCU1nebjifYU9zC0JAxXj4qcIGnEkhkXm/fBBJgjnZzO8Q7aa X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8a466c6-66d7-452c-bf9a-08d81f5791cb X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:04.5408 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZDKR2b+a+ScSb99DQ+2Ls4typ8fi+/eCwo/zic+3t8sgJHVjj4ToA5cSiD8qp5j0lA1xNIZB+N6n30jvolNyrw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3345 Subject: [dpdk-dev] [PATCH v4 02/10] eal: introduce RTE common initialization level 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" Currently mlx5_common uses CLASS priority to initialize common code before initializing the PMD. However mlx5_common is not really a class, it is the pre-initialization code needed for the PMDs. In subsequent patch a needed initialization sequence is: (a) Initialize bus (say pci) (b) Initialize common code of a driver (mlx5_common) (c) Register mlx5 class PMDs (mlx5 net, mlx5 vdpa) Information registered by these PMDs is used by mlx5_bus_pci PMD. This mlx5 class PMDs should not confused with rte_class. (d) Register mlx5 PCI bus PMD Hence, introduce a new RTE priority level RTE_PRIO_COMMON which can be used for common initialization and RTE_PRIO_CLASS by mlx5 PMDs for class driver initialization. Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- Changelog: v2->v3: - new patch --- lib/librte_eal/include/rte_common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_eal/include/rte_common.h b/lib/librte_eal/include/rte_common.h index 0843ce69e..d4653ea77 100644 --- a/lib/librte_eal/include/rte_common.h +++ b/lib/librte_eal/include/rte_common.h @@ -126,6 +126,7 @@ typedef uint16_t unaligned_uint16_t; #define RTE_PRIORITY_LOG 101 #define RTE_PRIORITY_BUS 110 +#define RTE_PRIORITY_COMMON 119 #define RTE_PRIORITY_CLASS 120 #define RTE_PRIORITY_LAST 65535 From patchwork Fri Jul 3 13:46:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73010 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5F4A0A0519; Fri, 3 Jul 2020 15:47:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B481F1DBD5; Fri, 3 Jul 2020 15:47:09 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70088.outbound.protection.outlook.com [40.107.7.88]) by dpdk.org (Postfix) with ESMTP id 46A121DBBF for ; Fri, 3 Jul 2020 15:47:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fgi3jSURlX32IsvV+1KiMWJqOObiuS0X/7rTfD8uY4hmdoIeIKnsS5nyEHHC+4wGR4C7bk1f6ppFOBwhgNeQktcZhP18DnKuq4rsDt4L03MzyNJZsjkJ+e6Mj9Xl3t9lInJYL96bKUXPS2Kmu0YJ8MI3Dnd3rLr5jJTBqGJVPLkyuVlrpRMs+0LnIYEAuzcFENDn47/4cRwH9J5p9zImlJSbrmQISguum7OEyMFnGgey67fuGmiZrXujeqeybSk2zvr9FSNJde+YICbb8KLQQecJe4Hkrata4Xlmq7gnnUWgXGpnrRxy+zUb/bv8iPPuri2PnoZo8QwHFrT8gp5F+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RpWOBd3pblhqrkJ0OEo5WAC0kGA/NL4QMCyIMNN5gO8=; b=G+VVDz5UDSJ2NzMMlwMUDB2JZyMFJ4nHXHTBC19uVZuom8t5ORYitntxAZGp1jWxm6ObpfmR5Mm621fCiEKm6tV1NQQOAFIg8saoVa/s7NV156KFZAulxsm3l6bMA038SKqNZLL+vmckBT5FyD7gGe5g8ejtnKt5bVnWlKm1qOK4dRBoVfg1ugHEIlneoHqqilr2eYjY1bAcWrgSbyKz0L3StDOcRoizNKY8pSh2hGHQS2dKB1pWCx2LEIXbUKk+Go3fDbYJe8ElqRtrbnGjugPiHrIPkKQkSObXKEOqBYrkQvKV7RCkC2X6GDzgqDJ8SSfJUpI+ebUn3QYnIZ6xmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RpWOBd3pblhqrkJ0OEo5WAC0kGA/NL4QMCyIMNN5gO8=; b=CDaNp77HCwOHqNTmxXkx9R92OnqTK2s3nHLN9RluueIur42j64tolw6cfeMw8mmyBJxwnSr0P5pwJyyvJ2EgnJ86iFGReqFXRClpo47clZO1Gw1fUAo3SfOJj2qQXXTkRIXQ8lc+TnMb/qyaZBJiW0papbUmBx45yqKOL00Exr8= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3345.eurprd05.prod.outlook.com (2603:10a6:205:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:06 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:06 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:34 +0300 Message-Id: <20200703134641.386297-4-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:04 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 10edf08a-a617-4065-8991-08d81f5792e9 X-MS-TrafficTypeDiagnostic: AM4PR05MB3345: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:327; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8qlogqvtAIjzmEuP+aGTq7WKz57HkSb3XRw9LWBNK+HlvZbyYKVCENUFFeZkbASCVIaOLgU2FHg8FQnd9/JyNUaJpoCtZc7Fan3gSq+sDFJ+1i19kQpZkmtFK2t45BRIOiYWGwCJTzfqOHhTEBAoIEXzSjmWa09m3soeyyfEJGicmIaRkv1HLzC7UZeNfSfxB7Z6Xi0xG6YKs+B6r/4m6m9aGDv1fLYfqTNDSse0cnAVwg6uOqiJ74K3RMt4ymBLoHmTQu+0Q2p9kAKGJCHvM8/7Dx6OTn1vFMzvzji4DtRRplDNw9JQn9Q/AH9t0Mha X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(4326008)(66476007)(8936002)(8676002)(6486002)(6506007)(478600001)(66946007)(52116002)(83380400001)(956004)(6666004)(186003)(26005)(1076003)(16526019)(107886003)(66556008)(5660300002)(2616005)(2906002)(86362001)(36756003)(316002)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 4tOCFjsksaZwEr6FNBoTv3ZODphp2INke/9wOCJI4gsCie8RXeb2Dvh+DjeOyrjrQCAk2wR8Mn56lDHSmGgvI3BQH6mo9Dckp8UX4cP+LkbJ8TUHHNt25DmRZJJL22OHYv39bIGRudh8HewGCcKqSp0kIWTSrr09vBF1F+Sjii5xFBhKsXTnn/auL88xVUPh4E/3yhbULL+YegQVDDJKFYgLASf0FgIyUnrzxSFpC4I5p+6Q/LurI3iaFKEbyndckFm3E2mTDyQ3OThYONvUsACYCFWqLujNaLyAzLGYFLq2sKE0dMFpv7Iz10/I91IMuIQtHJrLakZDkH/DpfrxfHC0pAJNf4JYjvMZmykd/XC+CrgixVorVWAX+s4afLjbRspc6CipmtPdAHU2YFaNed8Pt6lzS0F4a7vAO+MMsrWxgVnoap5N3zT3t/6hkL2pUy+Nuk7oiGTENZ5jk0W4a/BqpfU9dFkSAuaiEBPvWTYIgN1hedQ0nwSVKwPKhNFY X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10edf08a-a617-4065-8991-08d81f5792e9 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:06.2248 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EAaBjaiDAFuGoXErXe1OqmkCZCZv6irGW59n1pWBeO4KeiymEsuXOmyrGfCv3SQPJF/aXPr/sZxB6GnlSPf1tw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3345 Subject: [dpdk-dev] [PATCH v4 03/10] common/mlx5: fix empty input style in glue wrappers 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" Following two errors are reported when compiled with gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5). drivers/common/mlx5/linux/mlx5_glue.h:188:2: error: function declaration isn't a prototype [-Werror=strict-prototypes] drivers/common/mlx5/linux/mlx5_glue.h:188:2: error: function declaration isn't a prototype [-Werror=strict-prototypes] Fix them by adding void data type in empty argument list. Fixes: 34fa7c0268e7 ("net/mlx5: add drop action to Direct Verbs E-Switch") Fixes: 400d985eb586 ("net/mlx5: add VLAN push/pop DR commands to glue") Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- Changelog: v2->v3: - new patch --- drivers/common/mlx5/linux/mlx5_glue.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/linux/mlx5_glue.h b/drivers/common/mlx5/linux/mlx5_glue.h index 069d8540c..e5e052a6a 100644 --- a/drivers/common/mlx5/linux/mlx5_glue.h +++ b/drivers/common/mlx5/linux/mlx5_glue.h @@ -185,11 +185,11 @@ struct mlx5_glue { void *(*dr_create_flow_action_dest_flow_tbl)(void *tbl); void *(*dr_create_flow_action_dest_port)(void *domain, uint32_t port); - void *(*dr_create_flow_action_drop)(); + void *(*dr_create_flow_action_drop)(void); void *(*dr_create_flow_action_push_vlan) (struct mlx5dv_dr_domain *domain, rte_be32_t vlan_tag); - void *(*dr_create_flow_action_pop_vlan)(); + void *(*dr_create_flow_action_pop_vlan)(void); void *(*dr_create_flow_tbl)(void *domain, uint32_t level); int (*dr_destroy_flow_tbl)(void *tbl); void *(*dr_create_domain)(struct ibv_context *ctx, From patchwork Fri Jul 3 13:46:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73011 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5B419A0519; Fri, 3 Jul 2020 15:47:45 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 33A3C1DBE4; Fri, 3 Jul 2020 15:47:11 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70059.outbound.protection.outlook.com [40.107.7.59]) by dpdk.org (Postfix) with ESMTP id 348551DBD2 for ; Fri, 3 Jul 2020 15:47:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JxeYGUqf+Rg681bDjY+8rKgpWed5EuMPhlKBnyKWoN3VitXop2FLgnk4DlIGu5Nxqo8osz3jWclxI7VBk2YJcvnANvDZLH6ea/xhtpTtWCW6i2dRiTbXupMIRZb02xTgWiC4JRqeGAxc60T+bI0DbmNgsAfmGQh1ckpVHwQB6YidTseFmJhdcIfvLvmeUTJ9/DCMMa55UQdNtiufOFQu32kbKiOm+9yfMQkz6Rc3kjTu7d1k47pF/oT58b/KD18W0r9SgRG0wjvNvCxh6ALimtd2FCBkyCEpFLLO6oEbKXTpajdQO7MzL9ayn6pPbGmTAccE01ct4gcMkaLNXfC09A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uwt8kTWARVsyBaSJ+aDUUpmy3vrFphHBklFd5h3njTY=; b=EVbQHc3dTkbbdf4/9Op14R45kIuBXb3cUzPKHgJJL0C+BfpCTq2gwu7ZuWJ2/hlFgje0Arrk/ImjVxTlfNX6n7va1UsVNu9d302EnNYftqs+zsXIRj9VaPsRZLsTjho6zr4vOzK5Wln58B+gtLTFMU2E4Fr2Tf+zj6CErbgSFLKTvEec90Q82QvoutdXnVJRnuvQOzCrSngHOgLepkQVRPq9vArF0aRJI4ephA9ZZE34iZsxSbuMhZXpOdAu4mlz2CPzw+0uTnIJXYg5R0VENA1+A9Vg5PdcoPixD6bXzCW+B2yn8DNAYyLfEqxEwJHObHR1hbPb7sm/Vtant6URsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uwt8kTWARVsyBaSJ+aDUUpmy3vrFphHBklFd5h3njTY=; b=RTqbhhzCYizlCfYaRwKYwNJpVos4HdeavJ6V+lD/3IsZl0BsmpMknk8j+1XgEA8UIF6DvMmhlt9HHU19Ybj2hA7MZp/ijrvl+6YhcULSkazCEwKRhInXifLNN6MjLx/4ngJmhRf1xITKCHECxVv7fMIWwLF5O8tu+ZdsneQG9ws= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3345.eurprd05.prod.outlook.com (2603:10a6:205:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:08 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:08 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:35 +0300 Message-Id: <20200703134641.386297-5-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:06 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 53cc3d13-de63-4c38-1c63-08d81f5793f4 X-MS-TrafficTypeDiagnostic: AM4PR05MB3345: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1079; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: I0TDahL7kgTLHGkZB7F1e3p3niSE87x0A+IGGO4e3Uy0XURV2AoOiOLK2jCFT+1g1l0t40z8kYSLf5e9AuU1s9VS/cuVqg2P4qPk0aDFXJrYamIloWGXHs8IHOVVYWH8KPGU0sQpj10RNseGtDC0a1mRZhM+xyMR5JU6qsvE9bCOd93B591JbXVdwCRKJw4oI0JJFtQCHWBpnnNDkMjiJ1T1sJKoMfl+XWkEDnfiZtjswWU4aQ2q6nAQ9E3AUUZ4vpCdeCvS6hT/Y6GCWt6y6ngsmCKd7wbj7LBqyQCQOJ4fWFqMyG53jkKJYUnv2CB+BqhTXx1q2cat2u69oTJIiQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(4326008)(66476007)(8936002)(8676002)(6486002)(6506007)(478600001)(66946007)(52116002)(83380400001)(956004)(6666004)(186003)(26005)(1076003)(16526019)(107886003)(66556008)(5660300002)(2616005)(2906002)(86362001)(36756003)(316002)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: XGx7ah6iCCzSPrlEnYZaLNrmnGKK1hYKmFKK3ur8XTVzAQHf4fzkZ2UlMfJjx+h0HHm2axkgKFnBJP7hUOhQyCrKKBnTmet8aQ/7pFogmCJszb19itQpH6zvcQtLKi8Qql8whxqL4x/y+BeOeguXqp+N89YNxLVz6ZZkgdWA4rImgOh8iq1CCAdBNYrEHZFINvnJB1vvhAiIxvDTL3qxMgL//8K+/SPURxbLlXieDQjYX9dX4JoPhvOG5rea9LqCWD9dGl2n28m/+yYYXXzZJA2w38vzAizhRZExlW83F2DO2a5SLWO8EqKTJEF5d8v/e3frLokzoEGZo45AQC48y/JIUdgDPSA/6g3AHzgezlzagwGC3NSPa8CaNcez+7mJ0qpmLE0rnCRysQZsNzc04VFIXeZrdZTZh60LawtGbv4TJ7dqSh6ZEkCGdxDHW0wcrT9Mo/Yz9JorjkGepIC12Z9tq4Nw3V4yDVliqu41BHDKe2rc6Xp2gGCr905MD/f4 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53cc3d13-de63-4c38-1c63-08d81f5793f4 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:08.2337 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: G3XxCQorLKI7bnNxT5C7VLIMy6l9Wrx1cbH/HrGosHiAWn5GKysXUPC77dJkbNuG+nooxGnOqQk/OE7INwo/UA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3345 Subject: [dpdk-dev] [PATCH v4 04/10] common/mlx5: change mlx5 class enum values as bits 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" mlx5 PCI Device supports multiple classes of devices such as net, vdpa, and/or regex. To support these multiple classes, change mlx5_class to a bitmap values so that if users asks to enable multiple of them, all supported classes can be parsed. Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- Changelog: v1->v2: - Rebasd due to removal previous patch --- drivers/common/mlx5/mlx5_common.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h index da01ffa1c..62861af05 100644 --- a/drivers/common/mlx5/mlx5_common.h +++ b/drivers/common/mlx5/mlx5_common.h @@ -13,6 +13,7 @@ #include #include #include +#include #include "mlx5_prm.h" #include "mlx5_devx_cmds.h" @@ -207,9 +208,9 @@ int mlx5_get_ifname_sysfs(const char *ibdev_path, char *ifname); #define MLX5_CLASS_ARG_NAME "class" enum mlx5_class { - MLX5_CLASS_NET, - MLX5_CLASS_VDPA, MLX5_CLASS_INVALID, + MLX5_CLASS_NET = RTE_BIT(0), + MLX5_CLASS_VDPA = RTE_BIT(1), }; #define MLX5_DBR_PAGE_SIZE 4096 /* Must be >= 512. */ From patchwork Fri Jul 3 13:46:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73012 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D080BA0519; Fri, 3 Jul 2020 15:47:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 779D21DBF2; Fri, 3 Jul 2020 15:47:12 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2052.outbound.protection.outlook.com [40.107.20.52]) by dpdk.org (Postfix) with ESMTP id 6E5491DBE7 for ; Fri, 3 Jul 2020 15:47:11 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nz+G+biTf15VKAIpQMdZ/P6MGFREP7yFVLLHiDRUcpzAHQ77o4ZVLjUXv53fHLdVDWQPMMXWHN+oRZtdIgEKg3hrGCtsirJ3Dfoan9vf0nN2HrSq+Oar87q7pSBuoLsm29e9mR/uytm1lWLXHeUvjtHSB6ZtuahzOF54G4tmcbMHsziHKX4IDUMNs5NSIsoRDl5m8NZ6hOwBy8TSLy2kKVNJ8hpsE+qo+HZfTlv3Pp/2X3eutaoTpfG95yJ1eXI8OaAdNU5dYosK/o8wiJG542YwcS2LQs3Wi8+UmIXWPJug2VelNMwhG3xqctUfnb8n9sKI+3q34GuzYwmRn94Tqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0+SzAwCK5Nqi+rMpg95/rjbHd2uzpqcYvJO6IFKsUHo=; b=mDSDh3TnixRriNLF2l3Jpzrmux0nAxbmFAoCjH6xrJ10blV8SfpSUUbOgi4E6stlAttFYT6yIROIBdMB+fhgclT1N4/XvjLAj6QQ7Y3kJcy86Koy2fH+zAgBzgrULKGA7kV8DP5Q344sPk3zMJn0tzoDYk3dyq4mH9F1P5GHgN4fxdFj+jM2HCuRo49ukQJUS7+AqAamCj5gaXcmp1X6SBnoaULHaZz239/VJiqHVqi5Q6Tjp9jNGK88UOzWDiZnEGE2sux1XNAeeoy1nuGHyR8yR4ugndqYdUmsmWa7jzLAq57iX/awNhqhr/4EcQy9V+GV1lvlWwwGY5109/57iQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0+SzAwCK5Nqi+rMpg95/rjbHd2uzpqcYvJO6IFKsUHo=; b=ictWu/aa154PcvJHpsTd7qZYRW+3mCElHG9mQ5RCw3LhsMfpUjjiYHN6nswWXGvyGCSNXh1DDBZCEcD+EQ2fQNOYOLC1wyH7SfUyDfqm+rDQ+gEr9P6XqnG2qXQte2hIc3ybfF3c/aW9PhlpK8SfLsczazYjb/MiNX/jTU8PM/I= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3345.eurprd05.prod.outlook.com (2603:10a6:205:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:10 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:10 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:36 +0300 Message-Id: <20200703134641.386297-6-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:08 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ee7803a8-bd77-45b8-7e09-08d81f579514 X-MS-TrafficTypeDiagnostic: AM4PR05MB3345: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3826; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: f79RPhFY07TyikbbwNEBgIvupO7quDIM0DQXb5Ic6E05ChwbB6BIAni4wrbYHZxpAtakdCwl5NgXFghqhVd3V6N6WdZjNm6MiiCa5Z2XnIckqpe+k9e2GL0+s+d/y+RE5AkRX00fPArWxiChoryTOJXFhbw6aR/Yiq4iYyRpTPsbOVOROo5gfwW/gGupIsozA4UpxsX57FVcPKtOOLZfUg/KB81VLYzdOVzex2PNP00E5FoKxHhLGHacjbPzJ16n6lAsg4ftvBvvZXUQD3zyIsiPhM915SY8XU4hJj1cpaE+S4uYJVQy3z/igwNakeq1Oi1lpM8PESKWqAmRT4eiCA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(4326008)(66476007)(8936002)(8676002)(6486002)(6506007)(478600001)(66946007)(52116002)(83380400001)(956004)(6666004)(186003)(26005)(1076003)(16526019)(107886003)(66556008)(5660300002)(2616005)(2906002)(86362001)(36756003)(316002)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ylZoYfmhwG8JEn8Skm2IaJ9aY1fcdlQsAiMKtkg95thWV6W9zWIVQvtkO4kdGPq/W2fnpuS8ZWtOYUStfMMhb/eetg1K8ajYPffiX/g9nV8ETMyC5HIDPqd0B+UT2pH8M4ldR7lgbBhaYQ1UkHU4myEg2jv1P7cTJGjZ6d2akyF+dPhMC8T80x1pAJPLY+S9QSQIwIQKxH/Xxav6sYPRog42lY7TXQIspagjep1v5jFXnX/FVol3LpCJel2HiHR5xYtFovXWmUYdBkeYMmUfWVe9rQeUawQecx74oKLSzKMWjOR35T3Iy9Xqp3lplG8bxckEV4xgN7eOptPvHt4xtqeT7EywJIteC8PsojU3mpnPsWBO0TVIIJ+0efUOn9oy6FnGmnmAX6nciWsGpmn59C+xG+RrSDaNYS2NtwPyLv/z82GziTfshgyGkYGg4Kul4HNoZ+KhD/qHCAvAygPR4ioOYNrNhDu9dzewvCxfnYU6febiXxt/Phz5Y7S/8nyd X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee7803a8-bd77-45b8-7e09-08d81f579514 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:10.4374 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: y9gAw7tqAsnjFBn2WLWuuTtDjPRpAJtOeW3rOAI3CnCLvAHrjYqf2z3DmQDxEXVG8eM9jWpqacSa0YxdiVabuQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3345 Subject: [dpdk-dev] [PATCH v4 05/10] common/mlx5: use common rte priority 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" Use RTE_PRIO_COMMON for mlx5 common initialization and use RTE_PRIO_CLASS for mlx5 net, vdpa PMDs. This enables to do following initialization sequence. (a) Initialize bus (say pci) (b) Initialize common code of a driver (mlx5_common) (c) Register mlx5 class PMDs (mlx5 net, mlx5 vdpa) Information registered by these PMDs is used by mlx5_bus_pci PMD. This mlx5 class PMDs should not confused with rte_class. (d) Register mlx5 PCI bus PMD Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common.c | 2 +- drivers/net/mlx5/mlx5.c | 2 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index 693e2c68c..0ce5e4db1 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -92,7 +92,7 @@ RTE_INIT_PRIO(mlx5_log_init, LOG) /** * Initialization routine for run-time dependency on glue library. */ -RTE_INIT_PRIO(mlx5_glue_init, CLASS) +RTE_INIT_PRIO(mlx5_glue_init, COMMON) { mlx5_glue_constructor(); } diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 07c6addd5..bb10c63bb 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -1907,7 +1907,7 @@ struct rte_pci_driver mlx5_driver = { /** * Driver initialization routine. */ -RTE_INIT(rte_mlx5_pmd_init) +RTE_INIT_PRIO(rte_mlx5_pmd_init, CLASS) { /* Initialize driver log type. */ mlx5_logtype = rte_log_register("pmd.net.mlx5"); diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c index dbd36ab0c..f043166ef 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c @@ -842,7 +842,7 @@ static struct rte_pci_driver mlx5_vdpa_driver = { /** * Driver initialization routine. */ -RTE_INIT(rte_mlx5_vdpa_init) +RTE_INIT_PRIO(rte_mlx5_vdpa_init, CLASS) { /* Initialize common log type. */ mlx5_vdpa_logtype = rte_log_register("pmd.vdpa.mlx5"); From patchwork Fri Jul 3 13:46:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73013 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D1B57A0519; Fri, 3 Jul 2020 15:48:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 978561DC08; Fri, 3 Jul 2020 15:47:15 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70088.outbound.protection.outlook.com [40.107.7.88]) by dpdk.org (Postfix) with ESMTP id 69E171DC06 for ; Fri, 3 Jul 2020 15:47:14 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GFOTQxnFetotBjnGZ009h9uHhEXTr2g9RUzTS/Fv9fZT/q5i/5annsWIFjVmdHoOggfmhItquQWE9SjgdkTxfunDEFOcVn5/QwDObsryi6cONArs3ThRS5GHkoOE9KuQJIZ55Fyvoz7XFQxBwy0pbWjHMJhYE/diyG9zWep89Pg8Y/UvCjXSHsaugZGKR7nElKH5gtjG6m5W/tm99NSassKGGdvNf+XGMn2/zkUYYTXuSo4VSL89dX0IMoXktpnUQdeskUrXvlR17ncdwh+iCY1Htf8FOCsaXTXnoeyOYMcjWl/SRaVqTTfat54KkWV/NoPrQ/a5Yafr9B0WiXLdfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8T91Ktikro+Q84Mkiss5UWGnRxBzXRgOehojdMfcIhM=; b=gbn0YORq9JjogPXf86oWaIVsxdn23PY96oFyR209Ch6FFe+xvVAvuwJ2wl2y/I7gkz+cNC6CCig9atkFZCgZwxWPJY1eAnqU7o18YlImsIiVHIT58gTg0ZH4zH8g3dKKwL04xY4nZVKS/M7bv3dU4tXkrJlPsbHPoYCqko4OfDdO7sfdl8zRpJdD2BkYMgkQVQHyO7O2lU6j3tKrhGyacOeRablgTe7lhaKIp8BYQqrcuDQM8R/C41yki0QQRjFy8v2Fy5pVqMC9EeLSQfv4UN2TaDZD2Bcq3Gu7eWkwlliTJ2lOHg2i0gX17KY0IO/nol8DJsl3lrRRnSxNQjuoyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8T91Ktikro+Q84Mkiss5UWGnRxBzXRgOehojdMfcIhM=; b=m9fo27IVJE++2vT/O9OXeghwLE6/AljH+qKQeHYyf3rVvHkKCpZNEuRiXlrMecsXRFWRwhob+OdxS3IxCM1jqenfjLWciv0oWD78H4KAC7VdDmmelgImauIts96miFDbLRjFlph2+4ZF3LjPQB1lh9/77CidFdUejKvDV6oMABA= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3345.eurprd05.prod.outlook.com (2603:10a6:205:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:13 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:12 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:37 +0300 Message-Id: <20200703134641.386297-7-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:10 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 969c4ba6-6e6c-440d-a78e-08d81f579670 X-MS-TrafficTypeDiagnostic: AM4PR05MB3345: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5cWOXEOz1aWZ1DXA5wIeYMsDc+96JbSR/WfvhuHxXbTjURyNeG9FZiyPywTgIyPhZBw3jGZgg/COdeSSCUiOrl+ej6D7eWXH+IlQZXSg29CILUAytuyDrLCFEce8/or/rA6LR3KF4ZV1u/tjFkbGHomMI1wuU6jf2zeG1rFIKT1Ycn0197w16lZaZKC6TnsHHbHdckPvQNRE7QYSN4yeyt3ndCPqWiY9KFqRm6B4nY9edY2dr9xGPqOE1IVta2panpUsMnS6bfewsHfQDNlpKwO+pt0xHD6bLLGe/unhLFKA41P/wUsbPkALPoLsRcsW/+Ybl4hsJVtU69bb5yiLOg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(4326008)(66476007)(8936002)(8676002)(6486002)(6506007)(478600001)(66946007)(52116002)(83380400001)(956004)(6666004)(186003)(26005)(1076003)(16526019)(107886003)(66556008)(5660300002)(2616005)(2906002)(86362001)(36756003)(316002)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: FwdyxiWYCHjKU0uIOHRWtdnaQX+qF0fWwIub2/roWGlyGEcFrXE1Za0xzI/UnU2C6zRBsrrr4UFGR2mO7TrTVoXnDvNBaB4hpHtaCevEUk+U+E4AVwKIK7OgcYEpJd+9726TYAlJ9fNUmgjPrmHv8KQdkEoy6h3+toPamQzpWk6ULSP5UjTe9AjYNp5R9JLqTqJKYlL7rqZF5IfAnwLrwFOXYo9V+U7nnwX5kcVbrp5oiPzi75CKN5UPGX4xYZvKRSd8q4tMgNOWpXdeOeqKi/LpY2WOh+uy/P5ZZaGLu02sozJFwSgZuwDkIF29SHKLwI7OnG6mQGXFit+xavt3cmVHO4ePt8y8mQOz94y49a24fRFgQVNGIN4LUnCbblxvmjehTp5FTAE52GKSoe+qj9RgO0PssEZkmdPCFGlnM6656M5nWkcu32c04BfHWJC8517eXN6y26SJnQomeRDFUVbsEsZ5i0blaxNMkPzyq6hRaBBG/aRhRWnvIgBcFVPl X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 969c4ba6-6e6c-440d-a78e-08d81f579670 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:12.1255 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uC29dvn8uOSSiG7B1kfBUhrw+rxmzXmhCIOqaLbZCWImW8TzBmWNX2q7Y/0PRhbVwKDEnP4pBlgWJTJUJGH5hg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3345 Subject: [dpdk-dev] [PATCH v4 06/10] bus/mlx5_pci: add mlx5 PCI bus 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" Add mlx5 PCI bus which enables multiple mlx5 drivers to bind to single pci device. Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- Changelog: v2->v3: - Addressed comments from Thomas and Asaf - Moved pci_driver structure instance as first in driver - Removed white spaces at the end of line in diagram - Address comments from Matan - Removed CONFIG_RTE_LIBRTE_MLX5_PCI_BUS from config files - Changed alignedment to mlx5 specific aligment instead of standard DPDK - Using uint32_t instead of mlx5_class enum v1->v2: - Address comments from Thomas and Gaetan - Inheriting ret_pci_driver instead of rte_driver - Added design and description of the mlx5_pci bus --- drivers/bus/meson.build | 2 +- drivers/bus/mlx5_pci/Makefile | 38 +++++++++ drivers/bus/mlx5_pci/meson.build | 19 +++++ drivers/bus/mlx5_pci/mlx5_pci_bus.c | 14 ++++ drivers/bus/mlx5_pci/rte_bus_mlx5_pci.h | 84 +++++++++++++++++++ .../bus/mlx5_pci/rte_bus_mlx5_pci_version.map | 5 ++ 6 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 drivers/bus/mlx5_pci/Makefile create mode 100644 drivers/bus/mlx5_pci/meson.build create mode 100644 drivers/bus/mlx5_pci/mlx5_pci_bus.c create mode 100644 drivers/bus/mlx5_pci/rte_bus_mlx5_pci.h create mode 100644 drivers/bus/mlx5_pci/rte_bus_mlx5_pci_version.map diff --git a/drivers/bus/meson.build b/drivers/bus/meson.build index 80de2d91d..b1381838d 100644 --- a/drivers/bus/meson.build +++ b/drivers/bus/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -drivers = ['dpaa', 'fslmc', 'ifpga', 'pci', 'vdev', 'vmbus'] +drivers = ['dpaa', 'fslmc', 'ifpga', 'pci', 'mlx5_pci', 'vdev', 'vmbus'] std_deps = ['eal'] config_flag_fmt = 'RTE_LIBRTE_@0@_BUS' driver_name_fmt = 'rte_bus_@0@' diff --git a/drivers/bus/mlx5_pci/Makefile b/drivers/bus/mlx5_pci/Makefile new file mode 100644 index 000000000..de4ccd83f --- /dev/null +++ b/drivers/bus/mlx5_pci/Makefile @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright 2020 Mellanox Technologies, Ltd + +include $(RTE_SDK)/mk/rte.vars.mk + +# +# library name +# +LIB = librte_bus_mlx5_pci.a + +CFLAGS += -O3 -Wall -Wextra +CFLAGS += $(WERROR_FLAGS) +CFLAGS += -Wno-strict-prototypes +CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5 +CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5 +CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux +CFLAGS += -I$(RTE_SDK)/drivers/bus/pci +LDLIBS += -lrte_eal +LDLIBS += -lrte_common_mlx5 +LDLIBS += -lrte_pci -lrte_bus_pci + +# versioning export map +EXPORT_MAP := rte_bus_mlx5_pci_version.map + +SRCS-y += mlx5_pci_bus.c + +# DEBUG which is usually provided on the command-line may enable +# CONFIG_RTE_LIBRTE_MLX5_DEBUG. +ifeq ($(DEBUG),1) +CONFIG_RTE_LIBRTE_MLX5_DEBUG := y +endif + +# +# Export include files +# +SYMLINK-y-include += rte_bus_mlx5_pci.h + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/bus/mlx5_pci/meson.build b/drivers/bus/mlx5_pci/meson.build new file mode 100644 index 000000000..64a17cbad --- /dev/null +++ b/drivers/bus/mlx5_pci/meson.build @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2020 Mellanox Technologies Ltd + +deps += ['pci', 'bus_pci', 'common_mlx5'] +install_headers('rte_bus_mlx5_pci.h') +sources = files('mlx5_pci_bus.c') + +cflags_options = [ + '-std=c11', + '-Wno-strict-prototypes', + '-D_BSD_SOURCE', + '-D_DEFAULT_SOURCE', + '-D_XOPEN_SOURCE=600' +] +foreach option:cflags_options + if cc.has_argument(option) + cflags += option + endif +endforeach diff --git a/drivers/bus/mlx5_pci/mlx5_pci_bus.c b/drivers/bus/mlx5_pci/mlx5_pci_bus.c new file mode 100644 index 000000000..66db3c7b0 --- /dev/null +++ b/drivers/bus/mlx5_pci/mlx5_pci_bus.c @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2020 Mellanox Technologies, Ltd + */ + +#include "rte_bus_mlx5_pci.h" + +static TAILQ_HEAD(mlx5_pci_bus_drv_head, rte_mlx5_pci_driver) drv_list = + TAILQ_HEAD_INITIALIZER(drv_list); + +void +rte_mlx5_pci_driver_register(struct rte_mlx5_pci_driver *driver) +{ + TAILQ_INSERT_TAIL(&drv_list, driver, next); +} diff --git a/drivers/bus/mlx5_pci/rte_bus_mlx5_pci.h b/drivers/bus/mlx5_pci/rte_bus_mlx5_pci.h new file mode 100644 index 000000000..9f8d22e2b --- /dev/null +++ b/drivers/bus/mlx5_pci/rte_bus_mlx5_pci.h @@ -0,0 +1,84 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2020 Mellanox Technologies, Ltd + */ + +#ifndef _RTE_BUS_MLX5_PCI_H_ +#define _RTE_BUS_MLX5_PCI_H_ + +/** + * @file + * + * RTE Mellanox PCI Bus Interface + * Mellanox ConnectX PCI device supports multiple class (net/vdpa/regex) + * devices. This bus enables creating such multiple class of devices on a + * single PCI device by allowing to bind multiple class specific device + * driver to attach to mlx5_pci bus driver. + * + * ----------- ------------ ----------------- + * | mlx5 | | mlx5 | | mlx5 | + * | net pmd | | vdpa pmd | | new class pmd | + * ----------- ------------ ----------------- + * \ | / + * \ | / + * \ ------------- / + * \______| mlx5 |_____ / + * | pci bus | + * ------------- + * | + * ----------- + * | mlx5 | + * | pci dev | + * ----------- + * + * - mlx5 pci bus driver binds to mlx5 PCI devices defined by PCI + * ID table of all related mlx5 PCI devices. + * - mlx5 class driver such as net, vdpa, regex PMD defines its + * specific PCI ID table and mlx5 bus driver probes matching + * class drivers. + * - mlx5 pci bus driver is cental place that validates supported + * class combinations. + */ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include +#include + +#include + +/** + * A structure describing a mlx5 pci driver. + */ +struct rte_mlx5_pci_driver { + struct rte_pci_driver pci_driver; /**< Inherit core pci driver. */ + uint32_t dev_class; /**< Class of this driver, enum mlx5_class */ + TAILQ_ENTRY(rte_mlx5_pci_driver) next; +}; + +/** + * Register a mlx5_pci device driver. + * + * @param driver + * A pointer to a rte_mlx5_pci_driver structure describing the driver + * to be registered. + */ +__rte_internal +void +rte_mlx5_pci_driver_register(struct rte_mlx5_pci_driver *driver); + +#define RTE_PMD_REGISTER_MLX5_PCI(nm, drv) \ + static const char *mlx5_pci_drvinit_fn_ ## nm; \ + RTE_INIT(mlx5_pci_drvinit_fn_ ##drv) \ + { \ + (drv).driver.name = RTE_STR(nm); \ + rte_mlx5_pci_driver_register(&drv); \ + } \ + RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _RTE_BUS_MLX5_PCI_H_ */ diff --git a/drivers/bus/mlx5_pci/rte_bus_mlx5_pci_version.map b/drivers/bus/mlx5_pci/rte_bus_mlx5_pci_version.map new file mode 100644 index 000000000..4cfd3db10 --- /dev/null +++ b/drivers/bus/mlx5_pci/rte_bus_mlx5_pci_version.map @@ -0,0 +1,5 @@ +INTERNAL { + global: + + rte_mlx5_pci_driver_register; +}; From patchwork Fri Jul 3 13:46:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73014 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4DBA7A0519; Fri, 3 Jul 2020 15:48:17 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8C6D21DC15; Fri, 3 Jul 2020 15:47:17 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00070.outbound.protection.outlook.com [40.107.0.70]) by dpdk.org (Postfix) with ESMTP id 9220A1DC07 for ; Fri, 3 Jul 2020 15:47:15 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IW1VYgcpxO1+WHQw1Lzfl8k0LrcX6gFKcyvT0TKqgOOU88cvPwHb3XWd130des4UZy6bbyFIS4zoK1zaY1MgLiwemO8bTe8im/6/26yvZ0xGMHpdUew6keDKMFwNJv6WJpbHIwd7TKOJJGzRDTIh4h10bjBRA2mv7BdNlfM5IRvF/LfOw4lvPM6dhVKkK6Or8Hrsh6qXMuTThUy9c2Tj9pxCjWdz1ZB7vTYta5e3vfdmqik1ksSZiq8F+D32OnQi1o8hGq5cBU8c8aR7C85G0pRL4vp10I0ApmMH4VKyJMVDjIMpwrsGVk6zCIqfIXeHBJac3ms5ogQAvG/XIKrlCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LiPvIIBtyOfju0/I18rlnsFSj1ltxNW8ZgML+ndNf0s=; b=M+eS7vgP1Ka0CTzTVecnk0Tasoo6q5CxCjCdMhI0SB7cfDAHuqvq8Wtn1KMPdpItpvv2lWTzH122sBsB1cy5xGnQFebO7xcsKZCYLGc4Q3zDI2PDFpEMUPtysuR741SiHNU4HTO3vsc89P9KbdafQ8IhnuXXpYK6WGpYQReuKmK1nFUSpKJROLkaM08VwDQahtEDyCpgZRe9aX3QWMuATRLyS/dHPOReQviOrCmCfuUmwdR7+0bXV2T+gxN4l6ppfcEdgrrVc9Agonkvrya2r3OgMxg6WPttqcdgjhLc+v904XTCKGZX3EQo1dlJeNTR1+rjsJCa4Q4hKui4EzdlRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LiPvIIBtyOfju0/I18rlnsFSj1ltxNW8ZgML+ndNf0s=; b=iuI5VNuYtHaxo+cyPjUgT9phtASaX9a1x4hJtkzuW011eaIThGdaJDPGOsEHhzLWIQIDkZrGAcL0Ly7IXMmXOQOChWOhjuxMC5MkuYgpml54beDYTRqbTOWEIR3IYUvB+jlRKy1thuyxZagovFlvoUlqetGDu230z5qsKaE8bh4= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3346.eurprd05.prod.outlook.com (2603:10a6:205:9::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:13 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:13 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:38 +0300 Message-Id: <20200703134641.386297-8-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:12 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 89a4ce9d-acb1-4b01-a3dc-08d81f579766 X-MS-TrafficTypeDiagnostic: AM4PR05MB3346: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:619; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oJdIED2dmVKbc4s7D9fRtNdBjLnyLFMk1t4YhPR7ETT+lm6ru1zZDm0zxEPWZzK8TLiL++csZh2DLsROP65un86lDtUNb37qN6yC1cv3s9ckzPEqLYd45Pe7WgJD8B6AQoGeNjM48GXbCYLfqgJxcac4T5SeLOa53R0nggvk5CR90mT4tLwOIsSVT/cLZXAwkH306CT6NIlV0aJalitRXEHhMzeTbAWmnjA/IBBbabkyOVtSw0zO0N+HaYZecxQTAtIpCFMDi4vKvkCEgWkf5Myvp0j16jfQUnyST95G5VRwQA0M4+Hea1ncWKwLFK1Xi/ppUsql2wdG+95r7+/CSA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(366004)(396003)(376002)(346002)(136003)(6506007)(83380400001)(107886003)(66946007)(2906002)(186003)(86362001)(16526019)(26005)(8676002)(8936002)(6512007)(316002)(4326008)(478600001)(30864003)(1076003)(6666004)(52116002)(5660300002)(66556008)(66476007)(2616005)(956004)(36756003)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: iTMnP/eKbR18aP3HQ5h+JI6FB4ni8E/rJhx1Tl69x1MXRMZ/ISDW9qYee2mYH3HYNQkhgZueEXu853csIJ+8QI2zQMsXTV7+TeKq5VSOkEEinywZSu+YDwX8lzcrXIqw2wNSMwsFN0sZBzEeFgS59u/xvs7+/p7rlLJDIHZalQVItqHt2XQStRxpcnvxa5c8HWR/kCXgL4hF/7szK5KksXP3CDHwi8/bQEKHmK8xj2n2TZDo/eOJUvT8h++21r7vS7LOLFNdPqgEPut+Fe85VDQvp/CUnWyCYBpl85XzF09vlH9r490oQbcYch4+UhJtWkKYluaMr1G10i8qBQF84R+PuBDWmi8qp/ZK1Kro3FCZokjkHLHZeQZE+23R/jDhxHaZLik65zlxpSEELHp818bCeDQw5kuKpA/mOwYQkxEb++yOjMpKSZaWPenjOCW6Adbnr/DbKyPKsH4UIRz5tqKjDxhmxso+1JdCR0usXcMdN+bOSdcf3Po+j2mAjgha X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89a4ce9d-acb1-4b01-a3dc-08d81f579766 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:13.8635 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vN7ixd/PnPoeir8bNtBEXlMnHY1cFXDm9ogZf/A0i7EFDJifiO6unvjIHXCy4ucKLufx0gaBW1VxvANp8mnmyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3346 Subject: [dpdk-dev] [PATCH v4 07/10] bus/mlx5_pci: register a PCI driver 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" Create a mlx5 bus driver framework for invoking drivers of multiple classes who have registered with the mlx5_pci bus driver. Validate user class arguments for supported class combinations. Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- Changelog: v3->v4: - Fixed dma_map error unwinding flow to follow same order for unmap v2->v3: - Addressed comments from Asaf - Using full names in function names - Added new line before function name in multiple functions - Added example string to parse for multiple classes - Dropped mlx5 prefix from static function - Addressed comments from Matan. - Renamed mlx5_valid_class_combo to mlx5_class_combinations - Added cross check for class drivers to support only 3 flags for now - Added full stop at the end of comment block. - Removed empty lines - Fixed issue to remove multiple classes for a driver - Using define for drv_flags at multiple places - Maintaining class driver list to keep load/unload order symmetric and mirror of each other. - Deriving drv_flags based on the class drivers - Using PCI address comparision helper instead of pointer comparision - Fixed alignment for id_table - Continue to probe_err if device is already probed - Perform dma map on best effort basis for all supported drivers - Removed drv_flags check - Dynamically build pci id table - Using PCI to mlx5 device helper routines v1->v2: - Address comments from Thomas and Gaetan - Enhanced driver to honor RTE_PCI_DRV_PROBE_AGAIN drv_flag - Use anonymous structure for class search and code changes around it - Define static for class comination array - Use RTE_DIM to find array size - Added OOM check for strdup() - Renamed copy variable to nstr_orig - Returning negagive error code - Returning directly if match entry found - Use compat condition check - Avoided cutting error message string - USe uint32_t datatype instead of enum mlx5_class - Changed logic to parse device arguments only once during probe() - Added check to fail driver probe if multiple classes register with DMA ops - Renamed function to parse_class_options --- drivers/bus/mlx5_pci/Makefile | 2 + drivers/bus/mlx5_pci/meson.build | 2 +- drivers/bus/mlx5_pci/mlx5_pci_bus.c | 508 ++++++++++++++++++++++++++++ 3 files changed, 511 insertions(+), 1 deletion(-) diff --git a/drivers/bus/mlx5_pci/Makefile b/drivers/bus/mlx5_pci/Makefile index de4ccd83f..1a005ee32 100644 --- a/drivers/bus/mlx5_pci/Makefile +++ b/drivers/bus/mlx5_pci/Makefile @@ -15,7 +15,9 @@ CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5 CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5 CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux CFLAGS += -I$(RTE_SDK)/drivers/bus/pci +CFLAGS += -D_DEFAULT_SOURCE LDLIBS += -lrte_eal +LDLIBS += -lrte_kvargs LDLIBS += -lrte_common_mlx5 LDLIBS += -lrte_pci -lrte_bus_pci diff --git a/drivers/bus/mlx5_pci/meson.build b/drivers/bus/mlx5_pci/meson.build index 64a17cbad..0532a9dfd 100644 --- a/drivers/bus/mlx5_pci/meson.build +++ b/drivers/bus/mlx5_pci/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2020 Mellanox Technologies Ltd -deps += ['pci', 'bus_pci', 'common_mlx5'] +deps += ['pci', 'bus_pci', 'common_mlx5', 'kvargs'] install_headers('rte_bus_mlx5_pci.h') sources = files('mlx5_pci_bus.c') diff --git a/drivers/bus/mlx5_pci/mlx5_pci_bus.c b/drivers/bus/mlx5_pci/mlx5_pci_bus.c index 66db3c7b0..d6e6da3dc 100644 --- a/drivers/bus/mlx5_pci/mlx5_pci_bus.c +++ b/drivers/bus/mlx5_pci/mlx5_pci_bus.c @@ -2,13 +2,521 @@ * Copyright 2020 Mellanox Technologies, Ltd */ +#include +#include #include "rte_bus_mlx5_pci.h" +#include +struct mlx5_pci_device { + struct rte_pci_device *pci_dev; + TAILQ_ENTRY(mlx5_pci_device) next; + uint32_t classes_loaded; +}; + +/* Head of list of class drivers. */ static TAILQ_HEAD(mlx5_pci_bus_drv_head, rte_mlx5_pci_driver) drv_list = TAILQ_HEAD_INITIALIZER(drv_list); +/* Head of mlx5 pci devices. */ +static TAILQ_HEAD(mlx5_pci_devices_head, mlx5_pci_device) devices_list = + TAILQ_HEAD_INITIALIZER(devices_list); + +static const struct { + const char *name; + unsigned int dev_class; +} mlx5_classes[] = { + { .name = "vdpa", .dev_class = MLX5_CLASS_VDPA }, + { .name = "net", .dev_class = MLX5_CLASS_NET }, +}; + +static const unsigned int mlx5_class_combinations[] = { + MLX5_CLASS_NET, + MLX5_CLASS_VDPA, + /* New class combination should be added here. + * For example a new multi class device combination + * can be MLX5_CLASS_FOO | MLX5_CLASS_BAR. + */ +}; + +static int +class_name_to_value(const char *class_name) +{ + unsigned int i; + + for (i = 0; i < RTE_DIM(mlx5_classes); i++) { + if (strcmp(class_name, mlx5_classes[i].name) == 0) + return mlx5_classes[i].dev_class; + } + return -EINVAL; +} + +static struct rte_mlx5_pci_driver * +class_driver_get(uint32_t class) +{ + struct rte_mlx5_pci_driver *driver; + + TAILQ_FOREACH(driver, &drv_list, next) { + if (driver->dev_class == class) + return driver; + } + return NULL; +} + +static int +bus_cmdline_options_handler(__rte_unused const char *key, + const char *class_names, void *opaque) +{ + int *ret = opaque; + char *nstr_org; + int class_val; + char *found; + char *nstr; + + *ret = 0; + nstr = strdup(class_names); + if (!nstr) { + *ret = -ENOMEM; + return *ret; + } + nstr_org = nstr; + while (nstr) { + /* Extract each individual class name. Multiple + * class key,value is supplied as class=net:vdpa:foo:bar. + */ + found = strsep(&nstr, ":"); + if (!found) + continue; + /* Check if its a valid class. */ + class_val = class_name_to_value(found); + if (class_val < 0) { + *ret = -EINVAL; + goto err; + } + *ret |= class_val; + } +err: + free(nstr_org); + if (*ret < 0) + DRV_LOG(ERR, "Invalid mlx5 class options %s." + " Maybe typo in device class argument setting?", + class_names); + return *ret; +} + +static int +parse_class_options(const struct rte_devargs *devargs) +{ + const char *key = MLX5_CLASS_ARG_NAME; + struct rte_kvargs *kvlist; + int ret = 0; + + if (devargs == NULL) + return 0; + kvlist = rte_kvargs_parse(devargs->args, NULL); + if (kvlist == NULL) + return 0; + if (rte_kvargs_count(kvlist, key)) + rte_kvargs_process(kvlist, key, bus_cmdline_options_handler, + &ret); + rte_kvargs_free(kvlist); + return ret; +} + void rte_mlx5_pci_driver_register(struct rte_mlx5_pci_driver *driver) { TAILQ_INSERT_TAIL(&drv_list, driver, next); } + +static bool +mlx5_bus_match(const struct rte_mlx5_pci_driver *drv, + const struct rte_pci_device *pci_dev) +{ + const struct rte_pci_id *id_table; + + for (id_table = drv->pci_driver.id_table; id_table->vendor_id != 0; + id_table++) { + /* Check if device's ids match the class driver's ids. */ + if (id_table->vendor_id != pci_dev->id.vendor_id && + id_table->vendor_id != PCI_ANY_ID) + continue; + if (id_table->device_id != pci_dev->id.device_id && + id_table->device_id != PCI_ANY_ID) + continue; + if (id_table->subsystem_vendor_id != + pci_dev->id.subsystem_vendor_id && + id_table->subsystem_vendor_id != PCI_ANY_ID) + continue; + if (id_table->subsystem_device_id != + pci_dev->id.subsystem_device_id && + id_table->subsystem_device_id != PCI_ANY_ID) + continue; + if (id_table->class_id != pci_dev->id.class_id && + id_table->class_id != RTE_CLASS_ANY_ID) + continue; + return true; + } + return false; +} + +static int +is_valid_class_combination(uint32_t user_classes) +{ + unsigned int i; + + /* Verify if user specified valid supported combination. */ + for (i = 0; i < RTE_DIM(mlx5_class_combinations); i++) { + if (mlx5_class_combinations[i] == user_classes) + return 0; + } + /* Not found any valid class combination. */ + return -EINVAL; +} + +static struct mlx5_pci_device * +pci_to_mlx5_device(const struct rte_pci_device *pci_dev) +{ + struct mlx5_pci_device *dev; + + TAILQ_FOREACH(dev, &devices_list, next) { + if (dev->pci_dev == pci_dev) + return dev; + } + return NULL; +} + +static bool +device_class_enabled(const struct mlx5_pci_device *device, uint32_t class) +{ + return (device->classes_loaded & class) ? true : false; +} + +static void +dev_release(struct mlx5_pci_device *dev) +{ + TAILQ_REMOVE(&devices_list, dev, next); + rte_free(dev); +} + +static int +class_drivers_remove(struct mlx5_pci_device *dev, uint32_t enabled_classes) +{ + struct rte_mlx5_pci_driver *driver; + int local_ret = -ENODEV; + unsigned int i = 0; + int ret = 0; + + enabled_classes &= dev->classes_loaded; + while (enabled_classes) { + driver = class_driver_get(RTE_BIT(i)); + if (driver) { + local_ret = driver->pci_driver.remove(dev->pci_dev); + if (!local_ret) + dev->classes_loaded &= ~RTE_BIT(i); + else if (ret == 0) + ret = local_ret; + } + enabled_classes &= ~RTE_BIT(i); + i++; + } + if (local_ret) + ret = local_ret; + return ret; +} + +static int +class_drivers_probe(struct mlx5_pci_device *dev, + struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, uint32_t user_classes) +{ + struct rte_mlx5_pci_driver *driver; + uint32_t enabled_classes = 0; + bool already_loaded; + int ret; + + TAILQ_FOREACH(driver, &drv_list, next) { + if ((driver->dev_class & user_classes) == 0) + continue; + if (!mlx5_bus_match(driver, pci_dev)) + continue; + already_loaded = dev->classes_loaded & driver->dev_class; + if (already_loaded && + !(driver->pci_driver.drv_flags & RTE_PCI_DRV_PROBE_AGAIN)) { + DRV_LOG(ERR, "Device %s is already probed\n", + pci_dev->device.name); + ret = -EEXIST; + goto probe_err; + } + ret = driver->pci_driver.probe(pci_drv, pci_dev); + if (ret < 0) { + DRV_LOG(ERR, "Failed to load class driver = %s.\n", + driver->pci_driver.driver.name); + goto probe_err; + } + enabled_classes |= driver->dev_class; + } + dev->classes_loaded |= enabled_classes; + return 0; +probe_err: + /* Only unload drivers which are enabled which were enabled + * in this probe instance. + */ + class_drivers_remove(dev, enabled_classes); + return ret; +} + +/** + * DPDK callback to register to probe multiple PCI class devices. + * + * @param[in] pci_drv + * PCI driver structure. + * @param[in] dev + * PCI device information. + * + * @return + * 0 on success, a negative errno value otherwise and rte_errno is set. + */ +static int +mlx5_bus_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, + struct rte_pci_device *pci_dev) +{ + struct mlx5_pci_device *dev; + uint32_t user_classes = 0; + bool new_device = false; + int ret; + + ret = parse_class_options(pci_dev->device.devargs); + if (ret < 0) + return ret; + user_classes = ret; + if (user_classes) { + /* Validate combination here. */ + ret = is_valid_class_combination(user_classes); + if (ret) { + DRV_LOG(ERR, "Unsupported mlx5 classes supplied."); + return ret; + } + } else { + /* Default to net class. */ + user_classes = MLX5_CLASS_NET; + } + dev = pci_to_mlx5_device(pci_dev); + if (!dev) { + dev = rte_zmalloc("mlx5_pci_device", sizeof(*dev), 0); + if (!dev) + return -ENOMEM; + dev->pci_dev = pci_dev; + TAILQ_INSERT_HEAD(&devices_list, dev, next); + new_device = true; + } + ret = class_drivers_probe(dev, pci_drv, pci_dev, user_classes); + if (ret) + goto class_err; + return 0; +class_err: + if (new_device) + dev_release(dev); + return ret; +} + +/** + * DPDK callback to remove one or more class devices for a PCI device. + * + * This function removes all class devices belong to a given PCI device. + * + * @param[in] pci_dev + * Pointer to the PCI device. + * + * @return + * 0 on success, the function cannot fail. + */ +static int +mlx5_bus_pci_remove(struct rte_pci_device *pci_dev) +{ + struct mlx5_pci_device *dev; + int ret; + + dev = pci_to_mlx5_device(pci_dev); + if (!dev) + return -ENODEV; + /* Matching device found, cleanup and unload class drivers. */ + ret = class_drivers_remove(dev, dev->classes_loaded); + if (!ret) + dev_release(dev); + return ret; +} + +static int +mlx5_bus_pci_dma_map(struct rte_pci_device *pci_dev, void *addr, + uint64_t iova, size_t len) +{ + struct rte_mlx5_pci_driver *class = NULL; + struct rte_mlx5_pci_driver *temp; + struct mlx5_pci_device *dev; + int ret = -EINVAL; + + dev = pci_to_mlx5_device(pci_dev); + if (!dev) + return -ENODEV; + TAILQ_FOREACH(class, &drv_list, next) { + if (device_class_enabled(dev, class->dev_class) && + class->pci_driver.dma_map) { + ret = class->pci_driver.dma_map(pci_dev, addr, + iova, len); + if (ret) + goto map_err; + } + } + return ret; +map_err: + TAILQ_FOREACH(temp, &drv_list, next) { + if (temp == class) + break; + if (device_class_enabled(dev, temp->dev_class) && + temp->pci_driver.dma_map && temp->pci_driver.dma_unmap) + temp->pci_driver.dma_unmap(pci_dev, addr, iova, len); + } + return ret; +} + +static int +mlx5_bus_pci_dma_unmap(struct rte_pci_device *pci_dev, void *addr, + uint64_t iova, size_t len) +{ + struct rte_mlx5_pci_driver *class; + struct mlx5_pci_device *dev; + int local_ret = -EINVAL; + int ret; + + dev = pci_to_mlx5_device(pci_dev); + if (!dev) + return -ENODEV; + ret = 0; + /* There is no unmap error recovery in current implementation. */ + TAILQ_FOREACH_REVERSE(class, &drv_list, mlx5_pci_bus_drv_head, next) { + if (device_class_enabled(dev, class->dev_class) && + class->pci_driver.dma_unmap) { + local_ret = class->pci_driver.dma_unmap(pci_dev, addr, + iova, len); + if (local_ret && (ret == 0)) + ret = local_ret; + } + } + if (local_ret) + ret = local_ret; + return ret; +} + +/* PCI ID table is build dynamically based on registered mlx5 + * class drivers. + */ +static struct rte_pci_id *mlx5_bus_pci_id_map; + +static int +pci_id_table_size_get(const struct rte_pci_id *id_table) +{ + int table_size = 0; + + for (; id_table->vendor_id != 0; id_table++) + table_size++; + return table_size; +} + +static bool +pci_id_exists(const struct rte_pci_id *id, int next_idx) +{ + int current_size = next_idx - 1; + int i; + + for (i = 0; i < current_size; i++) { + if (id->device_id == mlx5_bus_pci_id_map[i].device_id && + id->vendor_id == mlx5_bus_pci_id_map[i].vendor_id && + id->subsystem_vendor_id == + mlx5_bus_pci_id_map[i].subsystem_vendor_id && + id->subsystem_device_id == + mlx5_bus_pci_id_map[i].subsystem_device_id) + return true; + } + return false; +} + +static void +pci_id_insert(const struct rte_pci_id *id_table, int *next_idx) +{ + for (; id_table->vendor_id != 0; id_table++) { + if (!pci_id_exists(id_table, *next_idx)) { + /* New entry; add to the table. */ + mlx5_bus_pci_id_map[*next_idx] = *id_table; + (*next_idx)++; + } + } +} + +static int +pci_ids_table_build(void) +{ + struct rte_mlx5_pci_driver *first_driver; + struct rte_mlx5_pci_driver *driver; + const struct rte_pci_id *id_table; + int num_ids = 0; + int i = 0; + + TAILQ_FOREACH(driver, &drv_list, next) + num_ids += pci_id_table_size_get(driver->pci_driver.id_table); + if (!num_ids) + return -ENODEV; + /* Increase size by one for the termination entry of vendor_id = 0. */ + num_ids += 1; + mlx5_bus_pci_id_map = calloc(num_ids, sizeof(*mlx5_bus_pci_id_map)); + if (!mlx5_bus_pci_id_map) + return -ENOMEM; + first_driver = TAILQ_FIRST(&drv_list); + /* Copy the first class driver's ID table. */ + for (id_table = first_driver->pci_driver.id_table; + id_table->vendor_id != 0; id_table++, i++) + mlx5_bus_pci_id_map[i] = *id_table; + TAILQ_FOREACH(driver, &drv_list, next) { + /* We already added first driver; skip it. */ + if (driver == first_driver) + continue; + pci_id_insert(driver->pci_driver.id_table, &i); + } + mlx5_bus_pci_id_map[i].vendor_id = 0; + return 0; +} + +static bool mlx5_bus_registered; +static struct rte_pci_driver mlx5_bus_driver = { + .driver = { + .name = "mlx5_bus_pci", + }, + .probe = mlx5_bus_pci_probe, + .remove = mlx5_bus_pci_remove, + .dma_map = mlx5_bus_pci_dma_map, + .dma_unmap = mlx5_bus_pci_dma_unmap, +}; + +RTE_INIT(mlx5_bus_pci) +{ + struct rte_mlx5_pci_driver *class; + int ret; + + ret = pci_ids_table_build(); + if (ret) + return; + TAILQ_FOREACH(class, &drv_list, next) + mlx5_bus_driver.drv_flags |= class->pci_driver.drv_flags; + mlx5_bus_driver.id_table = mlx5_bus_pci_id_map; + rte_pci_register(&mlx5_bus_driver); + mlx5_bus_registered = true; +} + +RTE_FINI(mlx5_bus_pci_finish) +{ + if (mlx5_bus_registered) + rte_pci_unregister(&mlx5_bus_driver); + if (mlx5_bus_pci_id_map) + free(mlx5_bus_pci_id_map); +} +RTE_PMD_EXPORT_NAME(mlx5_bus_pci, __COUNTER__); +RTE_PMD_REGISTER_PCI_TABLE(mlx5_bus, mlx5_bus_pci_id_map); From patchwork Fri Jul 3 13:46:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73015 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B34DDA0519; Fri, 3 Jul 2020 15:48:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CA3B31DC18; Fri, 3 Jul 2020 15:47:19 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00075.outbound.protection.outlook.com [40.107.0.75]) by dpdk.org (Postfix) with ESMTP id 9C5D81DC07 for ; Fri, 3 Jul 2020 15:47:16 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iFoZ1nNzkVT0EQKIq+I1jdoEYXt76jCp4vnqsqeFatvVm7Fb87K5xcEWfTSOpN9HkKB0Iymqmu6JhQL7Ls/bRgrXrxZ0jxdwtLAWfOeVDSbnRv7am/+iOExyzicPKCoMZNfgOvPPNrGldF+1OX+WzohmkX4RBkGjALXboEEQob+RnfzfmIdFQ0Szb8iUyWXGZx81+wJIvqdoJ7w2XGseaD4WGdnahC55guTgz+N+bYHQet7KI8iGixMHc9/TPbKxVJLr07/3h2kSj5xDN86X+9ag/PtVsi8LVp4H1DwvBIpXxUEWjUZ1BTxQv82hcKj2/fghvzKmeC57DzrVfbZRuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9XJxAplkX0nRzB7KpaFVxDQybG4bmrr+Dfz0QIdG96A=; b=mixgMbheZaokV5n36ac5YptdahHzaVw171ckZSdyKgrpw7wMPFDCnvfvxy4rs1GyfM9GIAxtlBgy2vPF78U/CBxY6/CWv3/6JzlXd+324O1EKiBWd19B5Pyb7NYrduyg6ab7+lZyphhsLE4DPFta6gapUHgZ4sjhG9K23Yj3YdSvPtP4pGkfsD+rkxkhyhkC6dG10MSnn9C19B6P8QP5rO2mSq92Odo3BBcm113gfGvuqLztcRI31PSB/G4dHsKVEOWG3eJV825KzqJdOJgISvH4Rv3/xgIZxQ/+ZUz47BBIMr3IQr7XuZyW4Z63FUIWvybN6xitEnkrO/xHi1422g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9XJxAplkX0nRzB7KpaFVxDQybG4bmrr+Dfz0QIdG96A=; b=qDNnmZjMOaTAmnXFhzRlFDBkBZldxh6jtNXN+zsdNiAWAKxO5v8VaYV9bHldwVL/VBj1rzcjFOLCJLzuIOCXmDRVDPESLClVmZYzceBiRZft/MeiaK/mqC3q0j4U+UKCntz8RHURW8SQu4cn0F3/lD/fXkdVyV2SL9wiqgIfwnA= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3346.eurprd05.prod.outlook.com (2603:10a6:205:9::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:15 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:15 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:39 +0300 Message-Id: <20200703134641.386297-9-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:14 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1a54aba3-e61b-4b8d-4899-08d81f579869 X-MS-TrafficTypeDiagnostic: AM4PR05MB3346: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:655; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cCDCzPqx4QYX/uo7wjrcbYfbZ7eHU8OEOJCc7VTWebZVBL4noI18NiYWx2kFgz/gVqmb0Xe7+V12c9uA0J2sVO/dg9G/+KzZMQGN3zgzjxaIu/fH12F49ERWW5TyZz5uhlZgLU7r6quYcVPC1IbrJdr7pPco9ePo/v4S7dksszZSeGqcMVE4xIb0mHnmOvyloeyCHb/qoIsmlh/RYVJHYvt/fKP77XpL3kNcWfCw9y67oZTf0yQA6UYrvf31hWoMMEmfxqUf9ZV/fk6UlghuEvdjq6ZKYzrZgUYrbSQs0+qQtI1aU6017jUxOS9g/XDH1cllhY2b3sxYS3G2Q8rPKw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(366004)(396003)(376002)(346002)(136003)(6506007)(83380400001)(107886003)(66946007)(2906002)(186003)(86362001)(16526019)(26005)(8676002)(8936002)(6512007)(316002)(4326008)(478600001)(1076003)(6666004)(52116002)(5660300002)(66556008)(66476007)(2616005)(956004)(36756003)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: PA812HmjL1TM5NncY2pQtMLcwOlDARTs0j3eZxy0yGwrDg0lq5/GQgsy0wTzYMwxMcUpn/rRMWU0FGDGMO4Xh/Ee8GaWlbkWu5ftj7qtPFsX6dLgNXzcEJm5hOt5UTgKsT1d3jDlJlBGURg4uekEq0R6O31J3m/psr2p57FLo0zwFjkiVnYpKga9H0QcyJShGagh7CepuoGAjSdoMxJwKYU8rkOgzu8StE70V6CRI9AkOcsRT3b8wvDQK+sNtzSIkdgJVQKQuS3oUAXbyeGzm7l/maoUI9bgU98dkbJSpkBoouinh/3g/uqfRRRdx/2b//UE+qQIV9zX2Djen9rPsbAYbL9qiaspOVvSVn/J6FaBFJgPgFFMOTB+MYIW0ks7GoUgee5Cpr0NYFdGK5AmTdPprrR20MZ278FvXVE/wynwTEDH6Rl1lxAXGPgQRZ3kqQIXM3bKZA0Hd4HY7qtsL9HP9l8hAsLv7PaTE7m++KCOWgQ/8cz/VISjm8jcqS/C X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a54aba3-e61b-4b8d-4899-08d81f579869 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:15.5625 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: E9hxVQZZhFTAfj+eJeXrzES1HWIit9f9AfrPrzxgqKeW4i2DmJ6xPDw+K/asYcZdbivaQ4O6irVBY2RyIcMTdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3346 Subject: [dpdk-dev] [PATCH v4 08/10] bus/mlx5_pci: enable net and vDPA to use mlx5 PCI bus driver 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" Enable class driver to match with the mlx5 pci devices. Migrate mlx5 net PMD and vdpa PMD to start using mlx5 common class driver. Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- Changelog: v2->v3: - Avoid static table v1->v2: - Migreate API from rte_driver to rte_pci_driver --- drivers/bus/Makefile | 3 +++ drivers/net/mlx5/Makefile | 3 ++- drivers/net/mlx5/linux/mlx5_os.c | 1 - drivers/net/mlx5/linux/mlx5_os.h | 1 + drivers/net/mlx5/meson.build | 2 +- drivers/net/mlx5/mlx5.c | 24 ++++++++++++++---------- drivers/net/mlx5/mlx5.h | 1 - drivers/vdpa/mlx5/Makefile | 3 ++- drivers/vdpa/mlx5/meson.build | 2 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 23 +++++++++++++---------- mk/rte.app.mk | 1 + 11 files changed, 38 insertions(+), 26 deletions(-) diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile index cea3b55e6..f96caa5ec 100644 --- a/drivers/bus/Makefile +++ b/drivers/bus/Makefile @@ -9,6 +9,9 @@ DIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc endif DIRS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga DIRS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci +ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)),y) +DIRS-y += mlx5_pci +endif DIRS-$(CONFIG_RTE_LIBRTE_VDEV_BUS) += vdev DIRS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile index a458402dc..1cea7cd07 100644 --- a/drivers/net/mlx5/Makefile +++ b/drivers/net/mlx5/Makefile @@ -45,16 +45,17 @@ CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5 CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5/linux CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5 +CFLAGS += -I$(RTE_SDK)/drivers/bus/mlx5_pci CFLAGS += -D_BSD_SOURCE CFLAGS += -D_DEFAULT_SOURCE CFLAGS += -D_XOPEN_SOURCE=600 CFLAGS += $(WERROR_FLAGS) CFLAGS += -Wno-strict-prototypes LDLIBS += -lrte_common_mlx5 +LDLIBS += -lrte_bus_mlx5_pci LDLIBS += -lm LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -LDLIBS += -lrte_bus_pci # A few warnings cannot be avoided in external headers. CFLAGS += -Wno-error=cast-qual diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index 2dc57b20e..b6042b7ef 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -1321,7 +1321,6 @@ mlx5_os_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, strerror(rte_errno)); return -rte_errno; } - MLX5_ASSERT(pci_drv == &mlx5_driver); errno = 0; ibv_list = mlx5_glue->get_device_list(&ret); if (!ibv_list) { diff --git a/drivers/net/mlx5/linux/mlx5_os.h b/drivers/net/mlx5/linux/mlx5_os.h index 31add3988..695722520 100644 --- a/drivers/net/mlx5/linux/mlx5_os.h +++ b/drivers/net/mlx5/linux/mlx5_os.h @@ -15,4 +15,5 @@ enum { #define PCI_DRV_FLAGS (RTE_PCI_DRV_INTR_LSC | \ RTE_PCI_DRV_INTR_RMV | \ RTE_PCI_DRV_PROBE_AGAIN) + #endif /* RTE_PMD_MLX5_OS_H_ */ diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build index e95ce0267..26699a79b 100644 --- a/drivers/net/mlx5/meson.build +++ b/drivers/net/mlx5/meson.build @@ -8,7 +8,7 @@ if not (is_linux or is_windows) subdir_done() endif -deps += ['hash', 'common_mlx5'] +deps += ['hash', 'common_mlx5', 'bus_mlx5_pci'] sources = files( 'mlx5.c', 'mlx5_ethdev.c', diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index bb10c63bb..2270055fe 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -1892,16 +1893,19 @@ static const struct rte_pci_id mlx5_pci_id_map[] = { } }; -struct rte_pci_driver mlx5_driver = { - .driver = { - .name = MLX5_DRIVER_NAME +static struct rte_mlx5_pci_driver mlx5_driver = { + .dev_class = MLX5_CLASS_NET, + .pci_driver = { + .driver = { + .name = MLX5_DRIVER_NAME, + }, + .id_table = mlx5_pci_id_map, + .probe = mlx5_os_pci_probe, + .remove = mlx5_pci_remove, + .dma_map = mlx5_dma_map, + .dma_unmap = mlx5_dma_unmap, + .drv_flags = PCI_DRV_FLAGS, }, - .id_table = mlx5_pci_id_map, - .probe = mlx5_os_pci_probe, - .remove = mlx5_pci_remove, - .dma_map = mlx5_dma_map, - .dma_unmap = mlx5_dma_unmap, - .drv_flags = PCI_DRV_FLAGS, }; /** @@ -1919,7 +1923,7 @@ RTE_INIT_PRIO(rte_mlx5_pmd_init, CLASS) mlx5_set_cksum_table(); mlx5_set_swp_types_table(); if (mlx5_glue) - rte_pci_register(&mlx5_driver); + rte_mlx5_pci_driver_register(&mlx5_driver); } RTE_PMD_EXPORT_NAME(net_mlx5, __COUNTER__); diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 46e66eb1c..df7b5eb87 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -129,7 +129,6 @@ struct mlx5_local_data { }; extern struct mlx5_shared_data *mlx5_shared_data; -extern struct rte_pci_driver mlx5_driver; /* Dev ops structs */ extern const struct eth_dev_ops mlx5_os_dev_ops; diff --git a/drivers/vdpa/mlx5/Makefile b/drivers/vdpa/mlx5/Makefile index 8a1c2eab5..9bb5dfdbf 100644 --- a/drivers/vdpa/mlx5/Makefile +++ b/drivers/vdpa/mlx5/Makefile @@ -24,13 +24,14 @@ CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5_vdpa CFLAGS += -I$(RTE_SDK)/lib/librte_sched CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5 +CFLAGS += -I$(RTE_SDK)/drivers/bus/mlx5_pci CFLAGS += -D_BSD_SOURCE CFLAGS += -D_DEFAULT_SOURCE CFLAGS += -D_XOPEN_SOURCE=600 CFLAGS += $(WERROR_FLAGS) CFLAGS += -Wno-strict-prototypes LDLIBS += -lrte_common_mlx5 -LDLIBS += -lrte_eal -lrte_vhost -lrte_kvargs -lrte_pci -lrte_bus_pci -lrte_sched +LDLIBS += -lrte_eal -lrte_vhost -lrte_kvargs -lrte_pci -lrte_bus_mlx5_pci -lrte_sched LDLIBS += -pthread # A few warnings cannot be avoided in external headers. diff --git a/drivers/vdpa/mlx5/meson.build b/drivers/vdpa/mlx5/meson.build index 2963aad71..f4175c34e 100644 --- a/drivers/vdpa/mlx5/meson.build +++ b/drivers/vdpa/mlx5/meson.build @@ -8,7 +8,7 @@ if not is_linux endif fmt_name = 'mlx5_vdpa' -deps += ['hash', 'common_mlx5', 'vhost', 'pci', 'bus_pci', 'eal', 'sched'] +deps += ['hash', 'common_mlx5', 'vhost', 'pci', 'bus_mlx5_pci', 'eal', 'sched'] sources = files( 'mlx5_vdpa.c', 'mlx5_vdpa_mem.c', diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c index f043166ef..09c9cb935 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include @@ -657,7 +657,7 @@ mlx5_vdpa_config_get(struct rte_devargs *devargs, struct mlx5_vdpa_priv *priv) } /** - * DPDK callback to register a PCI device. + * DPDK callback to register a mlx5 PCI bus device. * * This function spawns vdpa device out of a given PCI device. * @@ -829,14 +829,17 @@ static const struct rte_pci_id mlx5_vdpa_pci_id_map[] = { } }; -static struct rte_pci_driver mlx5_vdpa_driver = { - .driver = { - .name = "mlx5_vdpa", +static struct rte_mlx5_pci_driver mlx5_vdpa_driver = { + .dev_class = MLX5_CLASS_VDPA, + .pci_driver = { + .driver = { + .name = "mlx5_vdpa", + }, + .id_table = mlx5_vdpa_pci_id_map, + .probe = mlx5_vdpa_pci_probe, + .remove = mlx5_vdpa_pci_remove, + .drv_flags = 0, }, - .id_table = mlx5_vdpa_pci_id_map, - .probe = mlx5_vdpa_pci_probe, - .remove = mlx5_vdpa_pci_remove, - .drv_flags = 0, }; /** @@ -849,7 +852,7 @@ RTE_INIT_PRIO(rte_mlx5_vdpa_init, CLASS) if (mlx5_vdpa_logtype >= 0) rte_log_set_level(mlx5_vdpa_logtype, RTE_LOG_NOTICE); if (mlx5_glue) - rte_pci_register(&mlx5_vdpa_driver); + rte_mlx5_pci_driver_register(&mlx5_vdpa_driver); } RTE_PMD_EXPORT_NAME(net_mlx5_vdpa, __COUNTER__); diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 0ce8cf541..d7c1d90e4 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -203,6 +203,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += -lrte_pmd_memif _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -lrte_pmd_mlx4 ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)),y) _LDLIBS-y += -lrte_common_mlx5 +_LDLIBS-y += -lrte_bus_mlx5_pci endif _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += -lrte_pmd_mlx5 _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += -lrte_pmd_mlx5_vdpa From patchwork Fri Jul 3 13:46:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73016 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 194B6A0519; Fri, 3 Jul 2020 15:48:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 003B11DC1E; Fri, 3 Jul 2020 15:47:21 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00053.outbound.protection.outlook.com [40.107.0.53]) by dpdk.org (Postfix) with ESMTP id AF3091DC18 for ; Fri, 3 Jul 2020 15:47:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GGz2xy1dYv3PqfAnq+ibVhb+o/fSAwkWESXKQPFWd9KEQApNAmsU3Occev8Y9QAm+0HPKBrIRmBWCcoW44+N2ZmnoqoS9g6CnKDQUu0mNzZq5VODZk5f/G9Qh/GEGlOAdF9/6KguDvuDcfPtK9KAPwZF3qrNYv4v9yZKbNe/aZY4IO48NfNo5rBYjAYUIzml4dpDmIVt0Bdlg51FYS88SsZLOjFQ0eylRpDWocbw96idELi3ZXl/YWNwXxBRJXjAqDcILWCEBpuUdl8QxwnZW44BpIX2fHM0ce359SToOy3vBXp3O6AXFZvTcNvwbVDFxptiJlI4M0VyexQ8zHHK1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lgmbu8YCej6yknLxRQkkI4F5+lGEnViI9QpcpIpe8zs=; b=JJwoovXNCICB3d6T7aqic3C3KPVb+2MO3A978apboVJrW4xiDCAlJMIZ9OvU/PRXsQ+AMDDyZidSERoW2sxd09MCGdIaxPojJQuNZ2IteLcaqby4fXr7PRyqMWjQGtjWOo0F6wwInBboEvGQOvzM1mcPJGaQJ8U2xV86SfukXcv3E4LEXs1qMDuZXKzR8SiV2vht5RUUcXF2/2xojM42URT8Tc9OO2lWF2O0dyu5Pn7woopaifyx+2KRCKRbSnM+dtJivX9ztIA8NtoJiQWtZNdOwWCKuGDkev4PAew697JoneooI8JxRK4VcJmKSKpLZlgm3O11Yd34Kk5TIqT9sQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lgmbu8YCej6yknLxRQkkI4F5+lGEnViI9QpcpIpe8zs=; b=KtaJuFpo7aaTq2n0mtCXUK0SGPuelQdrw7t6FqxbZ6oWyX6Zht4h+9zMCSc/NTxZvFmIe9a8n+FgtRyYwZ31l42TlTlaCOS+L31zq2ZJjEkLN+r1GNTgJzUoKSu2uaOVUAqTeFyA2trWMnV9k9pziSPY3ZpHuBVbu49GnJH3MHI= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3346.eurprd05.prod.outlook.com (2603:10a6:205:9::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:17 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:17 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:40 +0300 Message-Id: <20200703134641.386297-10-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:16 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8ad9c804-26b9-40b0-4008-08d81f5799a7 X-MS-TrafficTypeDiagnostic: AM4PR05MB3346: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:773; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1+kCSEUUSGX7TvIkl7qfwH6ndzX0eiGOZvHmdXReGc3bj953PXWgJOU6pUAiIQs0hXv5PtYPAHR3by2CsLSrWhvfwdDGOo6L84O+VOC0D8lDruw+tUOzgVvs101wkmES5/em1s/Zq5QEwKEGAheznL7nZqtg7HCpEpJg8SddqgGEDrLExHd9YQobsNTdvbMyx1axif94UvzHlp5hO/mBLl2Ha+l2nYrvcidRkPQZNkPEnygIYtlJEdn9ytq0LMnw4AmRx/XYUluaoIHfhmqTdBl0Vy/iCRL1MvmeZEggXYFcfEBodhQikKD7zoMbV+RB X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(366004)(396003)(376002)(346002)(136003)(6506007)(83380400001)(107886003)(66946007)(2906002)(186003)(86362001)(16526019)(26005)(8676002)(8936002)(6512007)(316002)(4326008)(478600001)(1076003)(6666004)(52116002)(5660300002)(66556008)(66476007)(2616005)(956004)(36756003)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: p0bvSvpo3kuB+VPLH3kgdINvzm498BA+IkPPvoX21ZS+7TYooit05U4AkzsHHQoIFlOJSSqhgV8kHNKovSim8qD0nFCXjbNxJx6i9Rkfuz3UcHDpQi+9YXodIJ1uHngg6urkGG5Ih8u6gaY5BNUa5XGIW2UAhUewalnbDBoHdiOB++LHBxAOdOBMFNZt7O/2HP5fykAXxp0IdkInr5s6OHfRYDURKJpP5ItnpocNt1bE6vrCPX0I0j1WD+5EVtPeBi1sEv2uEcADKN1JZ5kMBdURTf403FRabfjwmAWqbk5KrdV+uROmK/+ZVObfQqoLPC/+pWsfiLVQB1PLgTEPXXUCnHQoDPTtIzcBZPxUf2RB31rFKWdO4SjTmo4+opHlbQ6I7+hL+IM4yPqWcCgvObGI9l2OfQg7KS0eAWb7hX42fLuHeY5OK+KzQ4XTBTo/AdnDa4uGKG8xKJirNqS7waMZ8o31HlvnSkzZ953lf+G3AMl3v4IlP9RP4s6ay2/8 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8ad9c804-26b9-40b0-4008-08d81f5799a7 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:17.4905 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7BQv29xEwhkPzxodgujr6Qlz6vVuZ3WicWS+4XWaZ0UobO9kt25Nj6JoHrdgop4ygwPncnQp/dseYebiuNTVKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3346 Subject: [dpdk-dev] [PATCH v4 09/10] common/mlx5: remove class checks from individual driver 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" Now that mlx5_pci bus does the check for enabled classes and performs probe(), remove() of associated classes, individual class driver doesn't need to check if other driver is enabled. Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- Changelog: v2->v3: - Removed empty line v1->v2: - New patch --- drivers/common/mlx5/mlx5_common.c | 37 ------------------- drivers/common/mlx5/mlx5_common.h | 2 - .../common/mlx5/rte_common_mlx5_version.map | 2 - drivers/net/mlx5/linux/mlx5_os.c | 5 --- drivers/net/mlx5/linux/mlx5_os.h | 1 - drivers/vdpa/mlx5/mlx5_vdpa.c | 5 --- 6 files changed, 52 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index 0ce5e4db1..771e046c1 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -22,43 +22,6 @@ const struct mlx5_glue *mlx5_glue; uint8_t haswell_broadwell_cpu; -static int -mlx5_class_check_handler(__rte_unused const char *key, const char *value, - void *opaque) -{ - enum mlx5_class *ret = opaque; - - if (strcmp(value, "vdpa") == 0) { - *ret = MLX5_CLASS_VDPA; - } else if (strcmp(value, "net") == 0) { - *ret = MLX5_CLASS_NET; - } else { - DRV_LOG(ERR, "Invalid mlx5 class %s. Maybe typo in device" - " class argument setting?", value); - *ret = MLX5_CLASS_INVALID; - } - return 0; -} - -enum mlx5_class -mlx5_class_get(struct rte_devargs *devargs) -{ - struct rte_kvargs *kvlist; - const char *key = MLX5_CLASS_ARG_NAME; - enum mlx5_class ret = MLX5_CLASS_NET; - - if (devargs == NULL) - return ret; - kvlist = rte_kvargs_parse(devargs->args, NULL); - if (kvlist == NULL) - return ret; - if (rte_kvargs_count(kvlist, key)) - rte_kvargs_process(kvlist, key, mlx5_class_check_handler, &ret); - rte_kvargs_free(kvlist); - return ret; -} - - /* In case this is an x86_64 intel processor to check if * we should use relaxed ordering. */ diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h index 62861af05..ca66c4033 100644 --- a/drivers/common/mlx5/mlx5_common.h +++ b/drivers/common/mlx5/mlx5_common.h @@ -243,8 +243,6 @@ struct mlx5_klm { LIST_HEAD(mlx5_dbr_page_list, mlx5_devx_dbr_page); -__rte_internal -enum mlx5_class mlx5_class_get(struct rte_devargs *devargs); __rte_internal void mlx5_translate_port_name(const char *port_name_in, struct mlx5_switch_info *port_info_out); diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map index ae57ebdba..01b4358a0 100644 --- a/drivers/common/mlx5/rte_common_mlx5_version.map +++ b/drivers/common/mlx5/rte_common_mlx5_version.map @@ -1,8 +1,6 @@ INTERNAL { global: - mlx5_class_get; - mlx5_common_verbs_reg_mr; mlx5_common_verbs_dereg_mr; diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index b6042b7ef..2bd2b664d 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -1308,11 +1308,6 @@ mlx5_os_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, struct mlx5_dev_config dev_config; int ret; - if (mlx5_class_get(pci_dev->device.devargs) != MLX5_CLASS_NET) { - DRV_LOG(DEBUG, "Skip probing - should be probed by other mlx5" - " driver."); - return 1; - } if (rte_eal_process_type() == RTE_PROC_PRIMARY) mlx5_pmd_socket_init(); ret = mlx5_init_once(); diff --git a/drivers/net/mlx5/linux/mlx5_os.h b/drivers/net/mlx5/linux/mlx5_os.h index 695722520..31add3988 100644 --- a/drivers/net/mlx5/linux/mlx5_os.h +++ b/drivers/net/mlx5/linux/mlx5_os.h @@ -15,5 +15,4 @@ enum { #define PCI_DRV_FLAGS (RTE_PCI_DRV_INTR_LSC | \ RTE_PCI_DRV_INTR_RMV | \ RTE_PCI_DRV_PROBE_AGAIN) - #endif /* RTE_PMD_MLX5_OS_H_ */ diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c index 09c9cb935..41d69e8a8 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c @@ -680,11 +680,6 @@ mlx5_vdpa_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, struct mlx5_hca_attr attr; int ret; - if (mlx5_class_get(pci_dev->device.devargs) != MLX5_CLASS_VDPA) { - DRV_LOG(DEBUG, "Skip probing - should be probed by other mlx5" - " driver."); - return 1; - } ibv = mlx5_vdpa_get_ib_device_match(&pci_dev->addr); if (!ibv) { DRV_LOG(ERR, "No matching IB device for PCI slot " From patchwork Fri Jul 3 13:46:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73017 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 529C6A0519; Fri, 3 Jul 2020 15:48:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0D6001DC25; Fri, 3 Jul 2020 15:47:22 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00051.outbound.protection.outlook.com [40.107.0.51]) by dpdk.org (Postfix) with ESMTP id 171F91DC1B for ; Fri, 3 Jul 2020 15:47:20 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pb/XOPXa0kmnHXkDOfYOFknWXeYV8JD2ku8l7JvUO6KU3oK1WFTHLPHDc3QY/JOpasuv4ZaiNbWjQO2G0Q8b6S9vcupa/EsSeW9mhFPzXuBChJHPmNu9v2MWnvQeBZ0L6otgPpTXpsORsflJO6rZYdZDAj4SansCCuhf65PqujAjxUtw1KiaEvU3fKEtXzk8oKf+vLyHxmpXvbs8gijQ5hCNy316pxC7t5yBrbW9X2571YC+W9cuPep0+aFH8FMs+O/wa5fONH/ngPD60HHzzd9pi6ESr3hH1MlqdF46mqsDHMLn0VcQOxpWO+fUSHtTrJYuiodbvS/WGfJx8ViFxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YCohx8P3QdLR8nZ8Oc1GFBcWG3uf9gK3Red8me9njiI=; b=VRhwDAYXEQ17/laGd43GaqG6WqjhpF/T26+Wk45FOdYJ0zOkc/qPGVYxg3dEpy4EWYlhQYEqhiGJi9LVs5N9s4U0GpucCxM0mNEXQYgF+FvDBqqPX0HQB3KEa1opqJImpuydHRzA316XuCmL6C57Y0jWdBENMS2BaeUubi8GLsFViH51IwoaqRgeYYFpf+8uaGKINnnYsLodGg6DRJ0/c0Cl14nxQ9+2SvMBy7U0C7N7Hlty4SFu0/Lvd1o6LUMamlnk2ijYEJ7b7Zbfz2yOLsktimiWKNnqZcqd4nLOkEaAyeFJDQtFOFgHeRrbDckL3nDlSzyEkRUr0VWH6T9zIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YCohx8P3QdLR8nZ8Oc1GFBcWG3uf9gK3Red8me9njiI=; b=l+eUBMPTvp9uuW7jyawI2aViJsw+Jzw+oZjfQfxySAuTa+SbHMZHIqiNMDRHnEXj2m4wHZCoTF3e8ejoipn6F1L5Fv9tACu8T/z+ku3KTvBuSPjKuQI7CgsyONrqWJGuAAPIRSlCLAoYKL8o0Z4CI0GCRa83EGoEl9fDdVDbOTM= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) by AM4PR05MB3346.eurprd05.prod.outlook.com (2603:10a6:205:9::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21; Fri, 3 Jul 2020 13:47:19 +0000 Received: from AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7]) by AM0PR05MB4866.eurprd05.prod.outlook.com ([fe80::d44d:a804:c730:d2b7%2]) with mapi id 15.20.3153.024; Fri, 3 Jul 2020 13:47:19 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com Cc: thomas@monjalon.net, orika@mellanox.com, matan@mellanox.com, Parav Pandit Date: Fri, 3 Jul 2020 16:46:41 +0300 Message-Id: <20200703134641.386297-11-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200703134641.386297-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200703134641.386297-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) To AM0PR05MB4866.eurprd05.prod.outlook.com (2603:10a6:208:c0::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0401CA0009.namprd04.prod.outlook.com (2603:10b6:803:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Fri, 3 Jul 2020 13:47:17 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [208.176.44.194] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e34a76c4-d00f-4d7f-9368-08d81f579a99 X-MS-TrafficTypeDiagnostic: AM4PR05MB3346: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1079; X-Forefront-PRVS: 045315E1EE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5GshXwVpYpnp2uJ+ZFowR23M3TcYeJ32LLsqFAzCYXpEZLyXRfH8cRWq9gQhI4ligGab7zELRPv0G+vnWXIcG+lUEmUGLSYxBsBFg2Y209PXTMM0KsVZsILRsFpAj6if6BTbPqtk1wBZZiB8511FCcJ/pkm4mi6iN4tZ3EaYSbODDOOQURaYyAsbC0wMTpq8OcdKHwvdKDDPf5UG3sni4EQxtAmOXSF6sIPXo5YqBa08CjQFPPDBH+u26Pg4OlpwCEtqXvm5FiIKhg5Qdq8zv5v9bkWyqcaHeUTOYIUmP95RDedJr2VL5oBkQDbR7kaX X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4866.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(366004)(396003)(376002)(346002)(136003)(6506007)(107886003)(66946007)(2906002)(186003)(86362001)(16526019)(26005)(8676002)(8936002)(6512007)(316002)(4326008)(478600001)(1076003)(4744005)(6666004)(52116002)(5660300002)(66556008)(66476007)(2616005)(956004)(36756003)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ClIgbaxG3xFGE3oq62BAVZ3xyamv9zdXRBcEYck/ugYWf7Hq6IXlCk54PtADUw2tlYs8+cjixe2Scas2Bq1EmhTbmybK3uItfhPFfWuKf1zNkzpTH69boR/oFdYkISroZrZ4zuF99nQvz/5GZhl+nYTKCOEfv2P0BQc5Lspj4JBV2oXtEF60d9vqG8nDOWjLrRzaz9EuW9Uzf3yY3Uy2FrtXBLFf8k8wJKnN/6/h8snoarAAyZIi1WgwwGNj0eDbhfMnRS9Zi/m/8T28o27avh1fXmwQWZ+HdC6Wxmh+x/KDAwB4sKnSViQ9KTGmdlHkTtgJL2QjUv8+0vJfqqJ6vF7OVlch+mkr6Q7q97g2xO1BQx5KVysWQ3xWCvLUqQbY6dP/im30SuidtR1h6YaNao4g/VnK4X3/7XyKZSnktIdLdT8FYlbMf/38h804hLkd6sbtUNZtrk69Z/mPoIOanKbdu3+rjiBbEbJViemQeL5+vskXalCUssKcKq6a1Sn1 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: e34a76c4-d00f-4d7f-9368-08d81f579a99 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB4866.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2020 13:47:19.1775 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hq32ymAYG7eCncEMyRGZb4OMaxbz9IQehBcS/faGn1VLy2MBpGk13ffCo5IiT+zezPy4Qtn5KXvsPQEx9AGriw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3346 Subject: [dpdk-dev] [PATCH v4 10/10] maintainers: add maintainers for mlx5 pci bus 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" Added maintainers for new mlx5 specific mlx5_pci bus. Signed-off-by: Parav Pandit Acked-by: Matan Azrad --- MAINTAINERS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 53a5e9a9e..e3fec55ca 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -517,6 +517,11 @@ Intel FPGA bus M: Rosen Xu F: drivers/bus/ifpga/ +Melllanox mlx5 PCI bus driver +M: Parav Pandit +M: Matan Azrad +F: drivers/bus/mlx5_pci + NXP buses M: Hemant Agrawal M: Sachin Saxena