]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/crimson/seastore/CMakeLists: tune ASan's UAR fake stack size
authorChanyoung Park <chaney.p@kakaoenterprise.com>
Mon, 4 Aug 2025 07:13:24 +0000 (07:13 +0000)
committerChanyoung Park <chaney.p@kakaoenterprise.com>
Thu, 7 Aug 2025 08:21:43 +0000 (08:21 +0000)
Avoids severe slowdowns with detect_stack_use_after_return=1.
The root cause is unclear, but ASan's fake stack GC behavior is
suspected. Tuning the UAR (Use-After-Return) fake stack size
(reduced from 64KB–1MB to 64KB) helped delay the onset of the
performance degradation.

Fixes: https://tracker.ceph.com/issues/71704
Signed-off-by: Chanyoung Park <chaney.p@kakaoenterprise.com>
src/test/crimson/seastore/CMakeLists.txt

index dcd10ce10ddb6c059ceebab22f0939c5602eb3aa..9c6dbb316b89272ea55a4880daab680d820ca331 100644 (file)
@@ -1,3 +1,10 @@
+# Fixes: https://tracker.ceph.com/issues/71704
+function(avoid_asan_uar_slowdown name)
+  set_tests_properties(${name} PROPERTIES
+    ENVIRONMENT_MODIFICATION
+    ASAN_OPTIONS=string_append::max_uar_stack_size_log=16)
+endfunction()
+
 if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM")
   # See https://tracker.ceph.com/issues/70254
   add_executable(unittest-transaction-manager
@@ -10,8 +17,9 @@ if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM")
     unittest-transaction-manager
     ${CMAKE_DL_LIBS}
     crimson-seastore)
+  avoid_asan_uar_slowdown(unittest-transaction-manager)
 
-    add_executable(unittest-omap-manager
+  add_executable(unittest-omap-manager
     test_omap_manager.cc
     ../gtest_seastar.cc)
   add_ceph_unittest(unittest-omap-manager
@@ -20,6 +28,7 @@ if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM")
     unittest-omap-manager
     ${CMAKE_DL_LIBS}
     crimson-seastore)
+  avoid_asan_uar_slowdown(unittest-omap-manager)
 endif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM")
 
 add_executable(unittest-btree-lba-manager
@@ -63,6 +72,7 @@ target_link_libraries(
   crimson-seastore
   crimson-os
   crimson-common)
+avoid_asan_uar_slowdown(unittest-object-data-handler)
 
 add_executable(unittest-collection-manager
   test_collection_manager.cc
@@ -87,6 +97,7 @@ target_link_libraries(
   ${CMAKE_DL_LIBS}
   crimson-seastore
   crimson-common)
+avoid_asan_uar_slowdown(unittest-seastore)
 
 add_executable(unittest-seastore-randomblock-manager
   test_randomblock_manager.cc)