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 A06B8C54EAA for ; Mon, 30 Jan 2023 13:53:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 149AD6B0072; Mon, 30 Jan 2023 08:53:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0F9BC6B0073; Mon, 30 Jan 2023 08:53:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F2A2D6B0074; Mon, 30 Jan 2023 08:53:17 -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 E05C46B0072 for ; Mon, 30 Jan 2023 08:53:17 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id B6C9A4029E for ; Mon, 30 Jan 2023 13:53:17 +0000 (UTC) X-FDA: 80411607234.26.1FAF859 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf18.hostedemail.com (Postfix) with ESMTP id 1BA571C0003 for ; Mon, 30 Jan 2023 13:53:15 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=k0kcpHjF; spf=none (imf18.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675086796; 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=zuJT9glcjdrERtahT6Fi5dn9/F8s52M8JNEaLm8aoEw=; b=wf/2vyth/bCAM/IaCIa17g2nBF2/rpFDEvLYKFv6NvQ022SdkAfTel3bRQsMf5ZOT01xhy 2h889KMSU/uFZqPkWII+5rJ1z925PvvVDDu1vL8HDeY5fhZqMC1E4ZK4lhm1mmfIqyp5S0 9RT7Mq1gb4ogYurdGxch9O2vaAZaia8= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=k0kcpHjF; spf=none (imf18.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675086796; a=rsa-sha256; cv=none; b=Gc++8ruRXuPA4UcDg60G0L/ZmPGTgOYnCfuSOrk8O8y1wMmXgKh5iUWMhIXt62rGTmdc3Q J8pBYV1NGhHxz40KcJ3d0KARjf1/jkQfSV2OoHb4nyh4Bt3YiEsh9DU0nZV99Z04SI+qta IRTeyoT6wqHbuvIMnKK0gwL61iQd2tc= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=zuJT9glcjdrERtahT6Fi5dn9/F8s52M8JNEaLm8aoEw=; b=k0kcpHjFPriaw0Vf+D11eHsNha n6supLSRgT3w4G2y6Zfn4Kc/ASLKqFnGwGGVL0V1FdzfGEU8yX8l8Z5SJat0B+7NVirv34ZWOeILj wsf3nnJnQo2ABIzcvIDkQKGiS1ZSo3134WGHN5w+YGQNi0eHeikZlCJyOES3mZ/utUvNph7qLinnw LURPJbF3u+5XP7VlzCVvY8XPox62ld3uT80gVJ5qTB6zH6nQtTZZSvvsJ92lNdoHX9UDRlBN344yl m91OH0boTPK5rCGq6qUa/onyzfi67K4vxJN2xiWYtmWe72GdwDp3ihXgO7t9+zmWBWyeO9Z5YikQp sgolEGnQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pMUau-00AOwb-E9; Mon, 30 Jan 2023 13:53:12 +0000 Date: Mon, 30 Jan 2023 13:53:12 +0000 From: Matthew Wilcox To: Yin Fengwei Cc: david@redhat.com, linux-mm@kvack.org, dave.hansen@intel.com, tim.c.chen@intel.com, ying.huang@intel.com Subject: Re: [RFC PATCH 4/5] mm: add do_set_pte_entry() Message-ID: References: <20230130125504.2509710-1-fengwei.yin@intel.com> <20230130125504.2509710-5-fengwei.yin@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230130125504.2509710-5-fengwei.yin@intel.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1BA571C0003 X-Rspam-User: X-Stat-Signature: ue4u9t6idrt3cdysn16q5m8ikapcw5mi X-HE-Tag: 1675086795-164434 X-HE-Meta: U2FsdGVkX1/3ehJ6UnxMyuuLgPCpzJOVq1ajgMcXUp3OdtjRJ6gryAWjBg/5O68xhE2kud4549DISVwzKHhuqgc20Mk4dKTF6pbruotsiMaqBkgsbCNb9FIAMyDFuWtsbXaR04/cxxN3nw0i9T1io6yg5XJ+cavfaPT0sx/3UuOtAgrUmSLIQ7Rw99hXjGsKCFYeXjp28y9Cjoj+VZkShoilVE3tmVDaPRuk9540gDgj5BHuWWFjq6Oiy9FOipEpLELqVJYjO3xg2VkrorutzqQhCrC/qRvFOmykkZpVBZNlp7hx4+ZdTvZjEnhNSv4mS05WF9bA8XgCpS/WrklHWAoogPNDHUviEabVlRSiNBMeVoB7se0Cl/eU9NtXSg0eEoMG+P5VyShbECEiGTangpB9GACFYSWZGDMhpu/l2mLi+wwWRj4NT7YleuCc9ggfdhL91zuq6bI6S795upF2aeDzfuKVb6UD7zcVx53B/ioKxCQhGoMcPbkJ5YBStjoup+orwxQ9lywlvg0pvgsBrn7vz+FxvT2yIGmz/xvRdyuO6KgKL646hPgxaqVP4BFTo1Byj+n+IzpsCx/3pHqOhLJEDQSiGMz3g+96xy9lro9U9L+o9onIOXIrQerB1WRriB/o5eItDymtJ5/Wi4qn9Su8VwL0znf/AWnPmauqtiVMJWR/jfZRVHBfXlG4tuUNgV92ElQo/2KkMpXM3BvQ0YD0Hgj1Eq8p5PhJ6O/+4NjTUZJbJtEAPAi98hXHZbw5tPIbvUCd8XDbwq7NuBPmQ5NWAoTbfAwCjKbi2Hn3DJNojR0h1YkGv0xvh+eGe+z/Znyj2ZN57WQVEs1IJuWnPKlZAUjhOSHW7bUQIjUG8Xq+G4+Rv6/E9ojciEb82bMgKeqIIcBsbEnuLbioxui0k43v3QOUNKpFFKpOnYGL2192Lw9pNXUqyfaokcTS5VHwmW0mJUWovpXF9DDXbND 68IF8ex9 0+CzxBK+t+u/cZmsX3JUBbGSE578ufAiui+DRx/H6jv8TqNSwIpRsEDuXATO0JEEfj88mTTiLwkpawY9hCbiBYH+7Sk4qJkLydVpsjbAtpqQY+v+DYbF8u7DHH3Oa+cei/ueWwBcSuo/y1Z4OVx2OEAsmxDZjCUCCroCwSjB+la5uHBpbPqc5OJDbzfah22afwKsUaNVqpaUx5II= 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: On Mon, Jan 30, 2023 at 08:55:03PM +0800, Yin Fengwei wrote: > +++ b/include/linux/mm.h > @@ -1061,6 +1061,8 @@ static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma) > > vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page); > void do_set_pte(struct vm_fault *vmf, struct page *page, unsigned long addr); > +void do_set_pte_entry(struct vm_fault *vmf, struct page *page, > + unsigned long addr); indentation > -void do_set_pte(struct vm_fault *vmf, struct page *page, unsigned long addr) > +void do_set_pte_entry(struct vm_fault *vmf, struct page *page, > + unsigned long addr) ditto > { > struct vm_area_struct *vma = vmf->vma; > bool uffd_wp = pte_marker_uffd_wp(vmf->orig_pte); > @@ -4276,6 +4277,16 @@ void do_set_pte(struct vm_fault *vmf, struct page *page, unsigned long addr) > entry = maybe_mkwrite(pte_mkdirty(entry), vma); > if (unlikely(uffd_wp)) > entry = pte_mkuffd_wp(entry); > + set_pte_at(vma->vm_mm, addr, vmf->pte, entry); I'm not sure this is safe. As soon as you call set_pte_at(), the page can be found by GUP. If it is, and it doesn't have rmap set up, aren't things going to go horribly wrong?