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 2719C8015B 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=WEqPNQ7euo2zgetMnDY65Pe8uVC21r9GzJtu4YT7wLL3iRTaGmmftUkZ5jSH3UAF/De75WLMaHug2jZDSIdVm06mDG+YCzILO14Vs5Pe5J1QgHoVUpacsDzcfwGKYdYz1Kkj+CHNi4z8UhaN49a0/4hEaRZkRYLRQfesSN0t2KaCRDua0a/hj1B6UKikuM8nnUXO55Ei7dgXe2A2l+kgkxQIwwExNZj/VMYiQl0brqYs+VZeuzWXN7sKe71IWBI/HTbf9sRd/zhp77lrquubUoYROp3zk0ioWa59/l1hBQQFMmxP665yCUG8UvluV4Jn2iU86Trayt2yjl4X0o3S6w== 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=TDy+1FEb2IH7no75zU7zIpXxa5ZMoqHy270bqT9bEnE=; b=Fuh+zaytk+r1adkTKY3OTEJCUhOjcXNwyhkikfMazzoNP9mDJfYEiIO75jKJEaMvrnwKg6q4ZG54yx4gjMIaGrFtUDxGwSI7roOXFMVS2ZYGc77WeJBDB2lXBl7VyYbNO5hEY1eWYhl+0N9lcq8RPIKhcTMXARYO9w0aSCzNg8sr1YXTuoqQXpuiteTpsoE4yWnIFH+HZ7bHm1+bCJiUIMmL8HHu53vty7OiDGUqXVPtSE+ZTFAEYFrDILZ8fL6uobumMgumslr0oSs96/Tpn1F3SZMaYPOfgBcImAlyGlktZipMm00e6uN798blDNhpV2dHd1FXh6mkjPkBL6B7Fw== 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=TDy+1FEb2IH7no75zU7zIpXxa5ZMoqHy270bqT9bEnE=; b=SPgXy1PY8E1Hoad9/AIr+6tUElnzllq7W8Lc9PAUowp7IPmF2M3NtZjX6iZRBc4kTIW8bBkg07avrqVB5d4Dq2yVrbG7IpGPQdCWvUNaqPxSNQ0o1AdqTq4vfEfDanop58bFgM9hjy4k6GNdUbm9iaXWVoV+IgoV3zX9FkPd3/4Wznw0xj4gULv4HXG2GIege9oULrarzigzNROWA4k9bEVzygEooUiZLqc4FEPZb97BTvi46ImSuIPPRqMSkocjnGgTxG3yrvD85lAR1pLb2UxK5G5O5whPWYwE0O8HOo3CbNuSuaJqQ2hSn6G/WzEgH/6uVUiM6xEsowahWULaVg== 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:26 +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:26 +0000 Message-ID: <4ea3add0-813a-44c7-9ac2-86226e3abf8c@virtuozzo.com> Date: Thu, 24 Sep 2026 13:34:24 +0300 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 hci-7.4] hostmem: fix live update crash of VMs with bound guest memory #VSTOR-147016 To: "Denis V. Lunev" , svt-core@virtuozzo.com References: <20260923173115.3577177-1-den@openvz.org> Content-Language: en-US From: Andrey Drobyshev In-Reply-To: <20260923173115.3577177-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: f5ff44de-a952-4472-e841-08df1a2767cc 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: BR6kC7oDD/Xfl7Sc+/93G0yh9l5grQZ3gfY3IE3ACtFrVBwPVVRQUhAE+RHhQ0Gg9SW7KhTNwXH/Z2N58UK0PsNJIXSktbVp02oSWYUFNfPx2aHh/snx4xfzLqNc/V6JyI1wEJr4O7JW8a0h4QMfa1FrhDp4MtprnKhQi+uAVv/Qb2ZmpkrRbASAFW4n9djJROeWqdnd8fwAVlyNmvv0hMxk4T6N1jZtFxOR4AwDNHcVP4uuGfCpfW6zkj7bYNOgbGXKBf6fJDGKoSEGFyistJYNWvOkkBuFH+bO6/RsIa/NE+OJRrzfr07z4qGA/iX/3ujr2HajAnCrYMnqNbS3g0B55sqPBtugcNhkUv87GIv5/m7QicZRucaoMRw3FuubqgqKTDCuFttSRffzJ1MOHoW+Ie5cL4kBBpjyFZIvJ3KNF7EosbYq5h7ad1dUztNZs9d9YEZ9pKmHKxMMIjohG2LF0WwbQfd2KMBvNQC7yL8Im3Dax+5DLGcSbz6hbzDpzOWWYjWiFZg366TiUA52+LG28Hi1Xg9jeSpLVY7ZBi07axFc5QqVpfVY9438y0aVHf/NTD87HoLw6o17GrGowZ+I+i1Er1WwIFiLWkUP4DwJenjnUXjsB3nr1TamgBPEd0k92ObKjgaVwnLw72OdenK07PFAQxosV9Y5BAOXnSE= 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?Y3dlM1AreVJzaGdrbnV6RGE4Zlpjb3FaQStmMjYxaUpSVHVqeWYwdWF4K3JX?= =?utf-8?B?UkxwWEF5ajhqTTBvRGNoNjlYN3AvcG1SRnNMcXpVOVR2SXBsZGp3NDN4UTB0?= =?utf-8?B?cVczUnJXY0tBUHVvbFBxcVA5c1BWQ3U4VUtaRmM5b0haWHR0VHJRN1p5Q0Rv?= =?utf-8?B?SGNzME1zbUZmeG45UkN5SW5QUFB4SEhXaitHMEFiWWpwZlpNbVhJemM5dk5T?= =?utf-8?B?aEFWeE1Jdmt5VGxPRnBOWVhtYjAvbjdpZ0htWnZFVlAybWcyVFBPMS8rTVZk?= =?utf-8?B?UFNYdHpveEQ4eDBmR0R3Z3R2RFpMRlhuNVNYVFdEODhITktMUWovZnh3bEdS?= =?utf-8?B?UHR1TnhldVlLQXkrRXNTczVILzVmT256VTJMOGNXZVd0Qjg3cEZ0L0NpM0or?= =?utf-8?B?dU1YbXRGOFVsSm55MWxOOGtwODR4Si9wSnFNc1pOYVQ4ZHRINk9vcmxoaXpz?= =?utf-8?B?RGw2OXJDV3B0cEU0VlFDTUVkaHl2TGJDUFVkbWxMUjVITEpveVFwOVh2RlYr?= =?utf-8?B?cTJ2MWF1RlZLdTVTemF4dlYweTJyUTBWUnl6SEVWUWVrYjlmdS9KVFBoZkpp?= =?utf-8?B?WGVEWVZJMFZIMUUwYm8yWEx6RkZKS2ZYY3hhV09xM3BIWVdUSkJTb1RaOHZJ?= =?utf-8?B?TTlodGp3VmlSQm14amxhSHpCQ2pKU0padjY4dk9xaXV4MVJIK2JnVk9SazJG?= =?utf-8?B?ZlIxek96d0tCTGVLdm1XTVNuZ3pQMHRmNkhmM1k0K1dTcFAyMUl6bXBCbElu?= =?utf-8?B?N21XR0FtRVpoNDV0NlpKVldzNis5WnUwdkdrUGdtOTZpWUtEZm1hVFErazFH?= =?utf-8?B?ejRhTjdqZG1lc1d5QnZ6dzA5NEdMMXBYbCtDNG4yKzJ5NWVCcnA1WW1JQ2N4?= =?utf-8?B?aVhoUDZiSnFpaTh6c2UzaUIwczN6bEF6Uk5iMm9iOExoUTM0WFNNbDR4S3pm?= =?utf-8?B?VVJDY3RMMXlOOFJXQmZOOU5RSmltOXBMRTZEa3BTR3ZudjVWT01Ma25VQU5O?= =?utf-8?B?L1FmcndxZXowRk02TGJkRHlCQzlXemI3VFNraDNTYi8zbzFuUUxTM3VMZmh6?= =?utf-8?B?WG1rYjQzZUYzTUhucEJlQUVBdzByUlNLaU9UemdobGdWZVlEZXVNbmVTSVpZ?= =?utf-8?B?bS9YdkR0RVVuUmw2THE2bkt3ZndrU1J5dm5TSThGOHIxSkUzZVJ4bEU2a2lm?= =?utf-8?B?N3NNNWhWYW1OSTdxUGs4elg2ZVhzNjJJMFFiWENaV21zWVIzblZKNzZTeTlo?= =?utf-8?B?NUZuWW5CZ0Q0bVpFSFB0aUYzaFQ3RTFDd09za3BFZDZWWVlXUHE0VS95Lzhr?= =?utf-8?B?R0hNRkQ0eWV2aDZUYVdZZ21OZm9BUTVNZzVRZzhueFZ6a05VVHdSbVRzV2dv?= =?utf-8?B?WXQ3YmxucHhxakFjTlRrMXRZbVpyWmJSck9SbnA1YUxPaGpyU2FSRzkwaXh1?= =?utf-8?B?RGxCTFVtd2VnQ1p4RU9sRjdiUDV5bmkzY3N3RmxETTg5NHNRYWJ2ZjNQVDJE?= =?utf-8?B?amF4RGxFb25vTUwxc3YwZVIwNkt3RkFJR2hldlZleTg5UzNLSk95Z2JSNk45?= =?utf-8?B?OGpGczY5b2FuK2dMTUowNGIrOE81OE9rcEdtK1hqekx1Nll0VzZkQk91YkhE?= =?utf-8?B?VUg1OUwyVG90SDZQdDUvRDhTNE9yV3ZxTnFQQ0pJM2pNOVE1LzQyMkJFZGwr?= =?utf-8?B?bzA3WWgvWU9GM1krdlp1RDMrUHdoL21YSmdCME85c215YnFwL2JPNDVXaUtC?= =?utf-8?B?UU82TFpQczVzTTR4VWdNSFRXa1AyTzRBd25YdnVkUnZMRU5zQVY4SDVJb0lj?= =?utf-8?B?Nm01bUhSYTZWdlpMSU9KcXlQRkxGVnJZTXFpMEtuczMwajIrbUdWVHM3YmxN?= =?utf-8?B?NC8ySzl5MmpvTDhYakN1MkVYTUsvM0RnckRQVkk4QWVKRWl5RTB0dHpIaHhF?= =?utf-8?B?bzAxQWhtdGp3blBvYVViakZaQXZZUkQrUDV6SjdPZEoyWUFaSG10OFduOEpw?= =?utf-8?B?TGtiWmtncTdqTEg1QWdUTjZNandoU3RiZGM3WVJUMkhYR1EvYmNqbWYzNXdq?= =?utf-8?B?VmozUVhxRlQyMG9pRkVVSnVKZjZYa2prMFRqZ2JsSGp3NlRlN2w5d1VlZjNx?= =?utf-8?B?VW1QdTNibWtqcG9XMzBlVjNVNWJURjBZZ0N2ak85NEplL1NrQzN3OVlVUVFE?= =?utf-8?B?T01kSWpCS2xPaDZCbjd6Rk9Yc0NkMHpidm1Wa25GVnJMWndOOEc3cmJtZFp6?= =?utf-8?B?OWphRXJMbEZLTUpHQzJnWEFwR0JjMWJhakk3MmdQMmNadjNmNzFORlA2bDdV?= =?utf-8?B?VzRMaXFYajg4RjROS3AwaXFMY3NqNXlIaXZLMWdqZEYwUDM2Z0pvTFVFSmZP?= =?utf-8?Q?VCGVjFnQ3MV4jDfI=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5ff44de-a952-4472-e841-08df1a2767cc 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:25.9145 (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: Fxj8tXB2CV4MCgyPxKIq5c5qYrKC+p6GF9nh3BqOS1OiihM1W6Oq20mkD+zxDPs86Lk3XCqlA1lrte1rb8LbArZhb8kzrG/ZcDJJVMetWlg= 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 vz-cprsave restart 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 while > the new process is being restored. Test CPR_RESTART_POSTEXEC rather than > cpr_restart_in_progress(): the latter also covers CPR_RESTART_PREEXEC, > which a failed vz-cprsave leaves set in the old process, and memory > hotplugged there afterwards would lose its binding. Backends with an fd > get a new mapping after the exec and keep mbind(). > > Suggested-by: Andrey Drobyshev > Signed-off-by: Denis V. Lunev > --- > backends/hostmem.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/backends/hostmem.c b/backends/hostmem.c > index 747e7838c03..5f36d7aa938 100644 > --- a/backends/hostmem.c > +++ b/backends/hostmem.c > @@ -20,6 +20,7 @@ > #include "qom/object_interfaces.h" > #include "qemu/mmap-alloc.h" > #include "qemu/madvise.h" > +#include "qemu/cpr-env.h" > > #ifdef CONFIG_NUMA > #include > @@ -343,6 +344,11 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp) > if (!backend->dump) { > qemu_madvise(ptr, sz, QEMU_MADV_DONTDUMP); > } > + /* Anonymous memory is inherited on restart with its policy and pages */ > + if (cpr_getenv_bool("CPR_RESTART_POSTEXEC") && > + memory_region_get_fd(&backend->mr) < 0) { > + goto out; > + } > #ifdef CONFIG_NUMA > unsigned long lastbit = find_last_bit(backend->host_nodes, MAX_NODES); > /* lastbit == MAX_NODES means maxnode = 0 */ > > base-commit: c57b00198350b12ab35649707528304a2d34c0e9