Messages in this thread | | | Subject | Re: [RFC PATCH v3] sparc64: Add support for Application Data Integrity (ADI) | From | Khalid Aziz <> | Date | Wed, 4 Jan 2017 16:58:13 -0700 |
| |
On 01/04/2017 04:49 PM, Dave Hansen wrote: > On 01/04/2017 03:44 PM, Rob Gardner wrote: >> On 01/04/2017 03:40 PM, Dave Hansen wrote: >>> On 01/04/2017 03:35 PM, Rob Gardner wrote: >>>> Tags are not cleared at all when memory is freed, but rather, lazily >>>> (and automatically) cleared when memory is allocated. >>> What does "allocated" mean in this context? Physical or virtual? What >>> does this do, for instance? >> >> The first time a virtual page is touched by a process after the malloc, >> the kernel does clear_user_page() or something similar, which zeroes the >> memory. At the same time, the memory tags are cleared. > > OK, so the tags can't survive a MADV_FREE. That's definitely something > for apps to understand that use MADV_FREE as a substitute for memset(). > It also means that tags can't be set for physically unallocated memory. > > Neither of those are deal killers, but it would be nice to document it.
This can go into the adi.txt doc file.
> > How does this all work with large pages?
It works with large pages the same way as normal sized pages. The TTE for a large page also will have the mcd bit set in it and tags are set and referenced the same way.
-- Khalid
| |