[compiler-rt] c261edb - [NFC][scudo] Check zeros on smaller allocations

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Thu May 27 11:14:34 PDT 2021


Author: Vitaly Buka
Date: 2021-05-27T11:14:26-07:00
New Revision: c261edb277020471b7670a8b2f826efc73c5d941

URL: https://github.com/llvm/llvm-project/commit/c261edb277020471b7670a8b2f826efc73c5d941
DIFF: https://github.com/llvm/llvm-project/commit/c261edb277020471b7670a8b2f826efc73c5d941.diff

LOG: [NFC][scudo] Check zeros on smaller allocations

1Tb counting was the slowest test under the QEMU with MTE.

Added: 
    

Modified: 
    compiler-rt/lib/scudo/standalone/tests/common_test.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/scudo/standalone/tests/common_test.cpp b/compiler-rt/lib/scudo/standalone/tests/common_test.cpp
index 2c79487e77dd..eb3a5bceca93 100644
--- a/compiler-rt/lib/scudo/standalone/tests/common_test.cpp
+++ b/compiler-rt/lib/scudo/standalone/tests/common_test.cpp
@@ -35,27 +35,39 @@ TEST(ScudoCommonTest, SKIP_ON_FUCHSIA(ResidentMemorySize)) {
   const uptr Threshold = Size >> 3;
 
   MapPlatformData Data = {};
-  uptr *P = reinterpret_cast<uptr *>(
-      map(nullptr, Size, "ResidentMemorySize", 0, &Data));
-  const ptr
diff _t N = Size / sizeof(*P);
+  void *P = map(nullptr, Size, "ResidentMemorySize", 0, &Data);
   ASSERT_NE(nullptr, P);
   EXPECT_LT(getResidentMemorySize() - OnStart, Threshold);
-  EXPECT_EQ(std::count(P, P + N, 0), N);
 
   memset(P, 1, Size);
-  EXPECT_EQ(std::count(P, P + N, 0), 0);
   EXPECT_GT(getResidentMemorySize() - OnStart, Size - Threshold);
 
   releasePagesToOS((uptr)P, 0, Size, &Data);
-  EXPECT_EQ(std::count(P, P + N, 0), N);
   // FIXME: does not work with QEMU-user.
   // EXPECT_LT(getResidentMemorySize() - OnStart, Threshold);
 
   memset(P, 1, Size);
-  EXPECT_EQ(std::count(P, P + N, 0), 0);
   EXPECT_GT(getResidentMemorySize() - OnStart, Size - Threshold);
 
   unmap(P, Size, 0, &Data);
 }
 
+TEST(ScudoCommonTest, Zeros) {
+  const uptr Size = 1ull << 20;
+
+  MapPlatformData Data = {};
+  uptr *P = reinterpret_cast<uptr *>(map(nullptr, Size, "Zeros", 0, &Data));
+  const ptr
diff _t N = Size / sizeof(*P);
+  ASSERT_NE(nullptr, P);
+  EXPECT_EQ(std::count(P, P + N, 0), N);
+
+  memset(P, 1, Size);
+  EXPECT_EQ(std::count(P, P + N, 0), 0);
+
+  releasePagesToOS((uptr)P, 0, Size, &Data);
+  EXPECT_EQ(std::count(P, P + N, 0), N);
+
+  unmap(P, Size, 0, &Data);
+}
+
 } // namespace scudo


        


More information about the llvm-commits mailing list