Index: compiler-rt/lib/hwasan/hwasan_thread_list.h =================================================================== --- compiler-rt/lib/hwasan/hwasan_thread_list.h +++ compiler-rt/lib/hwasan/hwasan_thread_list.h @@ -129,6 +129,12 @@ return t; } + void DontNeedThread(Thread *t) { + uptr start = (uptr)t; + uptr end = start + sizeof(Thread) + ring_buffer_size_; + ReleaseMemoryPagesToOS(start, end); + } + void ReleaseThread(Thread *t) { // FIXME: madvise away the ring buffer? RemoveThreadStats(t); @@ -136,6 +142,7 @@ SpinMutexLock l(&list_mutex_); live_list_.Remove(t); free_list_.Push(t); + DontNeedThread(t); } Thread *GetThreadByBufferAddress(uptr p) {