On Mon, Aug 24, 2020 at 11:44:50AM -0700, Randy Dunlap wrote: > On 8/24/20 11:27 AM, Catalin Marinas wrote: > > index 6d232837cbee..10cf81d70657 100644 > > --- a/arch/arm64/Kconfig > > +++ b/arch/arm64/Kconfig > > @@ -1664,6 +1664,37 @@ config ARCH_RANDOM > > provides a high bandwidth, cryptographically secure > > hardware random number generator. > > > > +config ARM64_AS_HAS_MTE > > + # Binutils gained initial support for MTE in 2.32.0. However, a > > + # late architecture addition (LDGM/STGM) is only supported in > > + # the newer 2.32.x and 2.33 versions. > > + def_bool $(as-instr,.arch armv8.5-a+memtag\nstgm xzr$(comma)[x0]) > > Would you mind translating that for me? > Yes, I read the v7 Notes, but that only helped a little bit. The initial MTE support in binutils 2.32.0, testable above with ".arch armv8.5-a+memtag", was incomplete. Historically, I think it was based on a beta version of the architecture but before the final architecture release (ARMv8.5), MTE gained a couple of new instructions: STGM/LDGM. Since there are binutils versions out there which don't understand STGM even though they claim to support .arch armv8.5-a+memtag, it's better for the above check to include the STGM instruction. I'll see if I can make the comment above clearer. > > + bool "Memory Tagging Extension support" > > + default y > > + depends on ARM64_AS_HAS_MTE && ARM64_TAGGED_ADDR_ABI > > + select ARCH_USES_HIGH_VMA_FLAGS > > + help > > + Memory Tagging (part of the ARMv8.5 Extensions) provides > > + architectural support for run-time, always-on detection of > > runtime, > as is used below. Thanks. -- Catalin