tsan: account for mid app range in mem profile
authorDmitry Vyukov <dvyukov@google.com>
Tue, 21 Sep 2021 08:37:33 +0000 (10:37 +0200)
committerDmitry Vyukov <dvyukov@google.com>
Wed, 22 Sep 2021 08:13:31 +0000 (10:13 +0200)
We account low and high ranges, but forgot abount the mid range.
Account mid range as well.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D110148

compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp

index 902b637..087ee88 100644 (file)
@@ -107,9 +107,9 @@ void FillProfileCallback(uptr p, uptr rss, bool file,
     mem[MemShadow] += rss;
   else if (p >= MetaShadowBeg() && p < MetaShadowEnd())
     mem[MemMeta] += rss;
-  else if (p >= LoAppMemBeg() && p < LoAppMemEnd())
-    mem[file ? MemFile : MemMmap] += rss;
-  else if (p >= HiAppMemBeg() && p < HiAppMemEnd())
+  else if ((p >= LoAppMemBeg() && p < LoAppMemEnd()) ||
+           (p >= MidAppMemBeg() && p < MidAppMemEnd()) ||
+           (p >= HiAppMemBeg() && p < HiAppMemEnd()))
     mem[file ? MemFile : MemMmap] += rss;
   else if (p >= HeapMemBeg() && p < HeapMemEnd())
     mem[MemHeap] += rss;