From patchwork Thu Jul 9 07:34:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73583 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 344E1A0526; Thu, 9 Jul 2020 09:35:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 188041DC57; Thu, 9 Jul 2020 09:35:41 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2071.outbound.protection.outlook.com [40.107.20.71]) by dpdk.org (Postfix) with ESMTP id DFD381DC56 for ; Thu, 9 Jul 2020 09:35:39 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m4lS0TUgA083PCrmUnNwlbT6pJn3oAjJONYSjdvHK6ci5V1UzTdfbhhDat9ZtG0CwuKsRFkdXu3AbNtDq6FeeBBaLKojORcxhiTboi1laSZuNBav2/QpB/baBWBdQgY9iBGP2IGnHW9W+Z4qeQ7cXIh5ZvOL09FqeO0eum9K30Wahe5J80hQ5SQBLzCBzWEt6dCAO83un0Meo6mLYp+eRuLAD8MKev9jL4rMbmHVv7qS59xOLNbiO2uaLEkz3xhFgCoP6ta6bRsfp/v+9xGRQXBrhhrBQHUD4eEvFBHnc0BptReC3A72au0bT9GlQGqlyZwCAjEGD02/sp2pb68MOg== 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=nhzR/Ix8+zn8zpqX1kSmulajUdj7gy1tamEBGjdwZEA=; b=WHCqbbGm43jH38kupEli7i8FWJi4rHH6xNftJk5Qnd9KZoHoDidGMdYuDkpjKFIx6x9ICAfahbulcaP5jiVntax7hZ8vXQLUMJazo0I+ngTAjNOYELgVJqKjtpOC9RqVvd90c3kniZ+e2CermdG5RhtgggkcqAnqicHV6l5cLxcytJiG9M/VFz1u86LEJkJLEP4C4YqNX6YxBOda8opGtnE0OCTvrkPgp9ttfNZWW77XaV7Xcn6GipuQCs8ktMsSuWmXtgvMwjCVwwJh448g6lpux3mVXTlwWYn//WqBo3fKYUiQhNbiolwxo9k0BXwSpZIU0+HW0P3hf4dWO/lV1g== 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=nhzR/Ix8+zn8zpqX1kSmulajUdj7gy1tamEBGjdwZEA=; b=EDfVvzAQCosSGXANKg+HMr/PR4Z795udPslTomRaYP/W/4FJOxc0TaVe5PhY7RPHa8xAWdOH4QgCjVXI0+DDmBYbmdCvlpfXYinYdLqCzRvTZf5pFyz2b96x1vjZsIiig10wGZClm26PRmVy0MWP7pLgji33kgDVO88vDUhQVvo= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DBAPR05MB6936.eurprd05.prod.outlook.com (2603:10a6:10:18f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.23; Thu, 9 Jul 2020 07:35:38 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:35:38 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit , =?utf-8?q?Morten_Br?= =?utf-8?q?=C3=B8rup?= Date: Thu, 9 Jul 2020 10:34:44 +0300 Message-Id: <20200709073452.948894-2-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:35:18 +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: 8ea3900b-bdb0-4efc-7ac8-08d823daa1bb X-MS-TrafficTypeDiagnostic: DBAPR05MB6936: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2449; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: idgvu0LLYXvrJ4iwuEUwRypKa7yMFIJ0Uhav/Zdm7XZRao6NOh1jKeAjIJ6+I7ip8zMmOpW6540LiecUOZSqb/hlAkoIJeC8zwQ/IMmkUmC41aX4gpp22fPU6nx/EVP+/uD7zA6JK6C0b7AQ+uzh+v63GByLSAWhUGFxTrbYqbax9FCytLg674tKrhepbyLgLnXoMlQU32bZnSRJv95EcLWUiXwOocqDgzSDO5docOlwCDh195lpfYnt9YyAxp2sIrrUDgGrFIHHI2QSqlunRzbZ/cgUFYKcksfoz+zXez8jB9ofpcTD5HCflMEQEMaJbo5hYaXstNcW6irkxn849w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(136003)(396003)(39860400002)(346002)(376002)(66476007)(36756003)(4326008)(66556008)(1076003)(6486002)(6506007)(66946007)(6666004)(16526019)(186003)(26005)(52116002)(5660300002)(2906002)(478600001)(8936002)(8676002)(956004)(54906003)(2616005)(6512007)(86362001)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: JXS7c087OdVgVSgJ4uAUExF0je6Sggp0qtVWudREkfcYbs+SkaGfGQSdqtlXUrFW7jfEvvA/5phLZ8zN+rZbHWvQC17KdI1tRH8cMPo5rTej5280+43PvHPqusWDQBTj1Vj31wch9g+eYgj2ZJ95rfqouxaJR0KMZxLNOUOuMb599NGjfJuMulxAtWWueFiV8tBVLjZjVqBfcOKw77moSojhf7Xh8r12ioraWUCoKwccTUNHCpLuEZ32sDDm+OCZ1Y+SR79d/PENN1Cmk5BpDKWOhuH9Date0zJeUwMNbp0pF8NjvHlB31LacfoNDLwc4wK+TyWZqEjrzR44mCpw+ku/8FeqKnr/X28u7KvxSqOL1zn7zI3jqV4caix2z7TZXHZSf7gH5iRB7v0EMSWo3imbYFU7vd4olxxNBLQ150gAIuaqDHdWV5eqC7iV56v55Z65uVMCQntOy60sIGaFxi0xn0Cby6iR9vAgRf12ySpMPjicUjTXZ0KEo3EJC+xU X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8ea3900b-bdb0-4efc-7ac8-08d823daa1bb X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:35:38.6397 (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: aT5eGiutWDc7fjt2nkl5R4IyiBu27RNpYY0tlUNkzcKhh883dMqvcrKXe/IG7CUWRxLTrpGJ21GQhR+pvOHMiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR05MB6936 Subject: [dpdk-dev] [PATCH v5 1/9] 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: v4->v5: - Addressed comments from Morten Brørup - Renamed newly added macro to RTE_BIT64 - Added doxygen comment section for the macro v1->v2: - Addressed comments from Thomas and Gaten. - Avoided new file, added macro to rte_bitops.h --- lib/librte_eal/include/rte_bitops.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/librte_eal/include/rte_bitops.h b/lib/librte_eal/include/rte_bitops.h index 740927f3b..ca46a110f 100644 --- a/lib/librte_eal/include/rte_bitops.h +++ b/lib/librte_eal/include/rte_bitops.h @@ -17,6 +17,14 @@ #include #include +/** + * Get the uint64_t value for a specified bit set. + * + * @param nr + * The bit number in range of 0 to 63. + */ +#define RTE_BIT64(nr) (UINT64_C(1) << (nr)) + /*------------------------ 32-bit relaxed operations ------------------------*/ /** From patchwork Thu Jul 9 07:34:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73584 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 18012A0526; Thu, 9 Jul 2020 09:35:48 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9EA9F1DC92; Thu, 9 Jul 2020 09:35:44 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2044.outbound.protection.outlook.com [40.107.21.44]) by dpdk.org (Postfix) with ESMTP id AA1741DC90 for ; Thu, 9 Jul 2020 09:35:42 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mkHCIO/0j7dTO4Bc3AfYf6CTsDxyUXL28P8eGDBd7v3EDZ1CVTzb+ogCTfN1YwyFx04kvDDH3A9NnXGr50p4J67CbMVWGUwR5h9W9W9c0wuQK3c4IgoW5ofPrcp3xd5cg7NFVklW9r4QjhQQ3/BORFbDNh8HjjznvTmAGUEU5zfzF7t/VHkPARpA6hpp81C9HQqrV3RZh9br/ke6IHchTZvqNyMvdP0A+0U1SmZ7PT0LwQ86hjYSygcBu6Ldqb6RDRZJj6LxVaQcVfQVeeLs/6cNcBj9qUIVdIHMrhAKO2kEaoENLQO31LKQzrq/j3SXD2deDhmKwiR1095oqY3x7w== 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=nz08qjLEYXaDpVAoL28qVjHzXDqqRykZgnf4MeodWlXl/Jtb7s40/UtJDkWITtkJls6B1H3JP8Ufh0UFBwArH5kmqXWZvVnslwOLVUtarVweNPktQYWi8LRWCpHn0M+zOFE3teR5/1rzgy9PZERZ6CVO1K5sl/uH1Bi3JY62oVTWjSz0ZX/qhJG9V7KZzAYqANDnUhGRjrrkiEpKmvpHTqEmsTBuR1En0KIjGVIDzLAIAdydNNDMtO6DgHf7B+c2LJq2tlsd790D1lJ1Dk1/Jdxf1lbv74sGUPTBEScFUXmsbFiJsI6VaXmOv46ncMtbjsBASPIXCm2kEEx8HV+FIw== 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=awHTnpdsE6HX/GtaTGFcfVncCFkdXCC/RflFPkljgF2JHW4N5AD+H9JEHuFCNa+rezF5Z9wMtc//hx1cxbOUjUBXni3XZqbY8RWFhatXnJhy5txM6Y/hSj3p0BZiiIEnhLl3AGgYFr70XqGw1SBTT66mi5gW11P9BSgzMgqBZZY= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DBAPR05MB6936.eurprd05.prod.outlook.com (2603:10a6:10:18f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.23; Thu, 9 Jul 2020 07:35:42 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:35:42 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:45 +0300 Message-Id: <20200709073452.948894-3-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:35:39 +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: 0f61e8f9-2fdd-4e56-9123-08d823daae6d X-MS-TrafficTypeDiagnostic: DBAPR05MB6936: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /D+N26N4cKMD5WfnmypjfckrVv3jNd9d8eljFJNd6c96cgJbol2KrRshQqEjNSiMlNjfWRnXRUVXAXlfsf/JqX16j5aOyNuUf/znsyCKmtkv2K92a4OkzOcvkx/0lWnfSjI/mIfuXPWgQ59SH/6/yM0WfN0EaavKshwBw9q2Ord1742txHcqms6R9fn9KeuZjBfMlAXqLNjYR7fcKg/5vtwbZM3WB+oIJ1ZFFSBcq9lrO5Wlno4V1rFX3I2cIYLqxTWkxrsJCYMWZBiNplCtSMUTVhZjnKu7ssR8Ye8E2fCTRrLUlaf4YPHBj4e226nP X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(136003)(396003)(39860400002)(346002)(376002)(66476007)(36756003)(4326008)(66556008)(1076003)(6486002)(6506007)(66946007)(6666004)(16526019)(186003)(26005)(52116002)(107886003)(5660300002)(2906002)(478600001)(8936002)(8676002)(956004)(2616005)(6512007)(86362001)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: dMSvYTS3PX7Q/mBjWug7Vp1hNdplt9tQrb0gPlWLN3Bq7AcGkq0XefUvwhkVlHfmTpc82OwE0MzRZDwn8zMvJbFRFpXLwJBcmdgIW/7yKlb1zSUcV7bdAqUp7JxPL1EoNA7D5mOxE05NmUVo5tPmm7uYiYUf23TcnDXGWIiZ7ou+8lbOzxDA7tmIu3QsMe6+rmoa5NDJ9XjI7TymkBRLwM1YQjQ6/wsagAolxBYcRGYwPyr8qcUfLYqrhiJOD8N/yUPY8VNqvnxuW2fh/0roYmo+xZ1X0t4MUOcdGTy8yG4/ZzFDbVwKQ1LpI5lLUEkNv6U6atMmdRH0qLtmjtBYCazgeIMq7amxAFGKMQYxcdwaRIZCcW1N/gBLWJH+wAsSaWUnclYXCELGm3/ei4XBIJpXhjH7Awcf2pNi6dyVZ+ZuB8f0I6hUPNik1jIrToRuK6E+cOd8pBK8mb4k6KrUZxAgdhYHl2CNEvQ7rwZlT1ProCbuyd5FULNnTdKvQAtC X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0f61e8f9-2fdd-4e56-9123-08d823daae6d X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:35:41.8718 (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: AaT/y7Z/3JntAf0Epdv0PQXWUFDvvm12YPnqIPZ+DpMf9TG/zwEeLFEYyE0ZV97fDg6F9aNE5WE6VLq2g7DiZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR05MB6936 Subject: [dpdk-dev] [PATCH v5 2/9] 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 Thu Jul 9 07:34:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73585 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 A7B1FA0526; Thu, 9 Jul 2020 09:35:56 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E75871DCAE; Thu, 9 Jul 2020 09:35:47 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150077.outbound.protection.outlook.com [40.107.15.77]) by dpdk.org (Postfix) with ESMTP id AD4621DCAD for ; Thu, 9 Jul 2020 09:35:46 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GNMqQtH+9VDchmXGNMT8C2FLiTrK1VxafppP1oSWnEFYcw4Q2tfcoPLNJdYyYadIu38Z3q0akZDWPhwAVfQ8SiP1BKStzez6X0XGxgZ3tDTXrxLiSZPGBarHGnf5J1VRdsBdL//l5YtveGJLQcLDw2jTkD+nX0iShwAXOGycyMyW8MFwBnz+2n3R8KlSzEO+4w8dCjKC1MPhDzF4yWkICmBkmRIPVpB75OsrL98VXL+5WBQ+X3G0wPnYgK0/OKZVn1AH9PvjfY5pR+qiIVaKAFlAJUkJzi3HZpchleLy59cN4fSioXGWU0oGLxLrWWdgscmicWascJG6Qn4MKyqJ3Q== 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=TzvMywWWjWy5MD0kXCsLRgXNWpAjVhkBhix3Nl5oc034CtEPsne9fVesezyeAsYZxOcvQtvSgdy5P5gJHAPIwDiQlXihodx/foWiL8UUo2HrQV06+dujW64BNhCPnjQzzta8elGRliQ1MSukbFoNWpmie5fl0lTV5TDfZK3mW1PqyGdOTxcHVlZcrmLFjsQ4yCelSsZhE+rXcIxmb+2Ep2EI4C39Dqd3SNWjGrtUhDMrQtClVuKnk3e/wOzmrMW2X0Jaw3fKjN8rkH/sXJuykaykFo0psYxKrzcnx9SieHW901llpjxyDLWymplVKKSrS5eERqgxvgjv7n9sG1judA== 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=ATBWcbT2KAe/uuCmGdeP31s3hRO1UDe0LP5KYxzViQFwc+31jO2dHuHIbstP9fb9PDnHiNe1A4cVqNhYMLzQUQHECMICv8zpfhvevNuNfP6x25OoeBD81Nsvzb0dPZLeQOHf4kuJ/ty+XlymH7b2qXlsirp1+wgSZKDpOL2cklw= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DB7PR05MB5084.eurprd05.prod.outlook.com (2603:10a6:10:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 07:35:44 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:35:44 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:46 +0300 Message-Id: <20200709073452.948894-4-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:35:42 +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: eb6c0c38-6173-4eb5-5b9b-08d823dab030 X-MS-TrafficTypeDiagnostic: DB7PR05MB5084: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:327; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wyQ/oe5O73tJCdtiA4tC0b05kUDD4cPoWSpCygKIsKIZka2maC2l1unrtq6tsMj4HlTJ0YalsqGAaGvXtsNATIc8kFe6a9khJBWXjreexmvsSRM/Y02KhXyvaGbefwdUmMoji+/lH+C2J8Htj4biR2uYPU3qJfOlBdLDUf5H0qW8M2OxXv+s98P/4lRLAJACIuDD4VPpXOKr7buCw4gKduSCsXV2nWChkcDZpmOXymmUTyRAMn12Bux6Ew73l/bgriF0fnY8TYxWJ/LfoT7PY7VbRb0IxJnvIYnsMh2/+FU/KuB03h/eelzIuyd7ckHK X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(2906002)(16526019)(186003)(26005)(6506007)(6512007)(52116002)(107886003)(5660300002)(1076003)(4326008)(316002)(83380400001)(36756003)(478600001)(86362001)(6486002)(66556008)(66476007)(956004)(2616005)(8936002)(8676002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Xw7WyFUAz8k7a5uEAhiO0axWnjCGwxVip2I100rtvs0AjvNgpiq7bGmkOF1svP+g97+t3JnRvjFgOP7NHxr2onKI3JTkzmvCHzhStNR3TPUWCTYfgss0rmGsHug0xc8KL3Ycc6xd7vw+3Y3+pgkdRVVyzKNW8ScVfs1Q9ZIVw9yypekzqMM3GG/C10pJlb0V66MHLOXisRW/+Hqm63zkpHKo3oCvKDcADYstbZGhK8Be/6L+IJD92ZXvnZ2XxpzzqHrox4BFIDyXTC7GlmxadgG0QJWc9iZvqi/YawFaLR331QfRGcM/CyjZySooteXby5sTucFBB89QLaz1xzRaKwr2Zb7idqGtMXpbJ919K2zb/Uti3kCc0YDqheX4aUrlhjInXfAvLL+7cpAEnKEw8oP1fnUd/WEjsetCw19aaM/FYCFMD66XO0UOknVkx4BhBduY8wL7IWbhNN6smvSulcsEsCicde/uYZTEuD7hWH3DSYgP3v34vV7v+7a1tr+q X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb6c0c38-6173-4eb5-5b9b-08d823dab030 X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:35:44.5872 (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: sP6hftWaVUV6u8BIyx3Tk/NIznw9rwypveo9uvJT6tQdhA698dzsn7jQBA72kB5D7e2Gac94Fby3DlacqtZjdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5084 Subject: [dpdk-dev] [PATCH v5 3/9] 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 Thu Jul 9 07:34:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73586 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 0EB38A0526; Thu, 9 Jul 2020 09:36:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 264241DCC6; Thu, 9 Jul 2020 09:35:51 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70074.outbound.protection.outlook.com [40.107.7.74]) by dpdk.org (Postfix) with ESMTP id C40521DCC2 for ; Thu, 9 Jul 2020 09:35:49 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IjM9q6cMWma4qiFaRqtvV6rjYKLHx/WwgnMIztem+1frDERLdfj4BRdd6VnyZDLLxGP7D4W8A9MY6m0lmeO536m/XxbPuBtiuz1jgTSbKOyf6KRgF/wygmt6brl5a6G2yIrFJcQ5kQsjpYs+5OJ8FZoxTTmh4doPfFmLzM8ITPkNoCWpSlAi20h5bc4NK1qPro6noAWkw3OvGMD7zBWAv1zPlyaxp0hE+YdGYpOgdKZDOd+YwxVJzWlnJREtt64F9YHibp4sc4pYyKlatQT+pyuBOhTAB/SLsJcjpepMU1bdrgaq8XVCHTEGS5dKKb8jHKk4XtyBe2qVoqOf+N38WA== 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=Ugdk2zwTstpWU9mPLdid38YnjLuQefq1RUWfaB6/XPs=; b=iPwJ82n2+jcKsIlG2+tqRQqFr/TCXj0zUEtkoog87dDutFEgGVht+I3NzCa4ERIRt5DkhFTNF2oDYSfjxULfFDRUyl1F2nQrVaUKiLwqvW3ZLSgjAlAmP0h3GetyURG4fKSoAIh7tk+ASunLtaiolpV2zDF66KIBJG61dR5Rk5VhUd2xTYGYlZN4EdJ57wDtvJVj0HC/P2eQ/yq7OcNu5o0VM5k4YA2ci4RQVUwXUq3O9R6x05zJvoX6p6BqdMamLOPHKy8D89z56SBvYUeItRFxRTNkFkELErdJa48RRzwZVOfZCDPEmAqhe+BhfA9iF6Eu6XZjM+Y3AjM+AUWWGg== 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=Ugdk2zwTstpWU9mPLdid38YnjLuQefq1RUWfaB6/XPs=; b=i5/ALf/O+W3F+prTvlnTB23+DDUotCavNxO386W6YfMTYGZNWnDPOhCSIczZSC812NIxvkcB9I500GtLSbHNAdQZM2z7+79vRBUj3pcnFAMueyfukdRtFJSy5li1+ABJfojkGHk6A8I90D/dK29z0DfFGYU7BUgSgRieFiInjCs= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DB7PR05MB5084.eurprd05.prod.outlook.com (2603:10a6:10:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 07:35:48 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:35:48 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:47 +0300 Message-Id: <20200709073452.948894-5-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:35:45 +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: 8ce032c4-9a5c-4156-f24c-08d823dab22c X-MS-TrafficTypeDiagnostic: DB7PR05MB5084: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1079; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3YgQ5WXsY8vvzTTUei16fJGeLfAh30nfgJItKEAqCOggNYggjWI6FGT6YtqZc73HPErA7jbfwfMew4cxT7MVcSITFoBt2f9iCqFpYgk92ZDiVsMWhH8M8v2ChoTpZYgFWrOyBWdiNQfim73yF9bh5TkUXYCA8pqYgxj8IzG/gYJvfVXyB1NbLk6TZwnipZDRtgJx2Xs7c/keVIGdSQ4CNs+Z+RAklQyVwmKwjyFHmZ75y3fr3BFZ8HogaQqr5yYZoJ4V8UiAMBcGa/tFzMZnfxiXGl1bOD6TVrwuuVnGRXpEJNZqKfG1LO/FbZhNB7ypE3VnICQ52TrnG94ju8KDxg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(2906002)(16526019)(186003)(26005)(6506007)(6512007)(52116002)(107886003)(5660300002)(1076003)(4326008)(316002)(83380400001)(36756003)(478600001)(86362001)(6486002)(66556008)(66476007)(956004)(2616005)(8936002)(8676002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: I9/HlpvKnZtV9zII3OdlSY5LIBnT6Np3y/n0BxdxZv47/uzQ8nXjuPI7Gc2gFSsUQAtzD0raK3rqQYnVdtfaz0nG37nNovEtcUM3In14bkFl42lgGnNzhHjA1reSmjXATHT347Sisb2De0I+mpljDSinU/yhsA6ruC4awR9uRaZGzmhQT9SgT3GzAkzEiEZ0BNY4TnK2YL70zXnZ20/9zJrP8m8AVseJHp5J0Rt4+iMehrxzpdJh8nSST6rTVoifY5Avxk9GbckETUyQnZSANueakrWkF4lkUCz1kXlo2/AWxulUdxaybNkNnW6J/NPAcXY33rZeRZaKr+jRrhUFjvB1pT5TrmKXc4DlwyRxiPbL7AMm+cdkWe6sNFExpHjApRMOyg+y8lkP27mBsKlgGa2i+frpZ5urcTNdYkeDk6sukY+UZ3cPtTZ2cHcVRx+Ou2mlYcwGOw4tt8sO4n5THnNg8zDOMpxBIWRAOMHLt9O9YgXQ7kubidYwTknRPqut X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8ce032c4-9a5c-4156-f24c-08d823dab22c X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:35:48.6649 (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: 2p3jEafzoLRw6YImWIW4DOezuHiXVGZ6sK4xZxc3Pq9ujak/V+pwx8y2vdbFcTk+Fh/tpsMCuwO6YK4nzgJkEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5084 Subject: [dpdk-dev] [PATCH v5 4/9] 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..00ccba622 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_BIT64(0), + MLX5_CLASS_VDPA = RTE_BIT64(1), }; #define MLX5_DBR_PAGE_SIZE 4096 /* Must be >= 512. */ From patchwork Thu Jul 9 07:34:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73587 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 7DF6CA0526; Thu, 9 Jul 2020 09:36:19 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C58561DCC9; Thu, 9 Jul 2020 09:35:57 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150058.outbound.protection.outlook.com [40.107.15.58]) by dpdk.org (Postfix) with ESMTP id 0F2E51DCC3 for ; Thu, 9 Jul 2020 09:35:56 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K3lZQo18U+7PqoqchZi/3pb5aSJczt7aDbhupbwbUUEk23bsjkfyeMry0Yyf/09UZYUQwBphEyBYYZzKJKPs6lE5juq2IjOztMs+WNRRQLW8Nh4nfCjan6KQ8yYPrs5fS+/7O+vTPZ7MZvRgS4U8528Sm2SUBfljMcbKfpVa56UGAdDTy/fJ5Z7wpz6JNzq2ucbrXzLRskicprLEt7DCuAhLds0wQLcgPIRGSQcaCeAmDGIJpUclRkO4Hib30Z0HqKBx5AvcZlHFnbbeLopwWlBndn1B20Ld9HG8aLPezCxXx2RZG62IdNY7RxBGTbsJzw5EtP/3dtj+Xj8hlfeO8Q== 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=iuLXkc5F9uoQviWwBXCEwbPshRyrt/AZIonvmxL9u9Hv98ADCthowyA6jmGSgVmZNtDmiAnrbTUQGiOFa7f3Jp2OV8Lb1QlMwpY/mU3BDYuXJDiHwHQmqptewkUkwY8scif8HogZHeAMglMD26nP8Hs1NpKz8g9oRIbXy6g4fFSu7SZg1kf4OHKmseZureh8lsMMBg8MF4t2gIwsiYyjxEzpptKP1+fakJt3aIzRv0SAtpUBPKGqa8WG7ALerNEkeY4MnObmSQPe0McTU1X810104d7YRxSwViAB/hTSlvWEjOkbnAi6Y2pCfyHfIRtwGAn/4Jdq+mABwGj6KtkUBA== 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=jLu0FuBHSQ7lx0VVVT1KMN5otJpcraIPrn+f3K2D0PX5TzM9CpJ3bQyvfYxStpSNtdKmE3nakihzIuvBeDppgVjkpEygbbUJD9SFnnxnMEaEKCRYSpSNsCKy0n8TMwW5Lt5jvCcwYHiftFxVl8klXePEPbQEqxrikT9FPhiolsc= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DB7PR05MB5084.eurprd05.prod.outlook.com (2603:10a6:10:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 07:35:55 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:35:55 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:48 +0300 Message-Id: <20200709073452.948894-6-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:35:49 +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: 4f75d2c5-f63c-476f-27b5-08d823dab443 X-MS-TrafficTypeDiagnostic: DB7PR05MB5084: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3826; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NvyXhZ9vmwKlH01PDB30bEIp3mDCDGE6672ZmpbX9uSAZx1h8WXIgtjUyDtN5fzi5ipMELaXlz/CDAmfdIi9dVf72P7QexwYu19sEHWknxC08r8uSAeymqivcqHwbtz7JJbTy/AS7mA7rwVdftclMs58/JJLEHpqeCr0T054E4tEFmElzhYmTIs5BTGf37rNI4NEIXVtgiUqwFRty7zcVdNmdf0hTghhWI1TQc4NZLRuTi91uo/EezszLdLEuKo8ZGDRBMbNacGNvmaFJoLRYUHmFtMUyEEbIQvV180vMVG+hbFGKsr8WO1gX6ZYVGQDGCT15/3G7ocZPNo7YWEW9A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(2906002)(16526019)(186003)(26005)(6506007)(6512007)(52116002)(107886003)(5660300002)(1076003)(4326008)(316002)(83380400001)(36756003)(478600001)(86362001)(6486002)(66556008)(66476007)(956004)(2616005)(8936002)(8676002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ropf0x+MdqurcuLBXwoqRL/UTAO21jiO4OWGKlIW2UsYkA5pTzCiDWYRtBgy+V924rmU1esjxXvFKvGQtkeIccYtmGihFZN9QQ3OltNs2x4XSnEeIjEiJklt7kGsRA3Iz9gD/Z1BkeIkAjtAO6nyvoc9gUA4p8ZrxV0D+6hKeKz7dYBQjhe6dNc7gts3dzWohAtJxBC/v8Kb8QfXH6Ik3pgVzsfYAfxKpNPuJlmLyXUwbGmDmNfo5VhoTVCivgAx2r5Xb3X5Xdov2nGHn7oWT+I/dRmK4H2osFz2Lb0jGfLLpyU50SVdck1zYgH3JnGGgsF8Y5eQYu4a5X+4tprp1REBzNEK2IAk8c8X9PVkcnoV4zRhDE//hYS1xoVHvt9YERZZ9ZW7jBKZva2XezCDNdGouROB6+GtlmvjpvEvya/JvkCPU3a4EfI2bQkqJji31R3aRSKoZo5a/jcjcBJ7APmnUMIDcoFGCVtkC3AeobB0EFhFQaAzMG8K5jjwz7H8 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f75d2c5-f63c-476f-27b5-08d823dab443 X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:35:55.0263 (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: s/6IbozBBtFozOVr1ugXYOmKtzk5ciUp/IX9psdWLMt8+ljEshRyXY7PYAwI+6uxcF9GIjRa/LlYdClWxXHR8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5084 Subject: [dpdk-dev] [PATCH v5 5/9] 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 Thu Jul 9 07:34:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73588 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 93153A0526; Thu, 9 Jul 2020 09:36:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CBB1E1DCF3; Thu, 9 Jul 2020 09:36:02 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150041.outbound.protection.outlook.com [40.107.15.41]) by dpdk.org (Postfix) with ESMTP id 4F8AA1DCF3 for ; Thu, 9 Jul 2020 09:36:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QGXzcYIMtiouxRxDT1+kskRUVdIqredI1hk09MptGOcMJ48pAvl+veECCR8jGrdrPNMKKKjCR06Adjj7cz/OYnirKyOF/bURs1MlR/9gElWrq4Qg/SVJgNgNZ9QO7j/kDjw4A71l3z3ZYj5FJx2EyFLogEKMe8N3/sdcQTz68sBj1GqixK2dbgce0EtzOhKWW4pall50YwN1xRJyzUIacaYls4eaxb8e+MwYgQp0TWVgC9XP6HC2qlNSQGXFyUuO/NSp4RWD4kBfeFZkmQFUNzobrOp4UY8fhpvdikwvRlBwxBm6o4xP9S3V5qEWsB+W9EgIyTz4b6KLwZlkBpr/oQ== 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=545/xBsak+hS8EvRXFe+yh0pAVgSc6GQoNRZDVtPuHk=; b=SNVGFHZVfBIUIldT1SYZY+rjAXmQT7PTYo9LaNCF6fVK5Zo4yMWUbcwA/IZt/KzQTB7Xk5yBaTL6e54A7oYgAXiOTlm/b++mS+akRtRnzYg7KKpEOaUNDj2IsbjNpQZQo76JkzwjzMQp6vXXoYhYlaYN1au1iIpiizP3W/ViddfRjAnHVqJW8KQBXTBrGkaR5orJ66/JJiFVbK6wJcC+IbdrIRAIFeY/Yh5ihgTCn35Jcey07tZ1rRo57huqShhvpHrbniOmEGwTk7EBeG9r6aTkYxT/lpNz5AvpgUqMqRWfNj/hFL4IOPHrPlTfeH8tAzi5pcPqGNq8a/ZHZXG6fA== 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=545/xBsak+hS8EvRXFe+yh0pAVgSc6GQoNRZDVtPuHk=; b=EeWfVfuQl3oXGfnfutLnUUq0Po/m5xO7eaY7J3xLq8tAo5ikw01ghYn/Ch2LP8zBM1RjWuK/nI0juvnUme0zaHM0Aq26oqQSZk+xkVxCMAPEH36Tx9z1idCJ1u4cGC157YSbcNb4YkU6Hbv31skRlNpkylL6TdXD86Aas5peRUE= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DB7PR05MB5084.eurprd05.prod.outlook.com (2603:10a6:10:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 07:36:00 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:36:00 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:49 +0300 Message-Id: <20200709073452.948894-7-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:35:57 +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: 9369127d-5e79-4961-1157-08d823dab957 X-MS-TrafficTypeDiagnostic: DB7PR05MB5084: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bhqcb1wOlco7YmCxwHpIUY6EuENyz3j80fgd4dUEBq0DHoWCq5oy9saf91p/6fIzYBqZuQptQP+ZJMb3nuSVB1tbH47lmhJX2L/M8AaW3i5k0hMwGY2p9eoQiqVxuO1rfMG5ByrT9+65+Pb/nUZpn0dkOI2QfZymeVdFbbUrhMQfN0v8h/ZxmuOo0xF0eUQvNA93G8kWaXYwcfLeXymXxiVamA43r6PURWiscYZa6F3qZCIuWDwqNfpdC5kBLOmba2k0UFWkmr9EM+PW1Pg0ULY03RbvmqHrlsnRzMr1Tvusy/SslbDEk0pz+RBuvyY6tiwzn93VIuCBn1e+YgVOKQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(2906002)(16526019)(186003)(26005)(6506007)(6512007)(52116002)(107886003)(5660300002)(1076003)(6666004)(4326008)(316002)(83380400001)(36756003)(478600001)(86362001)(6486002)(66556008)(66476007)(956004)(2616005)(8936002)(8676002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: XtgllAXlg9+WEljoU/5owejgPLmamE8+8PQVNha4baCUHxUGqfjiQKoXzaFS5+aIv05WhborAkloXwH4IiNwdPQGIUVrzOfed8tckDnNV+7VphVU154daDDTB81BTzLrDqJ7lPwVA7/b/k65iOkaDibY+/A1f6x4LzZeT08gZn+jswEUyMzI5nL15XXjEyU+3QHVN4ynBBW1BrTw60QujcA5Pa6NkJjzfGqO9DK55XM3VDfRqFIKBsB+BtK27L385H8LZirgYozWDcHVIPw/tMicyGzfmWEfQCk4dQ9JE4TI41rcnyssWaSE9gk7Wc/3ztDaOTmLvQvCxDO5Xwp4nEGgvYr2XZl+geXKRYGyS5EfoAPFmDr8eFwHuG84aGbjmBdHEfV8t4wR+X4Fn4h3Mcp0UkowXZ0uPDWEkYH7UK3pudFRa+k6DusyZDTbTGL9KeuqWg2Vb83FUnCcxtny5FYuqmNob85Jr5gTdaiZiEQAC8VxaY3dkagbejQlaSFM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9369127d-5e79-4961-1157-08d823dab957 X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:36:00.0444 (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: kwF1ng8krOXPRnVuQgei3vZVDO2snZ0nSe8YX+RFgWR1AeUQN8aI1m6Kdplga4edUI7ulYwzFua1y7B971niNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5084 Subject: [dpdk-dev] [PATCH v5 6/9] 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: v4->v5: - Merged maintainers update patch with this patch 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 --- MAINTAINERS | 5 ++ 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 ++ 7 files changed, 166 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/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 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 Thu Jul 9 07:34:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73589 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 B3791A0526; Thu, 9 Jul 2020 09:36:39 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2D04E1DCBB; Thu, 9 Jul 2020 09:36:05 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40050.outbound.protection.outlook.com [40.107.4.50]) by dpdk.org (Postfix) with ESMTP id 835341DCAD for ; Thu, 9 Jul 2020 09:36:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xhku5USmDC7YUq4BOsE6exV2VzkvMpnljpBFl53pkpWCyF/9KG2BtL0ewabTDIq5ShwL8jwSvJCbBFMCjmt0rilvOSRpi3HOH64/Sc9EqAPcEtnLmJzzs3ST2cZaKQLSMK1icEHb+4oHBqvfzOWaj6FnNP8lRcCVS5HvIKdf/ey8/RFWjHMOhD35ZjchO1GUWlApBplEk/ZV4LlplLRkGxy1NTbT42EmsUOk6CWOpUbZ0ceRuUNTusu6378AxSFDxY+nC5n1YSyyH1Dve8S2xxFTe1xX2+ewi9SnCTAM8iEY6GCgaiKuv154rW80J0Dd4kzrbdUHrBbcIQJUDm462g== 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=QN0igVnVafoDaPftPOhn5VlY5ixvZHGaTntCV0XTqK8=; b=UUgKJdYT4O0gq26C5YlKLEuq2467ra3SMBDNNCmF/k7QjPQl/HT6NqWh6NS1ZikHqJ5wI3K+HJ18yp+ZNhg7bcJ+pRIx1kCLbwHbrhDqEaa1lEMspAOXaz36AH1WENiBhoLz7XkHnYFm/bTg6N5NcZH2Fr8WK6OreK60bNA9LtzgCGUP3kEC9Y2UKlv5nmHgspyZ6lH1PnM0ptjlkv7z7m7IO/YpQ3vo/Iip4YUDIfljzyGz8uv376+NmPK9q7SAQQVLMCQJ7MKsmkRhBIR/O1mx9Z8P5Lj0R7GrD7RKb+6aZ0fYUFMiv43+IMJrekNTZiQoxtdnVBQ6YJWiIqqGLw== 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=QN0igVnVafoDaPftPOhn5VlY5ixvZHGaTntCV0XTqK8=; b=Ifs8xvh+cDo9PXQLVpU5BlrCmTXwnu43SdZ13Y0KGQv0e5QBW/N5N8A6YIlW4UMUzlZ2bAkUwokpozd7FNAbkLrs0bri0jFc6ctLcNTFG9kIbvv4Dtw8OU3YmvTwLx8LwaAt6kH3jNWmuaBFez4aDVeH3v7Ba4fJicaVI97M76I= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DB7PR05MB5084.eurprd05.prod.outlook.com (2603:10a6:10:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 07:36:02 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:36:02 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:50 +0300 Message-Id: <20200709073452.948894-8-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:36:00 +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: e33cdf2a-815e-441b-9043-08d823dabab8 X-MS-TrafficTypeDiagnostic: DB7PR05MB5084: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:619; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5023ieTun668RsOet+Gwi3TMoOpxryZ5Gr8dJxLlspZ+jq64hcag4jGjiZaQZmQZmnbQ5YRXP4IjL5QjOOwFfwumc/HI263D9Y0EJ4/B0ofVRKxJMyemDOmElgzBZcpFRwkPpc4mrCYkZmnyr7GaDCRh+e+laUleTQcBJ2R0JYDw9DkHh/lPx8RyUXB0bg6M249lRWlbrFmUjruqCaMfKubguJhHKbrV8mdT0N+LA+WEnZDgIzurzea/ydxKtgcQSzCozhrzLTX5qbQz5wrfzMMlfvmqwCoIMQj+P09IWqJPsLjD+t3WCCwA3ME+faUwG9AIjAtECQvFEE7ps5qzGQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(2906002)(16526019)(186003)(26005)(6506007)(6512007)(52116002)(107886003)(5660300002)(1076003)(6666004)(4326008)(316002)(83380400001)(36756003)(478600001)(86362001)(6486002)(30864003)(66556008)(66476007)(956004)(2616005)(8936002)(8676002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ofpkgo1C5Nt7t2gvzWRD1phdcUU6dfbl+Ep4104cv2tLKIpWbSyRTVG3K8drEj9Xh7+NZ7gC+CG3INT2ENDEd1sPMmJxuLksaWkxJpNFLRdGhIt4th3fj583SM5Tbnz6PWx+PriO4ZWGNOj7986I9a7JXHeLU5d6yUhsk29nrGU3mz7Vap/pUjFVUEq8tTFtnJsiKSB4jQAc3j1CZTZRJfUE6wMXvZpy/levlv5/AEUQHkU7PgYJuCMQBfLJGW93RGEENx6YnxKoeUgXaI09l650PtkPX2dnZnrySHPwNk4PwYrqnI90awVdYazDgo/09s1JELNhaMaQ1zrRpNuUYCrdsarzjIjIGhz+fGmkjs+aTDW7frZbFfzeOxgSAtTnTRuXB8f/Dvp4DEHzpxFOQ9xty+3ZkEx/P3w2lPCZMD9ZXw0MOgVH/048umQDCFz45sJNBnrPsgi/+3Dnx/K7XWrEwZB+UFAkdlNTfNLF4qTGheQeuZig8gc966XfiZxa X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: e33cdf2a-815e-441b-9043-08d823dabab8 X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:36:02.3500 (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: o9VtN5gFmkMXDV5NROVgyUmqoH55gkAN+MdRQe/c8abW3w16NTicI1lGmlf02n9ADWa1qmpyLjHm3FSmvYEKIQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5084 Subject: [dpdk-dev] [PATCH v5 7/9] 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..6f219730c 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_BIT64(i)); + if (driver) { + local_ret = driver->pci_driver.remove(dev->pci_dev); + if (!local_ret) + dev->classes_loaded &= ~RTE_BIT64(i); + else if (ret == 0) + ret = local_ret; + } + enabled_classes &= ~RTE_BIT64(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 Thu Jul 9 07:34:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73590 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 E8BEEA0526; Thu, 9 Jul 2020 09:36:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 736D01DD7F; Thu, 9 Jul 2020 09:36:10 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150058.outbound.protection.outlook.com [40.107.15.58]) by dpdk.org (Postfix) with ESMTP id 949181DD7F for ; Thu, 9 Jul 2020 09:36:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HRmum0csAG8j7WEyzDQzQz+4uD0bCw/wjgCcRbgruGvQCV52gIOHm/mOQFIFcK79lA7WXMLIZCmOni48XmU2D6dBiZXSmmINMvddDkFbFx+VdggSCX041ge8fEW7XWU2dIiszfjd/wRwcqo2etad2I1N7wUYo1+vYh8Xs8XfwM0Fe6GqPPjnzNuG0RllGCTd/UngPKrmBSJY6e054e4IVijBPTNloRfD+5PWSnYQsRgHdDbbh4oGRuE/9t8IZuFbno9OFaQVm99uwNJjNma8phqkft3Bb8shAKkl4B+Av/JaTQtFWLeUZZtabnXXVUPm4g9JcUxJaofFIfy8GOYE2g== 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=OqAIa1F6tPLOiuu34S7eJVDQgnD5uICmBO9J1yPMOKPVfZFfs311VntK90hSXtjPM8jLcxAmS4vbr7mO/yN5NjDNlgEmHvKCzoPbnjllpjOt3nB4edSLKTjmc+xSnGtliw2LPNV/PWmfcxLcXfOFHeTy6UHYYCaZG6phdgcx6iCFtXGhvMthY2xDxWCUxG0eyHjWRhvNANg9LQs3dcviDiEczC1w2cAklurpkJDoDjAk1lrHs1KzudfUq4IwGpPNYGRcbVNjCix2q90g9OIgKg4Fz+TOflpOJfVVm/p4KpPe8UAjwlJDxUflZj2ArPF5ZPU01RTVyyC/HyoCCAp8Ow== 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=LNTu9QdGTiWyRNFZpHOemPYM428M21JVoGUqLzrsGu49Z93TPccl5oyR9PFb3GFvSLNH9bpi1JtYbrIIeFALVo+8r1sAjsaSwR7wETrAZ93IucO19x8o+2HyWTgJV2toapBMywYslcNDAhv/a54nCiS6fhyfaUzMiwjL++4rIk4= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DB7PR05MB5084.eurprd05.prod.outlook.com (2603:10a6:10:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 07:36:08 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:36:08 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:51 +0300 Message-Id: <20200709073452.948894-9-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:36:03 +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: 8f2c867b-c0d6-4806-e832-08d823dabc93 X-MS-TrafficTypeDiagnostic: DB7PR05MB5084: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:655; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RL4Xh39w7jqkx6CwhsB4bRdwPpnF1kjsmSt1+ctk6FEd6lQPj+qL1AwP2AvEyLJ3+zHYHKrkAq6/eONyex4agmneOEAN7N37TH5+z5m7MPvXvxsrnr4+Crwa52MGjWiSWGH2no1o0E37efYXMrY+yQsNU/LdY3XxGrTZZxE7reHYpRWMcXHzBOdM+r3G7re6eAhQZqLlgpXqbVBTpQFqlm7PWkskYDc9I17gAVRQi8CgSrnGD1AcM6dD0fsHgLztOJ4FR80e2v6rLyoareJKaU2E79thuXnYk/6cTV/96CCcbizGgE6US1iZQTi/x5tsaOlpdCQSYZmZ58pGp0r1aQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(2906002)(16526019)(186003)(26005)(6506007)(6512007)(52116002)(107886003)(5660300002)(1076003)(6666004)(4326008)(316002)(83380400001)(36756003)(478600001)(86362001)(6486002)(66556008)(66476007)(956004)(2616005)(8936002)(8676002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: NKdvtOxk5wpUFi+wFIDu+WoRgAhd4h1x9i4OwXKfEWRXfArmT4YzxHfNhOeXQOfMpLmn4owHvVGMVPT0YvYaKaJK6jHUBQ1kXDXgfBlwdPQb+EwR1MlOopLfJ/ULyh69MtZF8s+fykTV9LSiEuMNPIWaVcrBeczEw6kMD3zqJ7J3JeljMHp915NAVN5Kyk9QqjDiy9UMF0kvLS9PJ8wuzblEdf+m5dknHcrz4kAGcpHXg/I25niwhqPZ45YgZydba5fKMNpN1GTl/7EBHcdz+/pRPIwxp0OfJprv2PNALXqIg6vA2Q5vwWjipd4GrYofLNHBszxGcXzSab/kEU/Vx9t/BxIbdbVthDe4AMnHo4lx61RCLAaL3pwlWOoGTn0MgbFlO/muqUoqmCWwj3ATqAScD54kW4Ha5Q5esblHA+STyA6ob7DZD5F7rijFU0vOFRZ9H17bkuESmlNqEiun2GuSikZo/uxer5aJ4lxGkUHnSGIsgSFtRaX2q3QLa82c X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f2c867b-c0d6-4806-e832-08d823dabc93 X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:36:08.4515 (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: 16u143gCu4asWDAB+WUojhqWkKkxCNmkBkFrt08FEX7UhELPdDmf4CVxnnMO6PYmTcEeowvC4+1LlwUQkAvh3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5084 Subject: [dpdk-dev] [PATCH v5 8/9] 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 Thu Jul 9 07:34:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parav Pandit X-Patchwork-Id: 73591 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 31894A0526; Thu, 9 Jul 2020 09:37:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BBF451DC58; Thu, 9 Jul 2020 09:36:13 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40049.outbound.protection.outlook.com [40.107.4.49]) by dpdk.org (Postfix) with ESMTP id C41141DD8D for ; Thu, 9 Jul 2020 09:36:12 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OYZ8Df+A9ktGZobZE1aJohNGW3gZ4pF2RV0SoWIOgQvYz/TDDuuLqbT3At/0kyoGlaVuQ2kNeczw6lvwGvb0Pv2Ed9td/rqbfUrEg/Gviz38fVL4JqcAT0vpvzqZk1YexfOXhWXYheFbjMTP7IsWGyx/FWSll5Z3pOLjWL1QGURb5XOEst3ld9zpG9bbbquiRkL8vqAv/HrcOIcTYVPOKFpLnrgEdtcdrtLGupIVlJ+a/nGR0LcyAUb2jlUu6knKl46K+2itaFtLCDUaA03iYBKhsvaQXU+eMhLBdL68JFU6SPym4njfGZQ20sU1WeJmxygzBV4ngQOkOv2tVBDVcw== 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=0W3vsmYBjYtXT7CrN/ZZCEsBij3evIC3AqBB19HqAl4=; b=EVtzekL4z1ozKUxOM+NGQ8vNSK1Sd3lPQYYqmzYeMGIRdJeAamIUwE2tjnEjQEXCSVq9kJKzXPFoDR2JOe7CpURO/pXZcFyFzl6YVXthh8T0wOR7+J3gQ74+A1vXZND1QK3Aav2EIR/qmi9M/89Jx2FBBuio2wZ7RxraL6jAhM7oFJ6/CsGTtyb9r9HBEv6/IzeDrfTlyO9jgS2vdjIfBBAZ0x+YQquaDAS4tCq7q0iT01fT2jkk1+NpD1g0MuuNfXr/MWjuZlCe4eNmL5PbZ75NnUk0BZgBC1uISZw51aX10parP8Hi2vvEHR1tUla/EbwtEDPZm/QEAzC1AmFXwA== 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=0W3vsmYBjYtXT7CrN/ZZCEsBij3evIC3AqBB19HqAl4=; b=NOSk76LkxiT8Eg7HDipqqgXC6yIeqXOLn41brvHXCrxpXcUTANhpX+y7E6PY9sIqaS0Pzxumc6S2L31Ni0/zjO0DOk9yDehX/LPeG5KnFQJzh1b/h+jZYCzJxrAbr3sqAR0T3gQGY7rUp+To6KVMcAFgAdXDEJSv5pv4ed4X+bU= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) by DB7PR05MB5084.eurprd05.prod.outlook.com (2603:10a6:10:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 07:36:11 +0000 Received: from DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293]) by DB7PR05MB4876.eurprd05.prod.outlook.com ([fe80::8cb3:93cb:c3ef:4293%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 07:36:11 +0000 From: Parav Pandit To: dev@dpdk.org, grive@u256.net, ferruh.yigit@intel.com, thomas@monjalon.net Cc: rasland@mellanox.com, orika@mellanox.com, matan@mellanox.com, joyce.kong@arm.com, Parav Pandit Date: Thu, 9 Jul 2020 10:34:52 +0300 Message-Id: <20200709073452.948894-10-parav@mellanox.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200709073452.948894-1-parav@mellanox.com> References: <20200610171728.89-2-parav@mellanox.com> <20200709073452.948894-1-parav@mellanox.com> X-ClientProxiedBy: SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) To DB7PR05MB4876.eurprd05.prod.outlook.com (2603:10a6:10:1d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sw-mtx-036.mtx.labs.mlnx (208.176.44.194) by SN4PR0501CA0104.namprd05.prod.outlook.com (2603:10b6:803:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9 via Frontend Transport; Thu, 9 Jul 2020 07:36:09 +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: e413d1da-43f0-4995-7c8e-08d823dac05f X-MS-TrafficTypeDiagnostic: DB7PR05MB5084: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:773; X-Forefront-PRVS: 04599F3534 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3s2GJVawN2j1tB5XshX0Q2Jf4BqpXlEjE9Pz0vwvhr4H99ZPS2AxMsJmBNs6Vu9MZdXA65eZvw4mkA9o8b2aniSWK8+2uU6UAMVw3cZqwWJU8nP2pbg3PnFuo5rmNfjGkjDxiGaG6o4lSJph79bugxD7hqCEE5RFxLQD5IspqnCIhgoVRCIya7y8et/NG47MOutiVwFgYevL++fI+58is49G8/CpWKOA2aB14QnlQqDmC0Gaa1I5SvoJVSMUk3u7DA0EM0rRdoZtd+LUy7EdtxGTx/jSoj1Eg8bnDv2OqYu1tsP/PLgAbTUD8PspKVNW X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR05MB4876.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(2906002)(16526019)(186003)(26005)(6506007)(6512007)(52116002)(107886003)(5660300002)(1076003)(6666004)(4326008)(316002)(83380400001)(36756003)(478600001)(86362001)(6486002)(66556008)(66476007)(956004)(2616005)(8936002)(8676002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: pnkgRDvlEhUZNZk+Us+RrIirTY5pbVXet4HcGmk6wvv5Y/eKt8PiwQ9YnI/Bm1u7gc56H4lBpacm9TEBQBDoE0Ygop/1IR2g1449iHecjtr1QUy7Nw0TQZFzhGYR+ihMsLwhX163V3K8RZpHnfe+XSWKIqyTp5BssGC5qjMxud+W7mEUD5m3X3SkAezgfpAbFTSzE0gRCPjzNqFJms7nm2KNhFyh0eqeen0tMKg0svXcSyro5WBPwV6U/parT5cZ5gZRIkKsVtvdReBmzglCY2AlWr4tbs4MSfGPWFfeZkiG9drUun0MIFqCzrV4tUBW5IZBbMRv6akbDG9BcBPxPuOlMCVU3Vtg//njL6uOzGkaJgMNlTqyAU1PV/Mujp44Gs3SuQ3rYtlmXGfeOULomwb9pIeYYr8aOakPlLpYcoV8ZiMPkfzh0aDpvuLrodxRI9u35Nqqe5j4MUEri+JOSt3yFBjBXLBrvdKHiEuesNgwZDHAJv/XJEo8DJNeDs3A X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: e413d1da-43f0-4995-7c8e-08d823dac05f X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB4876.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 07:36:11.8246 (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: caI7XvKRHGnrv+IVDKetoyeRTr4ELJ4C504uXp/offsirJ2C6wZAQ5zWbuz7KSAKUpEYZTX39pplX0APJZywQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5084 Subject: [dpdk-dev] [PATCH v5 9/9] 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 00ccba622..0effaab1d 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 "