SWDEV-364052 - Print free memory on queue callback

Change-Id: I7d15b6f6277326d5f3e9b784a3443f18ec6ba58a


[ROCm/clr commit: 3e465c5ff8]
Этот коммит содержится в:
Saleel Kudchadker
2022-11-03 19:30:53 -07:00
родитель 32b0929ce3
Коммит 994c9384e7
2 изменённых файлов: 34 добавлений и 4 удалений
+16 -2
Просмотреть файл
@@ -2670,8 +2670,22 @@ static void callbackQueue(hsa_status_t status, hsa_queue_t* queue, void* data) {
// Abort on device exceptions.
const char* errorMsg = 0;
hsa_status_string(status, &errorMsg);
ClPrint(amd::LOG_NONE, amd::LOG_ALWAYS,
"Device::callbackQueue aborting with error : %s code: 0x%x", errorMsg, status);
if (status == HSA_STATUS_ERROR_OUT_OF_RESOURCES) {
size_t global_available_mem = 0;
Device* dev = reinterpret_cast<Device*>(data);
if (HSA_STATUS_SUCCESS != hsa_agent_get_info(dev->getBackendDevice(),
static_cast<hsa_agent_info_t>(HSA_AMD_AGENT_INFO_MEMORY_AVAIL),
&global_available_mem)) {
LogError("HSA_AMD_AGENT_INFO_MEMORY_AVAIL query failed.");
}
ClPrint(amd::LOG_NONE, amd::LOG_ALWAYS,
"Callback: Queue %p Aborting with error : %s Code: 0x%x Available Free mem : %zu MB",
queue->base_address, errorMsg, status, global_available_mem/Mi);
} else {
ClPrint(amd::LOG_NONE, amd::LOG_ALWAYS,
"Callback: Queue %p aborting with error : %s code: 0x%x", queue->base_address,
errorMsg, status);
}
abort();
}
}
+18 -2
Просмотреть файл
@@ -2516,8 +2516,24 @@ void VirtualGPU::submitMigrateMemObjects(amd::MigrateMemObjectsCommand& vcmd) {
static void callbackQueue(hsa_status_t status, hsa_queue_t* queue, void* data) {
if (status != HSA_STATUS_SUCCESS && status != HSA_STATUS_INFO_BREAK) {
// Abort on device exceptions.
ClPrint(amd::LOG_NONE, amd::LOG_ALWAYS, "VirtualGPU::callbackQueue aborting with status: 0x%x",
status);
const char* errorMsg = 0;
hsa_status_string(status, &errorMsg);
if (status == HSA_STATUS_ERROR_OUT_OF_RESOURCES) {
size_t global_available_mem = 0;
VirtualGPU* vgpu = reinterpret_cast<VirtualGPU*>(data);
if (HSA_STATUS_SUCCESS != hsa_agent_get_info(vgpu->gpu_device(),
static_cast<hsa_agent_info_t>(HSA_AMD_AGENT_INFO_MEMORY_AVAIL),
&global_available_mem)) {
LogError("HSA_AMD_AGENT_INFO_MEMORY_AVAIL query failed.");
}
ClPrint(amd::LOG_NONE, amd::LOG_ALWAYS,
"Callback: Queue %p Aborting with error : %s Code: 0x%x Available Free mem : %zu MB",
queue->base_address, errorMsg, status, global_available_mem/Mi);
} else {
ClPrint(amd::LOG_NONE, amd::LOG_ALWAYS,
"Callback: Queue %p aborting with error : %s code: 0x%x", queue->base_address,
errorMsg, status);
}
abort();
}
}