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 1ABD6C5AD4C for ; Thu, 23 Nov 2023 08:32:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49AC98D0014; Thu, 23 Nov 2023 03:32:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 44C068D0002; Thu, 23 Nov 2023 03:32:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C4BC8D0014; Thu, 23 Nov 2023 03:32:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1A6D18D0002 for ; Thu, 23 Nov 2023 03:32:05 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id CB23F1201E7 for ; Thu, 23 Nov 2023 08:32:04 +0000 (UTC) X-FDA: 81488551368.25.873421D Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by imf07.hostedemail.com (Postfix) with ESMTP id 863E84001A for ; Thu, 23 Nov 2023 08:32:00 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=lO8jsK8Q; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf07.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.43 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700728321; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=pRN7rPA8aejJfgy34h6zIBGRbRxsLIGBc/hL3OIJ9og=; b=pr6juB/ObaHPGgjNJvbgxo7r/+haq2tij6pOjS8zyBeBofUk7dXRLJM0oFVRYFXf3uQc6Q EgEtHiLfHQZYhxbu1oHqauyzRvurqqBS/x5qU6Jc5ZehIw1rz58tvGkEpBJUIZOBO9X6ks yOrWf6pXgpNCEysMJjLIyUCUYdzErWc= ARC-Authentication-Results: i=2; imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=lO8jsK8Q; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf07.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.43 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1700728321; a=rsa-sha256; cv=fail; b=pTwWGdqfMk+UahH1vvUViPwxqLRXx9AOpR0rnDpcam4M1FU6bFhq2kRVLzj3nAmD3O90a2 MOFw9FM65sINj035ccHhz1aPHGHQ4d85aqpL5qBLvdx1Kn5rZZ+38EfHDDydJR5kK+gG43 YHuAhijGZRLU7G3XD7KYWqXPtshmNY0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700728320; x=1732264320; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=NiOt7q/s7vY16mQ6FoKFKII5Zzz1SacsBW/6wYHhwu8=; b=lO8jsK8QyjPxa0lx4iSiBUF6WPZQNVVRKW34OAA10Juq6mPBCA1k5sNn 0a500TZ2Y7gJaOpu8Q1v6stYoc7IpG/CXz01eUxGfGASW8QrI34cIH477 iqLAb5zuL/Gb5nFWGqz4I9RqKMny4hZPOtLXWfHU0Jqr++Q525NmQUp7I lgWcJOPNGkMbPo/waU+iVXpr4PgVYpcdxeTxTIdLA5XDNjgr0Qr6y8GB3 rlN4OJFt8BUYBGXP7tor7whz+ztWCbdR0qPFocgrDLPdEamAtJnTzTnp3 +4Lr8asJwnRZ55Atm8uiAPmnyjahOMTz25d5LeGJd8QGcRVzeqeP24BR3 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10902"; a="478424371" X-IronPort-AV: E=Sophos;i="6.04,221,1695711600"; d="scan'208";a="478424371" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2023 00:31:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10902"; a="837730540" X-IronPort-AV: E=Sophos;i="6.04,221,1695711600"; d="scan'208";a="837730540" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 23 Nov 2023 00:31:43 -0800 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.34; Thu, 23 Nov 2023 00:31:42 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.34; Thu, 23 Nov 2023 00:31:42 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Thu, 23 Nov 2023 00:31:42 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Thu, 23 Nov 2023 00:31:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DrAYKZ91DX5oJzC6bddE9WKXeqJs7CIU6xeNhA7snUYvZSxQnmmaK9xwx8fNKTGvgk4rl+Kuu2HMj2JHlP6I3oRsYZkodDfmoJvsXnVViI0zs6fDhxCwITlg8vtFM23pNpHbLIkdKK7WkaDn6p7uK5U2gPYqSoRkrmE/wiNoBwoouxfyeDGjxxfXPgAUpFVXU3kgnw7dLyWm1d1u5Gr6MfyxeIDRVWyG1gIyzajTZe3AqwdtPb+99X7NXB+N53LrUXzRNzz3w51HHl6N/8u62yhHlWilG7Zg4C8L0c0TmMfwuy0qurcMQ+VhtWRit83HEeQ7fjJuVtgpCPVZQbpipg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=pRN7rPA8aejJfgy34h6zIBGRbRxsLIGBc/hL3OIJ9og=; b=UactFNPK6yYPv2jD+JGCOMrm6pJOa4OCpJddiN+YxdoKB0ncgbatYe95AnG87m0zLf55d28BKFSa5yBH32Z/d/ChUwcTSen9bKhNSgDTATBCXO+n7bTOli2egfj/64ASRj1bhjdGjaeArV27EPCQz51/fh5MqqnXbVLB5G6PWboieQG4XB/Qv5SIszlNPfCTB70SGx7/MKNQB5Nbs/nWHe1waA5FDMgkpIr8I1bPbMN1P6b5mCd3FfSJnq9ofWaOWr0V+8TdturlGEWtexBQiqGOzXbFW56g7sJImAp56j8GKU88gJAWpE/5t6+7JFGcQun68ryPD3pNDOMVhhutOA== 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 SJ0PR11MB4831.namprd11.prod.outlook.com (2603:10b6:a03:2d2::20) by DS0PR11MB7960.namprd11.prod.outlook.com (2603:10b6:8:fe::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.20; Thu, 23 Nov 2023 08:31:34 +0000 Received: from SJ0PR11MB4831.namprd11.prod.outlook.com ([fe80::50f0:1dd8:29fc:3f87]) by SJ0PR11MB4831.namprd11.prod.outlook.com ([fe80::50f0:1dd8:29fc:3f87%4]) with mapi id 15.20.7025.020; Thu, 23 Nov 2023 08:31:31 +0000 Message-ID: <1f29e229-d07a-41e2-97da-b6720bd5f2d7@intel.com> Date: Thu, 23 Nov 2023 16:29:22 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH] mm: filemap: avoid unnecessary major faults in filemap_fault() Content-Language: en-US To: "zhangpeng (AS)" , , CC: , , , , , , , , References: <20231122140052.4092083-1-zhangpeng362@huawei.com> <801bd0c9-7d0c-4231-93e5-7532e8231756@intel.com> <48235d73-3dc6-263d-7822-6d479b753d46@huawei.com> From: Yin Fengwei In-Reply-To: <48235d73-3dc6-263d-7822-6d479b753d46@huawei.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SGAP274CA0003.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b6::15) To SJ0PR11MB4831.namprd11.prod.outlook.com (2603:10b6:a03:2d2::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR11MB4831:EE_|DS0PR11MB7960:EE_ X-MS-Office365-Filtering-Correlation-Id: 59eb9e15-cfec-4a20-fcec-08dbebfe97de X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6nLaLGePDzQKO+SFiKcXROrhiG4egdWvwE8tVYPnn7RNYm4kaBciOsojx5GPe3/uO27a0NzgmZ6hK1+lrbP3JSon8K2YBz2diL506sjOdSt/UiiF2Lpg0ryx6KhWnNy7hqtOg32MgpHLiwS/1URApzDhl0eaUAfd8SvZJNNuQI+NksXF4n917GOaeS8klh/NsHGNXPnLg400uM0EtU5ieBdhv2y5DjsWrSscCSCpoKASpoM+Vh2wkjjZm1RBMY6CmpYkTmjGtk25Wcm8ecpIGjPbgkQ3ATVkoz4305HnJLgvlAq4xuEVPC5oT8XKNIKpq0GVy67JaqcH+p6oZuNSvqlFiYdWfiXb1eC+3rioKk9KUD09SLM/OZzYJ8rMaIsezkfVlW7ioxlyI6h+MH6GpPXGndTTFmsipYZRFk252AwxWpHgAu+Lc1i3WgLVT+pn7Ux6ITXEQQMZfcwLkBI1TIpd/ERtRf3vKTU5XGDhuttq1E/XANsaHqrXe8yl2WbAOhckd7G4jE2J1op3vGI0ictrKrE1cG8bhxGQ9lTua+vwSy5m5F74lXmtfMm/STtrIsXab2tH9GxPXTOM8fscCf2Yl2sOSxH2EOS4zJNj4jepL7qC1gLn2l6a1UtHPQaq4xf/BLxm11uFZzq0XCMCVK4On+gY6+yFO8BglYc3PIFUl7yLwyvWu2i9lHzP/H6A X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB4831.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(346002)(366004)(396003)(39860400002)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(5660300002)(7416002)(2906002)(8676002)(8936002)(66946007)(66476007)(4326008)(66556008)(316002)(41300700001)(6666004)(6486002)(6506007)(478600001)(966005)(53546011)(31686004)(26005)(2616005)(6512007)(38100700002)(83380400001)(66899024)(82960400001)(86362001)(36756003)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RnNteVBIMitncTE0V0lDRGdSMnVETmRiQnRNOFVGazV0cFBON09jWGpRQzRq?= =?utf-8?B?UHM3aWV6UTdrZGgrVmN5b3hkYi92MDZyTkpiaW9XdUNzbm4yYjdmQnlEMDNt?= =?utf-8?B?TmN3YS8rRjdERUdoMDdIZTYyN3BMeWJHNzFmTGJiV1FROUZUTVAxcUJFN3gw?= =?utf-8?B?SUFzRHdPVWQ0UUJJMWU0U0pGYjZXK2k3Qjl3Vm5jZ1RNblBLdVJWMzcza2ZT?= =?utf-8?B?b2h5UVNZTGl5OHBEVVFTU2ZrK0EwYTVMVi9nengwaHllZnplQUUwazhRQi80?= =?utf-8?B?Y0lRMkRyQzYyTVBjRjR4Wk1WdC94dTIxTHJ4SWZGNGZyTmpaeEowRFhNcyto?= =?utf-8?B?QXVlcjY2TnBNckdPZGFtbzlkNjd3bHNwaWdwMENZNS8wWlZrbFd4SjdlcDVR?= =?utf-8?B?a01ITjR2b1ZjN1I2YUk5KzdieUVTMW5MN1VsVCtRVVJ6d1BUSUEybTluTHhx?= =?utf-8?B?QU5xL1FpMzV2d1BDUmp6MDNJdEQ2WUNyTDVGVGJOSnNZRFlxcGZxWGJyem02?= =?utf-8?B?ajNWYjdXeHFlanFNaThTMEsxYmZYYTcyS1hKelNvM2x3YTBxdlg2S1RsK1RB?= =?utf-8?B?Qis5N1RONDBrVGR4Vk5zb1ZTdTFNaVJNMER0U3o5TlBLN1pUdE9kdkV6ZzVW?= =?utf-8?B?YlpscTBhenZEam82SVE2S3I5R2k3SU95amdZZVQxd3B2MEFIeDJVTXZMbmRX?= =?utf-8?B?aEc1dkY4Q0xDcEZuKzlURWMwZXpXb3hteXV2WGlobld1ZWNaRG5TSDc2aHk4?= =?utf-8?B?dGtLdmtVbWp3UW1rSkZXWk5CU1Vqc0tFR3hqeUs0T0FGbVVoR2p6eDNYemsy?= =?utf-8?B?MUZDL1psODFpN0hpN3o2LzJ5YzhMV1BZZi94dkRMODdEeTkzQjI0NUJiTnY0?= =?utf-8?B?ck5YRU5qZDR6Z2UrZXhNVWtyb0J4Q0FXYjhncGc0QzN6TEtOVGIyTWwzYjg2?= =?utf-8?B?SmZRcGMxWXVyalJiZTN0Y1B6NzJqSENRaUJONkhOVFhzbVBNN1NqYkZINFBy?= =?utf-8?B?S0x3cGJYTGR6K1lFTkhUdDdwVzE5UGtYR2JOY251RVBKby8zalpNSmd2TjhM?= =?utf-8?B?b1JIczNhaTJQUkttSHJVVVU5YXV2bjU5YzRUNFpqRVdSaVlpK0FEdVlFTmpp?= =?utf-8?B?czZYVjQwWEhNeFhuazlxT1ZUT3FISkNoK21IdlltQmxGVmptNHhlRGd0aEJ0?= =?utf-8?B?MzZMQjBCaU9sZGNlRitkTzgzclBkYjl2aDI1a3VSb3NCU2svUytKcit3L0Rq?= =?utf-8?B?V2ZyeFFLVzZLRXM5MVk1QlhMOTM0NnY2R3hBUFpjY0pvYUl0VE1ad05PM0FV?= =?utf-8?B?dW5oeWhENVJXMFJnRVhFOVROQTVqNFVuZ0NMejBOQ2JPbmd4YUI3UGlnNThN?= =?utf-8?B?a2xaeDhyTVNrd2tSOFlHUkpPVUNTOGwvbCtlVkpmbU1xR3NTWVU2MUlrb2Zt?= =?utf-8?B?UWxWVjNyekk1WFQ1eUNicVRIc2NSYm10NFVMTkJtd0djcFRyOGdmYVNrZDZk?= =?utf-8?B?Z0FOeXVkN3Z0NEt2eWN4Tmc4d3g4U2lSdHZQbXZYcC90WVlYNzFlWWY2T3Iw?= =?utf-8?B?VXBFZ3BneWMwQTNBbDdDeFR2b3NtU0Z5V0N6Z2FkbXoxd2UvM1FEcExGSmxI?= =?utf-8?B?NmRCaXhESXlsOWVjL0IyN3dvNFlzNFU3WmwvbjRhbHNsZFdUV3NwNmU0U1dU?= =?utf-8?B?TFdSU3Vtdzk0OHlQTU9OMExYSGFYektuR0VaSnFMVGN3ZVFPc2N0OXpLWk1n?= =?utf-8?B?YlM0RkNoK0tCYWRtQk10NlZIeHVNQklVeURwcjZNL0pvc2RqZUNiOGNudEIz?= =?utf-8?B?N2paV3dCMXN1UDZpR3dOWkFQRmpobmYyK2ZBdksrMHVnWkRaY1hVL1pKdmNH?= =?utf-8?B?Z3lmRG1ZYzd5QW9hNGcrSGtXZnpwSnFZaVhDcXlZM0ZLR3lvQW1LOGtQMklw?= =?utf-8?B?dzRxUUpvN09HUEd1VlRTUVA4OG1IY1dkUGYwTWFTYXdTKytVQk56dUNaRGM0?= =?utf-8?B?bjFYR0VWNFY4OUZ4Rng0bi9INzZGUVdTdmVyZHJZb3NCN25URVVsamZNSXV2?= =?utf-8?B?bGgzU3RRbFZNT2dRaUdTV29ZL3BtV0V1czdCZDk4REtzRThiU08wL2N0SmtO?= =?utf-8?B?NWcxMmRydkNrRko0YnFYd3phMENZZ1lpU3cyTUI5VzhMbXAwRG0yeEJNS2dB?= =?utf-8?B?bVE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 59eb9e15-cfec-4a20-fcec-08dbebfe97de X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB4831.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2023 08:31:31.3656 (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: O+B4wpJacFpmswmZJF4PFkVjX0jUGFYZv14ODa3h5z03X4nVjzwcxc3tpUnCkjD9XTvLn5o4c4qnfaVDOiUBoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7960 X-OriginatorOrg: intel.com X-Rspamd-Queue-Id: 863E84001A X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 5j3qxomaj94wj3fo646xdkp1buyqci95 X-HE-Tag: 1700728320-562696 X-HE-Meta: U2FsdGVkX18UA0abobEmvEvdGwOn95HZcZESJiazr9LA3bILGO9AH6g/86FJz9gfVZMXZvqk+b6JQeucV+WXXdI6MHlSflLiK7a5gRLKk3crWkuB6yrlsKY0FHG06oiO4WB5Z6Dvnkh/4sdIYlhSJDWmC9II/jnCZIopO4zD3d5AEHaiVrgyWG/gSdK6KEhEA6KcriviK5NHUDEqXURACfMKsR1DAMz9GH3M26NZFt6D17zBaBGwt41AM2JcSLiIyI5WJ3zbt4xB6qulYZnhNQM6QnoVB7qjkZbOwDS79H7RMq+J3TDEMuaNVAUSlw/MaFZ1CczpoiNeHPLHvKc3pF9x/shzfZYqJ6eSy0XCAZC+B7hcDDVFvzp4rPBSMPV4iOc1fWHX9/zYjy9XZLcGfGL3p0X+dhOun7Lcwr+gKTmpVuowI1TbLcdGVeQLhgPeU7vaXjuoS9Jzsf+4oXOTCEVB5Zz3O7tAXFcJAekZ6hbUyMwTEL5iB/OLCGRXAA42Fs/0XbzpYrC3S3TBWNzJoTs3b+FJbeXkLZxpNJNVKj3AF/kKr5qLJAMUvhn0IXtR3yppjKmUUWMTPp+cEXts1CiFHzUDAu6rny+PUQpj4ETjuRBOEqkCFxWdWYzXRJvFQPzOZ1TA2spfBPlyd5YzEIqg0GfQM04jwjVLvDh/mLpZNvwbyPTfA4Wt5D/t/BKdxurXWs08sXVrNQlTK4BYoUtm5BCtOcMP4IpNM9KAZOTS3yytKgMBB9p1BKlR2EjwIm3SBEgFdIBPIn3JSXbyV30LNAtDwXgmnVtuFLy4bH7f1R+Mh9HHH7UppiL0aCuNHMpfCw9ewK+a8XMAyOOExrNlxeqJCwx55ZgBRURBxGyDKPLFCuTifNnSmXxIQynY1pt2VSvbjBc8ErJhp09TZXC5iVd2uEsuJMtjsdCTGAqkxRifVdSMC4zLd6JNFlhiYn0xghcGlKeMKPAHFEi nyhh/9Ox x1UHVIbQQjlfXL12pUF5MkjtGKGSvH/LHxlnqm1LMKvOMji3giZn0cDYE08KJCqWWp/iJeGy9JWZeaHXX4TbspdMouv2uOlluv/xrZcvgwPYlnXKhk7tpdBWlV3cSVqxd70F/3HyGVvWOBkB1jErRIaUbzVri59l0Jnp+cqMCwyBa9L2uUpJ2MLLmaZ+lQgSB6yJoXwO+hSMsetNGdFXS5fxKtg/po/cub4pQzH5w2ooiUdb+yld6Nn0ONI1AenXiA2p9Satlz47SzID90OawqgkX5pyqWOkqmZa9rk+Y6dYi+opCmKQ+ypdMtYWM6NUUEsx83WJdHsbEuib2hGuenFJWLnZoHJkxVkQAkHN31T3RpygwHbwb0BkMt5i1fshL8zyNUSnux4lqyqVSZT1/9J0lVCUje3IzX/YiRy//x67JzgNOo2EDA8gn0oKTkVyO7mbIxeYpOY3t5vZJm3e7YWiVrOINrH1AUphGTl3n0Jjz4GPFx/H76K/ERw== 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 11/23/23 15:57, zhangpeng (AS) wrote: > On 2023/11/23 13:26, Yin Fengwei wrote: > >> On 11/23/23 12:12, zhangpeng (AS) wrote: >>> On 2023/11/23 9:09, Yin Fengwei wrote: >>> >>>> Hi Peng, >>>> >>>> On 11/22/23 22:00, Peng Zhang wrote: >>>>> From: ZhangPeng >>>>> >>>>> The major fault occurred when using mlockall(MCL_CURRENT | MCL_FUTURE) >>>>> in application, which leading to an unexpected performance issue[1]. >>>>> >>>>> This caused by temporarily cleared pte during a read/modify/write update >>>>> of the pte, eg, do_numa_page()/change_pte_range(). >>>>> >>>>> For the data segment of the user-mode program, the global variable area >>>>> is a private mapping. After the pagecache is loaded, the private anonymous >>>>> page is generated after the COW is triggered. Mlockall can lock COW pages >>>>> (anonymous pages), but the original file pages cannot be locked and may >>>>> be reclaimed. If the global variable (private anon page) is accessed when >>>>> vmf->pte is zeroed in numa fault, a file page fault will be triggered. >>>>> >>>>> At this time, the original private file page may have been reclaimed. >>>>> If the page cache is not available at this time, a major fault will be >>>>> triggered and the file will be read, causing additional overhead. >>>>> >>>>> Fix this by rechecking the pte by holding ptl in filemap_fault() before >>>>> triggering a major fault. >>>>> >>>>> [1] https://lore.kernel.org/linux-mm/9e62fd9a-bee0-52bf-50a7-498fa17434ee@huawei.com/ >>>>> >>>>> Signed-off-by: ZhangPeng >>>>> Signed-off-by: Kefeng Wang >>>>> --- >>>>>    mm/filemap.c | 14 ++++++++++++++ >>>>>    1 file changed, 14 insertions(+) >>>>> >>>>> diff --git a/mm/filemap.c b/mm/filemap.c >>>>> index 71f00539ac00..bb5e6a2790dc 100644 >>>>> --- a/mm/filemap.c >>>>> +++ b/mm/filemap.c >>>>> @@ -3226,6 +3226,20 @@ vm_fault_t filemap_fault(struct vm_fault *vmf) >>>>>                mapping_locked = true; >>>>>            } >>>>>        } else { >>>>> +        pte_t *ptep = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd, >>>>> +                          vmf->address, &vmf->ptl); >>>>> +        if (ptep) { >>>>> +            /* >>>>> +             * Recheck pte with ptl locked as the pte can be cleared >>>>> +             * temporarily during a read/modify/write update. >>>>> +             */ >>>>> +            if (unlikely(!pte_none(ptep_get(ptep)))) >>>>> +                ret = VM_FAULT_NOPAGE; >>>>> +            pte_unmap_unlock(ptep, vmf->ptl); >>>>> +            if (unlikely(ret)) >>>>> +                return ret; >>>>> +        } >>>> I am curious. Did you try not to take PTL here and just check whether PTE is not NONE? >>> Thank you for your reply. >>> >>> If we don't take PTL, the current use case won't trigger this issue either. >> Is this verified by testing or just in theory? > > If we add a delay between ptep_modify_prot_start() and ptep_modify_prot_commit(), > this issue will also trigger. Without delay, we haven't reproduced this problem > so far. Thanks for the testing. > >>> In most cases, if we don't take PTL, this issue won't be triggered. However, >>> there is still a possibility of triggering this issue. The corner case is that >>> task 2 triggers a page fault when task 1 is between ptep_modify_prot_start() >>> and ptep_modify_prot_commit() in do_numa_page(). Furthermore,task 2 passes the >>> check whether the PTE is not NONE before task 1 updates PTE in >>> ptep_modify_prot_commit() without taking PTL. >> There is very limited operations between ptep_modify_prot_start() and >> ptep_modify_prot_commit(). While the code path from page fault to this check is >> long. My understanding is it's very likely the PTE is not NONE when do PTE check >> here without hold PTL (This is my theory. :)). > > Yes, there is a high probability that this issue won't occur without taking PTL. > >> In the other side, acquiring/releasing PTL may bring performance impaction. It may >> not be big deal because the IO operations in this code path. But it's better to >> collect some performance data IMHO. > > We tested the performance of file private mapping page fault (page_fault2.c of > will-it-scale [1]) and file shared mapping page fault (page_fault3.c of will-it-scale). > The difference in performance (in operations per second) before and after patch > applied is about 0.7% on a x86 physical machine. > > [1] https://github.com/antonblanchard/will-it-scale/tree/master Maybe include this performance related information to commit message? For the code change, looks good to me. Reviewed-by: Yin Fengwei Regards Yin, Fengwei > >> >> Regards >> Yin, Fengwei >> >>>> Regards >>>> Yin, Fengwei >>>> >>>>> + >>>>>            /* No page in the page cache at all */ >>>>>            count_vm_event(PGMAJFAULT); >>>>>            count_memcg_event_mm(vmf->vma->vm_mm, PGMAJFAULT); >