From d82488c21291cc6f7f9ca817129dbbb7ed68b6e2 Mon Sep 17 00:00:00 2001 From: Venkateshwar Reddy Kandula Date: Mon, 12 Oct 2026 16:45:28 +0000 Subject: [PATCH 1/2] fix(rocprofiler-sdk): handle HSA execute permissions in formatter --- .../source/lib/rocprofiler-sdk/hsa/utils.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp index c408aab0394a..41dc92df4483 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp @@ -131,14 +131,22 @@ struct formatter auto format(hsa_access_permission_t v, Ctx& ctx) const { auto label = [v]() -> std::string_view { - switch(v) + // Older HSA headers do not define HSA_ACCESS_PERMISSION_EX (1 << 2). + // Use the integer value to support those headers and combined permissions. + constexpr uint32_t execute = 1U << 2; + + switch(static_cast(v)) { case HSA_ACCESS_PERMISSION_NONE: return "NONE"; case HSA_ACCESS_PERMISSION_RO: return "READ_ONLY"; case HSA_ACCESS_PERMISSION_WO: return "WRITE_ONLY"; case HSA_ACCESS_PERMISSION_RW: return "READ_WRITE"; + case execute: return "EXECUTE"; + case HSA_ACCESS_PERMISSION_RO | execute: return "READ_EXECUTE"; + case HSA_ACCESS_PERMISSION_WO | execute: return "WRITE_EXECUTE"; + case HSA_ACCESS_PERMISSION_RW | execute: return "READ_WRITE_EXECUTE"; + default: return "UNKNOWN"; } - return "NONE"; }(); return fmt::format_to(ctx.out(), "{}", label); } From 774a724edaf3910ef96d2a08d43a2b2748982b90 Mon Sep 17 00:00:00 2001 From: Venkateshwar Reddy Kandula Date: Mon, 12 Oct 2026 17:07:12 +0000 Subject: [PATCH 2/2] address comments. --- .../source/lib/rocprofiler-sdk/hsa/utils.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp index 41dc92df4483..5d4684a03913 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hsa/utils.hpp @@ -131,11 +131,13 @@ struct formatter auto format(hsa_access_permission_t v, Ctx& ctx) const { auto label = [v]() -> std::string_view { + using value_type = std::underlying_type_t; + // Older HSA headers do not define HSA_ACCESS_PERMISSION_EX (1 << 2). // Use the integer value to support those headers and combined permissions. - constexpr uint32_t execute = 1U << 2; + constexpr value_type execute = 1U << 2; - switch(static_cast(v)) + switch(static_cast(v)) { case HSA_ACCESS_PERMISSION_NONE: return "NONE"; case HSA_ACCESS_PERMISSION_RO: return "READ_ONLY";