From patchwork Thu Oct 26 06:43:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133358 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CF0DC43204; Thu, 26 Oct 2023 08:47:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F0E1742DD7; Thu, 26 Oct 2023 08:44:29 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2094.outbound.protection.outlook.com [40.107.93.94]) by mails.dpdk.org (Postfix) with ESMTP id 882FF42E21 for ; Thu, 26 Oct 2023 08:44:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RRH6UaO9O0pJozl9LB7M/V1dqxzAk5IXpcXhR2CwskmCyl1QB6sG1IdClEfoVWfgx+fE7kjKxudOEE5wBz6AagLpS6o0jEvJhD2mvO7xsUfwepYKcuzMIww7DsHFCjIFuG3FGH1WRciy0rPyt7u3P/S9lNDXkaiI1PqLSKUDqjpBk7GcFMHCnGOl9i5ktChyGFrWGpvRgQfOqQYMLUeE8mFXROUQ/TTRquw4Dhnubee9nKAzdG2jA/UD/MgH2GcqOK94sZ+skCFjBCInnKe/0bBXD14TDAXqDpcDB3VixbBGp5Wegz7g5mfZgXxFv0C473KAIr72jWWe66nUWuNajA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TLRnqUZEDgCd7/M68FZSmE9hq3bl+i74+ZmW3pTwILc=; b=WDjhCy/gh6fSOHA2EroA6BDsuBfO8iNpNC+5+rkpkxiICQae/d3EION3F7AfYNl9pWaqXt4g5Wzdgi9QGT3X7q/OZYh9wXG5EDnNFjo8EgrgdK1y8lhOQ6TMwCs1Qh36pplYr5APvP37woKdM18MqlmiU1FpfqvEZSqTt0z7rQDsYXVNQ4tAHt31dvhShwUFTER1wNsC11DMIPiWnQSlfjjr8JD0Zpq9iXzhXmWv2saTvIOfrz7fMc68tBwHqfsw4sAIfTBopzgSlOfJQvYxLshJHdnbdRX9JmymJgwA7xKK4+MwAC2XriNA9Cv5zlNEJeXgR30vY4nCQoqg8/AQTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TLRnqUZEDgCd7/M68FZSmE9hq3bl+i74+ZmW3pTwILc=; b=BfCJPZs8bWGiu+BQo8PPOCMdNI3736u8ZnKXcGmvC+PEWdwbssuK+Wagl6ADf/G/flaom7827zZj2PnXuBqa9+riAxPNaclmLCafgV2KXdoWxfkLhk5E23Vg7mj/iJkGacrw6tHfpQFSs9H7J9fStICYfvaQ1CCOCwrRCA/Zm04= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by DM4PR13MB5908.namprd13.prod.outlook.com (2603:10b6:8:50::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.19; Thu, 26 Oct 2023 06:44:18 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b%6]) with mapi id 15.20.6933.022; Thu, 26 Oct 2023 06:44:18 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Shujing Dong , Long Wu , Peng Zhang Subject: [PATCH v3 18/25] drivers/vdpa: introduce the NFP vDPA library Date: Thu, 26 Oct 2023 14:43:17 +0800 Message-Id: <20231026064324.177531-19-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231026064324.177531-1-chaoyong.he@corigine.com> References: <20231024022849.3092506-1-chaoyong.he@corigine.com> <20231026064324.177531-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BYAPR07CA0034.namprd07.prod.outlook.com (2603:10b6:a02:bc::47) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|DM4PR13MB5908:EE_ X-MS-Office365-Filtering-Correlation-Id: b205aecc-6399-42de-d869-08dbd5eefa7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: a6uGRr4q/UBedEuB6yjB7JeEnlXkS7OIs2ZqvlxPAEm7KTxf7RJcT6svhoyLdNLQxwgyWb0rvt/PyKI56E93i7FZ0Xz3VMcWHdN7NBMga3KU7HZvWoHY+tmS0QCNC46ywemkx8rXp8LAgeX/2V3+dlJ9834RV9dD+KDIOhfKxpPPhMfy7hOGD1BhgWrkVoyqN8zRZiQOGMDDW5fGHWc/+DGS7i6AivY02RPRA35rDgVZgm72luXPBny3YupR/utazRfBQBnsSaV0xonvHYTYSNsWBWfS8wm1tJAgS4nKG5tLlPSqsUBNhhEJgPVnZjWx40w8CH29eSrz7Wq/EOXPJP++RKmRaB1fJf9XT6GjVVbCJi/n9kvcq+vypNnfyDGSGVuQ57MMQMVCxY2pEwH/QYP3pc/1sML6PX8N/zrPauaKTUmNNGHazAh4GmbdEnD1YkOqyJ+n3VokRgfWzdFEVC0W1OWBfDfTfCH/3XWiop368bdUIZBCpiz3UO71EOgkX6d3oDmfqQWbhYpkyKF9gc8SBC6661lCZ/JZaJ+KQ8TsDf3iO6SZkifLCEtBZdf4rY8inW2gZJaoIr7gRwvSINHLqSINeujK+VaG3rSu9ZNgsHEu97SWV9DHFR9TxYTA1ip7VGHpHqVwjnXpo2qHzefuLu6Z6pI6ZjrHx/kGErU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(376002)(366004)(396003)(346002)(39840400004)(230922051799003)(186009)(1800799009)(451199024)(64100799003)(26005)(478600001)(1076003)(316002)(6512007)(86362001)(6506007)(6916009)(66946007)(66556008)(38100700002)(66476007)(54906003)(36756003)(38350700005)(2616005)(6486002)(107886003)(44832011)(2906002)(83380400001)(4326008)(8676002)(8936002)(5660300002)(41300700001)(52116002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zHOyxWSSoRi3k8F7xj+ynP7VWclMd6i0tuxYV381L0wm+uxYEkaf+pTV0W6BF5tb3P66EEKserSkiNh+5qjfERVI2YjaR0D4IQH1qcQ+DyWsifGLtSaYoQWQT2xL9uDi+gSf1oJwBvmL3CQKiGq2MY62ZUEltoEw932n1oD7RVK4xtvGp5E6Xcoy40vqjSsXKqrAycoTPjQ0gq8jpo8sA712cYkNoSDo1yzX3Fw0zBmDvDZfZGx8dTOzvWYOy3gnFYR6YKYYsLhz8N/F3DL5OPLBfikfPIShYWkfM+3hPdeuTntpMlmHT+K37eU8aK/Sd7iXRNZ8kk0DjkZvAeiONlQwqqZTtz04QyKJR8N+DoJeDTnBT1P0YjaOogOdDdk3nJghOyy8bArLUc7N2vff8LSTx0HFPE9fT8Z9y3TewsfeMn+ELuUDZpVmfQiPpn1smUZ93sH0JXwkoKh44By24iNWRXZvtrXStL+xXXo+vy9W1mUvSwlVzrg3IIU8aVVQq7D7HwjPepxvTmEpFX3kOJcBH/ED3lOyVaJcz7j5bGIHXDLcg8SXG5y9a4aPw2emicpVvA3+ZliVwHBqY5LHYHpsMRcsU7a4OmHKFfCgPzY/RRS7v5TKw/zMQ328r4VcYdiesCW34uUPRsYHZWGOI++56ah2rX9Lrfb8KdVBnJTBjOmXfJ5MT66aQ+8plh6jOL6uRAGspnCeiXO+LUNMPrRmpqG4W/jaoRPJEqIIRhpGv6cOgQDacjxEOYz0bw+VnHeTC1bDEHbWty/ds13MRDZPl9B9jTyUFfVv9ybdXHEFIYZp6B/0EJY5Osdw+6O8mMWtyf8qb1slukfKeRP6fTAXY/AK9QeCdxKCNJQfOfL1Mlr60o5o7Q+42s3LYYWYGbsnbkLochgJ2aLcSMXbJBz3BicgPZ6hB8JisP9CfWSEGV/hRRIc/zvQ59MnhZdB82m4og7VrOPZ7/ZHxdo001r2uTPxrJGoYZIlOJlo0oPjQc0pOcCtQSDDD2ojGbOakqasCuF5/KAd0/jCM6FjPMzV3H7/i9UZGYzKA6/wK9umotZDb+/2+UPmmEtQa/q0kEh+zaglLgdtFH2BL0fYRSzv2/rC5mSTdOi+jQ+ziNoeolwgOCD5EFvNfue7xp9k2jDtGYtDlhLT8l7emxxExDrDv6Vg3PKmtDKAFxidmrc7emBchIXtYsoxZtc1R8pRZMKbdvO9mYNOFEC7Awsef6tUT9IDNlTqiS3DQ9d3qfYV7u39sO3npA1ja9ia2LZYaTK+CPxn3McQAVsA3lIMGV2ALxVGtlS055gKOD2q010s043XdZqd4kKJHk3vsBgXpo0CpGnfhDGWQluTkN2t62xeIguYQnjGHsoaaCwsaXS7yNsPDYpPXkmAU5XCHoQGMhAxK044CI5DhtKJ38L/B5PIOrtRpsa6uINKXC9yL7NvqUVMyNHr9pIhi+dsabN5vkUITmmNA4uvUZ64Qn6xSsktvo+VJLJHfPilqUKeTP9KUQUyjXZ26ocF+n4YjOGfI0564cBz6TY/OWmvbTTV0pjNvIzFVYP2k89a+7e8eP4/vKp+7mtZGAGzK1HJTAUIyI1Bw44DsFqbZ7lRtGn1Rw== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b205aecc-6399-42de-d869-08dbd5eefa7c X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2023 06:44:18.7384 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VHEc4sEO5y07WrbpW0ktLMfOH+s+4XKW6a6g/52U+OS0J3uotU/gDsPx6mmhQ5Y6toaHnsk1B6oB0bFMtuJ0+KKXMsbO04AwpOrOdF8irn8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5908 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Introduce the very basic NFP vDPA library. Signed-off-by: Shujing Dong Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- MAINTAINERS | 6 ++++ doc/guides/vdpadevs/features/nfp.ini | 8 +++++ doc/guides/vdpadevs/index.rst | 1 + doc/guides/vdpadevs/nfp.rst | 54 ++++++++++++++++++++++++++++ drivers/vdpa/meson.build | 1 + drivers/vdpa/nfp/meson.build | 13 +++++++ drivers/vdpa/nfp/nfp_vdpa_log.c | 9 +++++ drivers/vdpa/nfp/nfp_vdpa_log.h | 21 +++++++++++ 8 files changed, 113 insertions(+) create mode 100644 doc/guides/vdpadevs/features/nfp.ini create mode 100644 doc/guides/vdpadevs/nfp.rst create mode 100644 drivers/vdpa/nfp/meson.build create mode 100644 drivers/vdpa/nfp/nfp_vdpa_log.c create mode 100644 drivers/vdpa/nfp/nfp_vdpa_log.h diff --git a/MAINTAINERS b/MAINTAINERS index 5273ab9812..f463188f1d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1301,6 +1301,12 @@ vDPA Drivers T: git://dpdk.org/next/dpdk-next-virtio F: drivers/vdpa/meson.build +Corigine nfp vDPA +M: Chaoyong He +F: drivers/vdpa/nfp/ +F: doc/guides/vpdadevs/nfp.rst +F: doc/guides/vdpadevs/features/nfp.ini + Intel ifc M: Xiao Wang F: drivers/vdpa/ifc/ diff --git a/doc/guides/vdpadevs/features/nfp.ini b/doc/guides/vdpadevs/features/nfp.ini new file mode 100644 index 0000000000..d830feafe0 --- /dev/null +++ b/doc/guides/vdpadevs/features/nfp.ini @@ -0,0 +1,8 @@ +; +; Supported features of the 'nfp' vDPA driver. +; +; Refer to default.ini for the full list of available driver features. +; +[Features] +Linux = Y +x86-64 = Y diff --git a/doc/guides/vdpadevs/index.rst b/doc/guides/vdpadevs/index.rst index cc2f858042..b0191a3a1d 100644 --- a/doc/guides/vdpadevs/index.rst +++ b/doc/guides/vdpadevs/index.rst @@ -14,4 +14,5 @@ which can be used from an application through vhost API. features_overview ifc mlx5 + nfp sfc diff --git a/doc/guides/vdpadevs/nfp.rst b/doc/guides/vdpadevs/nfp.rst new file mode 100644 index 0000000000..63636b2882 --- /dev/null +++ b/doc/guides/vdpadevs/nfp.rst @@ -0,0 +1,54 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright (c) 2023 Corigine, Inc. + +NFP vDPA driver +=============== + +The NFP vDPA (vhost data path acceleration) driver (**librte_nfp_vdpa**) +provides support for the Netronome and Corigine's NFP-6xxx, NFP-4xxx +and NFP-38xx product lines. + +NFP vDPA implementation +----------------------- + +NFP VF device can be configured in the net device or vDPA mode. +Adding "class=vdpa" parameter helps to specify that this device is to +be used in vDPA mode. If this parameter is not specified, device +will be probed by net/nfp driver and will used as a VF net device. + +This PMD uses (common/nfp) code to access the device firmware. + +Per-Device Parameters +~~~~~~~~~~~~~~~~~~~~~ + +The following per-device parameters can be passed via EAL PCI device +allowlist option like "-a 02:00.0,arg1=value1,...". + +- ``class`` [net|vdpa] (default **net**) + + Choose the mode of operation of nfp device. + **net** device will work as network device and will be probed by net/nfp driver. + **vdpa** device will work as vdpa device and will be probed by vdpa/nfp driver. + If this parameter is not specified then nfp device will operate as network device. + +Dynamic Logging Parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +One may leverage EAL option "--log-level" to change default levels +for the log types supported by the driver. The option is used with +an argument typically consisting of two parts separated by a colon. + +Level value is the last part which takes a symbolic name (or integer). +Log type is the former part which may shell match syntax. +Depending on the choice of the expression, the given log level may +be used either for some specific log type or for a subset of types. + +NFP vDPA PMD provides the following log types available for control: + +- ``pmd.vdpa.nfp.vdpa`` (default level is **notice**) + + Affects driver-wide messages unrelated to any particular devices. + +- ``pmd.vdpa.nfp.core`` (default level is **notice**) + + Affects the core logic of this PMD. diff --git a/drivers/vdpa/meson.build b/drivers/vdpa/meson.build index 77412c7d09..896e8e0304 100644 --- a/drivers/vdpa/meson.build +++ b/drivers/vdpa/meson.build @@ -8,6 +8,7 @@ endif drivers = [ 'ifc', 'mlx5', + 'nfp', 'sfc', ] std_deps = ['bus_pci', 'kvargs'] diff --git a/drivers/vdpa/nfp/meson.build b/drivers/vdpa/nfp/meson.build new file mode 100644 index 0000000000..5eff240055 --- /dev/null +++ b/drivers/vdpa/nfp/meson.build @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) 2023 Corigine, Inc. + +if not is_linux or not dpdk_conf.get('RTE_ARCH_64') + build = false + reason = 'only supported on 64-bit Linux' +endif + +sources = files( + 'nfp_vdpa_log.c', +) + +deps += ['vhost'] diff --git a/drivers/vdpa/nfp/nfp_vdpa_log.c b/drivers/vdpa/nfp/nfp_vdpa_log.c new file mode 100644 index 0000000000..f5ada20713 --- /dev/null +++ b/drivers/vdpa/nfp/nfp_vdpa_log.c @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2023 Corigine, Inc. + * All rights reserved. + */ + +#include "nfp_vdpa_log.h" + +RTE_LOG_REGISTER_SUFFIX(nfp_logtype_core, core, NOTICE); +RTE_LOG_REGISTER_SUFFIX(nfp_logtype_vdpa, vdpa, NOTICE); diff --git a/drivers/vdpa/nfp/nfp_vdpa_log.h b/drivers/vdpa/nfp/nfp_vdpa_log.h new file mode 100644 index 0000000000..cf342329b1 --- /dev/null +++ b/drivers/vdpa/nfp/nfp_vdpa_log.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2023 Corigine, Inc. + * All rights reserved. + */ + +#ifndef __NFP_VDPA_LOG_H__ +#define __NFP_VDPA_LOG_H__ + +#include + +extern int nfp_logtype_vdpa; +#define DRV_VDPA_LOG(level, fmt, args...) \ + rte_log(RTE_LOG_ ## level, nfp_logtype_vdpa, \ + "NFP_VDPA: %s(): " fmt "\n", __func__, ## args) + +extern int nfp_logtype_core; +#define DRV_CORE_LOG(level, fmt, args...) \ + rte_log(RTE_LOG_ ## level, nfp_logtype_core, \ + "NFP_CORE: %s(): " fmt "\n", __func__, ## args) + +#endif /* __NFP_VDPA_LOG_H__ */