[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20230523002518.1799481-1-pcc@google.com>
Date: Mon, 22 May 2023 17:25:14 -0700
From: Peter Collingbourne <pcc@...gle.com>
To: Catalin Marinas <catalin.marinas@....com>
Cc: Peter Collingbourne <pcc@...gle.com>,
"Qun-wei Lin (林群崴)"
<Qun-wei.Lin@...iatek.com>, linux-arm-kernel@...ts.infradead.org,
linux-mm@...ck.org, linux-kernel@...r.kernel.org,
"surenb@...gle.com" <surenb@...gle.com>,
"david@...hat.com" <david@...hat.com>,
"Chinwen Chang (張錦文)"
<chinwen.chang@...iatek.com>,
"kasan-dev@...glegroups.com" <kasan-dev@...glegroups.com>,
"Kuan-Ying Lee (李冠穎)"
<Kuan-Ying.Lee@...iatek.com>,
"Casper Li (李中榮)"
<casper.li@...iatek.com>,
"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
vincenzo.frascino@....com,
Alexandru Elisei <alexandru.elisei@....com>, will@...nel.org,
eugenis@...gle.com, Steven Price <steven.price@....com>
Subject: [PATCH v4 0/3] mm: Fix bug affecting swapping in MTE tagged pages
This patch series reworks the logic that handles swapping in page
metadata to fix a reported bug [1] where metadata can sometimes not
be swapped in correctly after commit c145e0b47c77 ("mm: streamline COW
logic in do_swap_page()").
- Patch 1 fixes the bug itself, but still requires architectures
to restore metadata in both arch_swap_restore() and set_pte_at().
- Patch 2 makes it so that architectures only need to restore metadata
in arch_swap_restore().
- Patch 3 changes arm64 to remove support for restoring metadata
in set_pte_at().
[1] https://lore.kernel.org/all/5050805753ac469e8d727c797c2218a9d780d434.camel@mediatek.com/
v4:
- Rebased onto v6.4-rc3
- Reverted change to arch/arm64/mm/mteswap.c; this change was not
valid because swapcache pages can have arch_swap_restore() called
on them multiple times
v3:
- Added patch to call arch_swap_restore() from unuse_pte()
- Rebased onto arm64/for-next/fixes
v2:
- Call arch_swap_restore() directly instead of via arch_do_swap_page()
Peter Collingbourne (3):
mm: Call arch_swap_restore() from do_swap_page()
mm: Call arch_swap_restore() from unuse_pte()
arm64: mte: Simplify swap tag restoration logic
arch/arm64/include/asm/mte.h | 4 ++--
arch/arm64/include/asm/pgtable.h | 14 ++----------
arch/arm64/kernel/mte.c | 37 ++++++--------------------------
mm/memory.c | 7 ++++++
mm/swapfile.c | 7 ++++++
5 files changed, 25 insertions(+), 44 deletions(-)
--
2.40.1.698.g37aff9b760-goog
Powered by blists - more mailing lists