From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11023134.outbound.protection.outlook.com [40.107.159.134]) by lore.virtuozzo.com (Postfix) with ESMTPS id 889F180726 for ; Tue, 20 Oct 2026 16:31:44 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M/2VJytxUTTItZfJsG43ROrSHMenJmSOP6AIMp92vb81+5EdrhcWkQ2H50C4ru6rz9X/q8yVBOcli+GFgyO0+AXXcB42UpA2nG0XsB48jDeLDhAmnV+GkshMACdbh3y4eoDoTRCv5M4MSCSMj82VOFoblx/2ofpB8etw/un1yi3HMqt7i5AjSIYQiEgMg7inD6QD9OMmIqHnPtQ5pLC8vR6PbJJbXK3dgW1znTYGUKo4rAU4iMiPcGR7dffi7syawGcLj5FBP7RUVIX6eMx/a6J+DOcnj6HqkrsDm/9bIldXKDx34YKD5oC6X22p9EV/4uw8kl9dZl9DadeUWHJvKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=8tQ15kZPJhTkwM4VUp6ZRXJuEYO+WXtM/cSzRpR0w3Q=; b=C0Ic/kb5PnnxXrMLIojPOr369vE8qDu70LLiYE9BU0GNGECW1tmzC8DONHC8aVb0LZplcJnc3eWHNEcGOvx1WyQOwD+F2oOuAbAN8H2mLP4BUj7iDqt3li6g4gpF1jn6AwIOIO40LiQwRldnLoAR+e7PMLIGBFRUyTksqTByXS958kXdqgBjwXwL/w5xDbOuHMKrDU9rDnE/oTL2jtrNa/fA/tzZU9alcyCbEJps8NItqRIL8DuIvQLzxBmnJazutq8BaX2XTZfmnQVlZ0onRqgVBjn6Gx3YKa/653LxfR8ZE3nHZwY25s/eh8h+PZZT2f6qjimqN8SDLUXmRxbRbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8tQ15kZPJhTkwM4VUp6ZRXJuEYO+WXtM/cSzRpR0w3Q=; b=N+gwEF3dR3SVPiS+C6cKBCz8Zb+et8AaF05EoxCX2FmzLvEywbw/p+2CgObMFj+uYx0OYeQQdo8ZUD46siHkcqnDOKpf01jzp2DrtQskmCOQhuRq0vaQHrHP80csv3TdDCfjsSWgxNnsRAfNCc56xVPU2N414mATD8ic6S/ab8lY9n46vfjssKZCnlpd4QtjbGfBbOOdKALCtijSjulX2qdBYGRoMivqXR9jFI708M/fYh4I1f+wqzZ9YTmsY2pUYVukVIr2HytAdetQrFfII+bsRr9BTTcq4AAOwrz9+VgRbziINl9npsUadGZbxKPr6XSxNdqJODz+LZdf+OXXeA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by GV2PR08MB9373.eurprd08.prod.outlook.com (2603:10a6:150:da::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.12; Tue, 20 Oct 2026 16:31:36 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0546.012; Tue, 20 Oct 2026 16:31:35 +0000 From: Andrey Drobyshev Date: Tue, 20 Oct 2026 19:31:11 +0300 Subject: [PATCH QEMU HCI-8.1 v4 31/31] VZ: vfio/container: lift the CPR blocker for mdev devices #VSTOR-103860 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261020-vfio_v1-v4-31-83a5668230e5@virtuozzo.com> References: <20261020-vfio_v1-v4-0-83a5668230e5@virtuozzo.com> In-Reply-To: <20261020-vfio_v1-v4-0-83a5668230e5@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIUP296CA0056.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34b::14) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|GV2PR08MB9373:EE_ X-MS-Office365-Filtering-Correlation-Id: b6675f57-9bbf-45c7-491d-08df2ec78726 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|52116014|376014|366016|5113699003|18002099003|22082099003|10067099003|261009223027099003|56012099006|38350700014; X-Microsoft-Antispam-Message-Info: OpeD3fLxaAcPCjR2hH1T3PLWxzlBnxqmMluOo2hHHi2IHPfnJIzq6/QWx6JPpxr6HNZ/AWTU6pUFJpOhLzg7UsegvEDlACV4muKAJeC8JG9CoQUQKijtFY+FX6iEbwvHxs19Su6LijrWjt8AvjM4QH3RRN0lg1Zwpe3jh0NPPd27x3Y+mU3lWsaUjufJIIDlwqwxuAcFcgS8qbBIA/QIJIWcq96xbULEKXS10+ei9gXXWeEWBxows1OyqG+yEQBA7vSo5UVZlpr1d1oF9QHM3v/69U/cQZbGR5FCku4TicjzC/kLH0RYGKB8KRpU6fVlvOHU2qa5mbKI7Hm1+3YuLnhSqJD1ISf1ovNphi/gf5MvIzHljDYVILRKI3vWGVbPSR14At4AGCkK50sMATO2PI0znmT9Bc2iK47j8COO1N4zJltI2QiTMuSCKfcqgVxwFPOKjRd7marTDCKcCn1pWHGyXJlCndMVwWL2mlB5K0c6blmaFxWcOHjVrZF6KpbokK8XrzkAlfB3crSLfZEEOFHptbDQ4lhzuAotiodOrw9sVdUjdwRV9cLf08nDUMVzEct5odX2A2H7Rrdfsrua8lt44QwOceBNcDgkEDtiqNnM1Dt+S/otbsVNnsDqWkfSyyIp7pvv4rtGOyfjg4i002YERtJY+gk/Mgb8xtDi4rbpt/GZ1n7siyelZiLbdRfe+fDqX7tVhzXcvJ+I5HDIuoZh8aS3s6wzhdV/zJ/u2t0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(52116014)(376014)(366016)(5113699003)(18002099003)(22082099003)(10067099003)(261009223027099003)(56012099006)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RzROK285TEs1WUNNVFUrM1crL1VzUGwvS2pEQTMvb01HVTRjVldvSkY3dnl2?= =?utf-8?B?UTIwTDlBeWsxNldBZ051SnpGa3llQ0RkVlhKemZac3dNM0xDUzd5S0xQaWFD?= =?utf-8?B?amFYSzlvdGY1OFZBM1V0WmtTbHFKUTRrNGl0RkkxbzFKbEhQbnJWSXRmcTRR?= =?utf-8?B?U04wV2xpZVdhemhKM3pWNHVOeVlyTkVDbHNLUTBNUERaN25JMDdJRmlDV2ti?= =?utf-8?B?Y0pjajVqUEJaNWVxTDVuMkdmdFFVS2pEbWVPcHUydkdEbzk2YlhNcEdmajZB?= =?utf-8?B?cEZlbWpFZmp0djVZejZnT29KWWhjR1ZmWXhzb2dGYWlJeHpTdW44ZksvMWgz?= =?utf-8?B?KzhlNmNQOXdhSktlWjFIRkV0aElFRXE2eHM1K2FDM3JSbWQvaGd6T1k5c3Rs?= =?utf-8?B?ZWYwK0hTR3c4RGdqMmU4SHhPNjlmc2JvOHZKK2l4UlhjZHBvZE5MOWw0ZHpO?= =?utf-8?B?aitMM1J1dFBha3dQWk4zZndMV2hEQlRuM3NaN29ac1ZGdFFVdGRtT1ByUTkz?= =?utf-8?B?L251dnBrNm9QaGlqUEhjQTBZLzBTOEc1ZWd1YXgyV0hBUHkvUzFFOXZvckZt?= =?utf-8?B?ZzRITFNyY3R3dHJ5ZkFhZ0liVEowRkNGUTU1NVhTYkJ3UFZucTRiT21heGV3?= =?utf-8?B?cFdZU2ZYSUdBMEdBTWdWWTFvdmZ6VTFJM2MyRExxYnpFYU5BRTdVam9wNCt1?= =?utf-8?B?TnJNNUZONERZWGs5WW5YTE5mRldtcVFub0lQdDJIYlZVUXVBWjhEMCs5TlBp?= =?utf-8?B?ck9tMEUvQm1KWnF0elEzY0RxdENDWXY4S0ZKYW0vK3ZpR21PN3JKakJpWDJz?= =?utf-8?B?WW1YRGFmVWpnZHJ2Q3RRcldCZXdmeUo2amVGUHZOTWo1MVE1L2ljNDZ3em5N?= =?utf-8?B?L1J4amhxTWlwNEZEdlVSL0ZLUGllclo1SXplZStJVXA0dFNKZ3BycytKQlpw?= =?utf-8?B?SUJDck9zalk0clo1d283VWxXajI3Y0FyMHlGTzk3OWZoaTRqbHhpN3ZZRFhh?= =?utf-8?B?cXdNTWExVFIrbTZzYjhaUFo4NTdJdGJyWjRLUHRBdHVwSkdRamhEaG5RbDFN?= =?utf-8?B?ZXd0N2lpSG9sY2hIRndHMGNqSFdRdXh5SXhlZUZPZUQvVDhheFJGb2FqTlFn?= =?utf-8?B?bzYzUGZaZFpQMkpuczQyRTd0eGlrZnF2UUVBamg5eW5iMUZNbHQ0UHFmMEZK?= =?utf-8?B?NmRHY29Vc20xeDVXYkw0N3hJekpVMGpUaEZiaURhNkJNNWd3a2d4L3Z1N1Fk?= =?utf-8?B?Y2RYeGxlckZURHRWU3BNb3J0MnJPSG9Lam8xZjBacStxSmZnWEp0QlB6RXJ5?= =?utf-8?B?NkUzejBQK2l2YitYcDZFMCt2VmppMUZrVDljeU5lZGhpSVE5WjlQbnlid2tj?= =?utf-8?B?VU0yaEhyeWlTZGk2YzVUYVRMVUd0OStNcFAwVEFZZmNpZThCSEd0RlNuSDNp?= =?utf-8?B?V1JJQ2NaNkpUc3hJQ1pCeHk1VlNETzEyU2dKSjFMSTBsRGNBWm55bU04bGY0?= =?utf-8?B?djVmbXNjTHdBSkp4ZGMrRzE2dTZJMEtiWFc3V243cEthOEd3enYwQjUvemcy?= =?utf-8?B?Znp2VDJzRElNcm1MUkUyYml0VEdxQTNuUnh4VjFKMFZ3TXNKOUc0c1dBdHJW?= =?utf-8?B?cnhPeGdYcmwxSURRN290SUVkWlg5ZUtWRkwxdDljVHJIYWthQ0JNZUJONWph?= =?utf-8?B?cTJkSlkweTdXQmh3UlRYdjNuSEJRMU52YVo5RnFVeW41Q3dxWjhsYllrUGZH?= =?utf-8?B?QXFhejBFdTMyN1pYRmpPZGZTVHVKbjFGckhGdE1MUDl0NXB2UFhNN3VwSExZ?= =?utf-8?B?MmFMQTRtYkpxYXJ3WHFlYXJaQVFnWHhxa2xiNnUvZnhlNUpjU2VqQ2kveGcz?= =?utf-8?B?UVFyQTAwNmxSYmRoNzZMbUR4WFJFaWVFV2V6QTQ1Rnh1Y1o3SXdrOVdQbXk4?= =?utf-8?B?YldBb0NFb2RJWmN5WkNaOFVLZHY5NStldzNEQjVxcGN5SzJ4UjBjY2lFTWFa?= =?utf-8?B?K1RGK2s4TjFQVnUvTjJOcmhsRkpXQ1hrMXBvU3l3VlFBWE9KbEplU2QyNEt1?= =?utf-8?B?U0UwZ0FaL3R1NHlWaFJJMnRySGtOaUZmK01TeHRQa2lCWUlFQ05WemcxVDlB?= =?utf-8?B?dFRMbUxHTFA0eisyZ0VPN2Qxbk03blQ3YlQ5U0pndklLU0g2N1dMMjhpd0Yv?= =?utf-8?B?ZXlhTE9iR2ZjbDRiK05tWnk0OGUyaWxBdm56SUJ5TUJpL3BWOWRadkplYURh?= =?utf-8?B?K1JEKzRJV1VTc2pCcXZJcjc5NTZSVU0rVGcwcWNXZUg5MUVqVnVwdEQ0SE5F?= =?utf-8?B?dW1RWndqbTN2SWFqY2IvQjJQNTc1NllqUFZHTXZvcmpnbys4TGo1RHc0akth?= =?utf-8?Q?A9cH4CgrqVhMZ3vk=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6675f57-9bbf-45c7-491d-08df2ec78726 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2026 16:31:01.1438 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IWF/fgiSWMCspkYcc1dEbm04a2xkkPWAMOnlCwmx6JvtJd1bPEEemuyh8UY7oPRD3ApN5XlC55qaiVGOyMlWjfp5bJa1mxQAgnUhCJ9YQ/8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9373 Upstream commit dac0dd68d9b ("vfio/container: mdev cpr blocker") blocks cpr-transfer and cpr-exec for mdev devices on the legacy container, as the kernel refuses VFIO_UPDATE_VADDR for them since ef3a3f6a294b ("vfio/type1: exclude mdevs from VFIO_UPDATE_VADDR"). We want CPR for mdev vGPUs, so lift the blocker. This needs a kernel which reverts ef3a3f6a294b, as UEK does. Without it the VFIO_UPDATE_VADDR extension check in vfio_cpr_supported() still blocks CPR. Signed-off-by: Andrey Drobyshev --- hw/vfio/container-legacy.c | 13 ------------- include/hw/vfio/vfio-cpr.h | 1 - 2 files changed, 14 deletions(-) diff --git a/hw/vfio/container-legacy.c b/hw/vfio/container-legacy.c index e437eb0c741..285e594b048 100644 --- a/hw/vfio/container-legacy.c +++ b/hw/vfio/container-legacy.c @@ -988,20 +988,8 @@ static bool vfio_legacy_attach_device(const char *name, VFIODevice *vbasedev, goto device_put_exit; } - if (vbasedev->mdev) { - error_setg(&vbasedev->cpr.mdev_blocker, - "CPR does not support vfio mdev %s", vbasedev->name); - if (migrate_add_blocker_modes(&vbasedev->cpr.mdev_blocker, errp, - MIG_MODE_CPR_TRANSFER, MIG_MODE_CPR_EXEC, - -1) < 0) { - goto hiod_unref_exit; - } - } - return true; -hiod_unref_exit: - object_unref(vbasedev->hiod); device_put_exit: vfio_device_put(vbasedev); group_put_exit: @@ -1017,7 +1005,6 @@ static void vfio_legacy_detach_device(VFIODevice *vbasedev) vfio_device_unprepare(vbasedev); - migrate_del_blocker(&vbasedev->cpr.mdev_blocker); object_unref(vbasedev->hiod); vfio_device_put(vbasedev); vfio_group_put(group); diff --git a/include/hw/vfio/vfio-cpr.h b/include/hw/vfio/vfio-cpr.h index fa1699857ca..a486b3b2578 100644 --- a/include/hw/vfio/vfio-cpr.h +++ b/include/hw/vfio/vfio-cpr.h @@ -32,7 +32,6 @@ typedef struct VFIOContainerCPR { } VFIOContainerCPR; typedef struct VFIODeviceCPR { - Error *mdev_blocker; Error *id_blocker; Error *mmap_blocker; uint32_t hwpt_id; -- 2.47.1