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 770D0C433EF for ; Sat, 4 Dec 2021 18:23:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A37B66B0080; Sat, 4 Dec 2021 13:23:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9BE546B0081; Sat, 4 Dec 2021 13:23:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 837CC6B0082; Sat, 4 Dec 2021 13:23:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0001.hostedemail.com [216.40.44.1]) by kanga.kvack.org (Postfix) with ESMTP id 712586B0080 for ; Sat, 4 Dec 2021 13:23:29 -0500 (EST) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 2F34F89939 for ; Sat, 4 Dec 2021 18:23:19 +0000 (UTC) X-FDA: 78880934118.16.20F623B Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by imf18.hostedemail.com (Postfix) with ESMTP id BA9E94002088 for ; Sat, 4 Dec 2021 18:23:18 +0000 (UTC) Received: by mail-qt1-f169.google.com with SMTP id z9so6802941qtj.9 for ; Sat, 04 Dec 2021 10:23:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen.com; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=hNWUjIP6M+9jPI+vposr8tFgZkSkkk9G+fV/J+7EQZQ=; b=fRvrFl+ZUsP8YgYmwsY1wh4fbEH5xW0O3WGGtse/NvrWFVQOq6gipmotIYRvISTr6E DypH3yV9YKSQTU82KmCL2OxJ4EyfidtygXngmUoCjt4Y2EksD0A1SI/rHoVSZaXDC0qE sc6uVc0z8jSiKNSlTsH0zYzJefEV31IrwmegJuim79SUOnpUHYCCY+fyE2zSAfXdCFYQ M+LNFSwKkB9KiJAETFpfahVg2XOFrVdthRidPGv7kWy+iW7MHnEKT7Dnsf6Xd2f6wXDU qGczVbb49JYE80fT6RtKM9fl/BMxLbPWismHftnIlHvPyxCj7gEQdjiHTo8Ry7+Evv5D wSzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hNWUjIP6M+9jPI+vposr8tFgZkSkkk9G+fV/J+7EQZQ=; b=nkw94kCQQ/yxLi6qocZTvWo+p22ot11UXD/KY/x3psogQ0FPKyBSgVu8G+BvBRRNOi OL2blIDFKKD3i6zj9ed4mxQ54Td3C4fwE6pjgexUlmc9WIV57xJBtnHKx7BHVhbQNkIH 3IuuSejDZaewH/kO2V7p+xWmoPs6P30BI0SR017ni5xZO6tC/NHU6Jx311Ifd4LN2a0Y E34Smr9eP3GU2jhEVMNeowKt1SRP6lGq8cDq6rUZ6iO2t1tyW6dTvpwJdTVPL6yhbQBn 1BcVkT4VqxSjLsB1kWG1nVlX4pB7XgrN4T00liJTRfxhHGSw/dG19yBGXnVShrxbBQPH P55Q== X-Gm-Message-State: AOAM532dBbld5sX5paRJ5ZsOmEJEEf46GhWh4tNk8LgV+Sf81aGELkvV btvexRh8UI8W8GQb6jlUv/VRDQ== X-Google-Smtp-Source: ABdhPJwWZZAgKMoQjM20Hfm2l8Xhw16kkBrBW0fQZy6x5UNzU69TTIE4oP7xryf8nJ8G1uuLy1Nyjw== X-Received: by 2002:a05:622a:1a93:: with SMTP id s19mr28510554qtc.291.1638642198043; Sat, 04 Dec 2021 10:23:18 -0800 (PST) Received: from soleen.c.googlers.com.com (189.216.85.34.bc.googleusercontent.com. [34.85.216.189]) by smtp.gmail.com with ESMTPSA id a24sm4394728qtp.95.2021.12.04.10.23.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Dec 2021 10:23:17 -0800 (PST) From: Pasha Tatashin To: pasha.tatashin@soleen.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, akpm@linux-foundation.org, rientjes@google.com, pjt@google.com, weixugc@google.com, gthelen@google.com, mingo@redhat.com, corbet@lwn.net, will@kernel.org, rppt@kernel.org, keescook@chromium.org, tglx@linutronix.de, peterz@infradead.org, masahiroy@kernel.org, samitolvanen@google.com, dave.hansen@linux.intel.com, x86@kernel.org, frederic@kernel.org, hpa@zytor.com, aneesh.kumar@linux.ibm.com, jirislaby@kernel.org, songmuchun@bytedance.com, qydwhotmail@gmail.com Subject: [PATCH v2 1/4] mm: change page type prior to adding page table entry Date: Sat, 4 Dec 2021 18:23:11 +0000 Message-Id: <20211204182314.1470076-2-pasha.tatashin@soleen.com> X-Mailer: git-send-email 2.34.1.400.ga245620fadb-goog In-Reply-To: <20211204182314.1470076-1-pasha.tatashin@soleen.com> References: <20211204182314.1470076-1-pasha.tatashin@soleen.com> MIME-Version: 1.0 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: BA9E94002088 X-Stat-Signature: jjyegricqp5qftmr3k91utdedt4swo8r Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=soleen.com header.s=google header.b=fRvrFl+Z; spf=pass (imf18.hostedemail.com: domain of pasha.tatashin@soleen.com designates 209.85.160.169 as permitted sender) smtp.mailfrom=pasha.tatashin@soleen.com; dmarc=none X-HE-Tag: 1638642198-260971 Content-Transfer-Encoding: quoted-printable 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: In do_swap_page() we first insert the entry into user page table, and later change the struct page to indicate that this is anonymous page. In all other places we first configure the page metadata and then insert entries into the page table. While odd, the behaviour is benign. Page table check, however, will use the information from struct page to verify the type of entry is inserted. Change the order in do_swap_page() to first update struct page, and later insert pte entry into the page table. Signed-off-by: Pasha Tatashin --- mm/memory.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index ced3274c3deb..9eef54950910 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3635,9 +3635,6 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) pte =3D pte_mkuffd_wp(pte); pte =3D pte_wrprotect(pte); } - set_pte_at(vma->vm_mm, vmf->address, vmf->pte, pte); - arch_do_swap_page(vma->vm_mm, vma, vmf->address, pte, vmf->orig_pte); - vmf->orig_pte =3D pte; =20 /* ksm created a completely new copy */ if (unlikely(page !=3D swapcache && swapcache)) { @@ -3647,6 +3644,10 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) do_page_add_anon_rmap(page, vma, vmf->address, exclusive); } =20 + set_pte_at(vma->vm_mm, vmf->address, vmf->pte, pte); + arch_do_swap_page(vma->vm_mm, vma, vmf->address, pte, vmf->orig_pte); + vmf->orig_pte =3D pte; + swap_free(entry); if (mem_cgroup_swap_full(page) || (vma->vm_flags & VM_LOCKED) || PageMlocked(page)) --=20 2.34.1.400.ga245620fadb-goog