anv/stream_alloc: Properly manage valgrind NOACCESS and UNDEFINED status
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 30 Dec 2015 18:33:09 +0000 (10:33 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 30 Dec 2015 18:36:19 +0000 (10:36 -0800)
commita0b2829f200288a85899884019c2aea530a95c46
treea207b105a9dc72dbfa71f7d4df5cf0d0b82bb7a2
parent91d93f79083596d761a245643647c4c0066556b3
anv/stream_alloc: Properly manage valgrind NOACCESS and UNDEFINED status

When I first did the valgrindifying for stream allocators, I misunderstood
some things about valgrind's expectations for NOACCESS and UNDEFINED.
First off, valgrind expects things to be marked NOACCESS before you
allocate out of them.  Since our blocks came from a pool backed by a
mmapped memfd, they came in as UNDEFINED; we needed to mark them as
NOACCESS.  Also, I didn't realize that VALGRIND_MEMPOOL_CHANGE only updated
the mempool allocation state and didn't actually change definedness; we had
to add a VALGRIND_MAKE_MEM_UNDEFINED to get rid of the NOACCESS on the
newly allocated portion.
src/vulkan/anv_allocator.c