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 BDCA1C4345F for ; Thu, 18 Apr 2024 10:44:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 29F1F6B0088; Thu, 18 Apr 2024 06:44:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 24E5C6B008C; Thu, 18 Apr 2024 06:44:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 117706B0092; Thu, 18 Apr 2024 06:44:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E11AE6B0088 for ; Thu, 18 Apr 2024 06:44:35 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 806C512134B for ; Thu, 18 Apr 2024 10:44:35 +0000 (UTC) X-FDA: 82022318910.16.EA73692 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by imf11.hostedemail.com (Postfix) with ESMTP id 4A77540010 for ; Thu, 18 Apr 2024 10:44:31 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf11.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713437073; 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; bh=jDxnuDaVFC2Iop9rFm+748a00PFIW1OTEHtUNTMEIgQ=; b=fMig+cjVZ+6GfbUDORlo8DeTCp69LFbrN4Na2Wa4Q36+iwO8AzwdgHQx3rDJGyIuRas01C n3gJ1UNW71ZUnaaMGUpqRKy9nEQTwGdR2K/J1Y7sQ7xMiXR/QGt0DGw6xXzbWIFWcBPAos HlCAPl0Dk5XzAgc6VD+VVqh5FGmUbIk= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf11.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713437073; a=rsa-sha256; cv=none; b=B6Q7lAGE2rDhrT8nTGLL5mo4glIY1BH5g8TZ5Egj48RGkEGZAj1C9NYGkSmez524cMxmmG /nL3Fk2HocxEZ/lQJTdWy5OXslWd7n/hFzlDSrl95YZo1ISMX8maeeALb0/aoGixoiPWRU xJ2GnrrMhOpQruPuce1f3i52z8prYrY= Received: from mail.maildlp.com (unknown [172.19.163.48]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4VKvTV39xcz1R6vn; Thu, 18 Apr 2024 18:41:34 +0800 (CST) Received: from dggpemm100001.china.huawei.com (unknown [7.185.36.93]) by mail.maildlp.com (Postfix) with ESMTPS id 25A5C18006B; Thu, 18 Apr 2024 18:44:28 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemm100001.china.huawei.com (7.185.36.93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 18 Apr 2024 18:44:27 +0800 Message-ID: <4ff798d6-08b2-4824-b2d9-d5a824063ec3@huawei.com> Date: Thu, 18 Apr 2024 18:44:27 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: memory: check userfaultfd_wp() in vmf_orig_pte_uffd_wp() Content-Language: en-US From: Kefeng Wang To: Peter Xu CC: Andrew Morton , References: <20240417082359.3413259-1-wangkefeng.wang@huawei.com> <20cbfcce-fc02-4af2-a342-82bd4359e977@huawei.com> In-Reply-To: <20cbfcce-fc02-4af2-a342-82bd4359e977@huawei.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm100001.china.huawei.com (7.185.36.93) X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 4A77540010 X-Stat-Signature: rypp14pg5b5n5qt7djjpw8cn45sc19n3 X-HE-Tag: 1713437071-926079 X-HE-Meta: U2FsdGVkX19LeVdsyIOg91MMgHBgZNK80YOgnDx/lQg9TWei5DKZn/pu9aY6GzQt5opOdS3f9mi1YpHm0+dbx623z+3xWgrLjJI7Zl/ZCWGEWYHqGaePrg/TJEWYDYjW7yjlcjQQKsFN9q0NlVCrgJE3NdcDfvB2K2BwLofwSBEG2cVVSR6iRnOXzzBASiTyB2OueeOdLxgaP+U/rXwQ3BJo3ylFIlL+a+4h22Kf8/bcXmRrOSPmw2aJauxfByWLK+E+nYFEHwfn4yk1QHQiGJ8i8a+Cc5WdpaWOtFr6hdSPVI/iHd6eCxfIpmd+9po51k8yuVKSvh2L+hCek+oN/Y8lnc/X+6P7xpIYrxTDnPtAwO/13zXTqQeS3Oj1m+EXzldT5IW89UvfhogZLRUbr80s3ZZJUXN8H0tZM0NfWvnBH/e/OWiPmB/pLjqB70OqKQh9PU7MmCBPMmKMCLUs1Q1NwGhqKEuTlNk6cnyaD5c9DMDMtJq9uS8EPE1xY4VyroF/Ina5XM/9iaKP6GCsdnN3WMH5434HOCx8WvIIIKBrMuQ02Oarcm5FroH93+HIsRyskFaOP+Ktyw98kDhmmReHfgnZ9G+tn7vgm+uXvRBCuFITq1rp2b6xkoXO4BynPD1oka2gNK8to9Oq1MxKa7MQPPNUNc2IjYbV4Mv6SfQoPLrqI5TrVFgQVIaZPbzUNdJcgnxvHTwmQvC9M8/PWNcC69Nbdlue6woQ3cD89HgXtIwOApbzF3BVE80BqYpy3BGNKhIPTg0uu/HndodINLe16rYG+xd9oc12CuYoR1ISAdgxSdgU3aREIF7KXVYc6XWxPezJxdF8SKQ+3y1wzp/432I0SGiSRg7LVOCPWXViWX+YHN+Dsf2kmCJcL2/e45hOigdfJVlUxyjMTN0fDbuhynSlf8HVqJBi8Yx+/IkvASa1kHUuVN88H9KDTGAcK2052dAs+hDBGXWXSeO PQ6/GfXm tBTcDjoaqJM+1rSC16GXRvsj2mXtSJDXkSB4d9eBcTsSZ1EbIt+85X/sX0HgDpGOrqc/W6pHNKvcLZT3ON9R21/8AUbpKpnbrT9VnrDtG+xAQx/NDzbFo80Dp2OECK2wmFgVJMiHmmkDK6ZwSM8css/gZnTkT9FSGGA3Utp6EPb2qgxO1OO+PAMOLZdnLLQi62cx9Fvk6zar8sAAgPyxoFpi8OoHx3KSn9iSVjuRxlJ6lebf319BWw/QNphtInJ0z4PjG5JdhTJ8JKAc= 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 2024/4/18 9:47, Kefeng Wang wrote: > > > On 2024/4/18 2:34, Peter Xu wrote: >> Hi, Kefeng, >> >> On Wed, Apr 17, 2024 at 05:30:40PM +0800, Kefeng Wang wrote: >>> >>> >>> On 2024/4/17 16:23, Kefeng Wang wrote: >>>> Directly call vmf_orig_pte_uffd_wp() in do_anonymous_page() and >>>> set_pte_range() to save a uffd_wp and add userfaultfd_wp() check >>>> in vmf_orig_pte_uffd_wp() to avoid the unnecessary function calls >>>> in the most sense, lat_pagefault testcase does show improvement >>>> though very small(~1%). >> >> I'm ok with the change if that helps as big as 1%, but I'm a bit >> surprised >> to see such a difference, because for file pte_marker_uffd_wp() should >> check first on pte_none() then it should return already if uffd not even >> registered for the vma, while orig_pte should be hot too if valid. > > Yes, retest, not as big as 1%, but the perf shows vmf_orig_pte_uffd_wp > is eliminated, > > [root@localhost]# perf report -i perf.data.old |grep vmf >      0.17%     0.13%  lat_pagefault  [kernel.kallsyms]      [k] > vmf_orig_pte_uffd_wp.part.0.isra.0 > [root@localhost]# perf report -i perf.data |grep vmf > >> >>>> >>>> Signed-off-by: Kefeng Wang >>>> --- >>>>    mm/memory.c | 9 +++++---- >>>>    1 file changed, 5 insertions(+), 4 deletions(-) >>>> >>>> diff --git a/mm/memory.c b/mm/memory.c >>>> index 5ae2409d3cb9..a6afc96001e6 100644 >>>> --- a/mm/memory.c >>>> +++ b/mm/memory.c >>>> @@ -117,6 +117,9 @@ static bool vmf_orig_pte_uffd_wp(struct vm_fault >>>> *vmf) >>> >>> >>>      if (!IS_ENABLED(CONFIG_PTE_MARKER_UFFD_WP)) >>>              return false; >>> >>> Will add config check too, >> >> pte_marker_uffd_wp() returns false when !PTE_MARKER_UFFD_WP, so kind of >> imply this.  I assume you meant to avoid checking ORIG_PTE_VALID flag, >> but > > Just to avoid checking ORIG_PTE_VALID and the new userfaultfd_wp() since > it is not supported on most archs. Since pte_mkuffd_wp(return pte) if !PTE_MARKER_UFFD_WP, so this is not needed, also confirm it after checking the disassemble, will update changelog and resend. > >> the flags is pretty hot too.  Again, just want to double check with >> you on >> whether it can have such a huge difference, e.g., how that compares with >> the current code v.s. original patch v.s. this squashed. > > I will change the changelog to show different about vmf_orig_pte_uffd_wp >  from perf data. > > Thanks. >