From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <010701a1a1d0bf29-02fcab10-639e-4c2c-8e38-a87317b05514-000000@eu-central-1.amazonses.com> Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11020090.outbound.protection.outlook.com [52.101.69.90]) by lore.virtuozzo.com (Postfix) with ESMTPS id 4BE428017D for ; Tue, 3 Nov 2026 14:29:39 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nJLjA9l4fSVW2DbIObfLGTaJ4qPDp224wp1ONvIlMjQ3biN2fY6MmymM7Dr/mhJhpKBM9bJZHF/onbVhydBkOOJUoO7jgnXlopNKRXgewYYw7Y4N1paxcIQ/9zXvTPI31TKBj94FM3BPuxeLr4dm9a0qGGf5isYMdAnp2LbqDDLgEFeVRVdhIE/8vRbHu2Xc/dIq+fZk+UaqJVr6DL+hqtVhc9eSxWKwEeo91BDDpHtLzm/R53WRb6u5CjhetUw902GtfsfhAZltp0YdldoPmR7m3IyVJnVW+m2iowRAJZGf3s5Wm3qwyYkHVP3bsnTNBVH/rKIVODTCR0m+IQJQGA== 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=pNNugJa12CMXzGakPN6z5DFQ10ue8wbDWXpSYck7trY=; b=lIRxhmFipqnuqIsG9lTj/IvavZx0fIzpuUr3PnHArrZA7xbJq24UTz+Dtun9m04RK8jvYNleFM/z5KRu9A/8y/cDEvgFRBae8a50DzmuucE9pRHMWbI8nE9cmb8Xo8j0UDUSMj2jl/2Y2dwu0D67NLeVV28F7U5QjBhKufbkYmIzotlJVlJ2+/d8rNF1a4VfBJhVZNAh2h+dHt2HjdSx/Q7XyXhvN7dasY4QNxiqfS4M+nAqku1XcLB70rZRDCSuf3KOc0mMGcwsrAFbxUuzQncOgbYej1Dqmfn4x6yyXviX6oeNlgdXEV4yGJLb7nf04r2IHFmG7OwaPTlifDdJpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 69.169.224.2) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=eu-central-1.amazonses.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=amazonses.com; 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=pNNugJa12CMXzGakPN6z5DFQ10ue8wbDWXpSYck7trY=; b=BnnhwG3tDcip4ja8iKDt8fzNaeoa5RQC+y6SMP3if1TayTphnPpAQMdoBfpla2S+ecWY0YN9O8j0XpIHwUcqSPq+HTJd2zzwHYwzPAYF+UWIrJu5xY9VTH0WlDGIDcAXK5bpiRJsoS93Q2WjPOq+MmKkvxj1gF0qoCHZb15uKLA= Received: from PA7P264CA0453.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:398::12) by BR0PR08MB151385.eurprd08.prod.outlook.com (2603:10a6:2c8:30::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.8; Tue, 3 Nov 2026 14:29:35 +0000 Received: from MI3PEPF00008558.eurprd05.prod.outlook.com (2603:10a6:102:398:cafe::ad) by PA7P264CA0453.outlook.office365.com (2603:10a6:102:398::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.569.9 via Frontend Transport; Tue, 3 Nov 2026 14:29:35 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 69.169.224.2) smtp.mailfrom=eu-central-1.amazonses.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com;dkim=pass (signature was verified) header.d=amazonses.com;dmarc=pass action=none header.from=sashiko.virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of eu-central-1.amazonses.com designates 69.169.224.2 as permitted sender) receiver=protection.outlook.com; client-ip=69.169.224.2; helo=b224-2.smtp-out.eu-central-1.amazonses.com; pr=C Received: from b224-2.smtp-out.eu-central-1.amazonses.com (69.169.224.2) by MI3PEPF00008558.mail.protection.outlook.com (10.167.240.20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.592.5 via Frontend Transport; Tue, 3 Nov 2026 14:29:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1793716174; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=jhih0XayO2CkDsFKFBBbZ1BGymfs7mCdjqsv+qzE5s4=; b=nkJhrmDs/w27GbB78odooUsx0ZeRXFXel+WjBgDpO8s8aQNqmXvkDapisVm89NO1 pyf6/JmPtY2GgWR0CYt3CARVAV8wvlfNAXawkSAQuQ3HBgzYPnn1VqUBCEp4NIJxjmN tz6uY51aTi6u28FjznRhfkxbs3LRUgMU43A0kuRsIJlqbhHXBpr0QQzusjszXO2Qc+5 wHiIhDKJzMHvgBUtoCIu26BjId1kypgPgKrD824ZSBlUrNGVdn45j2FpKfU05M0nAAh Ix5b3d1OMuS9ba4H9RigOX5GDn9wkbcDIgIpMtqSp70gNOlOTsO6MuaF1w3zVsjg4Aa kahWmofZsA== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1793716174; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=jhih0XayO2CkDsFKFBBbZ1BGymfs7mCdjqsv+qzE5s4=; b=CIlw+1uGo/qCgqlra9f4Ng41OKxrh3SWP55yUBa7a7g4PUhlR7afksA5yjHRSeYc PRlmcBpSjsw11j06GZnhh75gEsuhZvqY2QI1ZWqOFQZIyHS3ymKJ3/kBdWgM1VhhwAB CY9N438QLt3O7604R3CNWNfQtkBOnCfFGTTmAeI8= Message-ID: <010701a1a1d0bf29-02fcab10-639e-4c2c-8e38-a87317b05514-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.1 v7 30/35] VZ: migration/cpr-exec: abort cpr-exec if memory can't be preserved To: Andrey Drobyshev , svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com In-Reply-To: <20261103-vfio_v1-v7-30-4467fdccbbe6@virtuozzo.com> References: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> <20261103-vfio_v1-v7-30-4467fdccbbe6@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 3 Nov 2026 14:29:34 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.11.03-69.169.224.2 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MI3PEPF00008558:EE_|BR0PR08MB151385:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 0674f3f1-92f8-4f5f-a541-08df39b6e22e X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA 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|48200799018|376014|32142699015|9140799003|61400799027|5023799004|261022105027099003|4143699003|56012099006|5063699009|261009223027099003|261021121427099003|261102123227099003|261026121527099003|261026140227099003|261028144727099003|10067099003|55112099003|22082099003|18002099003|16102099003|5113699003|4113699003; X-Microsoft-Antispam-Message-Info: jXMVjYbUud0FjpZonALkLS50KfS0nI3ir1twTbBuuO+Wr4fT/oAFvtASh9DjMAQW2kcGveFDygj52aU5L2Q4dDOKVF+W135ur6wFgn6em3dCoHsFd2jYAg77vmjBJ4zIjuTQKERL4B1pxThrKWjisrJQwbwMUOVcoXGIhkNu2VbWMKmaNLYQDW1nNB0oK1PF/Uo8ylXqaSxfhXq/VGfrGl8Zk648XG/4QY/PkPDNNF3KyJ56h9Rfmd5gicBPLsXiFNtjjV98JHz4crwFEZhdl8LsA9n14E20DUnD2ntnmX1LrU09b46nZcWTpPTjecbBBExcnghq/IQyn1M8ypsY+iOv4bMzqBSvUbfJQ+b5WK5OLprPhJ7e4C+dEDKVHW3DO4JxiekzJ/NeWUs4SHp8m91kqb1bPkF8THCDwhm6EAdVZgpiAfQKQZh6KsM8YVamLGySI2wCnfqGKfBDmAlwrqWHPouEhvKZs3BO3ZH9carl199e2mTmt3QCFrr9gtU4i5TBLZm73cZYN54e6eZzGcwPmyB4UdvQl5fAkImspSQfZVY9sdZkFfZMpmdxrsQ2SZuPQ21xcRe+ulyOpG8zO5eRFTWZGvGj1bp48/oZAgRE1jR7MHDpSd7uSvdHACxMRHU9zoUZu4sjOoryvD3HF/cBPRHy6d8yLG0fJrBqvjurRPmsKGpuBxLTduVFmMF5pBnlkvcEmjd+/eX3OW8pxLxfnV/bsPC1dmL5piWG5RS4WbQ/JSCy41+DqeR6y2huTAnJZ8lGP+WrzR1Rwc9DmAag2BJr27mY5Cgx4GdnLuPgy9jBmdgEs+fa2O1El03bKZvdJ9ewSUq3SgMXLIH2O0e6oDLDwffIb2xeq5fEr3kfSqnw7g0+1LAy7dM6tLSimpANe7bCSHIpJOq/h37WQa1YpkogAhMrZUcP6wJVEPABrE7wQVUCguZQMsR0UYC8 X-Forefront-Antispam-Report: CIP:69.169.224.2;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:b224-2.smtp-out.eu-central-1.amazonses.com;PTR:b224-2.smtp-out.eu-central-1.amazonses.com;CAT:NONE;SFS:(13230040)(48200799018)(376014)(32142699015)(9140799003)(61400799027)(5023799004)(261022105027099003)(4143699003)(56012099006)(5063699009)(261009223027099003)(261021121427099003)(261102123227099003)(261026121527099003)(261026140227099003)(261028144727099003)(10067099003)(55112099003)(22082099003)(18002099003)(16102099003)(5113699003)(4113699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xO9iCatT/GJJRSbH2iUyLXV/jKBftti4SAATdNT7Q/4dvHyQvVcVzYOD626k4SZP7xDaw/qTQpJVrQOKcavC1M6mfpwBQ+dtL6XS8PH9n2oN+ir7P+A+2Y0ryl9Oc9F10EHHQdHdW0sIrwZWrcL7Px6h4XYVyakn/iTUv/nBojZJLvaelDfpPjV5lfuRL8NOpcNt/h6++j471givRBJotHMStaY2FvsvcKc029ZYYKsJI8gBZCrGdhJmsZ7ylpvOj0ykr4ERsjuCRB2iAyc87yKemF2+ECxpnF5TXLnEwwQpQWTWxRrtEmmxjNxTdoCf5FePFqAnq7Ry+cTfEs2btqrdSU+IHqdZE2eo7KEy4R+Im3kBGgTjRWNu+6edBmO1BbGmPOT6CxTm9tcRGi7H5tbo2a2Rluey0z1d/K7BdREmxYf1J9g1LEHkG+lftZL/ X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2026 14:29:35.0719 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0674f3f1-92f8-4f5f-a541-08df39b6e22e X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: MI3PEPF00008558.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: BR0PR08MB151385 Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Low] migration: unpreserve_ram() uses raw MADV_DONTEXEC and ignores madv= ise() result -- commit 4dac8e6fe698ac777e5eb0a332bee47fd286faab Author: Andrey Drobyshev VZ: migration/cpr-exec: abort cpr-exec if memory can't be preserved This patch makes cpr_exec_cb() treat a failed MADV_DOEXEC on any saved ramblock as a failed cpr-exec. It jumps to a shared failure path instead of calling execvp(). That path also clears MADV_DOEXEC from the saved ramblocks again. > diff --git a/migration/cpr-exec.c b/migration/cpr-exec.c > --- a/migration/cpr-exec.c > +++ b/migration/cpr-exec.c [ ... ] > @@ -163,6 +163,19 @@ static bool preserve_ram(cpr_ramblock_t ram, char *n= ame) > return true; > } > =20 > +static bool unpreserve_ram(cpr_ramblock_t ram, char *name) > +{ > +#ifdef MADV_DONTEXEC > + qemu_madvise((void *) ram.addr, ram.length, MADV_DONTEXEC); > +#endif > + return true; > +} > + [Severity: Low] This isn't a bug, but unpreserve_ram() is asymmetric with preserve_ram(). preserve_ram() goes through the QEMU_MADV_DOEXEC wrapper and reports failures. unpreserve_ram() instead guards on #ifdef MADV_DONTEXEC, passes the raw constant to qemu_madvise(), and discards the return value. include/qemu/madvise.h has no QEMU_MADV_DONTEXEC counterpart. Would it be cleaner to add one? Separately, suppose cpr_exec_cb() reaches the fail: label after a preserve_ram() or execvp() failure, and the madvise() clear in unpreserve_ram() fails. The old QEMU would then keep stale DOEXEC marks with no diagnostic. Those marks could carry over into a later exec from the same process, for example a retried cpr-exec. Should a failure here at least be reported with error_report() or similar? In the posix_madvise fallback build, QEMU_MADV_DOEXEC is QEMU_MADV_INVALID, so preserve_ram() fails first. unpreserve_ram() then passes MADV_DONTEXEC to posix_madvise(), which returns EINVAL. That is harmless because nothing was marked. > +static void cpr_exec_unpreserve_ram(void) > +{ > + cpr_walk_ramblock(unpreserve_ram); > +} > + [ ... ] --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261103-vfio= _v1-v7-0-4467fdccbbe6@virtuozzo.com?part=3D30