This patch require enabling DFSan in Clang,
and also adding ShadowPtrMask in LLVM.
I will also submit those patches for review.
Details
Diff Detail
Event Timeline
Not all AArch64 is 39bits, some are 42bits.
We had this discussion in the ASAN side, and allowing 42bits made it work on those machines while it didn't increase memory footprint that much for 39bits, so assuming 42 was preferred. If here we have the same case, I'd guess taking the same assumption would be the way to go.
Please check with Kostya fist, though.
cheers,
--renato
AAarch64 has only 39 addressable bits not like MIPS64 which has 40 addressable bits.
Not all AArch64 is 39bits, some are 42bits.
We had this discussion in the ASAN side, and allowing 42bits made it work on those machines while it didn't increase memory footprint that much for 39bits, so assuming 42 was preferred. If here we have the same case, I'd guess taking the same assumption would be the way to go.
In ASAN code I see
kAArch64_ShadowOffset64 = 1ULL << 36;
which will limit the upper memory to 0x7fffffffff.
Yes, this has been discussed, but not applied. :)
I think it should be safe to assume 39bits for now, and let the discussion flow on all three ASAN/TSAN/DFSAN later to increase that value. Just giving you the heads up.
cheers,
--renato