From nobody Mon Sep 16 19:11:57 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (BodyHash is different from the expected one); dmarc=fail(p=none dis=none) header.from=nutanix.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1720173644944392.43769096675044; Fri, 5 Jul 2024 03:00:44 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id B43891252; Fri, 5 Jul 2024 06:00:43 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 944611306; Fri, 5 Jul 2024 06:00:05 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id C52461238; Fri, 5 Jul 2024 06:00:02 -0400 (EDT) Received: from mx0a-002c1b01.pphosted.com (mx0a-002c1b01.pphosted.com [148.163.151.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 2DB1C1205 for ; Fri, 5 Jul 2024 06:00:02 -0400 (EDT) Received: from pps.filterd (m0127838.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46547PhL030615; Fri, 5 Jul 2024 03:00:01 -0700 Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2168.outbound.protection.outlook.com [104.47.59.168]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 405j5jaxg6-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 05 Jul 2024 03:00:01 -0700 (PDT) Received: from DM4PR02MB8912.namprd02.prod.outlook.com (2603:10b6:8:bd::5) by SJ0PR02MB7310.namprd02.prod.outlook.com (2603:10b6:a03:29d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.23; Fri, 5 Jul 2024 09:59:59 +0000 Received: from DM4PR02MB8912.namprd02.prod.outlook.com ([fe80::6d3c:aa13:388a:9f9f]) by DM4PR02MB8912.namprd02.prod.outlook.com ([fe80::6d3c:aa13:388a:9f9f%4]) with mapi id 15.20.7741.017; Fri, 5 Jul 2024 09:59:59 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=8wjnoiTHg0UVULr/2nExGG/oTfNtMz/eXFMhnsDdP vo=; b=njoVA/nQ9EINLUO7qz2m6H5SsgP4TAAG4NS1CY+fn1wHzEcZJ7tO1yFYR /VpsECu680xh+hkaOKeSRA/AvwmYjLL+FlnvXQKWdIFdTOg2lFeCJIp0F0X0EacQ LSTPwc5OQsxXyqyNqM4hTHDdyiGhpMtCJG5GHYo3D+1L84Go0rHK7z5+7JexNA+y dO5ClVZaUOecK/7VGN5JnO5AoK+q7ftuOSTebRl2azL6f4lyxRDpCtW2oUhdcWiG venxPHh0SBHJOPprMa4zEfwOPEyG7wb33ALXzdZnhZnpF2IFgDwJ1ZO5qhEsYAFC q5iXBIzramYGo4tlpsA+C5Ty9yArg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mKE/wjVEbNmIpmzQEIA5urNmgDG7fts5sAAtd2tK8yiwwnFVMcv8cjWB1pdp9BdYPLwZM/ZFuC29bvKhqKS7k9IyvyOPaEWL2z60x4lPgD3nWmx/nA+cQ8YandhKYF8xpVOokuvYJmn1XPTL1FIj9LNWbsfss/bFiwY26/dT9wFTrmceRHlG6qLpCIsPJ3fEm4lUYIXyvxfndlhhG+hYjRbwq4QxAXJDOm2V9RT0/XlJGABEkzhXkM/FPv5VAkLBZdDXfBprinlZRqioHJXZkbyrIfQ6QyGdzqMbC5uATCNBaTQjkPftt6SFvxRZrRGXYlhw45seGNTWpXEkFN54NA== 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=8wjnoiTHg0UVULr/2nExGG/oTfNtMz/eXFMhnsDdPvo=; b=ZSzqWfSPv2BCA6NMOu+V+/O3M4tCufwz2ri0JtA/EsP41rNeJk+Nro2JNO3rKYbZxAEiuk+Wtge6xgD8H6A7zD0E+5jJdmzY63mvMtbuH1lGZhQPJHR9LjsiSfCbSfbhlO0oRqXrGK1QILGiD14dJ3yNDLDtljzyjY0+wuOibUMC6V5oQzWnBV6+Ea8jxKrwUKKWrfun36dRc60JYmyJpKpnZFQEnnBmNfBZn1ffHkHXXEoTDRksTV0U9AB2Z2RoTPkFUR4vHPP0DHEKHy/VzmsTOk7TtJk2cnv3vaudhc0TIQ2+6ZD5gM3Df7BDy/VwNk426gRDifEqlLa63PX5Rw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8wjnoiTHg0UVULr/2nExGG/oTfNtMz/eXFMhnsDdPvo=; b=Fd+c3nH0cwQZMAF9aIiEU5rlV9JHXMPJLqPANb3aVBvGPkERBJEN/LIKX8VX+tFuy/B12zYbWsdpLY9cmbKGspztm+Hoq+0G+yjUSQwzo19uMiJNIQMyAQz4FR0BNPylBHBq5EGANGh3lJ9OA+0ZwjxAHLAiRV2qEW1gYBgZdVB12mnPbNTt9ZNOAFV7NePcObbv0uLFBvXMsUAjmKjLT8UfQ7PT2Z98GaCvJyq6VW41KnPChE0/Pcp2LFnc3IaolqKjGZDOHpa8RntiM6IBj2HiCR+S/qhsU/7yZTNMBOs7tKQ3lOnucKUvSRcBDmwr3nEEU5JIa4amw+96AA9Xhw== From: Kshitij Jha To: devel@lists.libvirt.org Subject: [PATCH v1 1/1] Include support for Vfio stats during Migration Date: Fri, 5 Jul 2024 09:59:52 +0000 Message-Id: <20240705095952.225039-2-kshitij.jha@nutanix.com> X-Mailer: git-send-email 2.22.3 In-Reply-To: <20240705095952.225039-1-kshitij.jha@nutanix.com> References: <20240705095952.225039-1-kshitij.jha@nutanix.com> X-ClientProxiedBy: SJ0PR05CA0182.namprd05.prod.outlook.com (2603:10b6:a03:330::7) To DM4PR02MB8912.namprd02.prod.outlook.com (2603:10b6:8:bd::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR02MB8912:EE_|SJ0PR02MB7310:EE_ X-MS-Office365-Filtering-Correlation-Id: 768da726-983d-4fcc-1d98-08dc9cd93b25 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7C1xGvNf559lTTM0v8u8HAjN4UQCaophMkkpDcQaL8+Nnu+dzgWNbO6FEM+f?= =?us-ascii?Q?rNpGomZmnVNB3+4B8j6ScuJix3BblPqdwo36Eu1QV0PQNvdc4MwEqj1CNjZ2?= =?us-ascii?Q?i6XxEU1Wjlusv4OSHcpUnueVmp+81pxigArz/lSU0BUTcCPmqI2YKGn25jo7?= =?us-ascii?Q?EYZdGScMoGdJMu19uiF7X/AydgJ7MbLJ6iFmj0RcrHlrLCkCB5EdQn235YHT?= =?us-ascii?Q?md2yvA/eYuB6Fhz3duKIkmtR9yMlWmNYZrqi/3ogcF2Tb42LEZPAZeu76Ys0?= =?us-ascii?Q?ySkUXRmclDIScQ5nsdoAIIwkuLw7NEGcEhxTvcr55Xwu9IQhoAO9PEpZeOVx?= =?us-ascii?Q?hGUnhjtV4HFRIOB3x4jVvSi8T7a3Nf67BFbJlnZI4JDKXk7rthxBok+jeC+Z?= =?us-ascii?Q?5bR1n0x5l5BNSiGkPjoCNa/CElvmHXakax9c917O+YH+LlbgcN/m3lxg9VOn?= =?us-ascii?Q?JTtkUylkW8CYOpIsoiMkXk2DCUwIX0JN3UnplA1oeBL64BVcAgfkhUpSBpLx?= =?us-ascii?Q?8tVxs1ltfRL+rmBJpsYXEktdhr51vWWNDqWfTTBmINVDL9atEkXAqHoLLE1r?= =?us-ascii?Q?kxzhQxBWTi4FkwVBykN1ObuzoFQlVyFhVOnnbdM6Scp5ea7J1qvuaJ2QwUUm?= =?us-ascii?Q?WldxTXqV+VMQjn0wlCXlKVE9ndcefOaLM+XOeyMJxunfx7XfA51nQ8ifVGTe?= =?us-ascii?Q?fmU6719vYBCrpMw/m4x/I489W02wcBFYpyYDgCgY4IYExCZyFbCk3kppqyfd?= =?us-ascii?Q?GrlUQ72Kwnhh05ODJ0kbUmoIqYwotvIIIFqFsKdlzpQ9zdAz3/FFxhVFi5lv?= =?us-ascii?Q?zFTKYjZaV1diPoyE2JbtugDxn7io5X+SWfk14tUaSB+YMteI0vgvWuO7hnHX?= =?us-ascii?Q?b8M8BGsr9ZPZSLDh+EV20pgLdhqyqke3wQq56DRbLuKQmzOwo1f/7TTa+b/r?= =?us-ascii?Q?V/xacT1did8k7lapIWdFGPbMUQn3+HoGhXCHahozRKKBWRLXz/6jBr5TE33l?= =?us-ascii?Q?ZA814JKI8NaoHdBHfsKivpCLGQG/JNMh1bWO5zPnHEIfEsogPesnJsOJgw6O?= =?us-ascii?Q?1zMFGOZNo/CCKL/kH3qbMtkx7lxkbUgKHSmKUVBxPDQPvKRCktHEK5vwBzqC?= =?us-ascii?Q?d3tDr95Kas7+LivaQ+O3zuD34lm1GzgDB9wsS+oTi0U/A7tdEocAc4TabUAP?= =?us-ascii?Q?36EYSbS11nDwCLNav0qGvZk7xa/OWrRFuQ16hfTcYn2kWhQAPMYDPGZPNCWi?= =?us-ascii?Q?lXx6ITbY3hf0TzevPhavLmCxSTWF5tDf53bbzuvlXD6zezOv/neOXGVJ7j7q?= =?us-ascii?Q?gT/h9NiRzeyMM7RxprZ8ZzKmGNe7gjtZvMmbFv4DikIMGIFEM+xihaL3bIz9?= =?us-ascii?Q?TuCRKh9jk00yKUsRlyBmRvYnVK6+X0qY+xB+hzm4qb2xwOkx9g=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR02MB8912.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DaWTsdYjuKrm15TT5Fl+j5bIJY8pPY8ThC2hUXhhmD0LeDCP7H6RXLMqJqlL?= =?us-ascii?Q?cWO5UfxcahKGzWCwTblSovwt1j0qoYMh5l/NcXuF66YrS+ybRCNCNBw9EoOa?= =?us-ascii?Q?TuFiGacDkH3UrTFQtKe+HmbawEDoUkMMLlpY4uh0uHd4VQtNfr6jDbf8HL21?= =?us-ascii?Q?BzRFqf4dXJDb0zNTk2S/QvssVcCXXyIQtKbDfEsjA9i7l5ddTv95ZLHicGh+?= =?us-ascii?Q?KDz+ARtagZPRiB3w2LDFY90W/BFAuh73mNDKmp/sGFfkx2LnlD0E5LUiOFSN?= =?us-ascii?Q?2GS6BDKqdY0e1XUmM/v7Pf9gAr9UxSy9xzqR0dYIkSAHsTtrZoeG18GB4ewI?= =?us-ascii?Q?DCfJffiMhohV1+xJ54OLLHv6uS0cbS2jKn+5YBH1VfHb0ez7YJkObnM9zz5/?= =?us-ascii?Q?DjnWoL91PcRV3P4WyVi2SzeKG9hAPTCp02ddt35pyGJwGaSpmB112WFhekkn?= =?us-ascii?Q?4xg77JCOSllFiOSqt2rqsuk1cNUFS8wA8iwg7whgXLAFKelDZoRtdbNWTQuy?= =?us-ascii?Q?UTduKK2EIyoCM/S0SByCjj5z4RLD+/OmBpqJxrVmj0N/gK7wrQmGiH4XnbPd?= =?us-ascii?Q?a04h6CH+ooDNZsL/ZxjPx+P+M28a6Dugc7LbvvQeiZ9PALyavrV9ftJvZ52m?= =?us-ascii?Q?aUSMauUCknibbP86VSmcsRsMYYfLw+YcD7oGS47mlFdGBraNURH+v5Z7LnBw?= =?us-ascii?Q?LaCPO56f20F9zfvrb5d6wjrzFmccNpyTjHxUu4suuW1q4GCzSaQpQo8j4NDK?= =?us-ascii?Q?+mLNBeVIOqWVTGXVEyU8xVZ++bklVQ5yNQ72xBvPYYhCtt6BOZ/Cqwy3gZA1?= =?us-ascii?Q?JAG2/Jqbx89FUaeJcMhBq9coCNGtchhrOEb+VqNvH7ohpX3kjAbgG8D48FI0?= =?us-ascii?Q?NY8TNjrhtzCIniwCphedn5hoGlxfGnvbq9iH4aIn5SZQArOmk6o0E7nd83Y8?= =?us-ascii?Q?IJI1f0hRLcmfExZMYDXLNV7CVzim2qisN7xb582enVOTbrNb4Sra4SFkYM/F?= =?us-ascii?Q?qPGX1v+0kEcbNif6E7bF/DnN4kwCLiZOZREbwQr/4mQUAykz2wMx6xwKlvdu?= =?us-ascii?Q?AnEXUMr1p7Gzts9jL+2ivjhX8r7n8rudfu/h7gDEkr4JkstShUs7mSYWs5KI?= =?us-ascii?Q?CoTGBpAnucm3tzF6J8DJWDD/YPumqlVz2Gdz+nNf9jB6R19vlmNGkqOyOK6o?= =?us-ascii?Q?8BbZgh5Nvrz7O5wreJ+wOCcv79ESawjANMpcQdGy1TwbAwvvjgch55X/MCho?= =?us-ascii?Q?C6cRrljIRZQ83p71QDvQsw8ZPawOElNVE3IYkxQf0Rf5y1TrtYikFP6M/Mch?= =?us-ascii?Q?5G/unMc/8LgdgQeeDp7hHWGJOMzdqZIGzSuVZ0EeUHd7gsu1z4+EyY7SnTaJ?= =?us-ascii?Q?DE2T7GK3nm60qp+GoXUn4HuVO03K7GZDogA4qvSQrgpiOeRzxWnEphnUv8js?= =?us-ascii?Q?epGgHftYOS/r+SrjjRvcNO8EG3gZTYT1ju4HufYpSOav2UOwkBOtmEeGXf0w?= =?us-ascii?Q?VznuQw0I+KGLddQwVlK0T1oAmwoywmjzh7bvFpX7jIh4bK6OB8i0ALqq3L3C?= =?us-ascii?Q?BFsY/fPA/RZhc8WuhFmSfVVg6Ib0KgUSKwww+1uNYM8TcGbM5aOQo9sdIDds?= =?us-ascii?Q?tw=3D=3D?= X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 768da726-983d-4fcc-1d98-08dc9cd93b25 X-MS-Exchange-CrossTenant-AuthSource: DM4PR02MB8912.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2024 09:59:59.4693 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OprnpGIUNhDgCuUTXQ9nObNhSPLy80+TMsNev6oCEjXF7u5gxBPk6pkSoWFA4dEwzqf82020TuTe3iOI5OaOmA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB7310 X-Proofpoint-ORIG-GUID: zW7bW2hq2juNZ_xaC2Rxw5twcU4DZ9xM X-Proofpoint-GUID: zW7bW2hq2juNZ_xaC2Rxw5twcU4DZ9xM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-05_06,2024-07-03_01,2024-05-17_01 X-Proofpoint-Spam-Reason: safe Content-Transfer-Encoding: quoted-printable Message-ID-Hash: VGLYELWK27GDUKSDNNUDRURABL5N6YUZ X-Message-ID-Hash: VGLYELWK27GDUKSDNNUDRURABL5N6YUZ X-MailFrom: kshitij.jha@nutanix.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: tejus.gk@nutanix.com, Kshitij Jha X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZM-MESSAGEID: 1720173645415100001 Content-Type: text/plain; charset="utf-8" As of now, libvirt supports few essential stats as part of virDomainGetJobStats for Live Migration such as memory transferred, dirty rate, number of iteration etc. Currently it does not have support for the vfio stats returned via QEMU. This patch adds support for that. Signed-off-by: Kshitij Jha Reviewed-by: Michal Privoznik --- include/libvirt/libvirt-domain.h | 9 +++++++++ src/qemu/qemu_domainjob.c | 6 ++++++ src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 12 ++++++++++++ 4 files changed, 28 insertions(+) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 8f00e9e959..8f140399db 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -4612,6 +4612,15 @@ typedef enum { */ # define VIR_DOMAIN_JOB_DISK_TEMP_TOTAL "disk_temp_total" =20 +/** + * VIR_DOMAIN_JOB_VFIO_DATA_TRANSFERRED: + * virDomainGetJobStats field: number of bytes transferred by vfio devices + * in that iteration, as VIR_TYPED_PARAM_ULLONG. + * + * Since: 10.6.0 + */ +#define VIR_DOMAIN_JOB_VFIO_DATA_TRANSFERRED "vfio_data_transferred" + /** * virConnectDomainEventGenericCallback: * @conn: the connection pointer diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 245e51f14b..9913406ddd 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -414,6 +414,12 @@ qemuDomainMigrationJobDataToParams(virDomainJobData *j= obData, stats->cpu_throttle_percentage) < 0) goto error; =20 + if (stats->vfio_data_transferred && + virTypedParamsAddULLong(&par, & npar, & maxpar, + VIR_DOMAIN_JOB_VFIO_DATA_TRANSFERRED, + stats->vfio_data_transferred) < 0) + goto error; + done: *type =3D virDomainJobStatusToType(jobData->status); *params =3D par; diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 8dde3f9fff..76c859a888 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -814,6 +814,7 @@ struct _qemuMonitorMigrationStats { unsigned long long xbzrle_overflow; =20 int cpu_throttle_percentage; + unsigned long long vfio_data_transferred; }; =20 int qemuMonitorGetMigrationStats(qemuMonitor *mon, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 89ea33a3ab..8a20ce57e6 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -2910,6 +2910,7 @@ qemuMonitorJSONGetMigrationStatsReply(virJSONValue *r= eply, virJSONValue *ram; virJSONValue *disk; virJSONValue *comp; + virJSONValue *vfio; const char *statusstr; int rc; double mbps; @@ -3092,6 +3093,17 @@ qemuMonitorJSONGetMigrationStatsReply(virJSONValue *= reply, return -1; } } + + vfio =3D virJSONValueObjectGetObject(ret, "vfio"); + if (vfio) { + rc =3D virJSONValueObjectGetNumberUlong(vfio, "transferred", + &stats->vfio_data_transf= erred); + if (rc < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("vfio migration was active, but 'transfer= red' data was missing")); + return -1; + } + } break; } =20 --=20 2.22.3