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 B7074CD13CF for ; Mon, 2 Sep 2024 11:50:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 189998D00C1; Mon, 2 Sep 2024 07:50:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 09F9E8D0065; Mon, 2 Sep 2024 07:50:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBBE28D00C1; Mon, 2 Sep 2024 07:50:42 -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 B693B8D0065 for ; Mon, 2 Sep 2024 07:50:42 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1F704121CC2 for ; Mon, 2 Sep 2024 11:50:42 +0000 (UTC) X-FDA: 82519631124.02.7F7D64F Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by imf18.hostedemail.com (Postfix) with ESMTP id 5C0E81C0010 for ; Mon, 2 Sep 2024 11:50:37 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=CcpbR7s4; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf18.hostedemail.com: domain of yan.y.zhao@intel.com designates 192.198.163.13 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1725277761; a=rsa-sha256; cv=fail; b=xGfm/KxC5xOyL9lC5DCKFs9Jm6u69G8vB3OXlnWV4KYzL+vSTxrh2N5r8HZYs4ei3PQS6Z FeLhvDd5dcl/VqfGdVsGIcEgCtuUlfES91+jQX+II3gqY1Ep/sxdkDIMTCFMDHenhg7UgQ jPjUfTjZVJIKAMXNjdUrWVGx8N64xKU= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=CcpbR7s4; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf18.hostedemail.com: domain of yan.y.zhao@intel.com designates 192.198.163.13 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725277761; h=from:from:sender:reply-to: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=s13z4HloHNClW+VPgclbI8//IBkeKykLz8SU8/0QX6Y=; b=oN0eITDfEUykbcA2IJ/Cii0sB2cMc7RKreax8BI4AXH4cN/IEv0uBLGeRGZK4mecYbapK8 J8hZJEV6jraY0YPaLXr9ChqfLU5kiJMjPY6+yy2Dpj6SjlP62zWJ9saTVgK7KAs6ITfG7r LfXqkJXbvibw387aMXyOIK9fLpQAP9Q= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1725277838; x=1756813838; h=date:from:to:cc:subject:message-id:reply-to:references: in-reply-to:mime-version; bh=086+IORfVf2ntpyJzISaBde55lpZpdTty8XaVN1N8fM=; b=CcpbR7s4ri4cCQYDYgabo21xcyRb1BqEtcNeQPYa7x68v8sh69uE42IX V4RqPDftePttEA6JwR5j0fD1okx25VJUMyMj7YX7zlLl0FvdL7wZZogZM eWBQRaHymI9l9xHe0BImqvx+Z0UpiGGRr3QaCK0wmBLt0/68B3bMMNJBh Hp13FSuMP18HeazDTIpipDGt7jxnX1bk8Qbl/PykIy4szHzCE1FYBpgxl /OGESN+mtIioqhexUsaSN/uMfwk0nshR+b5Et+NhEMyhZzaDJrp4LhAKX xj+v/RxdU/p3UylRwqZI+hYeK+Kke0Sr0VM2dpySWFVMLHHMAa075LAPa A==; X-CSE-ConnectionGUID: HftbuxghTqyq0nNYsQ37IA== X-CSE-MsgGUID: u401L8GnRCa4VmNXvRSPgA== X-IronPort-AV: E=McAfee;i="6700,10204,11182"; a="26757481" X-IronPort-AV: E=Sophos;i="6.10,195,1719903600"; d="scan'208";a="26757481" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Sep 2024 04:46:53 -0700 X-CSE-ConnectionGUID: zpC54r2ZTGinIQGUHi1aNw== X-CSE-MsgGUID: etvoLuyUSbWNVRsmoyGpwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,195,1719903600"; d="scan'208";a="102041697" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 02 Sep 2024 04:45:31 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 2 Sep 2024 04:45:29 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Mon, 2 Sep 2024 04:45:29 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 2 Sep 2024 04:45:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pbhc817ba1/iVYlMsgxbx4dcQ4It4HrDSERJ1slskhlpSQipPgflNCGxxORZ6o9w/cLH3DQ47+nrz33HjB0IJD+jl2bHfXQIZrOv6nPacue2y6kXrNTTkRzUDGnvpmjlu3hZQsGIggg8fYxAQ2zjHUJPF5auPMTqsFcrzQ9jqY+/gWRDCMa2+IM1nQ1rbv9bIDpD51CZ6RBQXFi+6OL5qVi9LhbfES9/2QzROAOXcncIs8/JsEcmPfDD/pbQTrCGJKykWtLW209oWxGqTKGE0jI21PccQS1NArZ15AkpcIIIquMaJGEpwVXv/rd4OTablA4XqqAKg3K+4G4ljWQYoQ== 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=s13z4HloHNClW+VPgclbI8//IBkeKykLz8SU8/0QX6Y=; b=a1ad3bbMDfMibWAlBOWtrt1zp9ETcIyWmiKLEt8WUUBWzW9anIhWFLNYNlvWy8Zx8IS6eLikS2enPWmq0OY79LXf4XUNFKVb27qwiF21EQAmR9gvRT3esyBd1ykgk6cmS1x/gxD7a37eexUKKIOQ4FrSaianN0rnaidFCr+I2h5obyCX9G3QFbRpA7XVIwK+TAtuhAerN7P179wWS3JCcx0jd0BglQbotHhbuQ9PWHqHXcg/6fvZS1HNrX01Zy6CXXDrpMkRFqt3/Ky8ZvC+MZkbHx0OeUXgctBeKvKarqz4L7B2Q23G0NVP8jLz9YDjb2DMRV+7cWFPx+O2v8ZzXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) by DS0PR11MB7850.namprd11.prod.outlook.com (2603:10b6:8:fe::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.25; Mon, 2 Sep 2024 08:00:35 +0000 Received: from DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::e971:d8f4:66c4:12ca]) by DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::e971:d8f4:66c4:12ca%2]) with mapi id 15.20.7918.024; Mon, 2 Sep 2024 08:00:35 +0000 Date: Mon, 2 Sep 2024 15:58:38 +0800 From: Yan Zhao To: Peter Xu CC: , , Gavin Shan , Catalin Marinas , , Ingo Molnar , Andrew Morton , Paolo Bonzini , Dave Hansen , Thomas Gleixner , "Alistair Popple" , , , Sean Christopherson , Oscar Salvador , Jason Gunthorpe , Borislav Petkov , Zi Yan , Axel Rasmussen , David Hildenbrand , Will Deacon , Kefeng Wang , Alex Williamson Subject: Re: [PATCH v2 07/19] mm/fork: Accept huge pfnmap entries Message-ID: Reply-To: Yan Zhao References: <20240826204353.2228736-1-peterx@redhat.com> <20240826204353.2228736-8-peterx@redhat.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20240826204353.2228736-8-peterx@redhat.com> X-ClientProxiedBy: SI2PR02CA0052.apcprd02.prod.outlook.com (2603:1096:4:196::18) To DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR11MB5966:EE_|DS0PR11MB7850:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a7de561-92c8-4c91-50ab-08dccb255328 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?73lMykghlxJ6MFDlnPkUXqL173GQEL+ZroL7qikObxf3lxPuK0HF23zFNhzw?= =?us-ascii?Q?eGf3z5DvdLPJZXwSPi7er7M5o+n/9Sup4tTSE0LII88oXBOg80MN4n0o9+D2?= =?us-ascii?Q?K5LVPtWDJoYOxK8HcXTpZjlcUupJLucfg9atLWkdAF4parUQxQPNlUMGhoVc?= =?us-ascii?Q?ngmGEaIgSy5PsLrUsYI8cbJgGFuOnfIh5BcEf0nPp8qWd6IRwtXfu2+S4sJX?= =?us-ascii?Q?pRnK9RsrgZyR9x4MPnc48h0d7SOfq/4rAJWo7fdYxKmHnmZNgDDYAMEtgQxe?= =?us-ascii?Q?DqEDkX+cXnT6cJ0XtVbNTpECefAxS1F/zChIAh6pke8SXJMHUdQGbZOKsQCJ?= =?us-ascii?Q?IBCrHvQTBpWlX9rWa/au81/4Oj6pO0VLIUJCExsVsrsADxy9Ak8qC7YN3Mbh?= =?us-ascii?Q?fepNzselJVAPrjmiqpN2MQ9euEoR2QTRwBK2IckX10L/EhzAhu8ys+2HCRlO?= =?us-ascii?Q?5adR1JPz0o4q49g3tV2qdkEQ3g4TraUfBdo4Ak0RKLl2u+BNcurBv3Gjl9Uy?= =?us-ascii?Q?HJELGbZcwatXuFIC0cqGsEvJA1WeM38dECEzswqA+nChWomBU2Mrk9A4ckd1?= =?us-ascii?Q?E+v+CQkMEgZ/2rgIQr/PuDKtv7+0SPL+y2Vmk3fWx4PHEzxQXJafG90zrQM5?= =?us-ascii?Q?vMhGBkbdqofpNN/mMTXtwtCmTUbUgV5ohuQ3nu/OQDfaO5w2dzElGEtiiZKR?= =?us-ascii?Q?LP5IzYPe17LN76s3SypJ5ChlR85t5TB8Op/YpasgtdAIuFLL/xq9a1vOo+Wg?= =?us-ascii?Q?fY36xy+C0YZOMSMiY0mdZyjWo8TrFoMTbxvyUU4JHJsuHcJLK+eL4O5J3aAy?= =?us-ascii?Q?Nl4A4+4K1Du5OOhdPFRFnKg5FZXySNadzUpWy9hFlceQuuAYXX9UHFnCnkt/?= =?us-ascii?Q?rzkj+nlYQSA5KSfNKjWmm292D1dZ0nJUgbcX7OXK/psI2b9KZgcpEEcrs866?= =?us-ascii?Q?cWyb42Lc+eeR5LHMV6ezEUiaHLcEFUQdDzOqB/lfg/xGSkkFmxfK29u7I9Nx?= =?us-ascii?Q?mTQhudxSGQgzhgS5+tt4ZeqPOYyyxzyWe6ErshhkL9likzTXGerBHEMBKpoa?= =?us-ascii?Q?D0UmgimOwku0ER5ZdUgiV3hq/ERL6OfOdHLA4QwLQCZGmaQu4H1TBr3KeJNT?= =?us-ascii?Q?M4u8EwSe+x7Tw7RhPDW6f99UlkRXKicZNroIL+ff9W5EDyTcW8q1kf0W1zF8?= =?us-ascii?Q?dKoE7f5SX1JufjdiWWoQ/lR2vU/GFifJ61leeVtep4/hYVsdJN4R+p97M7es?= =?us-ascii?Q?Js2Ajm9HEEQ1Z9GdrI8/x5SrRtzYmRUvGPXOemXBJhxvtDlIZTj+rZzn++cZ?= =?us-ascii?Q?6+hu7hcuzMZ3fS+bnf79Fb/vGIDfgE5soE6mPXyTRK9PxQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR11MB5966.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xCriXZ67mrnh4yq1KdYVW2hSDIMpCJ0PBglhqKu3JrmcQlujBp3qHmbd9CwL?= =?us-ascii?Q?1Cp8S/RYrHFBCKIdrsrOCVc9ggi3Oz8eEuo3aq+8aTG5abGPCBNzL3isL4TK?= =?us-ascii?Q?HsoZ7aqtf+0IBKxYMaMQ9fw0OxALFH+JbDQbPr1gFLc4R+j0M5Lxi3Zto10M?= =?us-ascii?Q?NRhQYC+JKBm50l2wNdw03WMFTolG/V8zbFBfnRNcrrIB0vmQ1TcFZrLO/2HJ?= =?us-ascii?Q?XYbLvfGW3t/Vr4aAlzv7fsUKk+mDMrqmRMukbpyt0iKXpVmNSqu7EAl2TmHh?= =?us-ascii?Q?B6PT2rBXbLIv631ckpPrv7Evy6yVraRofVjLzuBzER4JsgKnBzukBicQj765?= =?us-ascii?Q?+UCHutkGbQSnsKOBGe5P+HXCuat1LZcBjpYrcgeh8LcjpQdgE0OAEy2Iwebv?= =?us-ascii?Q?/aa33nvxXwTRxSyqtjwCRCRJkDl3JX/09VUhxcxMOgeTboCTuxl+SnCJOPuC?= =?us-ascii?Q?h8qastY3+Nn9viiubJ3m7LyGyNCzZ54dI87Y0OS3vLdRPdBclhWihB+JhSJJ?= =?us-ascii?Q?v0oRrb5oTRjmdE4xYUGRv/gzFpBlwGKayessfIbqrQ4QPOnLZxjSxYVrfYBG?= =?us-ascii?Q?b4UBoxh9qt+5PD+9A+hF4rTyACTeoB3anFu78NrLx7DCdVk89RlpaBQV7RLX?= =?us-ascii?Q?uIjEcyl4DPqJ54iHnWEUm4yEwRoWNi4eSYaY10mQrp8iNHA8v9FkzBStwg2/?= =?us-ascii?Q?+di9ppRhsxlxugkHe8dQxalklE9G+ccigID3tT75FsnMhIMSC1ok3xqeOi8p?= =?us-ascii?Q?wNlqjo4phLBQuDByhBoqNL+tQKLunZjJP7d/6MT0Pl3tPR3i/4e/+RWeVzX8?= =?us-ascii?Q?Vo+UgwqiQaeTV8wxtY/eBlEuYlB2YujpP2YfDLSlG99nj7e+QQegOx2cf9HT?= =?us-ascii?Q?ddvKKgfM4Oo127+aLV8ORoHWrT7E2thdC4K5brX1TECySADG31s+1cW832JS?= =?us-ascii?Q?jZybiA7rbJCxOXiuhspzgQ/j+X/cPunEhKxrfn8bA9HtEB2T8Uvwf5QE2eHz?= =?us-ascii?Q?4pIOzANdzEL6ExFM985wOg7GhAe8yUXEf+FKjX3C3XzlSjRDhWgPqHLK/7qA?= =?us-ascii?Q?WzmAFcPAk18ia4YxhfzU3b97QLZIZ1WJ5t3lMMf0Ijg3OkSW4OQCA/oho9Sw?= =?us-ascii?Q?IIXK3KTcgVQ+UNuKK+So39lAyoX1GzwRuLN8+guWaS2fOGxoYCLdulhj+bl2?= =?us-ascii?Q?o+YxozPjls3+8VesedNvjIZWjl/w4HHfvNUgxEGoS0a0azLvcBV9JNFTs6j5?= =?us-ascii?Q?opeL5HsOWqeJX8FXPFTYmZRtsccKWc/D3WWVYn667TpgAzCoc5VkdSjD1iwX?= =?us-ascii?Q?8QY3h2uFrhQe30ta9YNR6t48dkK3L6XPm+B103K/NDaQrPizyEYh2SBwVxqi?= =?us-ascii?Q?el66aFlzpt/Di1lbmhCB5nF5XVnOdoJul2bC02z1VGwLNG9X5IVshtxHpLHv?= =?us-ascii?Q?C3KMgSf/WU6PO7T/oifCT81GLY6UCGK+bYOsDt1g+P2Okj0iH89NoR8pqTUF?= =?us-ascii?Q?h9v00nEhIBmJjWvUC1G74YIveOc62NE4OxnOisxrVToORsgcPOwZDORvwVQJ?= =?us-ascii?Q?lSe1iKwG6fBgSPNuDE8tClK23R4cen0uol36GYjY?= X-MS-Exchange-CrossTenant-Network-Message-Id: 3a7de561-92c8-4c91-50ab-08dccb255328 X-MS-Exchange-CrossTenant-AuthSource: DS7PR11MB5966.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2024 08:00:35.0713 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gMHCbS/yHbDrrpwK8vZYhYBKZSXJTNySNgbSbn52i0h5iJGTGQbxNm6pLVwTPscqP2926BthlI2qikdjMr6B7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7850 X-OriginatorOrg: intel.com X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 5C0E81C0010 X-Stat-Signature: knyri17gepiywjirhrugimnut6bmzdnh X-Rspam-User: X-HE-Tag: 1725277837-5678 X-HE-Meta: U2FsdGVkX194ZHH1zO4MjHAQ7BrNgs9A6ARkPg+DDPIi87mBoiyd6ydkfZDiTMPkQ89UJgmwL7l6YIjVphwR2lctsr+cnQ3csj8fU/eZ16hMM7dwlM0tqSIPxboVCs548sjofMmKAFc6s4YnQjDQNq6BlvfaI6tKxnK42FHC6BuW4NNuQn+9kMsxKwlEuCEG7MSZ+arXMasy5gOyKopIU8mf9cA9/19N7Z1zCPgayAC69+H4PRngEp0jouM53UBXSkZyB3xJ6Zzuic5O8VNxy9Dw0isjkQtiiiuZAihXgEA6YNg+YjEQao8szwkYuJOcj34TG69VwljpZ3WWHrIjVIKZMrjAGIxCeDEyyaEph2uuY5nHp4BCWnE8fZt6vPeEdEbi6IiLZxz9dNKmcJw1DfbVq2J+tYvBet8qEbXtQ95XXXBtkFPXJFhSHCPQuOhdFjXSwJMMVN0Hb0r8t0wcL6OOs13swXT8j/jM5JcPdAJqDn8EkvGPXQefHJ7VPgPMFVwxZvzS9dCCX/MTeqRvsfTkHbSN8BAPD1Lu0jLp7AejnGLZOmryOC03E/R9wDaikGyxZ6WpPmCFdXVOcfy6zlVJUrvJlk5hrf2rd6pWUgmwHr01twYgK8oaS2vgMyWvKqGFeW7CKVXyErIPi7B+mh7wOKHFGEgUc+V0lo8uEpobs/hDDLjr2MOS18kIiyVQNIlrnHRIbMyrGQTE1NCrDXDcdYf8ecgsFtjSQ38Ggmlownt8iUtqgPLNHXMY+n3pZU5q3M/V8XLwFxmX78VZRD0MqQCgjORGL75PuyO1tFtOW1H7IRLGn9bKgBvPfceLTKwJ+S5TMlbAfKwxTAr2IThDUzEUHjcXBSieF4dbUZn2QWBUFv8npAjv35h8TOGqLdzCwuEicKDVtQjPdvEtY9T+vGcBh/st0dz9fxSP9XA8wQk+bHfi6ratbu8LnNEVY1ag5i9Uz+o2GpZqZcS ppop9fbn md5aEGlVd6tuIM9whq6LXWZUMZk5Pzkhp05ubzXz32EnlgsYcf/DkPj5eOClER2S4aUQW4jQ2dBz6faQZWOxvEK13V2PGHB1B9vztCabc9su48pDIq+dx6qhc+VN/55m3LlQ6mZic09+ZwfnQj8vNEsjfgXBOwo2NjZdFemAHav6RGtQ9xSdhVK4jXXXZeLBoPoL+kKY0XSM+nZB86WobKgJocf5BursfMmbe6NDWlqANPx60Z91E1ap5KCSlqMK/tbXyyS16EdOhHHrqRTKOIt+CcPBGgy8z+BLsrEN94nWK2sXylxsnM7qiHHMJGP76Y/LcvBUn5G+iJ7Yo8eSlPA4ZxhFkjd0G2Gn0/Blh1Hf1DdpbaPYiDSlwwZj1m5quGgU+ZQCvqmAwdnW88ZmNajUN9pAB0eUFB1M6hXhzgMaEb+Mi+wpk+je9tdywztxTMgS/duuRTOLK6bDFcP695lxviMcPVCofMWOFnnxr4XAIQwUGmUExX1YYGOVTfstGVCJW 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 Mon, Aug 26, 2024 at 04:43:41PM -0400, Peter Xu wrote: > Teach the fork code to properly copy pfnmaps for pmd/pud levels. Pud is > much easier, the write bit needs to be persisted though for writable and > shared pud mappings like PFNMAP ones, otherwise a follow up write in either > parent or child process will trigger a write fault. > > Do the same for pmd level. > > Signed-off-by: Peter Xu > --- > mm/huge_memory.c | 29 ++++++++++++++++++++++++++--- > 1 file changed, 26 insertions(+), 3 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index e2c314f631f3..15418ffdd377 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -1559,6 +1559,24 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, > pgtable_t pgtable = NULL; > int ret = -ENOMEM; > > + pmd = pmdp_get_lockless(src_pmd); > + if (unlikely(pmd_special(pmd))) { > + dst_ptl = pmd_lock(dst_mm, dst_pmd); > + src_ptl = pmd_lockptr(src_mm, src_pmd); > + spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING); > + /* > + * No need to recheck the pmd, it can't change with write > + * mmap lock held here. > + * > + * Meanwhile, making sure it's not a CoW VMA with writable > + * mapping, otherwise it means either the anon page wrongly > + * applied special bit, or we made the PRIVATE mapping be > + * able to wrongly write to the backend MMIO. > + */ > + VM_WARN_ON_ONCE(is_cow_mapping(src_vma->vm_flags) && pmd_write(pmd)); > + goto set_pmd; > + } > + > /* Skip if can be re-fill on fault */ > if (!vma_is_anonymous(dst_vma)) > return 0; > @@ -1640,7 +1658,9 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, > pmdp_set_wrprotect(src_mm, addr, src_pmd); > if (!userfaultfd_wp(dst_vma)) > pmd = pmd_clear_uffd_wp(pmd); > - pmd = pmd_mkold(pmd_wrprotect(pmd)); > + pmd = pmd_wrprotect(pmd); > +set_pmd: > + pmd = pmd_mkold(pmd); > set_pmd_at(dst_mm, addr, dst_pmd, pmd); > > ret = 0; > @@ -1686,8 +1706,11 @@ int copy_huge_pud(struct mm_struct *dst_mm, struct mm_struct *src_mm, > * TODO: once we support anonymous pages, use > * folio_try_dup_anon_rmap_*() and split if duplicating fails. > */ > - pudp_set_wrprotect(src_mm, addr, src_pud); > - pud = pud_mkold(pud_wrprotect(pud)); > + if (is_cow_mapping(vma->vm_flags) && pud_write(pud)) { > + pudp_set_wrprotect(src_mm, addr, src_pud); > + pud = pud_wrprotect(pud); > + } Do we need the logic to clear dirty bit in the child as that in __copy_present_ptes()? (and also for the pmd's case). e.g. if (vma->vm_flags & VM_SHARED) pud = pud_mkclean(pud); > + pud = pud_mkold(pud); > set_pud_at(dst_mm, addr, dst_pud, pud); > > ret = 0; > -- > 2.45.0 >