[PATCH] D70762: scudo: Add initial memory tagging support.
Kevin Brodsky via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 30 05:35:46 PST 2019
kevin.brodsky added inline comments.
================
Comment at: compiler-rt/lib/scudo/standalone/memtag.h:30
+ return (getauxval(AT_HWCAP2) & HWCAP2_MTE) &&
+ (prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0) & PR_MTE_TCF_MASK) !=
+ PR_MTE_TCF_NONE;
----------------
I wonder if this is really a good thing. If libc fails to enable tag checking before the allocator is initialised (which is quite possible, given that until recently `malloc()` was called very early in Bionic's libc_init), then Scudo will not tag anything. Wouldn't it be possible instead to explicitly ask Scudo to use tagging when it is initialised? This would also be more consistent with the `malloc_disable_memory_tagging()` interface: Scudo does not take care of enabling / disabling tag checking, so arguably it shouldn't check if it is enabled either.
================
Comment at: compiler-rt/lib/scudo/standalone/memtag.h:76
+ [ End ] "=&r"(End)
+ : [ Ptr ] "r"(Ptr), [ Size ] "r"(Size));
+}
----------------
Since this asm statement is modifying memory, is it safe to use it without a "memory" clobber? It certainly isn't safe in general. Same comment for the other asm statements that use `st*g`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70762/new/
https://reviews.llvm.org/D70762
More information about the llvm-commits
mailing list