Re: [PATCH v2] sparc64: Add support for Application Data Integrity (ADI)

From: Andy Lutomirski
Date: Mon Mar 07 2016 - 12:54:26 EST


On Mon, Mar 7, 2016 at 9:46 AM, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> wrote:
> On 03/07/2016 08:06 AM, Khalid Aziz wrote:
>> Top 4-bits of sparc64 virtual address are used for version tag only when
>> a process has its PSTATE.mcde bit set and it is accessing a memory
>> region that has ADI enabled on it (TTE.mcd set) and a version tag was
>> set on the virtual address being accessed. These 4-bits retain their
>> original semantics in all other cases.
>
> OK, so this effectively reduces the address space of a process using the
> feature. Do we need to do anything explicit to keep an app from using
> that address space? Do we make sure the kernel doesn't place VMAs
> there? Do we respect mmap() hints that try to place memory there?

Also, what happens when someone does this to an aliased page? This
could be a MAP_SHARED mapping or a not-yet-COWed MAP_ANONYMOUS
mapping.

Also, what am I missing? Tying these tags to the physical page seems
like a poor design to me. This seems really awkward to use.

--
Andy Lutomirski
AMA Capital Management, LLC