# --- T2-COPYRIGHT-BEGIN --- # t2/package/*/hip-rocclr/hotfix-x86-mm.patch # Copyright (C) 2025 The T2 SDE Project # SPDX-License-Identifier: GPL-2.0 or patched project license # --- T2-COPYRIGHT-END --- --- clr-rocm-6.3.3/hipamd/src/hip_graph_internal.cpp.vanilla 2025-03-23 20:01:54.891492459 +0100 +++ clr-rocm-6.3.3/hipamd/src/hip_graph_internal.cpp 2025-03-23 20:10:18.702370859 +0100 @@ -979,9 +979,13 @@ address dev_ptr = kernarg_graph_.back().kernarg_pool_addr_ + kernarg_graph_.back().kernarg_pool_size_; auto kSentinel = *reinterpret_cast(dev_ptr - 1); +#if defined(__i386__) || defined(__x86_64__) _mm_sfence(); +#endif *(dev_ptr - 1) = kSentinel; +#if defined(__i386__) || defined(__x86_64__) _mm_mfence(); +#endif kSentinel = *reinterpret_cast(dev_ptr - 1); } } --- clr-rocm-6.3.3/rocclr/device/rocm/rocvirtual.cpp.vanilla 2025-03-23 20:01:54.921492522 +0100 +++ clr-rocm-6.3.3/rocclr/device/rocm/rocvirtual.cpp 2025-03-23 20:10:48.422433271 +0100 @@ -3282,9 +3282,13 @@ auto kSentinel = *reinterpret_cast(dev().info().hdpMemFlushCntl); } else if (kernArgImpl == KernelArgImpl::DeviceKernelArgsReadback && argSize != 0) { +#if defined(__i386__) || defined(__x86_64__) _mm_sfence(); +#endif *(argBuffer + argSize - 1) = *(parameters + argSize - 1); +#if defined(__i386__) || defined(__x86_64__) _mm_mfence(); +#endif auto kSentinel = *reinterpret_cast( argBuffer + argSize - 1); }