PC sampling bringup

Change-Id: I0d041c4c8c3778f2c328cde38432bc72223706a3

pc sampling integration fix

Change-Id: Ia66ff876d2d99ec4d561daf8320b65d75f5cd2fe
This commit is contained in:
Evgeny
2020-01-23 20:56:42 -06:00
vanhempi 4c921407ac
commit 9df9fddcfb
9 muutettua tiedostoa jossa 251 lisäystä ja 30 poistoa
+27 -16
Näytä tiedosto
@@ -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);
}
}
}
}