From: Peter Collingbourne <pcc@google.com> To: Catalin Marinas <catalin.marinas@arm.com> Cc: "Peter Collingbourne" <pcc@google.com>, "Qun-wei Lin (林群崴)" <Qun-wei.Lin@mediatek.com>, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "surenb@google.com" <surenb@google.com>, "david@redhat.com" <david@redhat.com>, "Chinwen Chang (張錦文)" <chinwen.chang@mediatek.com>, "kasan-dev@googlegroups.com" <kasan-dev@googlegroups.com>, "Kuan-Ying Lee (李冠穎)" <Kuan-Ying.Lee@mediatek.com>, "Casper Li (李中榮)" <casper.li@mediatek.com>, "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>, vincenzo.frascino@arm.com, "Alexandru Elisei" <alexandru.elisei@arm.com>, will@kernel.org, eugenis@google.com, "Steven Price" <steven.price@arm.com> Subject: [PATCH v4 2/3] mm: Call arch_swap_restore() from unuse_pte() Date: Mon, 22 May 2023 17:43:09 -0700 [thread overview] Message-ID: <20230523004312.1807357-3-pcc@google.com> (raw) In-Reply-To: <20230523004312.1807357-1-pcc@google.com> We would like to move away from requiring architectures to restore metadata from swap in the set_pte_at() implementation, as this is not only error-prone but adds complexity to the arch-specific code. This requires us to call arch_swap_restore() before calling swap_free() whenever pages are restored from swap. We are currently doing so everywhere except in unuse_pte(); do so there as well. Signed-off-by: Peter Collingbourne <pcc@google.com> Link: https://linux-review.googlesource.com/id/I68276653e612d64cde271ce1b5a99ae05d6bbc4f Suggested-by: David Hildenbrand <david@redhat.com> Acked-by: David Hildenbrand <david@redhat.com> Acked-by: "Huang, Ying" <ying.huang@intel.com> Reviewed-by: Steven Price <steven.price@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> --- mm/swapfile.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mm/swapfile.c b/mm/swapfile.c index 274bbf797480..e9843fadecd6 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1794,6 +1794,13 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, goto setpte; } + /* + * Some architectures may have to restore extra metadata to the page + * when reading from swap. This metadata may be indexed by swap entry + * so this must be called before swap_free(). + */ + arch_swap_restore(entry, page_folio(page)); + /* See do_swap_page() */ BUG_ON(!PageAnon(page) && PageMappedToDisk(page)); BUG_ON(PageAnon(page) && PageAnonExclusive(page)); -- 2.40.1.698.g37aff9b760-goog
WARNING: multiple messages have this Message-ID (diff)
From: Peter Collingbourne <pcc@google.com> To: Catalin Marinas <catalin.marinas@arm.com> Cc: "Peter Collingbourne" <pcc@google.com>, "Qun-wei Lin (林群崴)" <Qun-wei.Lin@mediatek.com>, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "surenb@google.com" <surenb@google.com>, "david@redhat.com" <david@redhat.com>, "Chinwen Chang (張錦文)" <chinwen.chang@mediatek.com>, "kasan-dev@googlegroups.com" <kasan-dev@googlegroups.com>, "Kuan-Ying Lee (李冠穎)" <Kuan-Ying.Lee@mediatek.com>, "Casper Li (李中榮)" <casper.li@mediatek.com>, "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>, vincenzo.frascino@arm.com, "Alexandru Elisei" <alexandru.elisei@arm.com>, will@kernel.org, eugenis@google.com, "Steven Price" <steven.price@arm.com> Subject: [PATCH v4 2/3] mm: Call arch_swap_restore() from unuse_pte() Date: Mon, 22 May 2023 17:43:09 -0700 [thread overview] Message-ID: <20230523004312.1807357-3-pcc@google.com> (raw) In-Reply-To: <20230523004312.1807357-1-pcc@google.com> We would like to move away from requiring architectures to restore metadata from swap in the set_pte_at() implementation, as this is not only error-prone but adds complexity to the arch-specific code. This requires us to call arch_swap_restore() before calling swap_free() whenever pages are restored from swap. We are currently doing so everywhere except in unuse_pte(); do so there as well. Signed-off-by: Peter Collingbourne <pcc@google.com> Link: https://linux-review.googlesource.com/id/I68276653e612d64cde271ce1b5a99ae05d6bbc4f Suggested-by: David Hildenbrand <david@redhat.com> Acked-by: David Hildenbrand <david@redhat.com> Acked-by: "Huang, Ying" <ying.huang@intel.com> Reviewed-by: Steven Price <steven.price@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> --- mm/swapfile.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mm/swapfile.c b/mm/swapfile.c index 274bbf797480..e9843fadecd6 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1794,6 +1794,13 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, goto setpte; } + /* + * Some architectures may have to restore extra metadata to the page + * when reading from swap. This metadata may be indexed by swap entry + * so this must be called before swap_free(). + */ + arch_swap_restore(entry, page_folio(page)); + /* See do_swap_page() */ BUG_ON(!PageAnon(page) && PageMappedToDisk(page)); BUG_ON(PageAnon(page) && PageAnonExclusive(page)); -- 2.40.1.698.g37aff9b760-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-05-23 0:53 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-23 0:43 [PATCH v4 0/3] mm: Fix bug affecting swapping in MTE tagged pages Peter Collingbourne 2023-05-23 0:43 ` Peter Collingbourne 2023-05-23 0:43 ` [PATCH v4 1/3] mm: Call arch_swap_restore() from do_swap_page() Peter Collingbourne 2023-05-23 0:43 ` Peter Collingbourne 2023-06-05 14:05 ` Will Deacon 2023-06-05 14:05 ` Will Deacon 2023-06-05 17:41 ` Peter Collingbourne 2023-06-05 17:41 ` Peter Collingbourne 2023-06-29 9:57 ` Catalin Marinas 2023-06-29 9:57 ` Catalin Marinas 2023-07-02 19:38 ` Andrew Morton 2023-07-02 19:38 ` Andrew Morton 2023-07-03 15:05 ` Catalin Marinas 2023-07-03 15:05 ` Catalin Marinas 2023-05-23 0:43 ` Peter Collingbourne [this message] 2023-05-23 0:43 ` [PATCH v4 2/3] mm: Call arch_swap_restore() from unuse_pte() Peter Collingbourne 2023-05-23 0:43 ` [PATCH v4 3/3] arm64: mte: Simplify swap tag restoration logic Peter Collingbourne 2023-05-23 0:43 ` Peter Collingbourne
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20230523004312.1807357-3-pcc@google.com \ --to=pcc@google.com \ --cc=Kuan-Ying.Lee@mediatek.com \ --cc=Qun-wei.Lin@mediatek.com \ --cc=alexandru.elisei@arm.com \ --cc=casper.li@mediatek.com \ --cc=catalin.marinas@arm.com \ --cc=chinwen.chang@mediatek.com \ --cc=david@redhat.com \ --cc=eugenis@google.com \ --cc=gregkh@linuxfoundation.org \ --cc=kasan-dev@googlegroups.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=steven.price@arm.com \ --cc=surenb@google.com \ --cc=vincenzo.frascino@arm.com \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.