PC sampling bringup
Change-Id: I0d041c4c8c3778f2c328cde38432bc72223706a3 pc sampling integration fix Change-Id: Ia66ff876d2d99ec4d561daf8320b65d75f5cd2fe
This commit is contained in:
@@ -130,24 +130,35 @@ class InterceptQueue {
|
||||
Queue* proxy = obj->proxy_;
|
||||
|
||||
if (submit_callback_fun_) {
|
||||
for (uint64_t j = 0; j < count; ++j) {
|
||||
const packet_t* packet = &packets_arr[j];
|
||||
const hsa_kernel_dispatch_packet_t* dispatch_packet =
|
||||
reinterpret_cast<const hsa_kernel_dispatch_packet_t*>(packet);
|
||||
mutex_.lock();
|
||||
auto* callback_fun = submit_callback_fun_;
|
||||
void* callback_arg = submit_callback_arg_;
|
||||
mutex_.unlock();
|
||||
|
||||
uint64_t kernel_object = dispatch_packet->kernel_object;
|
||||
const amd_kernel_code_t* kernel_code = GetKernelCode(kernel_object);
|
||||
const char* kernel_name = (GetHeaderType(packet) == HSA_PACKET_TYPE_KERNEL_DISPATCH) ?
|
||||
QueryKernelName(kernel_object, kernel_code) : NULL;
|
||||
if (callback_fun) {
|
||||
for (uint64_t j = 0; j < count; ++j) {
|
||||
const packet_t* packet = &packets_arr[j];
|
||||
const hsa_kernel_dispatch_packet_t* dispatch_packet =
|
||||
reinterpret_cast<const hsa_kernel_dispatch_packet_t*>(packet);
|
||||
|
||||
// Prepareing submit callback data
|
||||
rocprofiler_hsa_callback_data_t data{};
|
||||
data.submit.packet = (void*)packet;
|
||||
data.submit.kernel_name = kernel_name;
|
||||
data.submit.queue = obj->queue_;
|
||||
data.submit.device_type = obj->agent_info_->dev_type;
|
||||
data.submit.device_id = obj->agent_info_->dev_index;
|
||||
submit_callback_fun_(ROCPROFILER_HSA_CB_ID_SUBMIT, &data, submit_callback_arg_);
|
||||
if (GetHeaderType(packet) == HSA_PACKET_TYPE_KERNEL_DISPATCH) {
|
||||
uint64_t kernel_object = dispatch_packet->kernel_object;
|
||||
const amd_kernel_code_t* kernel_code = GetKernelCode(kernel_object);
|
||||
const char* kernel_name = (GetHeaderType(packet) == HSA_PACKET_TYPE_KERNEL_DISPATCH) ?
|
||||
QueryKernelName(kernel_object, kernel_code) : NULL;
|
||||
|
||||
// Prepareing submit callback data
|
||||
rocprofiler_hsa_callback_data_t data{};
|
||||
data.submit.packet = (void*)packet;
|
||||
data.submit.kernel_name = kernel_name;
|
||||
data.submit.queue = obj->queue_;
|
||||
data.submit.device_type = obj->agent_info_->dev_type;
|
||||
data.submit.device_id = obj->agent_info_->dev_index;
|
||||
callback_fun(ROCPROFILER_HSA_CB_ID_SUBMIT, &data, callback_arg);
|
||||
} else {
|
||||
callback_fun(ROCPROFILER_HSA_CB_ID_SUBMIT, NULL, callback_arg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Viittaa uudesa ongelmassa
Block a user