Fix a crash when printf used in a kernel launched on a stream with custom CU mask

SWDEV-249719 - root cause: queues with custom CU mask are not inserted
into queuePool_ (i.e., queue of reusable HSA queues) of ROC device class
causing a crash when creating hostcall buffers for printf

Change-Id: Ieee7005d9a5a30b3113394ce23ee65927126d0d6


[ROCm/clr commit: 2e199bd492]
This commit is contained in:
Aryan Salmanpour
2020-09-09 14:56:12 -04:00
committed by Aryan Salmanpour
parent 1aa5e56135
commit b01d49542c
3 changed files with 27 additions and 12 deletions
@@ -761,7 +761,7 @@ VirtualGPU::~VirtualGPU() {
}
if (gpu_queue_) {
roc_device_.releaseQueue(gpu_queue_);
roc_device_.releaseQueue(gpu_queue_, cuMask_);
}
}
@@ -2238,7 +2238,7 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, const
}
case amd::KernelParameterDescriptor::HiddenHostcallBuffer: {
if (amd::IS_HIP) {
auto buffer = roc_device_.getOrCreateHostcallBuffer(gpu_queue_, coopGroups);
auto buffer = roc_device_.getOrCreateHostcallBuffer(gpu_queue_, coopGroups, cuMask_);
if (!buffer) {
ClPrint(amd::LOG_ERROR, amd::LOG_KERN,
"Kernel expects a hostcall buffer, but none found");