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 2C373802A5 for ; Wed, 21 Oct 2026 16:47:49 +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 69LGkZSI022781; Wed, 21 Oct 2026 19:46:35 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69LGkZSI022781 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="yzSlvQap" Received: from mail-yx1-f71.google.com (mail-yx1-f71.google.com [74.125.224.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69LGkXW0022777 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 21 Oct 2026 19:46:34 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69LGkXW0022777 Received: by mail-yx1-f71.google.com with SMTP id 956f58d0204a3-6790b1d3bc9so1985672d50.0 for ; Wed, 21 Oct 2026 09:46:34 -0700 (PDT) X-Gm-Message-State: AFq9FYJIvgGx4Lz/o324ZEUBL1IJwrEfKQZzZSBgeFF2s4mLEf291LN9 pXiYCVsVnrt4D7ta7fDR/8SjUU0g4qI/uXclS0+jApd9ZE3/iyUrLWLrRRKpV6ttYw750A58XFJ 9yMJ+1oSlqtoqxb06Ek8QwEu14UWaNyV+EffZxWSgqW63CYdU4zvA2A== X-Gm-Gg: AYBFou0gLndXNWOsOmRJlsrDaOgu4xrBMCxg3zbOXdmKMssEAxAWr5g4hSoV1x8iTyQ K3sz4x/PW78x+adOscea0m3MGOv+jZ5dNUjeX7OjC+TJh/TVKC4QZvtq/iweA7gdgpf1hrpWS1P PEqQnqrfeEbW+bjj+Uwc2kShAXWP2g/polMp6h04He/1EANKlP6buYH+xeJOiX+VMZfAjDDb9BE 50OGkNDlISWZY6IygNtEqA3+PnPa+aPvekcoogYbvHHkKFBnnoCyiVM3ZiitCE1a4tLx1rf1s4f p15GKHmophh9bxFVoMaY3f8wJ+8F0BlDK+dJik8o85ut8Njys9Bbu0jAs6mJVtrgLhO78bLC68/ jrKDwRE++OLUmxGFYGfQhoztKDA1gWH95TjGVZPPrbgx0ya1I/H/p10pGp+Wlv3cG2uE//a0Qmy nniUbPLCPnUkOTYiX+puNu X-Received: by 2002:a05:690e:4510:10b0:677:c78b:f5c1 with SMTP id 956f58d0204a3-67a0e04078emr1070267d50.4.1792601192900; Wed, 21 Oct 2026 09:46:32 -0700 (PDT) X-Received: by 2002:a05:690e:4510:10b0:677:c78b:f5c1 with SMTP id 956f58d0204a3-67a0e04078emr1070247d50.4.1792601192223; Wed, 21 Oct 2026 09:46:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1792601192; cv=pass; d=google.com; s=arc-20260327; b=RZSayvxNUjg1VLKmmz1HPI4cfkBbB2wvfoX3SVjBq4FCb1idSIN8O5Xqpx6Vjgv5t+ meTi6ARoA+E54sOt9nU6GyTOkcUzr4IuU6l+BfTFAlTzm5ZyKYa3hMFY0RZQ4XIGfP0v sddomT1UQIT6+dcLo1ht6hkjlZbxrwKv2miWWaPAmSDPMReLL73gq6scpB5qOMStoYCt NxpJ6xipby4uNTuRS4B4KEwb19cXrIvwVhjEXKephcza/23lAjGeykdpAaKSv3FLJiMB cAWnqecuOjbOoCOzrF6SvraJFKzcAD6BpaMKQewh0dUA2OxoAGoS6xjv068aKu1QwxiA hMdA== 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=WCLCffYaylDLTtwpVC2o6ozULLmDiUtKffevduN9Ga8=; fh=7oGFRUVKGwX6qCUdt4ITQVXrF8NSIZSulxTK7VS6Rn0=; b=h5PWzPc8HtO68ZbiuqRePUL0NDmYfZqrpCf398HQsOFxiJ9GHNUVr8Zwi8ACY7d56P 5j2aIFuowxr8Ov++bn2GOgYcbQR3Cfrhiu8k9LxY4QBMe3sZ3u+v/azDI//ZQvgPYMWg 1Hpilp4dAGKYwZQESlPWK1PsCjiXDUCnsgaTSXPTnp3XzI5+n9EURf35sBZ0ckbih5On zY2m3treqxpBgfHrnHqrR3mLXrjhgGG8TW5EUFXNA0fcgf+RunaZHwXy3Y/PTSfnyYy/ 1cX7snqF8lQ0xPkkjBclvOPOAVh3sD08V8NO3mUCZ38kgSuncxP3f1WVVKnVaT5cL+ok NsUg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=yzSlvQap; 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:c20f::7 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by mx.google.com with ESMTPS id 00721157ae682-8b13031e3d8si14492477b3.161.2026.10.21.09.46.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Oct 2026 09:46:27 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=yzSlvQap; 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:c20f::7 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=cs5KWCnplL3jsWIsK3OuxSgyylkGE3LOLwzAkroSgIO0LVnEPHFg1lbvnPUkKvXj+/2yf4YnhmxJ1sZuvvLBWZdLUstQcZByhkjSdhFVV8sqMusVS66LiHYiYmS40dTr48400x0g2VkiWqwk0MI1/WdI3ThQKzmz+rtMv8Z5Sc5H46a6bfzFeWqLVjcaA2msG+jCAVOtaKitCebGRvhEnhnL8cG3Cq+mFr3s9RXoZF7rHF8D7mGa4O2Dipbrgnx+Oh1yFn6aMkGvivAH57+m0Qo4GTD0xEVNcLZg11RdhXtjEddREixLHphcbigBcl5qCom+lP+rkNT0hiIjgc8uMA== 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=WCLCffYaylDLTtwpVC2o6ozULLmDiUtKffevduN9Ga8=; b=N/QyQ2s5SXSFlaG18lsPEivhYh9tcwukCsHi5QP0NiuqXfg2oeBX9CrUcPOvmwOMEjbRJyyvIO/7LOpUK+rQEWwcveLdG5xXUG8grjnWg2GClCXSRo0tSTgD6eRezTGKwk+cuCN+JUz91SS8QAbtq3THojKpmRe7rJw3nFXestLklWXdubP2c3gOWjwxQBzux3k0R+KztAqgORPdIDz9yApaA8PoUgnxIizitaYA8xudgiWCCX0W8nU9nmnBYH+L5bqRRaMY7zY/br0eFDq+BJ5qvEwbLETOPhiEMWTEOoa7Hs1ptSFWd/0fMMEED1/XAmLRE01ssbeU3SFtzBBppg== 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=WCLCffYaylDLTtwpVC2o6ozULLmDiUtKffevduN9Ga8=; b=yzSlvQapbB7x1ysK6/5JiqaZ0GZBmjAspt3fMVA312Jfvs3BRDdJFFVs/y/I980VkJOX/J2s8WVmK08b23O+p1xQqgZIsYjz9CdV7yiKd6dP4piyKc4lW+9AVV1uTnIeqtwceJ00W/IDMYlzE9UwvGsDHge0SMpsOrkG+Li3FwC7iOVhyr5shPN6FBGBYP1tYm27IXd3RrSDGqvdkwrcpRDakzavD40ro1ye0xBDT9rRD7qLBwQqBSVXyVYcp/niSxEumgy5VBpkV1VvBMBpHASGxnTe7/g72hBmmx5AVvSfBJ5vYPbb08CNOiOu/JQzxBCmgsjuzS6paLrF0QOHJA== 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:46:25 +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:46:25 +0000 Message-ID: Date: Wed, 21 Oct 2026 18:46:23 +0200 User-Agent: Mozilla Thunderbird To: Pavel Tikhomirov , Vasileios Almpanis , 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-7-36f1120f9b57@virtuozzo.com> <010701a13b71d002-8786f746-5d27-43bf-bc0b-e4c019bd0aa4-000000@eu-central-1.amazonses.com> Content-Language: en-US, ru, sr From: Konstantin Khorenko In-Reply-To: <010701a13b71d002-8786f746-5d27-43bf-bc0b-e4c019bd0aa4-000000@eu-central-1.amazonses.com> X-ClientProxiedBy: AS4P190CA0023.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d0::9) 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: 283deec0-c4c9-4787-0b75-08df2f92d897 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|366016|23010399003|5023799004|56012099006|4143699003|261009223027099003|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Pn20fpJ3DDLKbRWnQcBsYvb1UmpI7vq6E1MY3fQVBABGR8ihlr8sPdWZvoqweAIKSdYVAOxIzeLlGewSYKIfqIETIOJjGq1lB6MlyAPBcpVLMccpyd5lYBRkNO3EiVIuwvQeRphvGHozTvp7TxM6Z1NeId7YbKE03uMltVcuVOVjjygl0GwXMJNMhmYDABm5Sty403Ukt009YNyqfVCdo53h3rUWm5juVHOUcbOrilW6W0pIWQWMwIwlc8OgIGQyJv6zSiYhxvzIFYY+tD7Hr8GTRiQtfHolZmpY/s/FcodtDTjrS5VKx0gGx5i/bASGhjbBlt0O9CZ6Sqi4ZFs+qe5XCj5u3Hdhw/QskMAJvGOsLmkjkaoVdA1HYnnQTBN7XB/7g9AAYNkS5KBbelbWbCTQSgX1GqSv4GIgY4v5YAy4f6qjWywzgGkYdeReZCWpL7+ByTSOzwylViRn4YkWEq7xJIh4iOWwlLTgaVYi2f9yKHnmtKJ+91aUglOEjMKnR5A92q/iNIeDXZpV3OmXSmIi8D6pCJiq9Zlb5fHdIgdBbjzaAfoygLeouS1HV6+CsYzDbT4LZrZdwKOmWcKSjVf2xSIxRaCUu37oP0EIdsk= 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)(5023799004)(56012099006)(4143699003)(261009223027099003)(10067099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WXhaeFAzNG1XeXBGeE85VUx0M2NwbHg4ZkpINFQ3ZENzU29PUmQzK0RxUGRm?= =?utf-8?B?YTNMS0dSLzJjYW9PbzlRdnhjanZGc01IVEFNOTZGOHQrSS9ybUpqK0Z1SzBW?= =?utf-8?B?YUZEWlZQRzU0Q1NmdGYxdUJlelZQTnVHR1BRaUEyNHRtWFlwN29KYy9Na1Vj?= =?utf-8?B?V0ZtZGRJZnEyV3p5T2pMTzZjVlNwTXA2dXB1Q2l5L3A2N0ErbktrcGZsbG1Z?= =?utf-8?B?NUh2YWFVQ0VUdkZzT0NINTNHa082dlpQK1ZjS21kNkp0VFlpMHV0OHN2aEJY?= =?utf-8?B?aEtNWTRlYkFBcUQyUmd1SitWVHIrTjhLL0Zsc2NyYkNZbGpUWHBUcUJOQVR2?= =?utf-8?B?NFQra29zVmxyL3Bzay95MHJNQy84ZnpJMThyem5pNGNKY1cyd0pFbGVnQURn?= =?utf-8?B?eXJuN1hLR2xjaUtBa1NMelhqcHExV1JVUjN5ejdDQmY4SEtQa3QydWNlT3BE?= =?utf-8?B?cHcwRUMzQk1zc2tlcXhiUTFQZVJHdVVPdFh2bEc0dTByaVdWaE5WOGQ1Z3FG?= =?utf-8?B?QXlGdllUTHZUY3llUi9EZjNLalJLTmRiMDNDS25KeXl3cUNKNkx0YVFmbnlT?= =?utf-8?B?cnB1cGh0TmNvRlFZaFVPRWVtd01RLytwckc5VVBFU1RvWkJnYmR5SWthdTdV?= =?utf-8?B?aC8vSG1WMkE5K0xXdiswZWtYY05HRkJUWlY1UzlQT1pha1ZIbmlmT0JmZXpU?= =?utf-8?B?T1NZTzNTdVAwbkJuc3FsVnhNckF0YmhmdVV3T1dZMjJzN0VhVmVmMlF3WWk5?= =?utf-8?B?K3c3bEhpTjdkN2IzUFV4TUZjUkxtcXhrdGltRVlhL3UxOHNQQ2FSYmY3dzBM?= =?utf-8?B?YkVqeWdnMVNZSyt0alorNVIyQ1FOZWFPN0tUWTBpdERsVVFyV29CN1NpYjl5?= =?utf-8?B?bG81MW04RXJSMlEzb1U1VDVkTWNSN3ErZnZ6V3p4YmdVSjFHY1hNUFkzM2xN?= =?utf-8?B?V3Bzb0JDdHllYXhUWVlmdEhpM3Q4ZVYxV00yVDV2WUxTZy9Xd0p2ZVE0cVU3?= =?utf-8?B?UGFET21LcGl1MEVXWGFsbTVtRlF1SE1LUzR5VS9EVjlwYkl5ZXlnT0xFZ1I2?= =?utf-8?B?M2Zad1QvNUw5cGxtTU5vZWlGaVlmdGZqTHcvbEpZL0NGTnJEbi9mbjcyMFVF?= =?utf-8?B?MzRjMFpSY3hnelBaUGlaU0YwTXF4WVc4bDFZK2NCcHE3bGdKcWN4S0I3SGYz?= =?utf-8?B?em1UOURWRCtXS3A4aUoxaVFrRXIyV21xQmpzMm16UzlZbzZKa1pXUEdIR0dT?= =?utf-8?B?Zlo0K2g5U0I2ZHBJNXpwRlpOOFNkSmJSOFVEQjE5a1BzUEl3NUk4VGFaNmpl?= =?utf-8?B?a2F0dnFtTktUVVo1SExXaEFENmg0TkllcG4zVW5pUytSS2UxMVZnWDlkaVAz?= =?utf-8?B?WXllcExDSlZpUHlFRFFQaDVCYmFZdFgwSGw3Uk9JeGxlNHlRTWhsVldtU1Nw?= =?utf-8?B?b3VEOEwycEtCRkpIbkhZTmU1MjBkUVJKUXJIMDV6OExmRkxSU2JWckh1QmlI?= =?utf-8?B?U2dmalNIUXh1VWllUVlMNGJ4dVFHSHMrdGU0d00vR0JZZ2FGa1dqYW9PdDVL?= =?utf-8?B?VXFkZkhnVmlLcW1aTzVjTGhueUxyeWwwUHZmaTgrZU1rWHplLzJwQUJrN1VF?= =?utf-8?B?czdmUk1ZWmpvSlBwOXRtaUdzKzlUU3NZTUh6eEV2LzVWWVE0QkY3K3NQTkNu?= =?utf-8?B?bmdqdXVRSVN2Z1ZnY3ZTditRMWZiSWJGM1pONVk1eDRuSDBPL25SNTkrd0t2?= =?utf-8?B?cFVUQis3RVZzcVQ0dTlDc2JaU0lEQVdqVlJtcy9reVh3R3E0ZVRZd0xzZTRD?= =?utf-8?B?UUhUa0g4d21pM1pzUEh5UzZzaDkrWVlwOFhvN3YwcFhGYXgvdEJhZzBiMGEy?= =?utf-8?B?UWpFelBvcEdLRGg2OERrWFV0T3Z2K2FwcUtmek9GTURreW13elNlZUVEbjlG?= =?utf-8?B?WTNhRVZ1eTZoY0wzSyt5TlJSRS9sMk1HcnJMLzY0bEh1ZHVOVDBQUWNMQ1Vz?= =?utf-8?B?cWdBbDZ2aldiMGRjU3JhaVZ4VTNaZ0s4cS81ZEJTMDFzejlNNktQczVUMlpq?= =?utf-8?B?UjEydHhIdkFVNzA0SXVqM0xHaC9SeWxWMEgxNEVCajMyVkhaVDQzZ21uTGU3?= =?utf-8?B?Zmp1M3FnV3V5TGZwVTJUQ0UrT3RIQzNiSWFmMFA1dFNxR0ZBMStxL2U4czl3?= =?utf-8?B?MlVxVnhOcHFzYlFWOXMvcllJV0UwamVZNFBnRTJyNCtSandDeWt6OThXckFH?= =?utf-8?B?cExVRHVJSEdpeTgzSS9VZjJUS3p5TEV5VmtVc3dkakdKRUVHTjl5UTdaMnQ1?= =?utf-8?B?VEZoeXFKbGRTMnJJNFlhQVkwYmpGWGlDTDdoMXlOUEQ3MGc4a1ZGdz09?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 283deec0-c4c9-4787-0b75-08df2f92d897 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:46:25.7011 (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: m7MLEa5uXHL0no+K+hNvEm/SB8mO8Vks/+OgrMuscwO6zraobWLSmRcQ9DJDe/lX2W8G/UZE2tnJzPOzfCOUug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9604 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 7/8] exec: protect preserved memory against surviving shared-mm tasks 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 2 potential issue(s) to consider: > - [Low] fork: copy_mm()/copy_process() take page_table_lock twice per shared-mm clone > - [Low] exec: VM_EXEC_KEEP scan in reserve_preserved_mem() is stale by exec_mmap() > -- > > commit 3fae5b8a82902f91e53a5e8e729322cb7b034228 > Author: Andrey Drobyshev > > exec: protect preserved memory against surviving shared-mm tasks > > This patch makes an exec that accepts preserved memory fail with EBUSY > when a task outside the thread group still uses the mm and the mm has a > VM_EXEC_KEEP VMA. copy_mm() refuses and counts CLONE_VM, non-thread clones > while the mm is marked. exec_mmap() takes the preserve path only when the > mm was marked. > > 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 > > [ ... ] > >> +static int reserve_preserved_mem(struct linux_binprm *bprm) >> +{ >> + struct mm_struct *mm = current->mm; > > [ ... ] > >> + mmap_read_unlock(mm); >> + if (!preserve) >> + return 0; > > [Severity: Low] > Can the result of this scan be stale by the time exec_mmap() runs? Yes, a range another task marks after the scan is not preserved. I think that is acceptable: - A sibling thread is killed by de_thread() right after. Its madvise() races with the execve() in userspace either way; the scan is where the exec decides, and a mark that comes later counts as one made after the exec. - A CLONE_VM task keeps the old mm, marks included, so it loses nothing. Nothing is left half done either: without preserving_mem, exec_mmap() takes the normal path and the marked VMAs go away with the old mm, as on any exec. > > When no VM_EXEC_KEEP VMA is found here, nothing is reserved: > exec_keep_active and bprm->preserving_mem both stay unset. Sibling > threads have not yet been removed by de_thread(), and copy_mm() only > refuses clones while exec_keep_active is set. So a sibling thread or a > CLONE_VM task can still call madvise(MADV_DOEXEC) after mmap_read_unlock() > and set VM_EXEC_KEEP on a range. > >> @@ -1040,7 +1112,7 @@ static int exec_mmap(struct linux_binprm *bprm) >> up_write(&tsk->signal->exec_update_lock); >> return ret; >> } >> - if (unlikely(bprm->accepts_preserved_mem)) { >> + if (unlikely(bprm->preserving_mem)) { > > Here the preserve path (write lock plus vma_dup_some()) is now selected by > the early sample rather than by the VMAs present under the lock at copy > time. A VM_EXEC_KEEP VMA created after the scan in > reserve_preserved_mem() would not be copied, and the range would be lost > with the old mm without any error. > > Before this patch, accepts_preserved_mem alone selected the path, and > vma_dup_some() copied any VM_EXEC_KEEP VMA present under > mmap_write_lock. Should the decision be revalidated, or the mark taken > before the scan, so that a range marked during begin_new_exec() is not > silently dropped? > > [ ... ] > >> diff --git a/kernel/fork.c b/kernel/fork.c >> --- a/kernel/fork.c >> +++ b/kernel/fork.c > > [ ... ] > >> +/* Keep unpublished CLONE_VM tasks visible to preserving-exec admission. */ >> +static int exec_keep_clone_begin(struct mm_struct *mm) >> +{ >> + int ret = 0; >> + >> + spin_lock(&mm->page_table_lock); >> + if (mm->exec_keep_active) >> + ret = -EBUSY; >> + else >> + mm->exec_keep_clones++; >> + spin_unlock(&mm->page_table_lock); >> + return ret; >> +} >> + >> +static void exec_keep_clone_end(struct mm_struct *mm) >> +{ >> + spin_lock(&mm->page_table_lock); >> + if (!WARN_ON_ONCE(!mm->exec_keep_clones)) >> + mm->exec_keep_clones--; >> + spin_unlock(&mm->page_table_lock); >> +} > > [Severity: Low] > This isn't a correctness problem, but is the cost of this accounting > intended for every spawn? > > exec_keep_clone_begin() in copy_mm() and exec_keep_clone_end() in > copy_process() each take and release the parent's mm->page_table_lock. > This happens on every CLONE_VM clone that is not a thread (vfork(), > posix_spawn(), clone(CLONE_VM)), whether or not the mm has any > VM_EXEC_KEEP VMA and whether or not an exec is in progress. > > page_table_lock also protects page table operations, so a multithreaded > parent taking page faults can contend with it. > > Would an atomic counter, or skipping the accounting until the mm has ever > had MADV_DOEXEC applied, avoid the two lock round trips per spawn? Only CLONE_VM clones that are not threads pay them, vfork() and posix_spawn() among them, and two uncontended round trips are small next to the rest of such a clone. A flag set by the first MADV_DOEXEC would remove them; I would leave that for a follow-up if it ever shows in a profile. > > [ ... ] > _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel