From patchwork Fri Apr 26 07:48:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 139692 X-Patchwork-Delegate: maxime.coquelin@redhat.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 9453943F12; Fri, 26 Apr 2024 09:49:30 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0D20143C72; Fri, 26 Apr 2024 09:49:03 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2117.outbound.protection.outlook.com [40.107.94.117]) by mails.dpdk.org (Postfix) with ESMTP id C4F7A43C8C for ; Fri, 26 Apr 2024 09:49:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l3nDYb/PwP/pJ40xqlnYPNJKLq8BsPPLog4TNt6DghTOn01D6q3rrlafSsu/ZHees+SDRWTN+xVUNcbktXMMJJ6m9ulnnpa61n8udRBcsFQm4ZxmS/yKy+8mSEAfXaHklQeX9f8pLK16FHVepbflKRtPYth4ijGokn94o23wZjba81BIsi3VX3t1y6jzg+iPjgCJpapDOTyYjSxyUHrjitCsXwPlEs4ZbKzhdhyXKEyd/C9ZaTC4ZvPjDPtmkUgmMk4Az1iuLWWPVf0E5WqPrgKo8qA7e0//0+SX6U5ohlrcF2hNq3fI0Q5ZUS91lwkkLcX1h1VSnuW/7FtzDfBpPA== 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=UIEpqR/8qg8vF/YSUfr6zTrpNGD6XV6GS/nTPsl4P2E=; b=RDvNBk0FfxaLr1scYV4/RBbe2SKg1qZsLlbnuwze2eAO7lt5ba+6uczL64AYT1pY9tB+0HE4Jl1b4BM80K2xYrTIoEjh5JaGD4lNlW+g7X5KU5HPiCadhohRJ0BBuNtTDhRgsvR4prpGDednyS5+sdLzNAuNXxwFnZPKRh+H8//bQUrTQ2U4RlqkB0fgFFGCMsT9e+Y01VX8Y8evW+urdiA23/XaareqVWcXr0QKI7hGrIEeqVvqqNIBW4U+fXha9JvPmIywDS+z9QahHM22MPx2fYu/zzG/GeBaLPJM79UM0xPSn62G69cc+GzBm9jSzTH0y4FYr/9zyrNgmItWVg== 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=UIEpqR/8qg8vF/YSUfr6zTrpNGD6XV6GS/nTPsl4P2E=; b=LOZ+JYwRfPYYTxyrBqamhzE2edqXUgJ5HvbCGQ95o32a4KuqRdxGn/LY196uomglv4kVrH0i2PLG0H9USPQiB0rFiLtH90rkyJNn32Xp81e1jrrU0vKVpWUQuEXZ1zcH2IEo3NqxKD7hRMHV4JKLFLBQgAloJ7/Irbhe151RNBU= 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 SN4PR13MB5279.namprd13.prod.outlook.com (2603:10b6:806:206::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.22; Fri, 26 Apr 2024 07:49:00 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::ec12:7411:559a:850e]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::ec12:7411:559a:850e%5]) with mapi id 15.20.7544.010; Fri, 26 Apr 2024 07:49:00 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Xinying Yu , Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH 04/10] vdpa/nfp: refactor the logic of datapath update Date: Fri, 26 Apr 2024 15:48:25 +0800 Message-Id: <20240426074831.1729792-5-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240426074831.1729792-1-chaoyong.he@corigine.com> References: <20240426074831.1729792-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BYAPR02CA0007.namprd02.prod.outlook.com (2603:10b6:a02:ee::20) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SN4PR13MB5279:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d5277e2-3600-422a-a31c-08dc65c5559b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|52116005|1800799015|366007|376005|38350700005; X-Microsoft-Antispam-Message-Info: 33Ao2PDv6m7K0ApZ48U0fhGqECMVKnlJqTwoCpOhjW27cwLl4N3DouwK9KThmE8yr//Sdv4fx9NVkkp9aQ69q8gwjn7SCM37Nv5YUrRfdyryVwPWvJEsTUh2idblDhrJ4utczHEWpNnVjY9PIp1HXYXyGUt/RAZMZPb9CrF93ZzyzQHmlOUGC0ACx0J76Tb4L9hAOoo2PdiYFkEgA/FRrSRMZ6ntSa4I8LjOYEmOfxc/pfAZk8ttzVTI75Hqc/MztGyVsO1MwhMiqi5GLz0WeY6xjfUYgGQIuBQA9Ry2DZ0RPCdCf3HFvZYQZSgB8LlhqlG9ie05BMw1By+sURNvbEoqpfd6XKGDYOWX9rAcPOXgoWlap8pbwcRq5oVDbFPStxO6LJGGx+5lqpo+gI1n++jrUjCJAVE1Y7QCkptCvvr+Sq7jAw69CjtqZzIn1DNx+oKFsUNDB1Vz44BwtAgz2bNUftJmLS05ixZGPzwT1e44NU4xxRHKbPnPToICi9EL4DZ9a7UrP9ndki0zIlM3wBfc8rte16v/aZBoqdiECj0OVVPyOXHwYhwsy8O8GqCPjr0P/S+8cQ98qgFD9FLWpdFWw1Zs92CZrKj2lnNrdA9cSzv9tPcyxXzjwMRO8k5E8ovuFALP3QWoqukFOF3byy75le9GIm9gYmvek6xrwPpi9SKIG7rJsGMFPvi3jZBIxduuwHPrlSIf3hkW6Y4kuoSlhbzlZRk1RmatTd/yF/H7FfQn9BoMmqBwwbpikTTvxIOTgPTVZEkyf5gGFzxsL4eqhdqI3bVryl0MKhyZLUNZWPli0ng9bXq1D68vbXzqanSihjC7x6RjtkUXvwjwUITIAB7QiYL0idgYkPBzJYMX59DwVr1GnRKnxXH10H0PXCea0d0JJIrjbqKSiz1GMFwbqiXo9rjcJfVjvjsEn28DOq3rujgMW5H8tr8lR7lpfjwZbqzTJ2l/o/ZAjbrngxvTRSYG25iiTX5pSqJOkxPjOcVDprmJeXSfGf95j5ghjW7BLna/7BWBu1Rnmn74+fz0l1iwSj1y7xTDdabR0wl9yp+cNDJ7EpZ2WDc434m4pCmEmyUy3HtgoMSvb3GVGZyaIGr+Ec4ApLyFjMUCHhy5ab7UQ2jyRVvmrbElkSuhblJycbVhO78LrXAn5F4S8HhqlAAHrI5ZTlXztrkpJHqFhh9OBQOMDNiT++rV/TZLnbOn0uODLyENzSrogOVpGcTXpLw6x9cwB/mwQ9w6UjR07waO55vs3WwIBZ/p/yIcXBb8b9bkhtXfwRxux6p4wdVzD+eUwTaoGn2YPNFgxZmLgvYoahv9iTom6dbyGeHg5G7Awm2KhNHZiSO4O7UcIg== 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)(52116005)(1800799015)(366007)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rOVdoN0undgkMtaY9uLZWttPTNOtgjEsG+YdiDWg/dPMFkcxT1SPs1VIOOAOHXTjsAEZ7WGO6My7HYLHvH73mlzqLMLy94Xvg+fQ5I+fr+B4X83k0k5ld/9Q6JVTStWeOFnPE/aDbdcVFm1Cktp5CHLhR5WWPY4TYlkhPyZ4RuSfhNGDbokNoi2i5Hnz6ZVhedfQSMXsPnrVFxWvPQ5IfvaSJ0a0jepkE+H73YN13AAsYf8pwdEWD47BBM8GxnBqYVFh43xRx20dzFUIfxHuMwa8QGGLIJ/qevXot4R2J2LnI2TfUBrgXge4lqA1HZXk2lCNSJjdSth3r83cPKyrdT1KubkBe+UGRbvABfi46/om/M9q7dCjHqVNwhjmFI43F9B4b+67bNYu/RA0TLWN2d0fLXJB8YUB7GWrZjvfBLy85819n9OKgvk1KgcjLlYb9z1Rt4SLdNxre01Cuk4tCeMJI7evmMFEn57NjGbLZcGdVOV+76JV7wyc7yCbLW3WCUzmwzYMy45NjR5Ip6+hkS+9oPaPkwPvUVhZIrX/D5wNm2Oe7kMrez5IznGAmIlWXQD4WFJbq34J6WKd81qRJiCtyhARhZvtrqygapvtA6M+ueY4LAIr/Hk0e/2H70dFIDPmeH9fqUGMAKDGscDJeO0aGmPX92ISC4T9K0vUFNGrgzwht2bINWKRFrPbeIbRV53PG37YvAWzTDC8caWrIUQEPpVV9AaP7GlRqPEBQtGt0PO/BkiY/WqdbJFlniihovwyqCAFNtG3XtPmamY+pLveSoVA4jlbzAYLCT1FjbIPEaxAmvQ/VX+zg6jr/TbIwJKSAYSYlNA21+FTxdmWJdpLVd57imCbOTIoClsqm0w3idnW0qP27D3+exrtqLl7dkGtLAqX5FbEv39zfrYwKVpRgvTC1HyFyABb+6cVzdlsZ9HfdtffZoAvbzAmHurZHs+qf4w82ZNy+H3RfE9FP56yijM8xwCj13MIGIQgpPGD8H/7lwha4owRKjZ6EdLJ4VHOiFuPUEeVu4OGWFhlFtZI9euljyqLvjV+iCSDtCNruo46zThUYlFJzVNYHFbba7+rrZr4a6kKtHQGf6vdd8VBoSOjUTQ02hswIRkCMeezrAsG9e6rOU411VXfGjDt6Mwtkjd/NCodBoyc0iwq4lhUNEuuRqTC0AlVv4UsEsWRzM+k3MFq96leZAb85R81taBrX/dw9sKmSiqyy/BwFVdTys2vd5zMODkBZmQH9OXRLMMy4KWymyRDGHKReiSAS/7lygbh7Jj+3Yn+wKFhlb8PqzDzxmGWHCxI1pUFZ7DxLfjm3Ih/fqaWbewVEYprumAJkSiw94I5WiTqRmNeQtyGHfIekc+UvhjxmgO+oNYzC9kVy/J80wvD0sx1sB56WoO4YLyU00OxLoJiA1SF7U+5+hSUcZrEETH3H67j78oMfawR1YI4ECoECvZvXLuca8aVJpr+NAro3pYPg5N0JnU6LC4L2fnb8vr1VAfnpsWR2NqjNvSSsAgVT8lyfbrO7rMvZMTClwEdIyVO5IIONK1GWsyn9R1xkNUi0/zkWwlsjZjn1T3NVGNAwRd+jNUP5QU0RebAIFl0piEO7CymzQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d5277e2-3600-422a-a31c-08dc65c5559b X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2024 07:49:00.1551 (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: KXYyQYuR9HrdfVLg0qeoNJxeOw1b8hJPFmiS3CG4HmnxBXpP0rh+AkZAbXCc+6kGxFxPTsCMBUhR5HF/aIDD5XRSy+xLmWMkBwtRef2WLDs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR13MB5279 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 From: Xinying Yu In order to add the new configuration logic of software live migration, split the datapath update logic into two parts, queue configuration and VF configuration. Signed-off-by: Xinying Yu Reviewed-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/vdpa/nfp/nfp_vdpa_core.c | 54 +++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/drivers/vdpa/nfp/nfp_vdpa_core.c b/drivers/vdpa/nfp/nfp_vdpa_core.c index 6d07356581..79ecd2b4fc 100644 --- a/drivers/vdpa/nfp/nfp_vdpa_core.c +++ b/drivers/vdpa/nfp/nfp_vdpa_core.c @@ -105,8 +105,8 @@ nfp_vdpa_check_offloads(void) NFP_NET_CFG_CTRL_IN_ORDER; } -int -nfp_vdpa_hw_start(struct nfp_vdpa_hw *vdpa_hw, +static int +nfp_vdpa_vf_config(struct nfp_hw *hw, int vid) { int ret; @@ -114,24 +114,8 @@ nfp_vdpa_hw_start(struct nfp_vdpa_hw *vdpa_hw, uint32_t new_ctrl; uint32_t new_ext_ctrl; struct timespec wait_tst; - struct nfp_hw *hw = &vdpa_hw->super; uint8_t mac_addr[RTE_ETHER_ADDR_LEN]; - nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(0), vdpa_hw->vring[1].desc); - nn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(0), rte_log2_u32(vdpa_hw->vring[1].size)); - nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(1), vdpa_hw->vring[1].avail); - nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(2), vdpa_hw->vring[1].used); - - nn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(0), vdpa_hw->vring[0].desc); - nn_cfg_writeb(hw, NFP_NET_CFG_RXR_SZ(0), rte_log2_u32(vdpa_hw->vring[0].size)); - nn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(1), vdpa_hw->vring[0].avail); - nn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(2), vdpa_hw->vring[0].used); - - rte_wmb(); - - nfp_disable_queues(hw); - nfp_enable_queues(hw, NFP_VDPA_MAX_QUEUES, NFP_VDPA_MAX_QUEUES); - nn_cfg_writel(hw, NFP_NET_CFG_MTU, 9216); nn_cfg_writel(hw, NFP_NET_CFG_FLBUFSZ, 10240); @@ -177,6 +161,40 @@ nfp_vdpa_hw_start(struct nfp_vdpa_hw *vdpa_hw, return 0; } +static void +nfp_vdpa_queue_config(struct nfp_vdpa_hw *vdpa_hw) +{ + struct nfp_hw *hw = &vdpa_hw->super; + + nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(0), vdpa_hw->vring[1].desc); + nn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(0), + rte_log2_u32(vdpa_hw->vring[1].size)); + nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(1), vdpa_hw->vring[1].avail); + nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(2), vdpa_hw->vring[1].used); + + nn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(0), vdpa_hw->vring[0].desc); + nn_cfg_writeb(hw, NFP_NET_CFG_RXR_SZ(0), + rte_log2_u32(vdpa_hw->vring[0].size)); + nn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(1), vdpa_hw->vring[0].avail); + nn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(2), vdpa_hw->vring[0].used); + + rte_wmb(); +} + +int +nfp_vdpa_hw_start(struct nfp_vdpa_hw *vdpa_hw, + int vid) +{ + struct nfp_hw *hw = &vdpa_hw->super; + + nfp_vdpa_queue_config(vdpa_hw); + + nfp_disable_queues(hw); + nfp_enable_queues(hw, NFP_VDPA_MAX_QUEUES, NFP_VDPA_MAX_QUEUES); + + return nfp_vdpa_vf_config(hw, vid); +} + void nfp_vdpa_hw_stop(struct nfp_vdpa_hw *vdpa_hw) {