Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/139693/?format=api
https://patches.dpdk.org/api/patches/139693/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20240426074831.1729792-6-chaoyong.he@corigine.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20240426074831.1729792-6-chaoyong.he@corigine.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20240426074831.1729792-6-chaoyong.he@corigine.com", "date": "2024-04-26T07:48:26", "name": "[05/10] vdpa/nfp: add the live migration logic", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "281f4bfa516935adf10631dfc48de393412cf6db", "submitter": { "id": 2554, "url": "https://patches.dpdk.org/api/people/2554/?format=api", "name": "Chaoyong He", "email": "chaoyong.he@corigine.com" }, "delegate": { "id": 2642, "url": "https://patches.dpdk.org/api/users/2642/?format=api", "username": "mcoquelin", "first_name": "Maxime", "last_name": "Coquelin", "email": "maxime.coquelin@redhat.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20240426074831.1729792-6-chaoyong.he@corigine.com/mbox/", "series": [ { "id": 31827, "url": "https://patches.dpdk.org/api/series/31827/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=31827", "date": "2024-04-26T07:48:21", "name": "support software live migration", "version": 1, "mbox": "https://patches.dpdk.org/series/31827/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/139693/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/139693/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D37F543F12;\n\tFri, 26 Apr 2024 09:49:36 +0200 (CEST)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 45A0943C81;\n\tFri, 26 Apr 2024 09:49:05 +0200 (CEST)", "from NAM10-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam10on2118.outbound.protection.outlook.com [40.107.94.118])\n by mails.dpdk.org (Postfix) with ESMTP id C5DD143C84\n for <dev@dpdk.org>; Fri, 26 Apr 2024 09:49:03 +0200 (CEST)", "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by SN4PR13MB5279.namprd13.prod.outlook.com (2603:10b6:806:206::7)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.22; Fri, 26 Apr\n 2024 07:49:02 +0000", "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e%5]) with mapi id 15.20.7544.010; Fri, 26 Apr 2024\n 07:49:02 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=elKZAEic1Tm/at1O1SgMtX1nTTRmLD1L6GegK7VO/lCSdzqkPYiUm/fgUv3lVQgvYdIQrcQCMzrppfHCsDOvnfr9OwjRfVCXRpAeMnYDdsP6pbis3T0NAe/w26yuMjQmMeJDj31+6Xxi19eyZ49lrB7C5j3u6pwde0BrlNPh7Nmt/cyU8VoX2rIGxSkCyLyCGTb9pFJuzSUxharaNt3N2CkdzJeazHV+8q5utsNCkOuSuVeP94wfC5A70HqVCLO3CuBmXScXxQzVRhE5fAJ9ze6USqNwx0IhTYSjS3Qtu5TdlerxlbOsDD48SB6JooDYXKQbjHKd80P/p0XUm8lcJA==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n 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;\n bh=IxrO70/0MoJrzhVMhVhlAI0hBVXUPvSYpeqWnz4+MZU=;\n b=dc3GqIMJDSBBLmy0C/0/mSbQfMprqpR3TxlDHXOjx4/7VWlgOfZjyAddvBEq9Q5uaw0aDFn8iMt0mUJ/WjnGOF+7Raa0xIEGMWNaBlJAkpoODByECe2YZttLP/J4l1cyW0ukgoSex4AGiweKxx8/ffqh/iSkLjhoP7pI2rSNzEzz8l2cghHzMCTZO4hbvTN1S+qGwWM72IU4bTixrX0gGDQxSdIkC3kiS3pphTicgicMhe5SClBPP13k3xkEs3RMN4gEiF1nFW/x2Q/vSAi0wVBcMtUnnb0I4TTKxzQfeSetLUxMx2eThL4fINwFCDkGEdyoEYzZNpno9z4qjB7CXA==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=IxrO70/0MoJrzhVMhVhlAI0hBVXUPvSYpeqWnz4+MZU=;\n b=Hlpl7+cs/kda8rj7/6MnLNy/4L7yqtqS8s447U9jjWXWOdfLOYJqhn16NM0qmMg0ux1eXtbqKu5SRivXtjNCfO5Dx1pZrUY+6aSTpxRVQG/AQSEsiOzGExVGxEXsDedLRvmrang8vxINnZY1WUFG/RKs++XO9sqvjLH/VY1swg4=", "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;", "From": "Chaoyong He <chaoyong.he@corigine.com>", "To": "dev@dpdk.org", "Cc": "oss-drivers@corigine.com, Xinying Yu <xinying.yu@corigine.com>,\n Chaoyong He <chaoyong.he@corigine.com>, Long Wu <long.wu@corigine.com>,\n Peng Zhang <peng.zhang@corigine.com>", "Subject": "[PATCH 05/10] vdpa/nfp: add the live migration logic", "Date": "Fri, 26 Apr 2024 15:48:26 +0800", "Message-Id": "<20240426074831.1729792-6-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>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "BYAPR02CA0007.namprd02.prod.outlook.com\n (2603:10b6:a02:ee::20) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (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": "d7b1d3ef-48b3-4c55-50d4-08dc65c556d7", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230031|52116005|1800799015|366007|376005|38350700005;", "X-Microsoft-Antispam-Message-Info": "\n ZlWmSuhGU1hU8EUFFJ2JPbwC28OdSDdU49h00+d37REjfN9dpsbpTS+Nnf2LpVVuU2fBFq3JVIemmGmyx9Lch2fDQjz84rXl7xuXjixqAmlBE3UYHZ8cB6Xv9Qac5SI5Nd4Lauf0kV2K/KtZEBO/paYNwU0PmDsI+22FYQRRw49MTAfS+jhEmxLVwBPXb20PJ0M1E23hHo0tZG/QDcNgrqm589NmX/GBYsYHQu+qR1vvr3R2kroxN6Pn8Cx1UsARPi2e9qw6kO5Z7yuN8U07Sm38zg15gMPHnuz/DPJU1lsAW2Yz/77Jfzs/ZWFxvhCYyIpe8xubcOzL0HF6z+UGHmbyLVvhQ0s8qB5vWmvuKCR8g90fM2X+IEed9N34cNyKvbKs70Xubu0YmzKimloirzfFAfWJNCjvqdkhnF+0aahz7vU5vvzHfxmIAl6ux40hZJ/OtRAsjrjZhPWltkgutSME5GwkPZgUbhUFlIFQNhh9o/OQVYgFEaDFWEE98FcAhxPJEeNcBjfJ3RfxxcR9hkuWtAsz1yrjpn0A+3FyZAM1aJNIpB7e6V2vT1J8Hk4PzTbj3rsKpSomv78dhZqdRFS6L7+PVnYmTofxr7wTSu45FxvtglFDbnGwjSC0yGvnezoYonMAXrHo3w1zdRsI4Uq1d9ABRy+vUSJ9XWtLgPmQR7cDsStE9ACVmayCQ5BIdddf8dNxoDo/1ebqPU3wfRY2CLfHVBJ+iTzR5hYSCIooEsFGi/6PMaVE7NXWYXQZNQ0pQ/GaRtjmu2lTN/dFriM8EvpXkuEdVa2icrfGptYgMxb4kJ07Uqdqq6JEvRRbXq5RfVKWhLXqHf3wbR+Oiir4i0IDFdKE4u+eLvmWv/zZOmYUKuKhX4r/C1Aq8fAL4jI1eSA13hRQe80vq7xDgHSGLUDqpvMNYK+/AvRslTcqYLNMeubNhp5tB6UFVhLsZCv2oYT1ESgg3bF5B07s10YqXfc//7Z5eMlKe+NJ/MhJo3DnJ3rpaZTWqgyJ0oJpQbOnPrvx9sy3+AuVE86gsZfgW8nat22X1L1TdmeMBP5rX8ZcP3ROGaUayJaKUGEB7eYGqA1o3Wxfd1ln/9h3K2i7oUFHYneEO332yC/dWRSq8DLCF0ZQ2+GEPmynEv53v/7bEQRvRqZsLn+pJh1FqU+/M/GGtCas/77KCazHy7fbPO6JYFrxt2PA9DEiuqD3xtJOYpORf8rWoX0yDtFv90lsQacY/+v4wNAa9FHZg+mGls51kPTC3hnjwP4RLGCT+J3BvKeYN8HKL2ZN6gnNTJvPXJcHtrEiwiLg5cQFhZ5WXm3uByGbj9vkGv8Ec6PoGBpgKLoAv4B+q6jrM1Dc2A==", "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(52116005)(1800799015)(366007)(376005)(38350700005); DIR:OUT;\n SFP:1102;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n f5VVqHVNJzxyLqNKEiQ79/6ZlpW2KfwxB9jJusE/MxKuNEmU5tyjRANseQykdU4/cPH5Sub74h7apR0mIfuU+o4orfbciq+fcTrDtpGlFamC/l4cqXqMX844RaH9+7lnmfCnjyFMaOppXPW43Dl6SAwMuMch7LiWd1IKR96u8NcwWa2jpnbGHPfZCkw6/BnxB4tiv/8pd2docQ4+XpSorgveRHRX2LezTY658EPWQA8TXHM/EfPV8n1pllflndadMGBdaZYQAGmgH/NcV5lwbmXynUuJDodjHZxpphbbL0L1zlHkzZGJ5nA474WlRPl+uyCnX7g+ge1WVSlP2kSTlbLFojYxrEzEoZlf7emDXq4SGZFC5H6smxW8Tuug7wE3wnXlc2Uw4lQp5c5SOMlgUtjTStr/fFLEYg9hjBULR5QP2SuF6gYuW6cgXLq/IR0K35d83lfJ74ATWx4Kv8qhAr9oFO2lpn797uQ/zUKVQAY8BkG+udl376LwN/Ezb3p3a4+rrw/BJN5avFR41immI2dmPOEmecx4941To413howY6QI05l0uxH+hphZBZ5y6W4agMjBi++VDlYv6SvDwEX36HCgiwZcdLZFvsMIVlATcqYX4cTraZ2hHZkXnRDJq/ciSgK83rdWejx5yy89ehTq9A72hZNqWwciGTs6jrckX93XQNtwz/4rs/xG4h00l34n7zQObQJnMntVWhJ8zomfccDx1XghzkKRAzw42KmjIFzZDCd9p9+GTgSAWqEhCSk7Vc/bdtxqRYOxe95IH2/jUTQgXncighPKJ8FbUBX8akL8xzXFXsehz9q4lmsh1GtlHTxThOhLpk35fRrQizmX1KhMKcNvSeTVccqrbdrYOXE9dtfCU2xnfhTfqMOI4Y2pY2aw4VYjrLQH8CCUtj0mdnwqoLkP7Bj0iEF1OEJHUuEgjokCsfcNDMvnSRQTtNj6iycAp3RINhUbZTao4j/X4MAsAeeKVzsM0ZxKcr1X7ceqxk724b/7EWPwv3ltwd7m1CiLRExLVHiXm5efw57V3E7HF991TBgZxp5d9stXcIm9HuR0rd6WAksewvu8hE6zKhnKTZ7sbPR0XLxapaaYh1/L46t3edK9ylh+Jq/eElABIMA55BS1PizU/H5rix1F0W8E2sZA8pBk2f3EyCXPSyxP1lkv1GiNKK278/ecwmM8yMx7gbULY8Ltjbrgw+axPOXYJ+bjWyeFDvbOAJDR888f4yFoxseX0BoBxrd6t0/BV4MVXGAReCplZB2ALp7tN2+qs6bHUMYRIAGcjd7fteqo33bXSkXZA8iAQ0ykVdEXNWR8OsAVnHVDBOve6/Ewvl5HlUc/Sx1GqkLaQxc07KosQYeI2FqrxwCCN+8VrciG5o/vMS8oAu21vr+S6PF+m5BOmGIGi/nEvwB75hFlp97fpmbRv5v3T8x4aegJ9RrwfHmoaWIpUYfLMmnCXV8qJWff9W81T5qrVkZsCc7uAWkwyH9R5AqK42240jnZul5KcIUqyIWG6EB4XBc8yI/f4GPQO1GqQJp59d8vcih7Y6HxPk1Q96fkdjs/kD/WIRnhbk2oQNbdo8Z99/6Z6seeBEB6CBen++/DUbso7lg==", "X-OriginatorOrg": "corigine.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n d7b1d3ef-48b3-4c55-50d4-08dc65c556d7", "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:02.2261 (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": "\n oJ2ohAS33ogk056j2ifG4uOqfsOkJe7k7Rso5boEO6duMLWrocn/unSMRNcS9yXGOGS/6O7kCDSaj3bVPE7cq9wlHBXn65RUqztInqRfi94=", "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 <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "From: Xinying Yu <xinying.yu@corigine.com>\n\nAdd the basic logic of software live migration.\n\nUnset the ring notify area to stop the direct IO datapath if the\ndevice support, then we can setup the vring relay to help the\nlive migration.\n\nSigned-off-by: Xinying Yu <xinying.yu@corigine.com>\nReviewed-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\nReviewed-by: Peng Zhang <peng.zhang@corigine.com>\n---\n drivers/vdpa/nfp/nfp_vdpa.c | 66 +++++++++++++++++++++++++++++++-\n drivers/vdpa/nfp/nfp_vdpa_core.c | 3 ++\n drivers/vdpa/nfp/nfp_vdpa_core.h | 4 ++\n 3 files changed, 71 insertions(+), 2 deletions(-)", "diff": "diff --git a/drivers/vdpa/nfp/nfp_vdpa.c b/drivers/vdpa/nfp/nfp_vdpa.c\nindex cef80b5476..45092cb0af 100644\n--- a/drivers/vdpa/nfp/nfp_vdpa.c\n+++ b/drivers/vdpa/nfp/nfp_vdpa.c\n@@ -603,6 +603,30 @@ update_datapath(struct nfp_vdpa_dev *device)\n \treturn ret;\n }\n \n+static int\n+nfp_vdpa_sw_fallback(struct nfp_vdpa_dev *device)\n+{\n+\tint ret;\n+\tint vid = device->vid;\n+\n+\t/* Stop the direct IO data path */\n+\tnfp_vdpa_unset_notify_relay(device);\n+\tnfp_vdpa_disable_vfio_intr(device);\n+\n+\tret = rte_vhost_host_notifier_ctrl(vid, RTE_VHOST_QUEUE_ALL, false);\n+\tif ((ret != 0) && (ret != -ENOTSUP)) {\n+\t\tDRV_VDPA_LOG(ERR, \"Unset the host notifier failed.\");\n+\t\tgoto error;\n+\t}\n+\n+\tdevice->hw.sw_fallback_running = true;\n+\n+\treturn 0;\n+\n+error:\n+\treturn ret;\n+}\n+\n static int\n nfp_vdpa_dev_config(int vid)\n {\n@@ -646,8 +670,18 @@ nfp_vdpa_dev_close(int vid)\n \t}\n \n \tdevice = node->device;\n-\trte_atomic_store_explicit(&device->dev_attached, 0, rte_memory_order_relaxed);\n-\tupdate_datapath(device);\n+\tif (device->hw.sw_fallback_running) {\n+\t\tdevice->hw.sw_fallback_running = false;\n+\n+\t\trte_atomic_store_explicit(&device->dev_attached, 0,\n+\t\t\t\trte_memory_order_relaxed);\n+\t\trte_atomic_store_explicit(&device->running, 0,\n+\t\t\t\trte_memory_order_relaxed);\n+\t} else {\n+\t\trte_atomic_store_explicit(&device->dev_attached, 0,\n+\t\t\t\trte_memory_order_relaxed);\n+\t\tupdate_datapath(device);\n+\t}\n \n \treturn 0;\n }\n@@ -770,7 +804,35 @@ nfp_vdpa_get_protocol_features(struct rte_vdpa_device *vdev __rte_unused,\n static int\n nfp_vdpa_set_features(int32_t vid)\n {\n+\tint ret;\n+\tuint64_t features = 0;\n+\tstruct nfp_vdpa_dev *device;\n+\tstruct rte_vdpa_device *vdev;\n+\tstruct nfp_vdpa_dev_node *node;\n+\n \tDRV_VDPA_LOG(DEBUG, \"Start vid=%d\", vid);\n+\n+\tvdev = rte_vhost_get_vdpa_device(vid);\n+\tnode = nfp_vdpa_find_node_by_vdev(vdev);\n+\tif (node == NULL) {\n+\t\tDRV_VDPA_LOG(ERR, \"Invalid vDPA device: %p\", vdev);\n+\t\treturn -ENODEV;\n+\t}\n+\n+\trte_vhost_get_negotiated_features(vid, &features);\n+\n+\tif (RTE_VHOST_NEED_LOG(features) == 0)\n+\t\treturn 0;\n+\n+\tdevice = node->device;\n+\tif (device->hw.sw_lm) {\n+\t\tret = nfp_vdpa_sw_fallback(device);\n+\t\tif (ret != 0) {\n+\t\t\tDRV_VDPA_LOG(ERR, \"Software fallback start failed\");\n+\t\t\treturn -1;\n+\t\t}\n+\t}\n+\n \treturn 0;\n }\n \ndiff --git a/drivers/vdpa/nfp/nfp_vdpa_core.c b/drivers/vdpa/nfp/nfp_vdpa_core.c\nindex 79ecd2b4fc..82a323a6d0 100644\n--- a/drivers/vdpa/nfp/nfp_vdpa_core.c\n+++ b/drivers/vdpa/nfp/nfp_vdpa_core.c\n@@ -91,8 +91,11 @@ nfp_vdpa_hw_init(struct nfp_vdpa_hw *vdpa_hw,\n \ttx_bar = (uint8_t *)pci_dev->mem_resource[2].addr + tx_bar_off;\n \thw->qcp_cfg = tx_bar + NFP_QCP_QUEUE_ADDR_SZ;\n \n+\tvdpa_hw->sw_lm = true;\n+\n \tvdpa_hw->features = (1ULL << VIRTIO_F_VERSION_1) |\n \t\t\t(1ULL << VIRTIO_F_IN_ORDER) |\n+\t\t\t(1ULL << VHOST_F_LOG_ALL) |\n \t\t\t(1ULL << VHOST_USER_F_PROTOCOL_FEATURES);\n \n \treturn 0;\ndiff --git a/drivers/vdpa/nfp/nfp_vdpa_core.h b/drivers/vdpa/nfp/nfp_vdpa_core.h\nindex a8e0d6dd70..0f880fc0c6 100644\n--- a/drivers/vdpa/nfp/nfp_vdpa_core.h\n+++ b/drivers/vdpa/nfp/nfp_vdpa_core.h\n@@ -36,6 +36,10 @@ struct nfp_vdpa_hw {\n \tuint8_t mac_addr[RTE_ETHER_ADDR_LEN];\n \tuint8_t notify_region;\n \tuint8_t nr_vring;\n+\n+\t/** Software Live Migration */\n+\tbool sw_lm;\n+\tbool sw_fallback_running;\n };\n \n int nfp_vdpa_hw_init(struct nfp_vdpa_hw *vdpa_hw, struct rte_pci_device *dev);\n", "prefixes": [ "05/10" ] }{ "id": 139693, "url": "