diff --git a/inc/rocprofiler.h b/inc/rocprofiler.h index 74ae477636..f7d559c5c7 100644 --- a/inc/rocprofiler.h +++ b/inc/rocprofiler.h @@ -47,7 +47,7 @@ THE SOFTWARE. #include #include -#define ROCPROFILER_VERSION_MAJOR 6 +#define ROCPROFILER_VERSION_MAJOR 7 #define ROCPROFILER_VERSION_MINOR 0 #ifdef __cplusplus @@ -220,6 +220,7 @@ typedef struct { const hsa_queue_t* queue; // HSA queue uint64_t queue_index; // Index in the queue uint32_t queue_id; // Queue id + hsa_signal_t completion_signal; // Completion signal const hsa_kernel_dispatch_packet_t* packet; // HSA dispatch packet const char* kernel_name; // Kernel name uint64_t kernel_object; // Kernel object pointer diff --git a/src/core/intercept_queue.h b/src/core/intercept_queue.h index e41dcd0fdb..ac74cd4051 100644 --- a/src/core/intercept_queue.h +++ b/src/core/intercept_queue.h @@ -138,6 +138,7 @@ class InterceptQueue { if ((GetHeaderType(packet) == HSA_PACKET_TYPE_KERNEL_DISPATCH) && (dispatch_callback_ != NULL)) { const hsa_kernel_dispatch_packet_t* dispatch_packet = reinterpret_cast(packet); + const hsa_signal_t completion_signal = dispatch_packet->completion_signal; // Adding kernel timing tracker Tracker::entry_t* tracker_entry = NULL; @@ -155,6 +156,7 @@ class InterceptQueue { obj->queue_, user_que_idx, obj->queue_id, + completion_signal, dispatch_packet, kernel_name, kernel_symbol, diff --git a/test/tool/tool.cpp b/test/tool/tool.cpp index ef3645a00c..15031d7b7c 100644 --- a/test/tool/tool.cpp +++ b/test/tool/tool.cpp @@ -616,7 +616,7 @@ hsa_status_t dispatch_callback(const rocprofiler_callback_data_t* callback_data, kernel_properties_ptr->vgpr_count = kernel_code->reserved_vgpr_count; kernel_properties_ptr->sgpr_count = kernel_code->reserved_sgpr_count; kernel_properties_ptr->fbarrier_count = kernel_code->workgroup_fbarrier_count; - kernel_properties_ptr->signal = packet->completion_signal; + kernel_properties_ptr->signal = callback_data->completion_signal; // context properties rocprofiler_properties_t properties{};