From 3abb3be24587258282d7ad2758253cc88291f3f0 Mon Sep 17 00:00:00 2001 From: "Welton, Benjamin" Date: Tue, 28 Jan 2025 16:46:22 -0800 Subject: [PATCH] [SWDEV-482060] Set execute permission for HSA allocated memory (#151) We need execute permission for HSA memory (req for IB buffers). Enforcement is upcoming which will break counter collection (see ticket). Co-authored-by: Benjamin Welton Co-authored-by: Bhardwaj, Gopesh [ROCm/rocprofiler-sdk commit: 0d701cdaac7043cd4188c03e18195fcdbdfa1fb7] --- .../rocprofiler-sdk/source/lib/rocprofiler-sdk/aql/helpers.cpp | 3 ++- .../tests/bin/hsa-queue-dependency/multiqueue_app.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/aql/helpers.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/aql/helpers.cpp index f94fd9aa0f..18632a88cb 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/aql/helpers.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/aql/helpers.cpp @@ -139,7 +139,8 @@ set_profiler_active_on_queue(hsa_amd_memory_pool_t pool, auto size = (profile.command_buffer.size + mask) & ~mask; if(hsa::get_amd_ext_table()->hsa_amd_memory_pool_allocate_fn( - pool, size, 0, &profile.command_buffer.ptr) != HSA_STATUS_SUCCESS) + pool, size, HSA_AMD_MEMORY_POOL_EXECUTABLE_FLAG, &profile.command_buffer.ptr) != + HSA_STATUS_SUCCESS) { ROCP_WARNING << "Failed to allocate memory to enable profile command on agent, some " "counters will be unavailable"; diff --git a/projects/rocprofiler-sdk/tests/bin/hsa-queue-dependency/multiqueue_app.h b/projects/rocprofiler-sdk/tests/bin/hsa-queue-dependency/multiqueue_app.h index bef48ca153..ee787fb1bf 100644 --- a/projects/rocprofiler-sdk/tests/bin/hsa-queue-dependency/multiqueue_app.h +++ b/projects/rocprofiler-sdk/tests/bin/hsa-queue-dependency/multiqueue_app.h @@ -235,7 +235,8 @@ public: static void* hsa_malloc(size_t size, const Device::Memory& mem) { void* ret; - hsa_status_t err = hsa_amd_memory_pool_allocate(mem.pool, size, 0, &ret); + hsa_status_t err = + hsa_amd_memory_pool_allocate(mem.pool, size, HSA_AMD_MEMORY_POOL_EXECUTABLE_FLAG, &ret); RET_IF_HSA_ERR(err); err = hsa_amd_agents_allow_access(