From 56b1410652d39deba76c3d7075d0c1e93d732232 Mon Sep 17 00:00:00 2001 From: Maosu Zhao Date: Thu, 1 Aug 2024 18:11:37 +0800 Subject: [PATCH] [UR][DeviceSantizer] Enable Symoblizer for UR santizer layer (#14513) UR Part: https://github.com/oneapi-src/unified-runtime/pull/1844 --- sycl/cmake/modules/FetchUnifiedRuntime.cmake | 1 + sycl/test-e2e/AddressSanitizer/bad-free/bad-free-minus1.cpp | 4 ++++ sycl/test-e2e/AddressSanitizer/bad-free/bad-free-plus1.cpp | 4 ++++ sycl/test-e2e/AddressSanitizer/double-free/double-free.cpp | 4 ++++ .../AddressSanitizer/use-after-free/quarantine-no-free.cpp | 2 ++ .../AddressSanitizer/use-after-free/use-after-free.cpp | 2 ++ 6 files changed, 17 insertions(+) diff --git a/sycl/cmake/modules/FetchUnifiedRuntime.cmake b/sycl/cmake/modules/FetchUnifiedRuntime.cmake index 6da3439a84003..5b6d6308d4fd4 100644 --- a/sycl/cmake/modules/FetchUnifiedRuntime.cmake +++ b/sycl/cmake/modules/FetchUnifiedRuntime.cmake @@ -30,6 +30,7 @@ option(SYCL_UMF_DISABLE_HWLOC set(UR_BUILD_EXAMPLES OFF CACHE BOOL "Build example applications." FORCE) set(UR_BUILD_TESTS OFF CACHE BOOL "Build unit tests." FORCE) set(UR_BUILD_XPTI_LIBS OFF) +set(UR_ENABLE_SYMBOLIZER ON CACHE BOOL "Enable symbolizer for sanitizer layer.") set(UR_ENABLE_TRACING ON) if("level_zero" IN_LIST SYCL_ENABLE_PLUGINS) diff --git a/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-minus1.cpp b/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-minus1.cpp index 1c76c29001c32..87bc69308a9d8 100644 --- a/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-minus1.cpp +++ b/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-minus1.cpp @@ -27,3 +27,7 @@ int main() { // CHECK-HOST: [[ADDR]] is located inside of Host USM region {{\[0x.*, 0x.*\)}} // CHECK-SHARED: [[ADDR]] is located inside of Shared USM region {{\[0x.*, 0x.*\)}} // CHECK-DEVICE: [[ADDR]] is located inside of Device USM region {{\[0x.*, 0x.*\)}} +// CHECK: allocated here: +// CHECK-HOST: in main {{.*bad-free-minus1.cpp:}}[[@LINE-15]] +// CHECK-SHARED: in main {{.*bad-free-minus1.cpp:}}[[@LINE-14]] +// CHECK-DEVICE: in main {{.*bad-free-minus1.cpp:}}[[@LINE-13]] diff --git a/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-plus1.cpp b/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-plus1.cpp index a39a375eb7715..cd80e8baa77ad 100644 --- a/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-plus1.cpp +++ b/sycl/test-e2e/AddressSanitizer/bad-free/bad-free-plus1.cpp @@ -25,5 +25,9 @@ int main() { // CHECK-HOST: [[ADDR]] is located inside of Host USM region {{\[0x.*, 0x.*\)}} // CHECK-SHARED: [[ADDR]] is located inside of Shared USM region {{\[0x.*, 0x.*\)}} // CHECK-DEVICE: [[ADDR]] is located inside of Device USM region {{\[0x.*, 0x.*\)}} + // CHECK: allocated here: + // CHECK-HOST: in main {{.*bad-free-plus1.cpp:}}[[@LINE-13]] + // CHECK-SHARED: in main {{.*bad-free-plus1.cpp:}}[[@LINE-12]] + // CHECK-DEVICE: in main {{.*bad-free-plus1.cpp:}}[[@LINE-11]] return 0; } diff --git a/sycl/test-e2e/AddressSanitizer/double-free/double-free.cpp b/sycl/test-e2e/AddressSanitizer/double-free/double-free.cpp index 5356310f1724d..438b5b5f7ff1b 100644 --- a/sycl/test-e2e/AddressSanitizer/double-free/double-free.cpp +++ b/sycl/test-e2e/AddressSanitizer/double-free/double-free.cpp @@ -30,4 +30,8 @@ int main() { // CHECK-SHARED: [[ADDR]] is located inside of Shared USM region {{\[0x.*, 0x.*\)}} // CHECK-DEVICE: [[ADDR]] is located inside of Device USM region {{\[0x.*, 0x.*\)}} // CHECK: freed here +// CHECH: in main {{.*double-free.cpp:}}[@LINE-33] // CHECK: previously allocated here +// CHECK-HOST: in main {{.*double-free.cpp:}}[[@LINE-19]] +// CHECK-SHARED: in main {{.*double-free.cpp:}}[[@LINE-18]] +// CHECK-DEVICE: in main {{.*double-free.cpp:}}[[@LINE-17]] diff --git a/sycl/test-e2e/AddressSanitizer/use-after-free/quarantine-no-free.cpp b/sycl/test-e2e/AddressSanitizer/use-after-free/quarantine-no-free.cpp index c512cfe556957..23b08b37f210b 100644 --- a/sycl/test-e2e/AddressSanitizer/use-after-free/quarantine-no-free.cpp +++ b/sycl/test-e2e/AddressSanitizer/use-after-free/quarantine-no-free.cpp @@ -46,7 +46,9 @@ int main() { // CHECK: #0 {{.*}} {{.*quarantine-no-free.cpp}}:[[@LINE-5]] // CHECK: [[ADDR]] is located inside of Device USM region [{{0x.*}}, {{0x.*}}) // CHECK: allocated here: + // CHECK: in main {{.*quarantine-no-free.cpp}}:[[@LINE-27]] // CHECK: released here: + // CHECK: in main {{.*quarantine-no-free.cpp}}:[[@LINE-25]] return 0; } diff --git a/sycl/test-e2e/AddressSanitizer/use-after-free/use-after-free.cpp b/sycl/test-e2e/AddressSanitizer/use-after-free/use-after-free.cpp index 59cbb37c88fb9..fbf99ada75584 100644 --- a/sycl/test-e2e/AddressSanitizer/use-after-free/use-after-free.cpp +++ b/sycl/test-e2e/AddressSanitizer/use-after-free/use-after-free.cpp @@ -21,7 +21,9 @@ int main() { // CHECK: #0 {{.*}} {{.*use-after-free.cpp:}}[[@LINE-5]] // CHECK: [[ADDR]] is located inside of Device USM region [{{0x.*}}, {{0x.*}}) // CHECK: allocated here: + // CHECK: in main {{.*use-after-free.cpp:}}[[@LINE-14]] // CHECK: released here: + // CHECK: in main {{.*use-after-free.cpp:}}[[@LINE-15]] return 0; }