From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11021112.outbound.protection.outlook.com [52.101.70.112]) by lore.virtuozzo.com (Postfix) with ESMTPS id 0883F81099 for ; Mon, 2 Nov 2026 10:36:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MDsTyILfjS8MjQphOiWROFyIvOn0IKe2F9oPdJw8AmqqdE5p0utXz1RukuZ7W+xYTSb1JQ61bkN9e17NqK4KA3UptxxAQIszP6i3wRNbzDjQ/B5CwK6vVaiCgqzdqcsaOSYgwMH3eGj/p+T5H5j6fkLytV1TYGoKd9rkMVk4JbkWdLI3TsaV/RBpe1WLLQ4SzpW+h3iui8Zd3HwP9zTAdDwaIF1uhAhoEXAiov9F27H/9nvpHlOAGefT6IwirylNEXBtDJEJ1TML4WsLvOwbvCpVzZPQOn/CvOPXWeZQrBo1fY7YTCqXwswiTw6xZ2wf16RHRtyFqc141jQC1rje1g== 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=p28heuPowBrNESp8BUK6OPz1QNmfkSY1JCbwgacL9q8=; b=co/OlH7pVKMWz9d6Zh3NfpFm2dPHVUC61+FWthDlx5pofnJkIR55u166y5CfCKMEaBX3ojBEGUX7hxjurV/glPp6UeWSqc8uTPyzb87IQzyDqUGBrwK/cz10mtmGHDEN2lGSL47uXGKTjze07NdbXi8JcuGcsxO+zWA0/LrcESETtGLofMG4r7/u4RF1aqIKhoQW1R9+970LxvfuIocMQuc7O7NsbOkHGvBQE1FtKaL/WNcoWlRWHxMin+Xpj/OORaGslmLOmxaa11TXihi/xeSOdX+mMGo84S6wv6Iwns16lmAjdaciXoXp3EPojVH+alfr6bYsgWCqvbZzumMklw== 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=p28heuPowBrNESp8BUK6OPz1QNmfkSY1JCbwgacL9q8=; b=mgNOKJnbY9fMt3SZf12rK2TcHs6LoQ8ebER2SeKFaPe64fk8lUZUTS6BfMIOV+nomRQut/quc4bl+66Db4BLXYC43qaxCFM7YMNo65QLkRipZh7aB08nBv9xIeFF8UkKiMT20Ct5V/x07mmrmvMtobIbKpPo5Lwb/nI2ZXBEDMOhX5vRdX6wkwY5upJmnX6FJQdbuOBmJfphkYFgfN4oYtNnZJO4bVmkx/7mIZI56BkMkhuBPqd3wiD7FuF9Bew9Qg4oHTvSoIXj4QgRMh7cqWZFtSM9uomHjXqFi7xpEHrYHWcHSl6PVfAj0SBQ98Dqn13QKMV6sbj3Fj6bTGbUCg== 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 DB4PR08MB8199.eurprd08.prod.outlook.com (2603:10a6:10:381::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 10:36:38 +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.0569.011; Mon, 2 Nov 2026 10:36:38 +0000 From: Andrey Drobyshev Date: Mon, 02 Nov 2026 12:36:42 +0200 Subject: [PATCH QEMU HCI-8.1 v6 27/34] migration/ram: don't start dirty logging in CPR modes Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261102-vfio_v1-v6-27-9bc7cabc850d@virtuozzo.com> References: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> In-Reply-To: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIVP296CA0048.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:353::18) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DB4PR08MB8199:EE_ X-MS-Office365-Filtering-Correlation-Id: 68ccc6f1-2260-473a-d08d-08df38cd294d X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|52116014|376014|38350700014|56012099006|261009221227099003|261009223027099003|261021123027099003|261026121527099003|261021121427099003|10067099003|18002099003|22082099003|5113699003; X-Microsoft-Antispam-Message-Info: B4Q4nrjWYL6h+WSEviAPQjeMK6pBGJYH0yXkgqP2NJ55/c7ldxKDY+iMKFT7qX1pR2e01KnxZ5+r+y9XSv6ghcQEx8+tyAc7n9s7sRzef+9c8OnOrbQGaa8D3ZlYetk2xVI1Skgv62Bvy+Or/TOdHNLaRkkCTQS8migwwPOLCvcpGZLGthEfwir/2LnYSAf5D7fyDmLLdbWc1wZsmYTcfeXcSWyguFzOVXIEiD6FCxUYM+uBOyj+e4LS6oi4ZRnq2XY7TQd4V4YZDITbkVvaxUEtiyc12s078nw6H5oyHiTMV7nv67oTXe5P9y3TZ9pCxWecajzD8W9T/d2fwxJ90cbmZCj3GFlO0g23L/LZ4Q5riVPFWPasluK3D61L5okYYcSG750lNgJxPNz0Tsf0xolPBREnfT/FTPVVUDwzkcuTq0zXVhtkzyeakmcWV+Be318/67T7HZhrrcYrunVSfo4um7Eb/xl5DoYAw6ZsV9P3f4KDqLeunKt34xLvLM8xNNnkE3R0w7gCLzvBEchiqtEmkS8XUgbx73hPyTeTb550aNMeFZVU1HKQ7GYU9/umJw5qc3hzgFze85ZEAuNwFNA/k2tLUWOKh5lbdNKSAwjK3NcjFvC7rCYf7NrUxgHpKFrfZBh+klGyApthGdLP9jtRAIY6RD7nwMujLB0iKtYlRarMk1yUOCD8IVOixI4/3c/Ix8Jm1IFIKR+1w/JjjVG6KhbGQOIUZlqVo+L9PcQ= 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)(1800799024)(366016)(23010399003)(52116014)(376014)(38350700014)(56012099006)(261009221227099003)(261009223027099003)(261021123027099003)(261026121527099003)(261021121427099003)(10067099003)(18002099003)(22082099003)(5113699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TUNpUDEvRmtPSEJwR1RiRmMzbmoxVWVjaHM5cGpRSDR5ZGtpVmhZU0QvQU1j?= =?utf-8?B?ay9tMlU5RFI1QkViK1BCaWx6VTZ4cFdRTVRtQkphb3c3SlNqbzQyMkhSN0p3?= =?utf-8?B?R0crRVE4TktTQnROSHF4QjV0cEg1dFllcnA2UGd2RlY5N1BlUjVKc1BqSnRs?= =?utf-8?B?L1FJbFNic2dzeXFtMHhyVmhxVm1CSVFrRGNGdFRxUjN2emhGNUl4TmluUnB6?= =?utf-8?B?RElxcWMrdzJtUGp6OFZXeFl4bU1tZFVhOFpHaVZhS2JURlBBcnZvbEJCYTZY?= =?utf-8?B?d20zOXpmYWhTQnFURjJaN2g0T1MveFFVRUNIOWFzMHM0UlhMSjdVTTBLWW15?= =?utf-8?B?YkVLdUw5cU1MNE5LSkpPMHFGNnM0cFIvd3FXbUVoYVhuUVdDN0J0OC9uNHBu?= =?utf-8?B?Zyt0K0NCV1p6T29mcWgzTHdIM0lBbDZDcjZvazcweHoyYWFrSnRRWnFVdUh0?= =?utf-8?B?eW9uQWpsYWpoQUZhelEwUnZRVnYrT3JRTlIzWHRGeS96dXVobERXcUlWZHFY?= =?utf-8?B?aThNWFhMWmxWK3FRUWFmc0xkMGNBRHhMbFg0RlkzTFI2RVBYRlM1VGp1UmxZ?= =?utf-8?B?VUNsek5zeUtTeWlONmk2YUhHOGwzU21yeTd4bXpqSGdoVkNRWjBST1c2Qmsv?= =?utf-8?B?eDRWL1JQbisyN0o0elN0VmJvdVpSSVNlZEpXSE56T05pNVpPVjNuWmpCU1Fk?= =?utf-8?B?c1BtT3R6ZXo3NHN4a2Z1Q3kxZE5SRnpuT0liVlVWQVZvWWF2QVRLSEJsSVFm?= =?utf-8?B?TmRJS1Q3aE4wSFFTVzArL1NOT0FtSnlJcGJTYVlZT3RHbkVJYThkZlpvUjV0?= =?utf-8?B?ZllPRFBGblZrZnBEUUgzcWtVRlNNSjFjN0xlVnhzY2NlWnZ4cW1kanBKenZi?= =?utf-8?B?V3ArWTQ2d1R5L2ZDbnUwTUoyTGc5MksxaHlHcVBEeHE3STZPZ2d5dHNvbnZW?= =?utf-8?B?Y1JuOXNzVTBIaHY0OHBmVXYzTWxlN25CZnpDeGdXYVg3anZOSlByc0p3ZjAx?= =?utf-8?B?VDFWMzdDaFNWb2RVNjIzWHBEWmRSWFR2UDBUVUdzVFJtT2ZkeEN1VEl3aG9S?= =?utf-8?B?aHNRcG9pN0tTalZTZE9GSlRXSVM4c3E3cFlDb0IwcW8rQzI1QWNJTTRCSVZ2?= =?utf-8?B?WWxjSEdxYWoyV25Sdlk0VjdUK2h6ajhiQmMvZmZ3ZnF5WFA0em8zMU1FdnhP?= =?utf-8?B?VmtpbnhBK3RYWWJUYWE1V2ljSXJJdjgzTXFFcEFROFU5OUJjZHlQOERUdjJH?= =?utf-8?B?dm93TmVyVzRwMExNbkZZSE1iZ2NVdm54T0FNSjlmMGRjMmlKcUFtQk5zcFI1?= =?utf-8?B?TlVXSmg1QVcwOXZ3bGtLcnNKU2dCMERiVSsvbGc2b3ZwT0pTdkRjVHV3aVBw?= =?utf-8?B?M3hNS0l4S3lWVC9vNDg4YzF0SlFxQ1lVdnUzcnpmcERncithdG5ibGlsRWZx?= =?utf-8?B?V3BLNVpjU0tlVzFzSEN6QXozMGUyZW5lZTBDOE1LMndrRnk2eGVxMSs1akUx?= =?utf-8?B?eDJYMURpcTlGMmZlU2dNVmJSTm9zUkF4c0FlR3FYeHFkZlM1bVJJRkdPTXZm?= =?utf-8?B?UWVWcjVuYm1rb29rcFRHSGVxaXNuQ2NJQjJvN1lwRC9OMjBtNzliM1dLNkNJ?= =?utf-8?B?NEloZTFQSU1rMjdhQW5OOVcyaGVJRDJ2LzNOWkh4Y09KQjMyTFlKTmNXYWJ0?= =?utf-8?B?a2lGQ2RWRUZtd3lPekFuNlJQaDIvNm16ZEE2NG5IZUdLVGFwVUJqQnhseU5E?= =?utf-8?B?WXVBeHpIQkVzRjBhNUFNcVFRK1JaNWdFMUpKdWREYnRDbWE1SEtvSUhNTVNr?= =?utf-8?B?OE5JaTg5YTR3RkN1RDdlczJWQVlCWnBNRXkzZ2RYUVZRRFFPY01kcWdjcSs2?= =?utf-8?B?Y3cvaDVLbnBXQVBrU3Zla1ZrR2JQME5UbFlDRTBGa296bHE4V0kwSFVwV3pk?= =?utf-8?B?S3RvekQ3U1p2RVZQWkNqWG5NbWgwQ0lxMjBzaHhTcVNrcW0xZ3pVQWZLalhJ?= =?utf-8?B?WWViNnZjSlc2MGx5VXEzaGZ1U24xWXBRaHRvQXAybHJzeS9ndDIyemZ3RTdI?= =?utf-8?B?L3VRVWdQU3N4L3V5a05UdWdGQVA5cyszU1NBUlNlVWdyNUdaRndQb3ZHWUQ5?= =?utf-8?B?SXMzeWgwMFBmZUYzTlBaN2RlcXoySVFsSzFBOHFPRHp5QitSNS9UYnBtU0pu?= =?utf-8?B?WnBhakE5anpTaVkwNy9vNjBjRUtxTHJ4UHVLVS9IWUEwZTB1aEoxQjZkNytT?= =?utf-8?B?MkZ6b2hsaE5ZNGdORXdLNFVCOEdwdDdNTG5WK25hT0JjdEJRclRxekVFL3d4?= =?utf-8?B?b0JpT1pvV1ZuSG0wQitIblJhcks3a2x2dXVNWjlnWm91dGpLbmRVNy96bFp5?= =?utf-8?Q?AefedNCRSuOSyY74=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68ccc6f1-2260-473a-d08d-08df38cd294d X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 10:36:32.3738 (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: DXcblNtgn37ee2gIRjlhpd3mSFr/Zz+rdjcgmkNREMi/HIgGvw0BCegS3ojrFWNWxcdUaArZSSCkXyk90zrrBYqRiXT2Mg7XsIPIeKkgrM4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8199 In the CPR modes guest RAM is preserved in place, not copied: migrate_ram_is_ignored() is true for every block. Yet ram_init_bitmaps() still starts the global dirty log, so every listener starts tracking pages nobody will send. KVM write-protects all guest memory, and VFIO starts DMA logging on the devices; with cpr-exec that logging is never stopped before the exec, leaving e.g. the DMA page tracker of an NVIDIA vGPU running after the update. Don't start the dirty log for a migration that migrates no RAM, as is already done for background snapshots. ram_save_cleanup() only stops the log if it was started. Signed-off-by: Andrey Drobyshev --- migration/ram.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index 399b43dd631..0f61942fd3d 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2810,8 +2810,11 @@ static bool ram_init_bitmaps(RAMState *rs, Error **errp) WITH_RCU_READ_LOCK_GUARD() { ram_list_init_bitmaps(); - /* We don't use dirty log with background snapshots */ - if (!migrate_background_snapshot()) { + /* + * We don't use dirty log with background snapshots, nor in CPR modes, + * where no RAM is migrated (see migrate_ram_is_ignored()). + */ + if (!migrate_background_snapshot() && !cpr_incoming_needed(NULL)) { ret = memory_global_dirty_log_start(GLOBAL_DIRTY_MIGRATION, errp); if (!ret) { goto out_unlock; -- 2.47.1