From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11023099.outbound.protection.outlook.com [40.107.162.99]) by lore.virtuozzo.com (Postfix) with ESMTPS id 9AD0B8013F for ; Wed, 23 Sep 2026 17:31:23 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lIFK1Ckz3bFCoc0n8sb+Qc1gN2Ab00BBO1FB8gOoC9vagU0F+E4ly0Lu+50YuEfvwSIZ6NSaS+Gbck3REa1bomrbh3wLE3CwZzWjek5kR91+oVVgsbJdF9rFFqB+xUr5GykAvSrrXM89kwQubzT+bk5vUGiyoF+Ct1GNBgqvr3KaAMXSoWhVajTu5GzkslS5fv+3gN5stbjObWGmEEosQBet12FynEq6m7EhD1vgUj0SMzNqGnEFcDQASPKuHIg6QOpKjxJRr+2EQCJ35CQ+Wf1Z+zUKV7neeCCuJz2dJ5/TJtHQ0LqoROUPW52Dhhl3YxUsh1ZYqzbltsIpIN+nTQ== 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=tJ1UZIvnuiETf9waIATkrTPt4LhsTi+NDD5cGaDEv1o=; b=lkWRcny3dy/FQDINiah/xlP8sAvSIKPolUYdHexZc70uWVwt6VCskG+8KcbUqFl1E/mnBSqamZG1t3AteaWY2EjW1wTZvyDwgmGkv6TGiqzFfwR6pVyb1l1T1Ma2pVl5thuaAUqGJ6V/bf87cnN6lB2S7oC56sgR1vzfAJ3cXQkfbxBNS6HGzoXwa9vBf3ZIIwNUzhLz6uA1E0gFbRweDeM/LgCrfwO54UeAnKGruqrzWZHvhrVWoFV8p3RyrgKbXjT4e4CeYUOmilBqW5ZapzxgChF0XKWjHE1R0GwEDkuW3sGmF6gEcGc7qTqXBDEGb4RM09LQ45oqZfvGmIMvSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 2a00:1450:4864:31::11) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=openvz.org; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=openvz.org; dkim=pass (signature was verified) header.d=openvz.org; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.onmicrosoft.com; s=selector2-virtuozzo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tJ1UZIvnuiETf9waIATkrTPt4LhsTi+NDD5cGaDEv1o=; b=e9GY23KZSlbgXoxl1n1GnhgI2TXabgi/kAZKptJ2fKFltg/yKbr22rHSo3swiUGdY2OkGLbVSrWLJQzHxwSYSBf3ITEf/ZyPCr4cTSYAyAICn+NfHyQQyyq54ZPad7IQEfAlsHzqQd3cW5vDQ7tIKsw5zSU5LcIMsyQl6ND982U= Received: from PA7P264CA0103.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:348::11) by DB9PR08MB6665.eurprd08.prod.outlook.com (2603:10a6:10:2ad::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.6; Wed, 23 Sep 2026 17:31:19 +0000 Received: from MAD0EPF000008A9.eurprd04.prod.outlook.com (2603:10a6:102:348:cafe::31) by PA7P264CA0103.outlook.office365.com (2603:10a6:102:348::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 17:31:18 +0000 Authentication-Results: spf=pass (sender IP is 2a00:1450:4864:31::11) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org; Received-SPF: Pass (protection.outlook.com: domain of openvz.org designates 2a00:1450:4864:31::11 as permitted sender) receiver=protection.outlook.com; client-ip=2a00:1450:4864:31::11; helo=mail-wm2-x11.google.com; pr=C Received: from mail-wm2-x11.google.com (2a00:1450:4864:31::11) by MAD0EPF000008A9.mail.protection.outlook.com (2603:10b6:140::1b5) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 17:31:18 +0000 Received: by mail-wm2-x11.google.com with SMTP id 5b1f17b1804b1-49b965f447cso9364175e9.3 for ; Wed, 23 Sep 2026 10:31:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1790184677; x=1790789477; darn=virtuozzo.com; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=tJ1UZIvnuiETf9waIATkrTPt4LhsTi+NDD5cGaDEv1o=; b=i99y/hlacdk4fjIdxjjA/MaZtpZB0+uqfRBMhvrzjYb5yEzEs3yd8dbItvWF33QBhG SSjulTwYlXce1ArbadRlOfryTnD9Qvmb3sA5TC5ekwgfZxhSInThxVAb0aBui96KNc7c sB0c1ADnKjw3kLSOYzDe3fsiOhh21b3AtUjBrfYR5v5cfAsA4f8fv6WmOg0KiqyvMKmJ 9NOu4+liXj49Nl0vz/G5cFS4A/IxtgEeruW3OK2mpWsw0CDBoNZunOdeaMibDIEOZsXH oUEoZPvetUz3m/d65WKQJbWHXf7KL4tvDuyxnoC0Qd6KhYPMc0KacNTdMWslF553yyea wNlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790184677; x=1790789477; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=tJ1UZIvnuiETf9waIATkrTPt4LhsTi+NDD5cGaDEv1o=; b=wAAUJczYhlRb5oGE7QW0ybHymHY7A+ilXvrskQ5gKMwweYUQIbTFWNrkxL4xpeCJkF 4bxQ8dadMyxcFezqwWsOYvD4en1X0DUguE08gcUnQr1kOl1ndx1XrczympOzYinqeaGS N7x8vLARZkHtsgIuMrEJ9Hq/2I/P154f5N4u6L6RQaYnRDNn4P7WpTINcDenIO9+HzoC +VBPsfQQ/nPRusr6nWplGXXK/uy3HmZtQqRQXxrmqwMavwJ7NqZdoYXE8hgyi790sWDs W5luD8iApc2GF76/sov3pC9MDruZbtCg7cbwhXupTpGs4ZUlTe0BF1XojeESWCV1wgAZ faSw== X-Gm-Message-State: AFuF++kUuZN7U4RzYcIIag2C9f6+mF17suLVIJaKQjCIPYFgAtjBsTTP w0RKwLkF0g4+0ACFEfrO+t39K2FSkx34z+OaGFSGsZDc55S3nCK5iowol9AObNACWAI9LSSB5YM pPQmldb4= X-Gm-Gg: AYBFou2BMGPvAomUfeG/OqFqLgkf5NSv557AuswY0EC7pN41GwLDnl4cE678Nz8InoS QD+ppWKlytKtUR/WQz/+ek9dF1elNtlxgGHyIywQZtUS6QHM/zL9gSGSvrpr1lH3TvKQ4b7/KGb 7Pg8cxNCb8vstQ725ZBx/GUXv+z61oW0LGrietZaWLfJu0KuNG4wpx3g5GPoU+2fEY1DZ6JP7QH /x7zxjyIIK+S5TPpX8SPDvTXbBvoGcvxrhZxYkv4mrR4rwKRL79SVdpP8Qzj5E+iaVXZWeClb4c nOMcwCxVCeWuHY7ahazxADYyF3yEZSc+VYW08ak1R5I+ZpP5pDLJ0j3H1Ol/uhWym1sEO5d1p2A +cchcf3FgKTCUVHlKXptDHJo8M2BaA7qeeQpU6P37wl1Qex959vFZd6bcbSPYPBELh4TitW/KMp eVi6AfbHPPORknGV0y8955NGl0C4VNTy0aX6Z9GTE5mDRWXQVouuZrd6T57e/yO259ngiuGq4gZ tZnv3rPoQSFCi8x X-Received: by 2002:a05:600c:530f:b0:49c:eb04:1c49 with SMTP id 5b1f17b1804b1-49fdf0000a7mr50921035e9.13.1790184677495; Wed, 23 Sep 2026 10:31:17 -0700 (PDT) Received: from athena.sw.ru ([2a06:5b06:b600:300:5498:c008:c73e:f9b0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fe5cd4d12sm1413225e9.4.2026.09.23.10.31.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Sep 2026 10:31:17 -0700 (PDT) From: "Denis V. Lunev" To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, "Denis V. Lunev" Subject: [PATCH v2 hci-7.4] hostmem: fix live update crash of VMs with bound guest memory #VSTOR-147016 Date: Wed, 23 Sep 2026 19:31:15 +0200 Message-ID: <20260923173115.3577177-1-den@openvz.org> X-Mailer: git-send-email 2.53.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008A9:EE_|DB9PR08MB6665:EE_ X-MS-Office365-Filtering-Correlation-Id: 1db5a6d7-5e5b-493a-5487-08df199879fd X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 0 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|704161411799003|61400799027|9140799003|376014|6059299003|82310400026|43022699015|48200799018|10067099003|6133799003|56012099006|5063699009|18002099003|55112099003|16102099003; X-Microsoft-Antispam-Message-Info: YVkzKQ16xeDZOnmkAvFHZ8FkbNdYHT41FmVLkb6DYQAb7qyH+/004aI989nbX4YohOyuGHajQeL6DNiTSy8UHc60/6jV+L5Y96eU+JnG3f3YAyQguE4tXx2i3ySTh1HtHfIMlYXjl/D9bcgF4KB1JxyCFn1RWjtuc6WgW9q9hrPxViUdcC8YTmi/FTqBzZNbSOnruir2f7w7JCzSd8HeronxaMEgLZ/XbUW3QAwBqOFUArL+ybuoiw7+891Cqg/S4pTQX0Ed/T+OZnx888pr38OI/Q7MWkFXGnvL4Tlja46AukyQp55kkBEoubfdkNew6OFhFYEjqtWTvvC8FCE+6AwDA2mRxljHtAg1YlhXrW//Ooiko7KfmEOL3SA3Nft9B+WdFWmfgGVeC/xG+2bYTKkMW5KD/NuHOOExecswFbBlWWKZr+01PBAQGBM04x4TyJvcCXzr/J2LE0/4nzWx7IijsweROqckySipRjSNLVrdXXuWGtUJRliLYPTiEWZX9DQFimkUPeLoqawaVTgR01ppVDDcaa29hpDfKCARi+Qww8gVageFEHo+5TihB/eueuo3Szysx2REB0S660YM6DP/cr0XRzSmu1VZpvrUyvuMf+WM2KIGxqgJCxbG/QRVPo2Jx+1EbFsn2fO6AGFQecmmSKUV6gqKuUwRrCEM2tii++P7HKOSkkOVwfh0Crqoot43DMXxVAXrcKUFPdmmb1Nb2y34hPP8cSBCrrUh2R6NQfeeAe4v/I1FFXCP6soCTUnUCgAL2h883VYrneGN259UgX7BEOKNwlo4mayJzeN5I35sJLhT/7xn8IvlNS71iGBAxkl+vxc712SbrMZXUFh8xOrAMMs9hXShbqvdHLxdikq0ch9oGZkSPe3Aw/8bwEx1rNzBV5qL1f5ONzi4BA== X-Forefront-Antispam-Report: CIP:2a00:1450:4864:31::11;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wm2-x11.google.com;PTR:mail-wm2-x11.google.com;CAT:NONE;SFS:(13230040)(704161411799003)(61400799027)(9140799003)(376014)(6059299003)(82310400026)(43022699015)(48200799018)(10067099003)(6133799003)(56012099006)(5063699009)(18002099003)(55112099003)(16102099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: R8+ixqhLq7aQmC+AFbNa9EGfUBR3O8f5KhH4Xlr6RsuAxCFSpyKoYyFUQA1+ckj7o1fSuOuMmMgNFimld39TyvGygYFHVHWhektpTG7iTdX/t8auC3OOFxbO9dXyeZvTivm/T1nLJkQsm95keKUjVjos3HLFMAuTzwFIj1yjkYS30lSEyxcexV56F6VU8EGzoa9rI6fZV9MkTBPUCabvRIN9zZ+uPaDHNMl7GhKU5XGuopw8Wsl/FW68yw0BvHT3jo4l8LMEKtOXQYKjIR3oNBbECK16xqsJuOReo5X/ukes4Y3juudPi4BEiUSZkIvlyj4/Idthc29myVSCgBQ2+T49fh7ch4G238HioHygkkYyvy3M8Nsc4ICf1UccBKK9e5dfRTacUH6+eO0BAn5Yd5SVT5BxfFvRay8o9WpqJo+6DX8tvhMLyDwfSuvihwAN X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 17:31:18.1042 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1db5a6d7-5e5b-493a-5487-08df199879fd X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008A9.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6665 List-Id: 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 -- 2.53.0