Thread (65 messages) 65 messages, 3 authors, 2020-11-06

Re: [PATCH v8 30/43] arm64: kasan: Allow enabling in-kernel MTE

From: Andrey Konovalov <hidden>
Date: 2020-11-05 18:10:12
Also in: linux-mm, lkml

On Thu, Nov 5, 2020 at 6:39 PM Catalin Marinas [off-list ref] wrote:
On Thu, Nov 05, 2020 at 06:29:17PM +0100, Andrey Konovalov wrote:
quoted
On Thu, Nov 5, 2020 at 6:26 PM Catalin Marinas [off-list ref] wrote:
quoted
On Thu, Nov 05, 2020 at 12:18:45AM +0100, Andrey Konovalov wrote:
quoted
diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c
index 06ba6c923ab7..fcfbefcc3174 100644
--- a/arch/arm64/kernel/mte.c
+++ b/arch/arm64/kernel/mte.c
@@ -121,6 +121,13 @@ void *mte_set_mem_tag_range(void *addr, size_t size, u8 tag)
      return ptr;
 }

+void __init mte_init_tags(u64 max_tag)
+{
+     /* Enable MTE Sync Mode for EL1. */
+     sysreg_clear_set(sctlr_el1, SCTLR_ELx_TCF_MASK, SCTLR_ELx_TCF_SYNC);
+     isb();
+}
Is this going to be called on each CPU? I quickly went through the rest
of the patches and couldn't see how.
Yes, on each CPU. This is done via kasan_init_hw_tags() that is called
from cpu_enable_mte(). This change is added in the "kasan, arm64:
implement HW_TAGS runtime".
Ah, I got there eventually in patch 38. Too many indirections ;) (I'm
sure we could have trimmed them down a bit, hw_init_tags ==
arch_init_tags == mte_init_tags).
The idea with these indirections was to make hw_tags.c to not directly
call MTE stuff and abstract away the underlying memory tagging
implementation. We won't know for sure how fitting these abstractions
are before we add another memory tagging implementation though :)
quoted
Would it make sense to put it into a separate patch?
I think that's fine. I had the impression that kasan_init_hw_tags()
should only be called once.
This was the case before, but not anymore. I've also added a comment
before the kasan_init_hw_tags() definition.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help