[dfsan] Turn off THP at dfsan_flush
authorJianzhou Zhao <jianzhouzh@google.com>
Fri, 12 Feb 2021 03:15:09 +0000 (03:15 +0000)
committerJianzhou Zhao <jianzhouzh@google.com>
Fri, 12 Feb 2021 17:10:09 +0000 (17:10 +0000)
https://reviews.llvm.org/D89662 turned this off at dfsan_init.
dfsan_flush also needs to turn it off.
W/o this a program may get more and more memory usage after hours.

Reviewed-by: morehouse
Differential Revision: https://reviews.llvm.org/D96569

compiler-rt/lib/dfsan/dfsan.cpp

index 43a5fe9..7abdf68 100644 (file)
@@ -551,7 +551,7 @@ static void dfsan_fini() {
 }
 
 extern "C" void dfsan_flush() {
-  if (!MmapFixedNoReserve(ShadowAddr(), UnusedAddr() - ShadowAddr()))
+  if (!MmapFixedSuperNoReserve(ShadowAddr(), UnusedAddr() - ShadowAddr()))
     Die();
 }
 
@@ -560,8 +560,7 @@ static void dfsan_init(int argc, char **argv, char **envp) {
 
   ::InitializePlatformEarly();
 
-  if (!MmapFixedSuperNoReserve(ShadowAddr(), UnusedAddr() - ShadowAddr()))
-    Die();
+  dfsan_flush();
   if (common_flags()->use_madv_dontdump)
     DontDumpShadowMemory(ShadowAddr(), UnusedAddr() - ShadowAddr());