From patchwork Thu May 7 08:56:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ophir Munk X-Patchwork-Id: 69910 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 508B3A00C5; Thu, 7 May 2020 10:56:46 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B06D51DADE; Thu, 7 May 2020 10:56:45 +0200 (CEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60041.outbound.protection.outlook.com [40.107.6.41]) by dpdk.org (Postfix) with ESMTP id 8CAE31DACA for ; Thu, 7 May 2020 10:56:44 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I8e8ZuGgDyFk23tu1uVgRmap87zOADxLVx5s6WVug5HJaNjB8fBRIdFPxKyWWnbPzyQrPMPoU8jHOSFFZXRM0EWQrnJPoJuFJ5ZxtpexkX/xvJnbI9p+3EeblXD++bSCbbi6aY7qbwRVNGgFISauj1xIzOrM5218K/lbVKofikFlXuXktjvyAKd4U/+jR4DxO8pQuOtB27xV1ijtx78iHmM7PSGVqle4aB38ElbiDqQKxMMLTJWRy6R7Da6KIQ1fncIn28RVdcZ5z0qnfVoOlpd75Mm1qezDCLjrFHZsj5wNJ2Rcyxh3Dc5gpT5jf0o9s2T+QNADTMDwcgLNmITSnQ== 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=RP565CwQUfpeSuk+Egvmu+FXeyOIISSkWFyYpub3a1o=; b=Lmdhsrz7+AbmSspVnv5BmaSI/SZx2PXS+wYQGfG0liH0R16OYkhV1gVQIN2dydhE8VVWDsFiU/GnWs8E+i7/Emk9l28fJgygK2qRV+q8thuvxJxSMgJie+1v3KBgVycAq4Dqs+6GaBrP0V/2sjQU5Y/j9U1ng5AkuR37qDQaB4JHZSGwa1hireGEWHxOdvm+t/45snaP8EzEdzHlvhsXiT3IoDSsdlfQsOB2v8C/SUCbEBplTGDstxjVnAAu6FetVmcFhs0JYAiQaQeQkk4dxYRvBxHgYdgQke3OQlhmgUoG5BslKBTBmvu7QG81Aa8LBSfxCfz9uKPfeymf6Un86A== 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=RP565CwQUfpeSuk+Egvmu+FXeyOIISSkWFyYpub3a1o=; b=rbB5a7BItHSQmFzfz1JNl/jI/y+FKPjpFNYEuokr1wDgUOp+YoGviFpaVDbKZnIN0e2HLkWHCwUgd7oxbsjTryvJ4qazlBPXQYWrQwC7Qr8Ro68cdvcwakxjan7KJB/802qHxYVZ1zsQqSlCVX9SlwXHXdOKcXoDKxM5FWX0fy0= 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 AM0PR05MB4546.eurprd05.prod.outlook.com (2603:10a6:208:af::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.20; Thu, 7 May 2020 08:56:43 +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.2958.034; Thu, 7 May 2020 08:56:43 +0000 From: Ophir Munk To: dev@dpdk.org, David Marchand Cc: Ray Kinsella , Matan Azrad , Raslan Darawsheh , Thomas Monjalon , Ophir Munk Date: Thu, 7 May 2020 08:56:33 +0000 Message-Id: <20200507085634.9589-1-ophirmu@mellanox.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20200507073702.4047-2-ophirmu@mellanox.com> References: <20200507073702.4047-2-ophirmu@mellanox.com> X-ClientProxiedBy: PR3P191CA0030.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:54::35) 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 PR3P191CA0030.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:54::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.28 via Frontend Transport; Thu, 7 May 2020 08:56:41 +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: 07ca5bbb-d12b-49da-c942-08d7f264903a X-MS-TrafficTypeDiagnostic: AM0PR05MB4546:|AM0PR05MB4546: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr,ExtFwd X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:110; X-Forefront-PRVS: 03965EFC76 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PS4VRHGCFd88BHl9HMuJN3xTheUlA2my5n3RD0myACtyye/EnEA+NqoBqCyj0GEPTLPJTvrbAwfGvbBy69ti06qO8qdytzW4c24LU9Yf3W0uzrH/ELokPPTgBDqiRwLkT9O86LvRYoEEyA+uy9iqvG+yus+ayihYyQFr4LIqnANfvKvCBWMfEqNYKTFfssRC/ZIeS9erX6ick8tPo8E0GBKTn1KSxPiOQcvbCu27ymIUwtwmpkFk+xxNYDBM1OoNzF/PcXtJpeuU5ru9c4ElcN9qUTlV81JU/dannEDPC4oTiqicUagyhgK3E9p9nzv9OUL0t7TQX9/kFDjTFzRQgeu38KLCuuKklJObhKRsD7b1cStE1tBaJ/58blD5lhu6nPDwxxzc62+9IndLADBuokUrgVgvJnT7UmkGXopZ9PTb2EVSUhOXR7SFh6316m3ZbxV/2r1MQq7Pi/5qjxV+XOSD8T3dCTl6pSMis8prmaTjKf0f6huGEhzcXHwmKiTZp7rgWBjL2eID9hgLzcB5sQ== 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)(39860400002)(136003)(376002)(346002)(396003)(366004)(33430700001)(5660300002)(8676002)(16526019)(8936002)(26005)(2906002)(186003)(83290400001)(316002)(83300400001)(54906003)(107886003)(2616005)(956004)(6916009)(4326008)(86362001)(478600001)(83320400001)(33440700001)(83280400001)(83310400001)(7696005)(52116002)(66556008)(66946007)(1076003)(66476007)(8886007)(55016002)(36756003)(6666004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 1uBWVs8IEouC5AO2bDUXtd6arb0PZnm37VDTA4bvLYMrPXngXrXaR4SvV4z2rJTBehgdfXgfGEo5hILF5ukE3k8n1Do2zWJWgDQV3Rnweq1w1ZFSboh3rcYkjU4HW+U9Mr9cFabvElZZ90BkE4uPBLHngOKGLmlSaUXIxMg2z76WXl8pXJ1sMQbOAcNDac/DSv5lJFzhhiu6RSL+aEsK8663byvS7D4Pzi1AAJW26HnapUNLyd0UjDp1X86aNvYtNuUKrp31XJLF7xWvwy3GpnXnSnTVrI12r2bu/lfqgPONm9me+OE3UhA1kKZ5JCalXZxoNU6orbQt0ald570A+LfQLE/ZpdkjjQ/GYzewI0Qek0BvlZ60gti8U1IkeTiRxQYDH8xQots6x4JPjNxn2NvAglY2+CL95MYwRxF4vyTXWmUp6oKdC0iWvZoJxOjUjxaotI/3x+GjG8kVTWaHApLtOL/IEso27VC6m7M3ONK6re/9oRHvep3+kaNSi73Rqd2MwidQXNlGq+xNdsRF8Gb9CL9gQpOIDScmB16qQWxtVBThmYE7beCGEg1H4dXo9wnczeirkyYi6uLlZg/5iyEc9nZrj8oFXI+tAkH6kZFIdHxsc22iGuer9LexY2CxV6ba9pE9LR4K/gMba5ZRCG+grRNhtDSCKRRMOdUsgWztUlqDmqEq/LL7NuvF3B8q8sjPw6P9mlT8DtVYfZTbHoiO4D3WgCeZ4Y4ROA2oswtdJSCD1p1JO5yIUmB6ynLBsU6FstoTJFT4/+BtolTLwzAzGsrUtRen4WNxyqvEwzM= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07ca5bbb-d12b-49da-c942-08d7f264903a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2020 08:56:42.9655 (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: Z+4P/zi0PIxcIVTN88T+CT9qfd9ui7Oraxzfy+CrhL8enqlJ2Pzv76/WdhG97aiEJ/xMfDkjtO2MpFrGeE493Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB4546 Subject: [dpdk-dev] [PATCH v3 1/2] common/mlx5: add rte internal tag and avoid comparison 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" Move mlx5 symbols in the map file to the INTERNAL section and add __internal tags to their definitions. Those symbols were exported in 20.02 and now (20.05) they are removed. Avoid ABI comparison issues between 20.05/20.08 and 20.02 by adding the suppress_file directive to libabigail.abignore file. This directive will prevent loading mlx5 common symbols and no comparison will be performed. Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") Signed-off-by: Ophir Munk Acked-by: Matan Azrad --- v3: add "Fixes" and "Acked-by" to commit message devtools/libabigail.abignore | 7 +++++++ drivers/common/mlx5/mlx5_common.h | 3 +++ drivers/common/mlx5/mlx5_devx_cmds.h | 23 +++++++++++++++++++++++ drivers/common/mlx5/mlx5_nl.h | 18 +++++++++++++++++- drivers/common/mlx5/rte_common_mlx5_version.map | 6 +++--- 5 files changed, 53 insertions(+), 4 deletions(-) diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore index 0326662..f22d540 100644 --- a/devtools/libabigail.abignore +++ b/devtools/libabigail.abignore @@ -35,3 +35,10 @@ type_kind = enum name = rte_eth_event_type changed_enumerators = RTE_ETH_EVENT_MAX + +; These functions were moved from stable to internal. +; Avoid loading the symbols and comparing them. +; This is a temporary exception till DPDK 20.11 +[suppress_file] + file_name_regexp = ^librte_common_mlx5\. + diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h index c2d688a..b37b820 100644 --- a/drivers/common/mlx5/mlx5_common.h +++ b/drivers/common/mlx5/mlx5_common.h @@ -196,6 +196,7 @@ check_cqe(volatile struct mlx5_cqe *cqe, const uint16_t cqes_n, return MLX5_CQE_STATUS_SW_OWN; } +__rte_internal int mlx5_dev_to_pci_addr(const char *dev_path, struct rte_pci_addr *pci_addr); #define MLX5_CLASS_ARG_NAME "class" @@ -206,7 +207,9 @@ enum mlx5_class { MLX5_CLASS_INVALID, }; +__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/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index f7802e6..6dc27da 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -300,52 +300,75 @@ struct mlx5_devx_qp_attr { /* mlx5_devx_cmds.c */ +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_flow_counter_alloc(struct ibv_context *ctx, uint32_t bulk_sz); +__rte_internal int mlx5_devx_cmd_destroy(struct mlx5_devx_obj *obj); +__rte_internal int mlx5_devx_cmd_flow_counter_query(struct mlx5_devx_obj *dcs, int clear, uint32_t n_counters, uint64_t *pkts, uint64_t *bytes, uint32_t mkey, void *addr, struct mlx5dv_devx_cmd_comp *cmd_comp, uint64_t async_id); +__rte_internal int mlx5_devx_cmd_query_hca_attr(struct ibv_context *ctx, struct mlx5_hca_attr *attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_mkey_create(struct ibv_context *ctx, struct mlx5_devx_mkey_attr *attr); +__rte_internal int mlx5_devx_get_out_command_status(void *out); +__rte_internal int mlx5_devx_cmd_qp_query_tis_td(struct ibv_qp *qp, uint32_t tis_num, uint32_t *tis_td); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_rq(struct ibv_context *ctx, struct mlx5_devx_create_rq_attr *rq_attr, int socket); +__rte_internal int mlx5_devx_cmd_modify_rq(struct mlx5_devx_obj *rq, struct mlx5_devx_modify_rq_attr *rq_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_tir(struct ibv_context *ctx, struct mlx5_devx_tir_attr *tir_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_rqt(struct ibv_context *ctx, struct mlx5_devx_rqt_attr *rqt_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_sq(struct ibv_context *ctx, struct mlx5_devx_create_sq_attr *sq_attr); +__rte_internal int mlx5_devx_cmd_modify_sq(struct mlx5_devx_obj *sq, struct mlx5_devx_modify_sq_attr *sq_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_tis(struct ibv_context *ctx, struct mlx5_devx_tis_attr *tis_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_td(struct ibv_context *ctx); +__rte_internal int mlx5_devx_cmd_flow_dump(void *fdb_domain, void *rx_domain, void *tx_domain, FILE *file); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_cq(struct ibv_context *ctx, struct mlx5_devx_cq_attr *attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_virtq(struct ibv_context *ctx, struct mlx5_devx_virtq_attr *attr); +__rte_internal int mlx5_devx_cmd_modify_virtq(struct mlx5_devx_obj *virtq_obj, struct mlx5_devx_virtq_attr *attr); +__rte_internal int mlx5_devx_cmd_query_virtq(struct mlx5_devx_obj *virtq_obj, struct mlx5_devx_virtq_attr *attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_qp(struct ibv_context *ctx, struct mlx5_devx_qp_attr *attr); +__rte_internal int mlx5_devx_cmd_modify_qp_state(struct mlx5_devx_obj *qp, uint32_t qp_st_mod_op, uint32_t remote_qp_id); +__rte_internal int mlx5_devx_cmd_modify_rqt(struct mlx5_devx_obj *rqt, struct mlx5_devx_rqt_attr *rqt_attr); diff --git a/drivers/common/mlx5/mlx5_nl.h b/drivers/common/mlx5/mlx5_nl.h index 2c3f837..53021e1 100644 --- a/drivers/common/mlx5/mlx5_nl.h +++ b/drivers/common/mlx5/mlx5_nl.h @@ -28,35 +28,51 @@ struct mlx5_nl_vlan_vmwa_context { struct mlx5_nl_vlan_dev vlan_dev[4096]; }; - +__rte_internal int mlx5_nl_init(int protocol); +__rte_internal int mlx5_nl_mac_addr_add(int nlsk_fd, unsigned int iface_idx, uint64_t *mac_own, struct rte_ether_addr *mac, uint32_t index); +__rte_internal int mlx5_nl_mac_addr_remove(int nlsk_fd, unsigned int iface_idx, uint64_t *mac_own, struct rte_ether_addr *mac, uint32_t index); +__rte_internal void mlx5_nl_mac_addr_sync(int nlsk_fd, unsigned int iface_idx, struct rte_ether_addr *mac_addrs, int n); +__rte_internal void mlx5_nl_mac_addr_flush(int nlsk_fd, unsigned int iface_idx, struct rte_ether_addr *mac_addrs, int n, uint64_t *mac_own); +__rte_internal int mlx5_nl_promisc(int nlsk_fd, unsigned int iface_idx, int enable); +__rte_internal int mlx5_nl_allmulti(int nlsk_fd, unsigned int iface_idx, int enable); +__rte_internal unsigned int mlx5_nl_portnum(int nl, const char *name); +__rte_internal unsigned int mlx5_nl_ifindex(int nl, const char *name, uint32_t pindex); +__rte_internal int mlx5_nl_vf_mac_addr_modify(int nlsk_fd, unsigned int iface_idx, struct rte_ether_addr *mac, int vf_index); +__rte_internal int mlx5_nl_switch_info(int nl, unsigned int ifindex, struct mlx5_switch_info *info); +__rte_internal void mlx5_nl_vlan_vmwa_delete(struct mlx5_nl_vlan_vmwa_context *vmwa, uint32_t ifindex); +__rte_internal uint32_t mlx5_nl_vlan_vmwa_create(struct mlx5_nl_vlan_vmwa_context *vmwa, uint32_t ifindex, uint16_t tag); +__rte_internal int mlx5_nl_devlink_family_id_get(int nlsk_fd); +__rte_internal int mlx5_nl_enable_roce_get(int nlsk_fd, int family_id, const char *pci_addr, int *enable); +__rte_internal int mlx5_nl_driver_reload(int nlsk_fd, int family_id, const char *pci_addr); +__rte_internal int mlx5_nl_enable_roce_set(int nlsk_fd, int family_id, const char *pci_addr, int enable); diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map index 564a9a7..61d1d4d 100644 --- a/drivers/common/mlx5/rte_common_mlx5_version.map +++ b/drivers/common/mlx5/rte_common_mlx5_version.map @@ -1,8 +1,10 @@ -DPDK_21 { +INTERNAL { global: mlx5_class_get; + mlx5_dev_to_pci_addr; + mlx5_devx_cmd_create_cq; mlx5_devx_cmd_create_qp; mlx5_devx_cmd_create_rq; @@ -27,8 +29,6 @@ DPDK_21 { mlx5_devx_cmd_query_virtq; mlx5_devx_get_out_command_status; - mlx5_dev_to_pci_addr; - mlx5_nl_allmulti; mlx5_nl_devlink_family_id_get; mlx5_nl_driver_reload;