On Mon, Mar 7, 2016 at 9:46 AM, Dave Hansen [off-list ref] wrote:
On 03/07/2016 08:06 AM, Khalid Aziz wrote:
quoted
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