From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11023141.outbound.protection.outlook.com [40.107.159.141]) by lore.virtuozzo.com (Postfix) with ESMTPS id 55FA780610 for ; Thu, 24 Sep 2026 10:34:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ceMTRC3PnTVSUsfHkjZ1VDLdP8DUS8hO/UATUvowO9Mwv8tMr2/ja6jnAATLKf50O+JvGST/P3dQgrbP8+UNpZTtLbiEmZMUIkcpOmd+TFKkj4nHsBlAZMff8+PeuF3GbY35oBrwI45QC+UAC3jYb/yCi6k73hP5Bar2Gi6bSxD+Xx9xx0muclqmdp/PdMi+D8kTiXYHDHstcdyxUY9d8EFd/4nW8Z3uDH/OcHoEBmdNaL09xBBWpZTw97zzFbZgbnRFCXb+8TtXa+oCOoQwgVTQ4xn7DA2S2ttc5W9TR6GKr489JiRKjkh00PtXwndjVohir2YzblmR/k0IWsZJBg== 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=NP8+y2OMCScGonrGF5Rx4sgptidw+sFp2bKdkT2SS8M=; b=kSRpsiR+IDJQDuQ58Tum3JUhzD0rjVkj55V3/EILnR7gRmhdtgio2pag469yB94YOFMD/5U/lX5P2j1zeobtPbRlTincYrYUT4jwhHiIqDA8eg4ZmEHd5EsBGTN1unfFc9CMMbdSmdVH+tJP+COmKxIit7jNvwYf+FVk5KWekPHu9OVKBmjQ3ZtgX7kgY/1doeFtM1KeqYx8aZEps2Ro/rNsq/Kqf2/UkHTIPVyreEyZqmehB7W4iR5u6Lsxn0GEjH1xHLkm9F0WdirRnGOwk4Gz7Z6Y6+qhJbZdZ22m2BiXJcMztp+JzpbAnHC8VnQJYS3RM2M1CIzEv+R/dvvHrQ== 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=NP8+y2OMCScGonrGF5Rx4sgptidw+sFp2bKdkT2SS8M=; b=V1/qvD1xq1MipkNFFO3aNsTxEgTUHBrVjbzlSSabMa8ok5R6JMe4W3nM0vA5KR/lmZXyNC3o+Tg979FgFBQHR/4aF+ocCQGW1Tlr3aTtBGkTecD8T37JrdbIbIwfsYJie8ujt/1/r6n2EHAt3A9gvgJiulltTyjktVYkpBq7VxEgtbNk40VeElucIS974nLtY8tMETwQi5r/YUD/h/+sFTBLy4WGHf/UUGsSwbJE2ut9yFCFGybwR/+eNgYWrzRvgRn5vucSsi0zhbdOot4EqU7Kl37ZyL6XtLK2OudsElbC9+L8VCcwtlfX1Qk/F5THmgWAFGK/c9QAw6HuP0YgLw== 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 GV2PR08MB11820.eurprd08.prod.outlook.com (2603:10a6:150:303::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.4; Thu, 24 Sep 2026 10:34:29 +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.0451.014; Thu, 24 Sep 2026 10:34:29 +0000 Message-ID: Date: Thu, 24 Sep 2026 13:34:28 +0300 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 hci-8.0] hostmem: fix live update crash of VMs with bound guest memory #VSTOR-147016 To: "Denis V. Lunev" , svt-core@virtuozzo.com References: <20260923173105.3576937-1-den@openvz.org> Content-Language: en-US From: Andrey Drobyshev In-Reply-To: <20260923173105.3576937-1-den@openvz.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: ZR0P278CA0166.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::13) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|GV2PR08MB11820:EE_ X-MS-Office365-Filtering-Correlation-Id: 7ac04a7a-13f1-437a-127b-08df1a276990 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|376014|1800799024|366016|23010399003|22082099003|10067099003|5113699003|6133799003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: vWdekLzTyYbXfH0GfGOffbytN5uZ1PymKyE1FHOmyWfPQNj4xhgvJTU1JLkYP4KTTfApV8uq3Vja3z3dtqQPhXmvdqn9TiJ5nSRlnkEy1R0Lgrp4ov28eku2iJ8jqe2rk+MQ4iqxhxer5ZMy8uh48NpjawgZaiZ5/D04+3tIgj+qmNebpBN1zUD7iNLUageapdTfkC/+02uScA7Ais8eCOWztyPLIEOpAqiC8VWTADLUgwnsNkJUIKaIDqqfhnRo4+Yl0c31sN7LUEd0M7O0XVk5mCdiMr8uMySghUm051X0SjGyl8WF4qeicYeBMoK+CxuiN92hb210cEpbpN8dqo7lo34d1HCvR30LfGZpT9meQCb2a1PSMtqxgycFxvYtkDFv7VLS01Lq5F+8H/fnwyPyLwu5rbcjP/q9fNfNO4P8m9LHyhZN++BTkxlvTPGNsESV0BJp9AyE4CmAcWzIgplHt17UIdIiVrmWNp9PINb6J1pqTBm/qiJyhWmqbrJ/PzNNhg6rMh1jKpR8mnhcwQWp/0WADMVk2VCvMHc3JX+r7MPUrEeIPPYRswKZ7zxBBK8Gu/q9SswTKl9m1I0mc9v61tA/bQAFlbjkEdj3ZzBQvKejIxKjfT4rIC8fFQXxJpRM0t7/l9JZojU5tyby453+Bz/K1aF8xiRmyY/dchs= 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)(376014)(1800799024)(366016)(23010399003)(22082099003)(10067099003)(5113699003)(6133799003)(18002099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?STNmUk4xTmN0L1VHamZDMTJzTTZPUDJVazA3MWJZZVNjSTJRemk5eFNPVWwv?= =?utf-8?B?ajZobmlOM0x5NTdCdXNqclVSWHZhK3B6QXVleWZHbGRXNkM2SndzWlhadmlU?= =?utf-8?B?TFVFMDh1Z3FWbkZyK2ljZ3NJZlBMeS9kOUk1aUpEemZ3NU0xYU1Wc0FKT3Vy?= =?utf-8?B?QnhRVlYxaWg5TWVnc0RNdUdyTG1kQUdhZ1VrcytSK25RNldycXNlYXcyeWFl?= =?utf-8?B?TEhmY0lYZ2tGZGJMNXFuUnpQQWsyU0IzOGhzSjdQYVVHVTI3c0JNTWs5YnJ1?= =?utf-8?B?cFlXbEhMbkJCeW96RTkrSHZDY3p1Sk9veC80YjdrckFCQ0N1bGM2RkdqVkFI?= =?utf-8?B?Z3Z5aWxtdkhHQU00eG5SMEVoNnh6c0tKckE1Y0lUWGd0M3FHYkNFcjA0N09K?= =?utf-8?B?dDhMazREUHZVcmJFd2pYb09hSUlTTjc5Q3FxcFdyNzhoZ2dES1QrWkFXVWtP?= =?utf-8?B?clVlbmF0aHFUMEltT3dJUjY1aC9tbENsMEdYUTF4UHl3ajlDNUlYT1FzK053?= =?utf-8?B?Y0I3U0xvVWFSaE5XTmdtWVJwSXo4QmNpOUN3OU90ckNwbC8rdGQ1M3Z4Ny9O?= =?utf-8?B?WU00TnMrOW1lY2t5VFVvNlB6WkxNWTM1bHVlenVPWXZLTGMzSnQxcy9KdXIv?= =?utf-8?B?MlcrUFJtT1Rza3hqT0YyUmVHR2RaQ1hldy9wdDZGM1pTTkJoM1hOdjZFeFNj?= =?utf-8?B?VjVzSmY5d09GVE0xZ212cjMwR29Pc2ZJY0pYSjJrZlVWMzVuVjBOUVZUdE8w?= =?utf-8?B?d01nUmFaa1lrQUV1aHMwVmp0NHpUUnFVV0RsOUZGWlpkTkxJT09Rb2haRnVK?= =?utf-8?B?aXgvbTFuTGVwWXJQM1N0L1A2bXVSS0xEbG02dnczZE9hVi9iQjh1cHhtOGpx?= =?utf-8?B?b25wOW5ybDUxWDg1K1RHN0NKN01mbXpOQ29YZ3BHWjVUTlFKWkFJTWN5NW1z?= =?utf-8?B?MmJRdVNOVzFHS2dTQWE4eWhycDJGL29hRFFiM1hjc1V2TFdwR3RBSkoxWk56?= =?utf-8?B?SnJ5b1J2WUwwMzBjRDdGVDNVSVM5bDdJRVgvOVdqSCtSd0ZzdkdNOGduekh3?= =?utf-8?B?d2wxMzJmdWRBSHlqeGZYSDFRMmRoRGlIOEVNRjJBSjI5TmljV0haTlhVaERZ?= =?utf-8?B?UzAwZnRZNDFyd1RoRS9CMGVJVWtJand0OTJMVU1IZlAzTGZLZ2owYkc0bjE0?= =?utf-8?B?eEZpSXhFeGpZWWQ1NW9PRGVSZThCbXJNWmg5QlpuOUFBTVV1MEFTR3lZNGcv?= =?utf-8?B?aGFLb25aQTJSV1BJcDQzR2UwUTVaRFZuYW04WndXaEw4VEVPb0IydXJsbGsz?= =?utf-8?B?VU1IZS9lVUVLdis5eTVUTE1xcXhhV3h0SFA5MHl6amE2L1BDdzFTN2dwYUhv?= =?utf-8?B?Zmp2TWNvZ09TREVIdXdxQnA1UHRSWHRpYVpZemR0UGJFQ0VyM2pMbVduRDJx?= =?utf-8?B?eVZMb1NwalFBR2NZRkZ3aFpEMFB1YTh5dGg1ZVdaYkJ3dVhGNXhmQy9YdUUz?= =?utf-8?B?eU84RkplVHlmeHYzUUYvTm1HeGRZNlNHQjhJdWR0NCt1MGxoYy9NUHNxd1Vt?= =?utf-8?B?aGlLT3g2dUtzdmEzdmxsSEk2M2pwVFdLMXErenovNzBsMEdEaTlQdThzMDBJ?= =?utf-8?B?RncrQXZ3aFJ6ckc4dHZ5eXZrNkJIWHp0NHFiank0UytJTHgrQ3FoZ3N1b09P?= =?utf-8?B?elg2Z0lvTkhhRDFhNzNHWGVXV21zTXRYOXNHa05wOWpuNjl0TG1DYTV0a3lZ?= =?utf-8?B?eVRFZmxVeU8wWXlQV2p4aWM2TXpMSTcvT1BpWC9mSEVwbWhvWHlWcGtZbGNJ?= =?utf-8?B?OG1RcVBCc285c3RHZDl4S3dVRlJENkVreWk4bGNhbDlvU0ZwWCtLUVhrNTdJ?= =?utf-8?B?dVNmUDRWSDE0YnkxSjh4SlhvNHhkR3B3NlQ1TDNqUm5HSFZGTWdqdlY2SDBh?= =?utf-8?B?NTJCYWVsWnh5Z3U1UG52UmJ5ZjFxWmFGN2ZJcEdMSHl2dWVrTVgxSkJvdmhQ?= =?utf-8?B?cFJkT1VzbTlFLzQxRHNZdEEyc3haK01sOVl1ZjdPbTBCRDVxOHVSVVN2ZWkw?= =?utf-8?B?VHBGUWpSZUFWZE9VeEM1Wm1SdnIzZm5WZjFQUUZrT1Fwb3ZQclpVcjR5SUN4?= =?utf-8?B?bUxZSjEvMkpkTlFGTEFENjNDL2thNG9LRzVJZU5jY21PazZpamhMYjYxdEpP?= =?utf-8?B?WlZHejc0UzJaS2dsWGR4MDBVSXRvREZ4VCtoNmY0M0tFZzJjZW1tbExpTjl4?= =?utf-8?B?QXIyK1IyRFRWOSthaWpTNXlhZ3RaNWIydzJhTlBZTG9oV2RLV2orMHhBcjRv?= =?utf-8?B?YUJUejdmbnF5LzVReFVwUUhLWnRKcXdEWFFVVTQ2d1lEUG0zK25hWTlMOEJU?= =?utf-8?Q?XE2rTGnK5YkLEcOA=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ac04a7a-13f1-437a-127b-08df1a276990 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2026 10:34:28.9066 (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: 6pxxt5CShyshryR6yvUPW1NA/QlBOewVvgJFDxhGXLqfqMjcFwdNMAnA3GUQTLzxdiTkcdzGYkw2fglRx7U6+xYFEsMXJYW5VjEcTxngBJg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB11820 LGTM Ack On 9/23/26 8:31 PM, Denis V. Lunev wrote: > From: Denis V. Lunev > > A live QEMU update kills a VM whose memory backend has host-nodes when > the emulator cgroup no longer allows those nodes. The old QEMU saves its > state, the new one exits during startup with > > qemu-kvm: cannot bind memory to host NUMA nodes: Invalid argument > > and the guest is lost. > > Guest RAM survives cpr-exec as the same anonymous mapping, carrying its > pages and its memory policy. host_memory_backend_memory_complete() does > not know that and treats it as fresh memory: it calls mbind() with > MPOL_MF_STRICT | MPOL_MF_MOVE and preallocates again. The exec keeps the > PID and the cgroup, so if cpuset.mems has been changed to nodes outside > host-nodes since the VM started, mbind() returns EINVAL and QEMU exits. > Where it succeeds, it only walks or migrates pages that are already in > place, while the guest is stopped. > > Skip the NUMA binding and preallocation for an anonymous backend on > incoming cpr-exec. ram_block_add() refuses to allocate anonymous RAM in > that mode, so such a block is always an inherited one. Backends with an > fd get a new mapping after the exec and keep mbind(), and memory added > after the update is back on the normal path. > > Suggested-by: Andrey Drobyshev > Signed-off-by: Denis V. Lunev > --- > backends/hostmem.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/backends/hostmem.c b/backends/hostmem.c > index 35734d6f4d1..bb7f0c4c18f 100644 > --- a/backends/hostmem.c > +++ b/backends/hostmem.c > @@ -22,6 +22,7 @@ > #include "qemu/madvise.h" > #include "qemu/cutils.h" > #include "hw/qdev-core.h" > +#include "migration/cpr.h" > > #ifdef CONFIG_NUMA > #include > @@ -363,6 +364,10 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp) > if (!backend->dump) { > qemu_madvise(ptr, sz, QEMU_MADV_DONTDUMP); > } > + /* Anonymous memory is inherited on cpr-exec with its policy and pages */ > + if (cpr_exec_is_incoming() && memory_region_get_fd(&backend->mr) < 0) { > + return; > + } > #ifdef CONFIG_NUMA > unsigned long lastbit = find_last_bit(backend->host_nodes, MAX_NODES); > /* lastbit == MAX_NODES means maxnode = 0 */ > > base-commit: e8a73d39faf578d58aa2c4b4b024226796c390e6