From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id ED484A04A3; Tue, 16 Jun 2020 11:45:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CD2301BF5F; Tue, 16 Jun 2020 11:45:04 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2084.outbound.protection.outlook.com [40.107.20.84]) by dpdk.org (Postfix) with ESMTP id D4AFA1BF26 for ; Tue, 16 Jun 2020 11:44:57 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mZBzl7Z0p1hwPNJxfnjzkFwaJrnVC7IIezrO1MQBSFWfU5NaZQvQt1zbGNH68ubf5ghltXBcRCrHzpYeflr6QsoMdbs4ZMOO03RYZFWUJuvZR12i4rdebQVEKHmkOjoSFTn+SjiDyuC5ax8Dx7KOM+tknzdwOH1Bsz2Zt2pAhT3jwPPdVDlsFN0IBOiaT0P70RAf2ucUTrJwgB3Je3eT9bw/+Jkgy3pf4e/HlOPLWLRZlP6Asa1J9GspwZI0FMvxdlTJfdT+EN7/Pj1Mmb0Y/KfAiZ/E4U4nl3xEQH6xl8tiifppNFYoUeH1sozcWLdrvIO3H9ERSbeoxy6Prgwghw== 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=X0FTTl9+nr+/r1xvOQupDDuus3Hxw1HlaUYHghIF5gQ=; b=mUsTwpnmVA6Wky4HW+lP/ytegxHoMLNoFf2lCQp6LY2DQIGOUUXB3lAZKhRASqQgB2Q4LfswZObcdUTsotgsc/ZKygkrXD0z+Db0G2uNG6+0t4JphtCylSF+HUk9mmV1yMFjGRsgj/lA+wpCX93WqGJ8RLxKzLDMkZyk+dA4vI8cuW889fXYax4eWdl6okagkqogi2LxPIljI9k+Keo8NjqaJvwlCpbXL+u7okSTspIi0TVhGBQQLfmWDwK3wujAhldj993RbKBC7TsjKc9bq+BUAroBatoRoMj4aa9yI+axKqG5ihTxvLsDDI7dORrYPgClyJXIE78nae7ZhrwYkg== 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=X0FTTl9+nr+/r1xvOQupDDuus3Hxw1HlaUYHghIF5gQ=; b=TPTtYfIKR2B9uagRSZzR6kkjKwl26hWKEPMbKWxTvNxQwTqT6IocrBozewj+CW7I10cYVJBhm4OIhzEfCzb7k9wPOdq0bAGqkKErZ1Ww688re49c6ox+3H/85XXZpyQ92fCZd9gEVP20G8MgfwG8hHrs5sAc6eo/X/fNrvYzduk= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4209.eurprd05.prod.outlook.com (2603:10a6:208:61::22) by AM0PR05MB5859.eurprd05.prod.outlook.com (2603:10a6:208:124::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.22; Tue, 16 Jun 2020 09:44:56 +0000 Received: from AM0PR05MB4209.eurprd05.prod.outlook.com ([fe80::1068:89a9:41d3:b14a]) by AM0PR05MB4209.eurprd05.prod.outlook.com ([fe80::1068:89a9:41d3:b14a%3]) with mapi id 15.20.3088.028; Tue, 16 Jun 2020 09:44:56 +0000 From: Ophir Munk To: dev@dpdk.org, Matan Azrad , Raslan Darawsheh Cc: Ophir Munk Date: Tue, 16 Jun 2020 09:44:46 +0000 Message-Id: <20200616094446.7152-5-ophirmu@mellanox.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20200616094446.7152-1-ophirmu@mellanox.com> References: <20200616094446.7152-1-ophirmu@mellanox.com> Content-Type: text/plain X-ClientProxiedBy: ZRAP278CA0006.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::16) To AM0PR05MB4209.eurprd05.prod.outlook.com (2603:10a6:208:61::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from mellanox.com (37.142.13.130) by ZRAP278CA0006.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.19 via Frontend Transport; Tue, 16 Jun 2020 09:44:55 +0000 X-Mailer: git-send-email 2.8.4 X-Originating-IP: [37.142.13.130] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 60c2539a-34d7-4752-0bbf-08d811d9ed62 X-MS-TrafficTypeDiagnostic: AM0PR05MB5859: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:800; X-Forefront-PRVS: 04362AC73B X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eRclvkSRt5C/wdoVX0nEyS1TgsIj3XarZ0wrhzr7tlkBFnMC4ubhhQnMpWvW7GHrgBGPn15WVUEpXgeZAgPpgxNHwxPmzLlKhOCA4SNFzwfeQ43In2KW26NKo136hBO6+iCTjVLSZiB2A8e2QeFx4ReiV//1Uo4TOgrXl2MezjJhv0E2imkEDohyAoKZ4Xq3W7Jnb9aqeiwU/9FSKrOv+Luk5x3pPrNRglViXbPP5p/HQ4q6lyD8m+gNGZT+LCgONvjlxnyWDkWMUD5kA12Ft0vNvSiw99mYC39qkhpjtgBgSc1WDpulS6HcM4L8nBG4oJj2yKbmPaZ/eH40gwIinQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4209.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(136003)(376002)(39860400002)(346002)(396003)(8936002)(55016002)(8676002)(36756003)(107886003)(6636002)(2906002)(86362001)(4326008)(66946007)(66476007)(66556008)(110136005)(478600001)(1076003)(186003)(6666004)(8886007)(16526019)(5660300002)(2616005)(956004)(316002)(52116002)(26005)(83380400001)(7696005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: onyiy4upsGiuBEkALsPG5C8kVMukpKI6XNuEEPEMHsqi3mvhExqcRlqHdGvdhzJQ0V+5DQegl40YD9QP9833unSg5hU2mHWmzo1rbeHF+2O/WbcflRMXQX2uGYeTyW+mwfty1UHupo/CdXSOHHZGRWjCZoUifC7g8uffo4cFvOn3Cj7C1+GdMmy25owWFulqWVAaMwGFMVNhjpsczL0qbrJjQCmtsDGePMTCzkttw4kHy3z6FNAGJQzYwu2yQlMUPQsri53L/Nu0HySs1chNhIvfW7okwA38LUwdZnk5BNG3aWKm9E/mIBFOwkflEeR5kC2KvBe71rAbKMxhwfjju8b08bRY4mXenH2VNnCcG2uOmaJ/N1T++4efx8+VF3flBVYXFYIrbuTAlO+fPa1Ohed92tRbqPeBzoz9AoJaMbEVgC7QC0jJ3CTUiVOIECj0olOgZEnzW5EEqYFGELAmWh+VEQB9v7OmfUAP28Sor1C4ZhK52O5OBkOGQ/8VtPpa X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60c2539a-34d7-4752-0bbf-08d811d9ed62 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2020 09:44:56.3115 (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: CMm51Gnj5B0vxaVy9phcw3XTFoHqqXoR1G/DzooiZmk6jK9F7oE+f2B7vmRESWGZIJu+tKg3YOAa1OxMNY9S2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB5859 Subject: [dpdk-dev] [PATCH v1 4/4] mlx5/linux: add MR callbacks to verbs operations struct 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 set of verbs callbacks in 'struct mlx5_verbs_ops' and add MR operations to it (file net/mlx5/linux/mlx5_verbs.c). Signed-off-by: Ophir Munk Acked-by: Matan Azrad --- drivers/net/mlx5/Makefile | 1 + drivers/net/mlx5/linux/meson.build | 1 + drivers/net/mlx5/linux/mlx5_os.c | 5 ++- drivers/net/mlx5/linux/mlx5_verbs.c | 78 +++++++++++++++++++++++++++++++++++++ drivers/net/mlx5/linux/mlx5_verbs.h | 15 +++++++ 5 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 drivers/net/mlx5/linux/mlx5_verbs.c create mode 100644 drivers/net/mlx5/linux/mlx5_verbs.h diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile index fada6fb..a458402 100644 --- a/drivers/net/mlx5/Makefile +++ b/drivers/net/mlx5/Makefile @@ -34,6 +34,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_utils.c SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_socket.c SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_os.c SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_ethdev_os.c +SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_verbs.c # Basic CFLAGS. CFLAGS += -O3 diff --git a/drivers/net/mlx5/linux/meson.build b/drivers/net/mlx5/linux/meson.build index ad908c4..14eed03 100644 --- a/drivers/net/mlx5/linux/meson.build +++ b/drivers/net/mlx5/linux/meson.build @@ -6,5 +6,6 @@ sources += files( 'mlx5_socket.c', 'mlx5_os.c', 'mlx5_ethdev_os.c', + 'mlx5_verbs.c', ) diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index f498d00..3792371 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -52,6 +52,7 @@ #include "mlx5_mr.h" #include "mlx5_flow.h" #include "rte_pmd_mlx5.h" +#include "mlx5_verbs.h" #define MLX5_TAGS_HLIST_ARRAY_SIZE 8192 @@ -2335,8 +2336,8 @@ void mlx5_os_set_reg_mr_cb(mlx5_reg_mr_t *reg_mr_cb, mlx5_dereg_mr_t *dereg_mr_cb) { - *reg_mr_cb = mlx5_common_verbs_reg_mr; - *dereg_mr_cb = mlx5_common_verbs_dereg_mr; + *reg_mr_cb = mlx5_verbs_ops.reg_mr; + *dereg_mr_cb = mlx5_verbs_ops.dereg_mr; } const struct eth_dev_ops mlx5_os_dev_ops = { diff --git a/drivers/net/mlx5/linux/mlx5_verbs.c b/drivers/net/mlx5/linux/mlx5_verbs.c new file mode 100644 index 0000000..8e42ec8 --- /dev/null +++ b/drivers/net/mlx5/linux/mlx5_verbs.c @@ -0,0 +1,78 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2020 Mellanox Technologies, Ltd + */ + +#include +#include +#include +#include +#include +#include +#include + +/* Verbs header. */ +/* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */ +#include "mlx5_autoconf.h" +#ifdef PEDANTIC +#pragma GCC diagnostic ignored "-Wpedantic" +#endif +#ifdef HAVE_INFINIBAND_VERBS_H +#include +#endif +#ifdef HAVE_INFINIBAND_MLX5DV_H +#include +#endif +#ifdef PEDANTIC +#pragma GCC diagnostic error "-Wpedantic" +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include +/** + * Register mr. Given protection doamin pointer, pointer to addr and length + * register the memory region. + * + * @param[in] pd + * Pointer to protection domain context. + * @param[in] addr + * Pointer to memory start address. + * @param[in] lentgh + * Length of the memory to register. + * @param[out] pmd_mr + * pmd_mr struct set with lkey, address, length and pointer to mr object + * + * @return + * 0 on successful registration, -1 otherwise + */ +static int +mlx5_reg_mr(void *pd, void *addr, size_t length, + struct mlx5_pmd_mr *pmd_mr) +{ + return mlx5_common_verbs_reg_mr(pd, addr, length, pmd_mr); +} + +/** + * Deregister mr. Given the mlx5 pmd MR - deregister the MR + * + * @param[in] pmd_mr + * pmd_mr struct set with lkey, address, length and pointer to mr object + * + */ +static void +mlx5_dereg_mr(struct mlx5_pmd_mr *pmd_mr) +{ + mlx5_common_verbs_dereg_mr(pmd_mr); +} + +/* verbs operations. */ +const struct mlx5_verbs_ops mlx5_verbs_ops = { + .reg_mr = mlx5_reg_mr, + .dereg_mr = mlx5_dereg_mr, +}; diff --git a/drivers/net/mlx5/linux/mlx5_verbs.h b/drivers/net/mlx5/linux/mlx5_verbs.h new file mode 100644 index 0000000..4f0b637 --- /dev/null +++ b/drivers/net/mlx5/linux/mlx5_verbs.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2020 Mellanox Technologies, Ltd + */ + +#ifndef RTE_PMD_MLX5_VERBS_H_ +#define RTE_PMD_MLX5_VERBS_H_ + +struct mlx5_verbs_ops { + mlx5_reg_mr_t reg_mr; + mlx5_dereg_mr_t dereg_mr; +}; + +/* Verbs ops struct */ +extern const struct mlx5_verbs_ops mlx5_verbs_ops; +#endif /* RTE_PMD_MLX5_VERBS_H_ */ -- 2.8.4