diff --git a/libdevice/sanitizer/asan_rtl.cpp b/libdevice/sanitizer/asan_rtl.cpp index b6ee9fdd5b90c..97d2e567990d8 100644 --- a/libdevice/sanitizer/asan_rtl.cpp +++ b/libdevice/sanitizer/asan_rtl.cpp @@ -80,7 +80,8 @@ static __SYCL_CONSTANT__ const char __generic_to[] = #define ASAN_DEBUG(X) \ do { \ - auto launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; \ + auto launch_info = \ + (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; \ if (launch_info->Debug) { \ X; \ } \ @@ -125,7 +126,7 @@ inline void ConvertGenericPointer(uptr &addr, uint32_t &as) { } inline uptr MemToShadow_CPU(uptr addr) { - auto launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; + auto launch_info = (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; return launch_info->GlobalShadowOffset + (addr >> ASAN_SHADOW_SCALE); } @@ -134,7 +135,7 @@ inline uptr MemToShadow_DG2(uptr addr, uint32_t as) { ConvertGenericPointer(addr, as); } - auto launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; + auto launch_info = (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; if (as == ADDRESS_SPACE_GLOBAL) { // global uptr shadow_ptr; if (addr & 0xFFFF000000000000ULL) { // Device USM @@ -214,7 +215,7 @@ inline uptr MemToShadow_PVC(uptr addr, uint32_t as) { ConvertGenericPointer(addr, as); } - auto launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; + auto launch_info = (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; if (as == ADDRESS_SPACE_GLOBAL) { // global uptr shadow_ptr; if (addr & 0xFF00000000000000) { // Device USM @@ -301,7 +302,7 @@ inline uptr MemToShadow(uptr addr, uint32_t as) { #elif defined(__LIBDEVICE_DG2__) shadow_ptr = MemToShadow_DG2(addr, as); #else - auto launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; + auto launch_info = (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; if (launch_info->DeviceTy == DeviceType::CPU) { shadow_ptr = MemToShadow_CPU(addr); } else if (launch_info->DeviceTy == DeviceType::GPU_PVC) { @@ -379,12 +380,12 @@ void __asan_internal_report_save(ErrorType error_type) { __spirv_BuiltInWorkgroupId.y * __spirv_BuiltInNumWorkgroups.z + __spirv_BuiltInWorkgroupId.z; - auto &SanitizerReport = ((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo) + auto &SanitizerReport = ((__SYCL_GLOBAL__ AsanRuntimeData *)__AsanLaunchInfo) ->Report[WG_LID % ASAN_MAX_NUM_REPORTS]; if (atomicCompareAndSet( - &(((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo)->ReportFlag), 1, - 0) == 0 && + &(((__SYCL_GLOBAL__ AsanRuntimeData *)__AsanLaunchInfo)->ReportFlag), + 1, 0) == 0 && atomicCompareAndSet(&SanitizerReport.Flag, Desired, Expected) == Expected) { SanitizerReport.ErrorTy = error_type; @@ -415,13 +416,13 @@ void __asan_internal_report_save( __spirv_BuiltInWorkgroupId.y * __spirv_BuiltInNumWorkgroups.z + __spirv_BuiltInWorkgroupId.z; - auto &SanitizerReport = ((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo) + auto &SanitizerReport = ((__SYCL_GLOBAL__ AsanRuntimeData *)__AsanLaunchInfo) ->Report[WG_LID % ASAN_MAX_NUM_REPORTS]; if ((is_recover || atomicCompareAndSet( - &(((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo)->ReportFlag), 1, - 0) == 0) && + &(((__SYCL_GLOBAL__ AsanRuntimeData *)__AsanLaunchInfo)->ReportFlag), + 1, 0) == 0) && atomicCompareAndSet(&SanitizerReport.Flag, Desired, Expected) == Expected) { @@ -853,7 +854,7 @@ __asan_set_shadow_dynamic_local(uptr ptr, uint32_t num_args) { ASAN_DEBUG(__spirv_ocl_printf(__mem_set_shadow_dynamic_local_begin)); - auto *launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; + auto *launch_info = (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; if (num_args != launch_info->NumLocalArgs) { __spirv_ocl_printf(__mem_report_arg_count_incorrect, num_args, launch_info->NumLocalArgs); @@ -887,7 +888,7 @@ __asan_unpoison_shadow_dynamic_local(uptr ptr, uint32_t num_args) { ASAN_DEBUG(__spirv_ocl_printf(__mem_unpoison_shadow_dynamic_local_begin)); - auto *launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; + auto *launch_info = (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; if (num_args != launch_info->NumLocalArgs) { __spirv_ocl_printf(__mem_report_arg_count_incorrect, num_args, launch_info->NumLocalArgs); @@ -926,7 +927,7 @@ DEVICE_EXTERN_C_NOINLINE void __asan_set_shadow_private(uptr begin, uptr size, ASAN_DEBUG(__spirv_ocl_printf(__mem_set_shadow_private_begin)); - auto *launch_info = (__SYCL_GLOBAL__ const LaunchInfo *)__AsanLaunchInfo; + auto *launch_info = (__SYCL_GLOBAL__ const AsanRuntimeData *)__AsanLaunchInfo; if (launch_info->PrivateShadowOffset == 0) return; diff --git a/sycl/cmake/modules/UnifiedRuntimeTag.cmake b/sycl/cmake/modules/UnifiedRuntimeTag.cmake index 160ba723de831..a1550de09acac 100644 --- a/sycl/cmake/modules/UnifiedRuntimeTag.cmake +++ b/sycl/cmake/modules/UnifiedRuntimeTag.cmake @@ -1,7 +1,7 @@ -# commit 5f4a5a27e8192ee41ce21c8fb140d770c779af78 -# Merge: 4111306dc9d2 039cf144f535 +# commit a172cde4bc2857dcf74b0b2907a5b0f90566e808 (HEAD, origin/main, origin/HEAD) +# Merge: 1851eff47b0a cde0d4c820b0 # Author: Martin Grant -# Date: Thu Dec 5 10:49:58 2024 +0000 -# Merge pull request #2334 from winstonzhang-intel/interrupt-based -# [L0] Interrupt-based event implementation -set(UNIFIED_RUNTIME_TAG 5f4a5a27e8192ee41ce21c8fb140d770c779af78) +# Date: Thu Dec 5 12:29:44 2024 +0000 +# Merge pull request #2249 from zhaomaosu/use-device-usm-for-rtl-data +# [DeviceASAN] Use device usm to sync asan runtime data instead of shared usm +set(UNIFIED_RUNTIME_TAG a172cde4bc2857dcf74b0b2907a5b0f90566e808)