From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 28EE98017D for ; Wed, 21 Oct 2026 16:46:37 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69LGj47f022743; Wed, 21 Oct 2026 19:45:07 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69LGj47f022743 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="LJcYVaPz" Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69LGj1XM022737 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 21 Oct 2026 19:45:02 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69LGj1XM022737 Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-8a065d0e9deso31982b3a.0 for ; Wed, 21 Oct 2026 09:45:02 -0700 (PDT) X-Gm-Message-State: AFq9FYK1T38ZJYUGOFdt6avdcU83O+wOCDNAEuFKBfX04F+79NRSoaAA lVjzEp9aD9P8U0mQJN3nVlucWfygkDKn5gjsCfaEYJ3C86z3onFOB7YXHLAPbVRVWVHdw4GWSvv HaT8OR/2695j+/C/Y5JnVD7J3uOX0LRgHejaGSTzPoYfcclrQCVRjbg== X-Gm-Gg: AYBFou2waiBZn1b5fyZ0waBdHrOgYB7BzJXL0omZ8eP+M4dE801s2szkg8G6FiBv1mT FFZ6l6Jv/waIvFlWA2/TyY1zOSpjRnWUfQ37ucEMSzHsh7z8O4a2FJDhzzScLtVOlf/B3Gt4ayY 59/pA4w4QRfeGMUAOaFKZJv42UfB5CZcQf27/2598k4E7U0jXuYqJXnuZLVF6fKH42gITqI4oDw x8Vcnb4xRxfUMfmrmPKIA0hEOwX+Bci3gDFKR0JOLT+0tFBOfyV92nE95eFZHDbg8Ba00CKpx0U ZCBx1Z4mfYF2LRPr2zZBxyMZcF1hc2blOdb/th7kjJ1aJS16cBb8Cwcsv2Pv5saj2ZOgY84r1Rf rIEjZvdNbKG7rJtLOh6JAwKcKSGz2H7BE+KgNmeD5zbCe/GkgyTo05qKjnBaSf0cvulsW6Zys7K eMFSPcJPoucDGsCopwNDw5bw== X-Received: by 2002:a05:6a00:438d:b0:8a0:4fb0:efb2 with SMTP id d2e1a72fcca58-8a07bf677c6mr3357123b3a.1.1792601100849; Wed, 21 Oct 2026 09:45:00 -0700 (PDT) X-Received: by 2002:a05:6a00:438d:b0:8a0:4fb0:efb2 with SMTP id d2e1a72fcca58-8a07bf677c6mr3357116b3a.1.1792601100299; Wed, 21 Oct 2026 09:45:00 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1792601100; cv=pass; d=google.com; s=arc-20260327; b=RbPC6yOIHMoQGwv3ls2/4XYjLLENd0ZGnPxBPtF8dwZNEUUSXxTPdfGjodhvQHoFB6 e766uOcUmp2G3PqpMz/C4S/NXjFLQ1pRbwQmyUWDFUXNE33H7f6wONLZQgfy7RjMpLN0 eu8WfoHuQVOfKEbsXFxQndHPIGRV+28Ae9ZD6e1owlphgxs35JjfVomlpejoSGdUiaow QRD75UGXxl8pmhA5EB2NcS4ud4y/esHuyWW+WAETAoWP79jgeJqt1mOIegBaAHyVvAgM t5sumiA4ILlmAAPfByAxzpJeW1EL+bKjLt67zVTKnR8tQazkvWNN86r3/KCIjs268QqH ds1Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:date :message-id:dkim-signature; bh=I8kkEMPykwyHSBSYX4X+JWCaEAtRT8VGFlryj+vSoVU=; fh=Env2ZjT96V0xDYLONtgQdAJupIvDeMUdSD01xf90sy8=; b=Rr0G6IV7cXx7l8r5IZBtiVzuwo2G02scF+SPATc8GMjCj9Frddpw/vW6LAqhRL522r zSla/SXGPMS8coi0zuNzxqTuJ1706/CqwX/yrV7CqnTRT2W8TI/y6RAi8/4CCdx8Rtri 8B0TzOzp4jbWcNZyrAux12sKCTZ3eCbfdeBmry3w7Is/imGG9sRUdpVZJPHLLsVtI9Jy MTov3pbyzHA2Szyfe0xfHPEaWTM24NeYz7IHZLi1NKISgINUsCRuJgTC2sTNTGi5QXCq iXjcBDwuCPvRBpO8DoPZ8ynzoheDRg8L71t0uIp1pyySDarEHnixMEW4VbUrBgAhfJmw umQw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=LJcYVaPz; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c200::5 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazlp170120005.outbound.protection.outlook.com. [2a01:111:f403:c200::5]) by mx.google.com with ESMTPS id d2e1a72fcca58-8a08933a4f2si4424021b3a.8.2026.10.21.09.44.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Oct 2026 09:45:00 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c200::5 as permitted sender) client-ip=2a01:111:f403:c200::5; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=LJcYVaPz; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c200::5 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U8/oCI40HQ44Tz7iNxFP6wEJQO+Ayj5u/d1vvBKeDDe3kG69Be5joaJCMcSbfcjaoQg4jnRZiXffVfULz9ERHUBWT73gdQNbQchCvG55HElkKtK+bR6tcZbQdjTFGCjLUFapyt8qfmXQ1CU/9T+h0AEOcflwmHExFrmbF5ga4Vg29FunX26kozMTcvN5WxItUPFb0iI7tjjMKz4o61KDm+pmjWwY/8Uv23JAclsQ9+e40LM00Dlln7LUSVO7WwjgU/OJtipjXuxSknKwURZA6HZVUG/iTO4bafdnrncreNX47wkiBo01BTAOJOHFTE+pHDvvFL6S14rB0fo9LP4UIQ== 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=I8kkEMPykwyHSBSYX4X+JWCaEAtRT8VGFlryj+vSoVU=; b=vzwfi8aDTZMQ8u8r0pL9NQZ92rzd+bCorerPIa/DAPqGV1BGYzYTnQAA3MiUXp31bipjzrtXhp10QtvqEEVB+JVRNxxblurfEtZeFaPeDs+orZMPSjHdzmIPgyo9ivGXG5RNOR7yrF1wHXm+93W/xsBTbzGn/3Vns7kBx1Rd2G4A+NKx7Ge6MSKoe00wOGd9me7mFT/PPJB+WysgePCgOlWKliPcTG65Ow79vgMguUfPvvPfgoTux/KLTsDexP9VM7KtTSt+VqwWXzShg1B0GEKceuCoIihftghjYq8zAQ7+uHJihbGdR3U/On5hXIgUd5kc5Az6J3f2EkoAgmhgiQ== 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=I8kkEMPykwyHSBSYX4X+JWCaEAtRT8VGFlryj+vSoVU=; b=LJcYVaPzHxPFUMb8iKoyKVpFQbasmAj+lHIB1CUea0jUBDH8ZmTZixpEZZI/AzNpS7qX50Txhpt8mj4NmYXzJSvwBbEZg+SLtUUl3h0z3AzPXnBnTOqY81E7laksNYrGl2raKBOeu7LFcONgte9sPC0jPB0PMBs34B3DQfcn/DeV6jwgiRtU1QfnKW1Lvpcfq3onUtrzSeyYQJxDQmISoPZu/X3RsE+/MbDbx94cIhhXY4uu9Va//YUNtGBRcIXNeVxPtw4Sqce8QVhA0n5RibOWYWQzpSkpV14DXitCKp8Ode+MS8Op2QgqNpL+qgaUfqx6uzOuMw8rkVVLbORbdA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from PA6PR08MB10708.eurprd08.prod.outlook.com (2603:10a6:102:3c7::20) by PAVPR08MB9604.eurprd08.prod.outlook.com (2603:10a6:102:31b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.15; Wed, 21 Oct 2026 16:44:55 +0000 Received: from PA6PR08MB10708.eurprd08.prod.outlook.com ([fe80::1999:c6db:dc55:494a]) by PA6PR08MB10708.eurprd08.prod.outlook.com ([fe80::1999:c6db:dc55:494a%5]) with mapi id 15.21.0546.012; Wed, 21 Oct 2026 16:44:55 +0000 Message-ID: Date: Wed, 21 Oct 2026 18:44:53 +0200 User-Agent: Mozilla Thunderbird To: Vasileios Almpanis , Pavel Tikhomirov , Andrey Drobyshev References: <20261014-b4-prep-khorenko-vstor-149847-2-doexec-pinned-memory-v1-0-36f1120f9b57@virtuozzo.com> <20261014-b4-prep-khorenko-vstor-149847-2-doexec-pinned-memory-v1-6-36f1120f9b57@virtuozzo.com> <010701a13b71fa00-58d13ddf-f053-4152-80a5-977e12044dd5-000000@eu-central-1.amazonses.com> Content-Language: en-US, ru, sr From: Konstantin Khorenko In-Reply-To: <010701a13b71fa00-58d13ddf-f053-4152-80a5-977e12044dd5-000000@eu-central-1.amazonses.com> X-ClientProxiedBy: AS4P190CA0026.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d0::13) To PA6PR08MB10708.eurprd08.prod.outlook.com (2603:10a6:102:3c7::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA6PR08MB10708:EE_|PAVPR08MB9604:EE_ X-MS-Office365-Filtering-Correlation-Id: fd2864df-8ec4-4d16-fa00-08df2f92a2cf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|366016|23010399003|56012099006|4143699003|261009223027099003|10067099003|18002099003|6133799003|22082099003; X-Microsoft-Antispam-Message-Info: rJppvjsydJJZnKFurjImPgKj9Fbcl2Uo3Cs0lU6OrfxzU0JOTMPrCOfoVHaVPbkKKbo4DFxyooSC4Zd4fzJpKhoWi5m4QpqXg/NdZG6f++83anU1xFnR5YPORJthH+BMeL33M10ha2n8qGyjNTXeRENaykcdt03tS8Y2vEYbmHoMXL76dTN6tHknN1lSB4OwLA+AdEBZ1ldyVzw3sKLGqrmxrllQwnNFAaqUKUvQ6QwweqMr+cLELSkV9sleWI1ryaExFmGFx3itLZO5DFjEGSSNhVpd7qHFWoyNTMDLh6RwiQMQ6uKe5jdy5oshUr/+qYO1rvT4MFoJuzMQUZUFl8Oy8EM2aznSRcU+bX5dBjmGlEP9yQMcGZoc28MHng0+02gwvlj3OFfLE92HAiBFSeDA+pqsBPxeyLjRWV4AzcCoJSnS1XzmeOKeD8aRF3HKWmLbztbuF2VoKbKEB95FP2FHWRekIVKe8h24KmtMkFSUlb39TD8mlu9NflT5Qo31Czm7HKEMXc9A5sFW9bdwvvllWNKxgb78e88H/I80yKFRz/wTwaorffCuCcrtGCxB/KFDlpdrdbGDPSWYuhEbSxR2E4W95IVFcDycB+NJJS3Ahzg6Iie0WjBhD4Q8HS8e X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA6PR08MB10708.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(23010399003)(56012099006)(4143699003)(261009223027099003)(10067099003)(18002099003)(6133799003)(22082099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TW5uQWR6R3lHejIydkorR1JaUGx1RmdRSTNadUpSVktvOHVwVFBvMGFEUTFm?= =?utf-8?B?Sm1PV3VuWWtaRWE5eTFUQzZVVkRySHpOeEJLcWg0QmpyWml5QTdBRCs4bExu?= =?utf-8?B?ZFp6T0NDNmZuZjl4Q2YxZ0UvWW5JUHlHMUU5c2FTMk81aERvem4yU01yMWNN?= =?utf-8?B?Y3B0Mml2ZWtBNHFtaTN2MDVVcngrVHAxNE1UTjJQUVN0MTJGUWZTRkVlVWVO?= =?utf-8?B?UXFOVGpBVTljcVVxa01RSzh2TVNmVkthdG1HYW9rdGg5eVoyam1NeFdRQnBJ?= =?utf-8?B?Q1AwdGdwZWlvWHNkWVRUU1o3WVBkTmpzQ3BXaTBwa2x6VE1iSnJ1Zml6eWh6?= =?utf-8?B?eFY4MkgyQ2J5WllwaVVQdjFEYlM0b3VUdHJ5Y1F1anpxT3M2ZUlTR3FveHZF?= =?utf-8?B?T1BkeFJWdERpenBkZ2lQY3drUWhhbmlmWjE0SWVac3pyMERZRmo5VE5SVERn?= =?utf-8?B?aWI2Vk1Sb0FJREpoZVpuSW1rbG1lS1d6WU92Zld3ay9IVG40L0c0RFlwYTIw?= =?utf-8?B?SzNZU3VWTmNRZVhQMU15TDBBZEtEaGpXdmZiWGRhckZKcTFFbnRTTmVkbkNF?= =?utf-8?B?Uzc5aU1jMjd0OXdDTDVHRUhlRUJoSDBZeENOcGtqTUMrQVNOclkzdzhGcmRL?= =?utf-8?B?L1VCcmdBd3JZU1UzV2R0WkEyS0ovMGRNUkpEODVDTkR6TjNldFQ1MkxJdzBh?= =?utf-8?B?UHZITDVvSUtFVmRHejVieHpUdzgrRmN2bUp1NTJjaS9GRHNOMWxCcVYzYXRp?= =?utf-8?B?RWJMSkttSjM1SGovWHVBOHBZM3YyK0lHczR2dzI1clNseGxKamJZMnYzdTFO?= =?utf-8?B?TXlZb1dsRVFtNkpXU0tDSiszS1czUno4aVMzYUlhWjk3RGxDUTc0bmhzWFdP?= =?utf-8?B?Z0FwWE1GS3JuN1dXdjQ5WWJIK3ZldXZyOFhlcndNeGk1S2VhSUhPdVEyYnlR?= =?utf-8?B?MEtnSkhpSE45aVZuaDI1SndnS0NyY2RNMFNUUC9kTDZvNUJLcFhmcDRMWmNl?= =?utf-8?B?aVJ0NHhWeWNQQzdXS1UwbWJjVVkvdkoraWFwYnAwbjlMQUNJVHkyWVhzSzRH?= =?utf-8?B?Umd6TWJwRlhzbmtsM09zL3hweElIUTNlSTdMUFpzTG9STjloMWd4bGc2T2Ur?= =?utf-8?B?dDN3alQxdVJKb2ZPNFk0ek8zcHRIZmdXSWovcFZIbmdHSTNmenBXcnFiL0hL?= =?utf-8?B?Vk1pcWxrc2RrRkk4ZEZqa0VvK25WcGVhRlc1VlpzSiswU2lkakVXN1dkekRt?= =?utf-8?B?OGNnd3lzZ3Azd3hvdlB4OHZqRWl5ekVVd3llUUtaYUpNWGllc3I3bW0rZ2x2?= =?utf-8?B?MnFKUzB3ajJlQkxQbjh3ckJ6S0trMGpjUjFOdXcxazdZcGZGU2FDMVIzR096?= =?utf-8?B?WllxR2MvMU9xdUpETk1JeThsY0R3dDdzbkJGMjJaaXRKclJCK1hob1I2S0R2?= =?utf-8?B?cXJlWDAwOUJ3aUJiZklYaW5aTUk4K1BWeUhoUXZzVXRhbHJRTWZQMVROdjZK?= =?utf-8?B?d2pvSU5US3BrZXk3dG1mSjAyVkxDVE1WNnVsc2kreFJDYS9UMVF6OVdHN2sv?= =?utf-8?B?aEJTK3NkVFU3M0RibE44cFlnOUtIRWt1Qi9Ja3ExMzdhYjFSQkR0UXdlY1M0?= =?utf-8?B?SVgrc01OUm1Rc2FaZUNIc2R0Q3BiL0NZTlBnb2lpakZ6RjE5dkViVWdkRGZF?= =?utf-8?B?MXA3ZHlidWhHb0x2VXVWRUd4WTh3OTNWRFR0QkNhZ1FjUmplSXA2bXFTOEZ4?= =?utf-8?B?NUlOWDRwYTN2ZG9qd3NZendyQ2I1Ly91ZHRQekFJdGR0ME12UUg4RkIzclA4?= =?utf-8?B?bXVBWTlDL2pUV1AveC9vMkcvbGRVUSszNTk2OElRUE9Eb3A2ZTBFdklGMnA2?= =?utf-8?B?MW5tVlpuUkt4VUQ2Z0dUMmtma2RURlRXVmVtdWZiQ2FtRXMwNGdKWGtMcGcy?= =?utf-8?B?QlNLM1Y2ekNZMmxDTnVLdlpkZ2FtemhsaDd5VFlFdlJhVkYyZkxPWmtVWk1k?= =?utf-8?B?Sy8wNVo1YzUzQW55cjRXRHVGbWtsTHhMd20zQXBnMUxmWERHcEhadUpwTFlS?= =?utf-8?B?TzJWaVlHbWY1WUNHNUdXQTVSQ0RRbkltM2V5NEFrbGx3WC8zYXBpWE1UZVZP?= =?utf-8?B?ZUJoTStRWU1xQUNLbUUrbDB0Z3lkbHZNR1AvSUNvZDFuT1A5ek9XWUF4S0wz?= =?utf-8?B?d0xUSGh0N3RJbUJnT1MrRGM4RDJDUHllbXd2Zk1GcVh0WGxKcVVBc1NPVHdB?= =?utf-8?B?bDFVSDB0dVRaYS9TZGFBNy9NcW0xd3FDcEswOTZwNnk0NFRMSHhjRVUzUG9G?= =?utf-8?B?dktNWE93KzJkMktsN2JxYVZKNHFJYUFQUGMxQnRRTUJnUytsUG1wUT09?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd2864df-8ec4-4d16-fa00-08df2f92a2cf X-MS-Exchange-CrossTenant-AuthSource: PA6PR08MB10708.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2026 16:44:55.6404 (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: ZHMdgxcY2Dovjx/GLCMC3n64KWO53LLIbRJwK/tNWWahUoo0v/zQF/CCvJmGi8RbOF2qvklEvGMPesTUFowYyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9604 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 6/8] oracle/mm: zap the preserved ranges of the old mm after copying them X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org On 10/14/26 19:24, no-reply@sashiko.virtuozzo.com wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > - [Medium] mm: zap_vma_mt() clears old_mm PTEs without vma_start_write() > -- > > commit f34df816bcbe51e2402a6b8ae419dea8ef679f49 > Author: Konstantin Khorenko > > oracle/mm: zap the preserved ranges of the old mm after copying them > > After the VM_EXEC_KEEP ranges are copied into the new mm, this patch zaps > them from the old mm under its write lock. This is meant to leave the > copies as the only mappings of the preserved pages. A new zap_vma_mt() > helper spreads the zap of an anonymous VMA over several threads. > > Link: https://virtuozzo.atlassian.net/browse/VSTOR-150231 > >> diff --git a/fs/exec.c b/fs/exec.c >> --- a/fs/exec.c >> +++ b/fs/exec.c > > [ ... ] > >> @@ -997,7 +997,15 @@ static int vma_dup_some(struct mm_struct *old_mm, struct mm_struct *new_mm) >> } >> >> mmap_write_unlock(new_mm); >> - return ret; >> + if (ret) >> + return ret; >> + >> + /* Whoever keeps old_mm alive past the exec must not reach the pages through it. */ >> + vma_iter_set(&vmi, 0); >> + for_each_vma(vmi, vma) >> + if (vma->vm_flags & VM_EXEC_KEEP) >> + zap_vma_mt(vma); >> + return 0; >> } > > [Severity: Medium] > Can this zap race with a per-VMA lock holder on old_mm? No. The old VMA is write-locked before the copy and stays so through the zap. vma_dup() clears VM_ACCOUNT on the source with vm_flags_clear(old_vma, VM_ACCOUNT) before copy_page_range_mt(), and vm_flags_clear() starts with vma_start_write(). That waits for the per-VMA readers already inside, such as uffd_move_lock() or uffd_lock_vma(), and makes lock_vma_under_rcu() fail for new ones until the mmap lock is dropped. exec_mmap() keeps old_mm write-locked from vma_dup_some() until after zap_vma_mt(), so the lock taken in vma_dup() still covers the zap. An UFFDIO_MOVE from a task that holds the uffd therefore falls back to mmap_read_lock() and waits for the exec. Whatever it does to old_mm afterwards no longer reaches the preserved pages: they are zapped by then. The write lock is a side effect of vm_flags_clear(), though. "mm: allow MADV_DOEXEC on shared PFN mappings of device memory" makes that clear conditional and adds an explicit vma_start_write(old_vma) for this reason. > > The loop calls zap_vma_mt() on old_mm VMAs without calling > vma_start_write(vma) first: > > vma_dup_some() > for_each_vma(vmi, vma) > zap_vma_mt(vma) > > mmap_write_lock() alone does not drain holders that already took the > per-VMA read lock through lock_vma_under_rcu(). > > One such holder is UFFDIO_MOVE: > > uffd_move_lock() > *src_vmap = lock_vma_under_rcu(mm, src_start); > > This path never takes mmap_lock. A task that owns a userfaultfd context > bound to old_mm has mm_users on old_mm, and its own t->mm is a different > mm. reserve_preserved_mem() only rejects tasks whose t->mm == mm, so such > a task is not excluded. > > It could therefore run folio_move_anon_rmap() or a fault in old_mm while > the zap clears the same PTEs. That would reintroduce the problems the > commit message describes, since the preserved pages still carry > PageAnonExclusive in both mms. > > Would it make sense to call vma_start_write(vma) before zapping each > VM_EXEC_KEEP VMA, either in vma_dup_some() or at the start of > zap_vma_mt()? > >> diff --git a/mm/memory.c b/mm/memory.c >> --- a/mm/memory.c >> +++ b/mm/memory.c > > [ ... ] > >> +void zap_vma_mt(struct vm_area_struct *vma) >> +{ >> +#ifdef CONFIG_PADATA >> + struct padata_mt_job job = { > > [ ... ] > >> + mmap_assert_write_locked(vma->vm_mm); >> + if (vma_is_anonymous(vma)) { >> + lru_add_drain(); >> + mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma->vm_mm, >> + vma->vm_start, vma->vm_end); >> + update_hiwater_rss(vma->vm_mm); >> + mmu_notifier_invalidate_range_start(&range); >> + padata_do_multithreaded(&job); >> + mmu_notifier_invalidate_range_end(&range); >> + return; >> + } >> +#endif >> + zap_page_range_single(vma, vma->vm_start, vma->vm_end - vma->vm_start, >> + NULL); >> +} > > [Severity: Medium] > The same concern applies here. zap_vma_mt() only asserts the mmap write > lock with mmap_assert_write_locked() before clearing PTEs, either in the > padata worker threads through zap_vma_chunk() or in > zap_page_range_single(). > > It never calls vma_start_write(vma). > > For the anonymous case, can PTEs be cleared while a per-VMA locked fault > or UFFDIO_MOVE is still operating on the same VMA? Both the padata path > and the zap_page_range_single() path appear to be exposed. > _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel