From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FD99C369DC for ; Thu, 1 May 2025 09:42:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BF5606B0088; Thu, 1 May 2025 05:42:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BA5926B0089; Thu, 1 May 2025 05:42:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D0386B008A; Thu, 1 May 2025 05:42:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 758596B0088 for ; Thu, 1 May 2025 05:42:13 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id F0F651A027D for ; Thu, 1 May 2025 09:42:14 +0000 (UTC) X-FDA: 83393848188.26.F97D2E6 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf19.hostedemail.com (Postfix) with ESMTP id D60561A000B for ; Thu, 1 May 2025 09:42:11 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=mZ75SFKU; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rVH3u6hS; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf19.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1746092531; a=rsa-sha256; cv=pass; b=eOiWBDzUr5S0A7/LMXrQE321EW7CwbjtREtU+60oEd6mB5KZDw9W7MirTyOTslFUkOLMYm MN77ogGeOGvNK39FF+DObgo6o96EtecdraGYPXvskhzn700+XgtE1kfnvToNlbr+VqPuk1 A7Arb6Cg0EooOm98SjF5NexbSRG+YLw= ARC-Authentication-Results: i=2; imf19.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=mZ75SFKU; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rVH3u6hS; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf19.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746092531; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=rUNJHXG6w/rzhOec8qmQpGDiQpdOD0lqzVia/N8TQeM=; b=TxoO27x1EshmmSCaUO39a1IuUdyISxxxsE30CcLXJa6KofUHiNVw8bySYqv91GTeVEs+LH yWB1SMNKNCvt8lzOBS6bZGkY7MK6vTyXztiRWlT+PoEOBhCxqNk+gdYtau/IS6IrG+xGyp wdtU9V4yUFa57KG5kJx9hiuaFsMcpd8= Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5418fvVx020044; Thu, 1 May 2025 09:42:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2025-04-25; bh=rUNJHXG6w/rzhOec8q mQpGDiQpdOD0lqzVia/N8TQeM=; b=mZ75SFKU+QQoKBGoqvarYzXD9fr/nn+dIZ 1b+YiQB1fvXOdGIU94xa5OxScuJrrR7jDMHaNROb80YjJPhUB6zNv+vgvqTtBV1j gc4kn3mECT8IjnBbOpMvlnynIU/KXZNRwzX/BtQlQrcDFC8JBHndXrSLM4vcgSH7 W5hkD9aN6b1Ia0O8WrJI9rMw/59eXZK+gMARsNnQt1k2nTU8KZFJwu1Kd/csYmNC FidHUSM1k2/oXhxxBdBYL/torXycKGrQCMMIo8aBXZPAWwLagzftl46Cf0x6D6Xj 9HISti8Fq6YQPrYLKCS53iUBtdYQNk12wYNK4Z6+AN/LHNc/70vg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46b6ucjsc3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 01 May 2025 09:42:00 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5417H8R2013966; Thu, 1 May 2025 09:41:59 GMT Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazlp17010002.outbound.protection.outlook.com [40.93.1.2]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 468nxcctvn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 01 May 2025 09:41:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eC2kh1+zUEOD2q+yZ4dIsauiRVxEzRKWmwLsYx9UtTOGNMSopyOltmmazAoUMWs/K50pDSkb/up+C5GBJ+3aXSZZ1goy9UtbU6nZvPF2kShHrtWKk1VSPyPQ6hJ0A5mqSrCi0soyUqXC7Z4ETrCOku+dHsSa419KZpYGnHdEnw9LQesP/mjKtk53Q4rd7mUkwJz0buaXShGtpX+xbcoEA/p5ZRynXtFojnyDqZp/mcpoRAQa9ngPGnf6Pz338m6HI+JyDgugtG+/m56ielQMWGBicxnyMpiS+Y22hR/vt/JH8R/je7ZusHo7gdpghRfC2r+L+WncF1TL00hMaYFqLQ== 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=rUNJHXG6w/rzhOec8qmQpGDiQpdOD0lqzVia/N8TQeM=; b=oIFlzlkgPeZaxfVBucMXPWb1IDYYxZqPWP5JCPWmY3L2VRCQxFtwepc9R//IGJpo9hbFCXT1FXqVMtgZ3yacNuvoGdFJKFz1wf+tScGkFhHirTMVqSHHTVP/iQLdGBIBtJYip7ihHsm/cMLN7+2dmTewVlADzanWDiuR8rDdbgyKBHxSe5k0heINutKhMIfoiytXtxYAJJ+1/zzUFqUA5u3gFSzrsaCKFBXIJ18zU5e5+9Njbb9XEsNgGQ0HF8DyAQMGOr5Yib2tr9YNmHLhLiIN2H9A+jq63+kwxeRcaOAzKNIIAR9EaP0k8xIZfXhmHSEh9NG+WOa4jU+5bX8glw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rUNJHXG6w/rzhOec8qmQpGDiQpdOD0lqzVia/N8TQeM=; b=rVH3u6hSJA2yuhnH5kPEXVPyVfkiFEf8IkNrkGcJYj8ZtSDdqVEQciYRgh/f0hxHYQJtOX9LDiRRy2oCgpvirlQin9AJkyms8UdEtHa0P0DSfuEfisppRDiPfi0d8g3J+cI7zb0Gc5g+xyGgrwPoe4S3fp3TVAJUx8y60FfIMak= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by SJ0PR10MB4462.namprd10.prod.outlook.com (2603:10b6:a03:2d7::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.29; Thu, 1 May 2025 09:41:57 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.8699.022; Thu, 1 May 2025 09:41:56 +0000 Date: Thu, 1 May 2025 10:41:54 +0100 From: Lorenzo Stoakes To: Wei Yang Cc: akpm@linux-foundation.org, david@redhat.com, riel@surriel.com, vbabka@suse.cz, harry.yoo@oracle.com, jannh@google.com, baohua@kernel.org, linux-mm@kvack.org Subject: Re: [RFC Patch 2/5] anon_vma: add skeleton code for userland testing of anon_vma logic Message-ID: References: <20250429090639.784-1-richard.weiyang@gmail.com> <20250429090639.784-3-richard.weiyang@gmail.com> <20250501013127.rzaos7co7b63so4r@master> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250501013127.rzaos7co7b63so4r@master> X-ClientProxiedBy: LO2P123CA0098.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:139::13) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ0PR10MB4462:EE_ X-MS-Office365-Filtering-Correlation-Id: 29575ed2-8fc2-410d-f5b0-08dd889469cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?14pniAc8Ov+qtXlyFscf8MKOGVhZ63CVyGS+7JYD/ITO/FH48FL5YkGXYnqc?= =?us-ascii?Q?JSIP0ptV825qunLvXXXWHz+S3KeNGfjzRJR8zVJXn8JpjqywkJvaJgC1xTfr?= =?us-ascii?Q?VBj9ZoRAnwiuv0JZYbzbdh0fVQomi7b1i12U8A5SsVTBLEHHhGnDvQcfeJwT?= =?us-ascii?Q?cVzkvXGhrwuaMEVti96umB/FoznmlgARYMxn9LDPjzRz0hhvNfvu7xSKQnHB?= =?us-ascii?Q?ZZybXBeFedCfsN4YntQsJUMtw3betAcKksdn9h5/H79QnQZcCuYfuKaAzIv8?= =?us-ascii?Q?ax0tIJbTOwNpGR4AG9ay/dRLAx1SdMxVb6zDeG6gPYEjnoD6I0jhjn3ZIHwV?= =?us-ascii?Q?+YtU6HUXUB6DOnw3V8T47+RNH953d5GoVC6lE6ApnkhhTtIXFa+ZyvfByAZi?= =?us-ascii?Q?ysuvnmouKhrc1ZrvWgFaynWSwqfl7lxk1u5IX32bDedUgNBetUy0J/J+JlXa?= =?us-ascii?Q?MIoQnV8NNbbYeB9E23oQfOlNIFCgUjclu21ZzKk7CGy8T5ntxTeARIsvC1k6?= =?us-ascii?Q?8RxtTZ8SBFUPezswVNQPEFDKnU/krbrSkjkc2uyIw/7aBW9bObq5Uj9xi2QJ?= =?us-ascii?Q?+Px4Db8XyBH4YFBpfHWY/5Ve1PEWDnIx2xfpq4nRA2tuE/39eQiiAdRwWva/?= =?us-ascii?Q?Wuh6dNF6v1/rLrPiC5MPmIjVBXb8e7XNUmKmIZKIR6mSwBLliVdm40pKxHGW?= =?us-ascii?Q?y9ZdilZgxm20JC+TZsTtZwK5TC5mhBVe0AfOFkEyfyrVBSh6hfX9yXbjZgWP?= =?us-ascii?Q?WHVfpFXxe7hsvpoGfJU2yIwzpeFcuske8ucoGgZDta7h83Oy0KU/lHiJNw0q?= =?us-ascii?Q?I28znXz/BiJfFGUjwkP94kpjgbfzZSpxb6H1551sqdAB52Tw9BqklRSghmAS?= =?us-ascii?Q?zl9a0DQRX8gINxnX8HxtuKmHabLM2V22Woi5cRt5I5QVrlJvB1GNbvlA86h7?= =?us-ascii?Q?thnJM8vBvymILd4gUVACC2j9pdUmdbtS7+6t3k8bAaak+mbnHPjgTE3EE/Pf?= =?us-ascii?Q?nnxZ2uJcEVs8p1dvYOv6EjzvinsT+Iv9F4/EBLmYrxLxDd1jOXs7RMs1D+s6?= =?us-ascii?Q?k3Rt7pkUskdzSWQzAlDNvFh/0iHpYIlj/jQ4B5WH1/Lndk9f37s/xb4ght5G?= =?us-ascii?Q?a2XCthrg2mR26ZT+eHt3mBxHMbKaXTUiSckc1j6CtgvWpbQ/8gW/3Rjj3D80?= =?us-ascii?Q?hBQXXTuxyDxUaiwYtdWPH2+VsgTpPAs49kFiUHCdN4CyO7gxfnXRJzANgPdz?= =?us-ascii?Q?txPgrKisRpTHTvmrwR00837FeXPgcTSjAikvPKM4Wt5TVq2NmPFMVOP0wpWW?= =?us-ascii?Q?QnwhccE37kPkfGlUO9gAKhmeITL/M3yYf8+EWMdW0L6b2ohSavUO2KgB2Res?= =?us-ascii?Q?AA4ho66Y5BHTgxF6cHbuY71MmgJLwkJRWJYRVZzcEJ1E+HLSMu0I8Hrk6tE9?= =?us-ascii?Q?R3+wIDfpfXk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ijk8AHfTtBzqpYdCrzPK3K8M79uUH/0m8GIsJ/uIUFcfpAJHcP3FAgeSXZ6Q?= =?us-ascii?Q?LY2bgRnflvWQ86o1dXyEKbgoSxA8bG5jFdckzDSe8GsfLJ2uVI3s3DZN2tKA?= =?us-ascii?Q?jIXM9Gnrz2eTXg4OWeyIEt5xPLA2fsP/9tLdqCmqPiT7v4CdrV7ZeIA3sp6B?= =?us-ascii?Q?tLvOpWyYzFZD0MhZflHSmG3il2MH3GUpvwBM9W7yLgisM5kbgWVSFMJRQrRU?= =?us-ascii?Q?3GVC23aO+UUOogAnaPUWKsKHKZOncKO4Y8Rv2iF9+fYj0amxqnc+7oSdVBDG?= =?us-ascii?Q?Hi7hfoC1xOQgYOBl4nVAqerldveWZe6KjjVzFvMUqUklD+n1j+KN/SpM2605?= =?us-ascii?Q?91+NamKiG//uffOZNkmfg8qSsbOrX3y6FLSKBTPk9VHfECS7/yB2LzK5BFr5?= =?us-ascii?Q?NMXyBnpNRz5RIQ+v8ylaYWbAYz78V7mQNA9TDURk4vcxjc9VRwh+ZMLleVua?= =?us-ascii?Q?bVF4xQDgZfQrajyx4OMhTqVl/cARcy0tubmGZP7SRTyAXZvHythG/njEe0Rf?= =?us-ascii?Q?hkkbG4eBO4xVhA1562BNbrFq2iQlHZIQvkPnuYAJsN7MvctpeNRIZfcG4tY5?= =?us-ascii?Q?lVeG/hyInSmIjz48qVC9lEF0S+PWew+3768i+2CYSioI0D7tVxGkGWHLt+ZM?= =?us-ascii?Q?KR1uW5zhlUaCpRoauUgzUhPOH3Hgdx7YFlm9m4ew709KUjjccgxy9ulZ6QnO?= =?us-ascii?Q?UxJmB+z4YwBuqv/AXhj67aSGFRbN4mKtGrmEDXzam1oaVUX8t32/cUg7c9TB?= =?us-ascii?Q?Tw5iEA9fkAVYAbBWpudwrTjFYKccg1wmQ5GMbRZUeKYzmfYWNU7pJ/Xy8lQx?= =?us-ascii?Q?/2X87YiDpKQ59S9SZIq6xLxxRGkTOB6xdiQkTz2qkjhcOsO8uqEt5cJLTUeW?= =?us-ascii?Q?39uL/wEhoD1A34VJMmMUbRcVdo9Fj3IpwRzIwaPYDrapOsddFHF7xmdbGrEQ?= =?us-ascii?Q?VRYpHS5NNZE0G+l7bItrVuJ3LL0TrF559gh1wa/CS/WBlbQWRgBRclIVllbK?= =?us-ascii?Q?niYxfFGTxYHWWkoevVWqfrGjg3vAWnvboAht6tzOM7CxhbkpLRFlFqroH4c9?= =?us-ascii?Q?ksYXtr/b8Hp6UaoOylPhR0UUiEQWr6JWaJa7WuXsCdJN+I9OuG7ORtGbUwey?= =?us-ascii?Q?quEVl7VX5EH1TrjU0SojtbflxGQYIqM6JU8upG5JdgdptF+a7Tlf7XlrLKsS?= =?us-ascii?Q?QnphV6lq+3e39jSsSyqV0agM/BQhhxKNFLnRu0mlP2ty/dHn0dTumG/tjenE?= =?us-ascii?Q?Y387eI94v8YvGu8+5EeOhqk1Ery7CgdBpe1C10Oph1jtJFmZnWH/RJfDflvZ?= =?us-ascii?Q?ozFCKFGLWiM+qMVJFsphS3TdqWCMT028qdsoDg3uirctyQx/XcBN+NZmHhp4?= =?us-ascii?Q?2dIfP19DHYWMcU/i5NCIMso2SO1Q339dB7C+vmihjddziLk9tMPv881a0XT0?= =?us-ascii?Q?sIn3HBaa9qFgcNEOwIO0xO+9FwoRjTvhd0WXufBVKhqO4PmxXZON9GlIEeN4?= =?us-ascii?Q?YJ+RrCf33XJiJUfF9KJNCPFbn8LrqbLglfZoOHb3Jn02UaSHYr0CD2qMTDYL?= =?us-ascii?Q?Spfyjh4F/C0cNMmXFp3XdW1Edhl+tHISUKBQDWnniyuZ9b7G9lNg1YKK5xDu?= =?us-ascii?Q?ow=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: n1K6wdsPOb7yDyQQtJVqvdZQrwbvLpL5Mo//aoY4eXVFVk83PKXjP9qe5XEWoohzgLaie90z0HTPYYvMRD/0LceljNNbDDecZr5cI9SuVD8dYaTkt9PPjJvgsLNrjpmaXp2ShrIvVoygz6WQWBTmuoMtPt2wIKnPFOKSZBTV9P455vTcOf8QUucpKtqUhAnu+KLeXtWXD8vcVd7Ntqa/8AY8q/rqqgdT19Ll0ob2vJH7CYJVfLemDCktdIhSASzoX3tcDBsHEy5pKrabkOY31HiK48Ksbvs8rGVeMRnqqWYgDkuKDFyaXQbACsUR2Dyi5qZOqaFbvpYnLyHMsereIGOJZl133GRVTRuAkGbRlq6kgG/u8iiOCscb/gN7B15/q6tP6RtXQ5pSzADktDb6qqGX2lebAMguYgtQq64xXWX2lb80jal02NG0EiqqOtGr+YMBNlj6UL+09hrgWDiw0Ci3LnQKGeVuCWbjRtmKyd8Yzd/AAvEWvlb2uLZ7m0KrY9B/ERI6QIIfQJ48/t52s/CuJB/JIdItuAUiW0/xJW4V110V6eJnTZU//eFdboboHomkS54k2IOKuPCOp8CjQMELmwo8uWTQpcWFykMixqY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29575ed2-8fc2-410d-f5b0-08dd889469cc X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2025 09:41:56.8971 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bCi5ydYgPITn+Aef//cols22C4DTXLuTHp8HHJ/Wi1dY1aO5ehzFZvmxoDNgrpGjnQIds/mFAxf47qF2eSibO7si/g13CII7Oo4n85mk3ro= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4462 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-01_03,2025-04-24_02,2025-02-21_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2504070000 definitions=main-2505010073 X-Authority-Analysis: v=2.4 cv=ZsHtK87G c=1 sm=1 tr=0 ts=681341e8 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10 a=dt9VzEwgFbYA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=VYqv45UWey0vGj8vYd0A:9 a=CjuIK1q_8ugA:10 X-Proofpoint-ORIG-GUID: byZPV1cgBCBOjlqTIuf-Hgpk6crn1kmJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTAxMDA3MyBTYWx0ZWRfX9lXKdAPy1q3O TEgDjdb6n8TMf5finvxhbEVZ9IZYbOOw1540wsBT9FBfdf4YOHvxaLxz9kfQUJZ+8nFeoH/4Cfb M2713PNHpICLnJP2nYbSYahFdFjjLdjSojW5mhgOslkE2PM9yV5zMjUm7MRZRNfV3oTQAHspuiS +yXNOXhKfZPJ+/IjDbC6bQmjWY1SMks7T+Jy8YM4RgDLZmvjoPE4OdFtR752+9fdisfiE/TGmC7 xLLC8mUR5nUY8kYCU3VAB6ip73AWpqEDO3DP2t7yuCXrU3jMcv8qu1w6fSCDsLGgR/Kymo4/cbA Ls5ty+SWdoWgE6i482tsH+/fWAqAoSV4e52fytklEafU58AXc3gepr7BRTv1pEaMKRE4+xWGywt huNpmCexbjEG4Y3xNVygcTWKXC1SuXavNG3kkiped6q0inugg1p5w2QE0G93MDlfJ9CXFTtq X-Proofpoint-GUID: byZPV1cgBCBOjlqTIuf-Hgpk6crn1kmJ X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: D60561A000B X-Stat-Signature: 46eds76y33r5pbsg8esjruaanjn4uihs X-Rspam-User: X-HE-Tag: 1746092531-409862 X-HE-Meta: U2FsdGVkX18M8ensG4B+OkAWC65VGr2Bi8merg7JEBPOoiiu63JQhjxk3p86YW4S8waOZJbf4Sjlf1skYiSO+gb0k/qhT9tyEadLK4q+aYkZPu8K64oSzmiUoSxQDoR5L6qWSYgnXQQsAdYWpcA0k6IT6SJveDgG6+mJn066qt1fn+7b+MvxKtPl/2m+H7sL3r9uoC7q1MseJ+yM8KJOMifI6Q1vUhLfZ4pghauaLLtX+xcBpa6bnEkjKhKsv7e2HnKG5CYJRnmX4FL0WOVuwJkhgQCYa/p6NSz8XDc+EhWWZBeDcn1jywErLrmcEie+WCf5N+YfMDFTXwOTKvEt6ZuPSTRvZm1ieNKzM71wvav1bVXXSBxAIUFKfmSrB9ssLUNujybr6C2qLg1vtCIQK6koIf2XFV6o2+ss2EYTkplC65Kgf1ermUxegw8L9q+sXbd0ZNZjPw2vWnNfLYjSOY+CbuakjDt5Ey97gaTs7GvF7c24vmbUh3qzEooYojGcm+XFJggMM9V+s+jxA6uMzoyY4qefTEsQERSYUYuPX3kb2yzXcFi6JlLYKZe+AkGCI1Wq+qgT7hDzSIWY7GIp8W8DbDZljpngSoH2GtIxBVvZifCfC5TafwiLxxGF1P5584b0bvJSDI1fpztvz4XPZbKN+lLDA3jzGCIY4XcYiXAp5LzwT82SfzUPFs1ZFJk+1yzhYAg2DNKN69hNlxCKBz2E+KvEkcs0xW8pUMkGztLHxNOTkW2pKKTqmxwYJ50RGOtSo0evUwQUFZg+t7iP2DEHlqbj6NbMso6VY3ZEle84W9EKjMSUCAKdIaNmMnUBdBrNeIlNYVBjEvf1pytJ3MPwZllT8sxbMx2O08+38LnzYjEnXhBDlXvHAO6PZ80N2vDapn3LUuSwznmaqoWb2iLcfVLTsX7YsuyemFboqXlLhzr0B/8xC3alIWA7OkN532X9Lb/4q4Ao+cxwkfX cA1+BcKT 38GRkwX90Xwz5LPCCkSlxStOWzpzeXVKedI0nUTz04zpaFDUPLqtZAHLtyMlhh8pmaBA0C1+SHR/pByv+u9G6tBsfzD2z7R2fnNrd9nfrcJMHgjYw69uQ6PMApzPyn3qjyAOFx9mbMwfa7wCs1DLzqu55kCjUZ+mDjs7q X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, May 01, 2025 at 01:31:27AM +0000, Wei Yang wrote: > On Tue, Apr 29, 2025 at 09:06:36AM +0000, Wei Yang wrote: > [...] > >+ > >+static bool test_fork_grand_child(void) > >+{ > >+ struct vm_area_struct *root_vma, *grand_vma, *vma1, *vma2; > >+ struct anon_vma_chain *avc; > >+ struct anon_vma *root_anon_vma; > >+ DECLARE_BITMAP(expected, 10); > >+ DECLARE_BITMAP(found, 10); > >+ > >+ bitmap_zero(expected, 10); > >+ bitmap_zero(found, 10); > >+ > >+ /* > >+ * root_anon_vma root_vma > >+ * +-----------+ +-----------+ > >+ * | | ---> | | > >+ * +-----------+ +-----------+ > >+ */ > >+ > >+ root_vma = alloc_vma(0x3000, 0x5000, 3); > >+ /* First fault on parent anonymous vma. */ > >+ __anon_vma_prepare(root_vma); > >+ root_anon_vma = root_vma->anon_vma; > >+ ASSERT_NE(NULL, root_anon_vma); > >+ bitmap_set(expected, root_vma->index, 1); > >+ > >+ /* First fork */ > >+ /* > >+ * root_anon_vma root_vma > >+ * +-----------+ +-----------+ > >+ * | | ---> | | > >+ * +-----------+ +-----------+ > >+ * \ > >+ * \ vma1 > >+ * \ +-----------+ > >+ * > | | > >+ * +-----------+ > >+ */ > >+ vma1 = alloc_vma(0x3000, 0x5000, 3); > >+ anon_vma_fork(vma1, root_vma); > >+ ASSERT_NE(NULL, vma1->anon_vma); > >+ bitmap_set(expected, vma1->index, 1); > >+ /* Parent/Root is root_vma->anon_vma */ > >+ ASSERT_EQ(vma1->anon_vma->parent, root_vma->anon_vma); > >+ ASSERT_EQ(vma1->anon_vma->root, root_vma->anon_vma); > >+ > >+ /* Second fork */ > >+ /* > >+ * root_anon_vma root_vma > >+ * +-----------+ +-----------+ > >+ * | | ---> | | > >+ * +-----------+ +-----------+ > >+ * \ > >+ * \------------------+ > >+ * \ vma1 \ vma2 > >+ * \ +-----------+ \ +-----------+ > >+ * > | | > | | > >+ * +-----------+ +-----------+ > >+ */ > >+ vma2 = alloc_vma(0x3000, 0x5000, 3); > >+ anon_vma_fork(vma2, root_vma); > >+ ASSERT_NE(NULL, vma2->anon_vma); > >+ bitmap_set(expected, vma2->index, 1); > >+ /* Parent/Root is root_vma->anon_vma */ > >+ ASSERT_EQ(vma2->anon_vma->parent, root_vma->anon_vma); > >+ ASSERT_EQ(vma2->anon_vma->root, root_vma->anon_vma); > >+ dump_anon_vma_interval_tree(root_vma->anon_vma); > >+ > >+ /* Fork grand child from second child */ > >+ /* > >+ * root_anon_vma root_vma > >+ * +-----------+ +-----------+ > >+ * | | ---> | | > >+ * +-----------+ +-----------+ > >+ * \ > >+ * \------------------+ > >+ * |\ vma1 \ vma2 > >+ * | \ +-----------+ \ +-----------+ > >+ * | > | | > | | > >+ * | +-----------+ +-----------+ > >+ * \ > >+ * \ grand_vma > >+ * \ +-----------+ > >+ * > | | > >+ * +-----------+ > >+ */ > >+ grand_vma = alloc_vma(0x3000, 0x5000, 3); > >+ anon_vma_fork(grand_vma, vma2); > >+ ASSERT_NE(NULL, grand_vma->anon_vma); > >+ bitmap_set(expected, grand_vma->index, 1); > >+ /* Root is root_vma->anon_vma */ > >+ ASSERT_EQ(grand_vma->anon_vma->root, root_vma->anon_vma); > >+ /* Parent is vma2->anon_vma */ > >+ ASSERT_EQ(grand_vma->anon_vma->parent, vma2->anon_vma); > > Hi, Lorenzo > > Here is the case I am talking about in another thread[1]. > > The naming is a little different from that. > > * root_vma is VMA A > * vma2 is VMA B > * grand_vma is VMA C > > If you add following debug code here. > > ``` > printf("root num_children %d\n", root_vma->anon_vma->num_children); > printf("vma2 num_children %d\n", vma2->anon_vma->num_children); > printf("grand_vma num_children %d\n", grand_vma->anon_vma->num_children); > ``` > > You would see vma2 num_children is 1, but it has a child. > > If I missed something, feel free to correct me. > > [1]: https://lkml.kernel.org/r/20250501011845.ktbfgymor4oz5sok@master > See the thread over there. This explanation isn't quite right, and the diagram is wrong, but indeed anon_vma reuse is a thing that needs addressing. Having looked at this more I'm not a huge fan of these tests, you're essentially open-coding fork over and over again, any change in overlying fork logic will break. The VMA and maple tree, etc. unit tests work much better as the whole thing essentially can be separated out, but in this case you really can't. This is obviously in addition to the aforementioned issues with causing separation in an area where I want to try to unify. So I definitely think that, again, you'd be better off looking at tests as suggested by David, but moreover I think looking at bugs etc. is more helpful. This report was in effect reporting a bug before it happened so all good for this kind of thing :>) and that is _always_ welcome. But do try to be more direct and to the point if you can be. Thanks! > >+ > >+ /* Expect to find only vmas from second fork */ > >+ anon_vma_interval_tree_foreach(avc, &vma2->anon_vma->rb_root, 3, 4) { > >+ ASSERT_TRUE(avc->vma == vma2 || avc->vma == grand_vma); > >+ } > >+ > >+ anon_vma_interval_tree_foreach(avc, &root_vma->anon_vma->rb_root, 3, 4) { > >+ bitmap_set(found, avc->vma->index, 1); > >+ } > >+ /* Expect to find all vma including child and grand child. */ > >+ ASSERT_TRUE(bitmap_equal(expected, found, 10)); > >+ > >+ /* Root process exit or unmap root_vma. */ > >+ /* > >+ * root_anon_vma > >+ * +-----------+ > >+ * | | > >+ * +-----------+ > >+ * \ > >+ * \------------------+ > >+ * |\ vma1 \ vma2 > >+ * | \ +-----------+ \ +-----------+ > >+ * | > | | > | | > >+ * | +-----------+ +-----------+ > >+ * \ > >+ * \ grand_vma > >+ * \ +-----------+ > >+ * > | | > >+ * +-----------+ > >+ */ > >+ bitmap_clear(expected, root_vma->index, 1); > >+ unlink_anon_vmas(root_vma); > >+ ASSERT_EQ(0, root_anon_vma->num_active_vmas); > >+ > >+ bitmap_zero(found, 10); > >+ anon_vma_interval_tree_foreach(avc, &root_anon_vma->rb_root, 3, 4) { > >+ bitmap_set(found, avc->vma->index, 1); > >+ } > >+ /* Expect to find all vmas even root_vma released. */ > >+ ASSERT_TRUE(bitmap_equal(expected, found, 10)); > >+ > >+ cleanup(); > >+ > >+ ASSERT_EQ(0, nr_allocated); > >+ return true; > >+} > >+ > > > -- > Wei Yang > Help you, Help me >