mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-09 06:23:01 +08:00
Broadcast signal to all threads while handling USM pagefault
Related-To: NEO-4721 Change-Id: I77185f8db2576f626c1b6b5615ab5d8f9b22076f Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
e3ccf19b47
commit
5739d526c4
@@ -66,6 +66,7 @@ bool PageFaultManager::verifyPageFault(void *ptr) {
|
||||
auto allocPtr = alloc.first;
|
||||
auto &pageFaultData = alloc.second;
|
||||
if (ptr >= allocPtr && ptr < ptrOffset(allocPtr, pageFaultData.size)) {
|
||||
this->broadcastWaitSignal();
|
||||
this->allowCPUMemoryAccess(allocPtr, pageFaultData.size);
|
||||
this->setAubWritable(true, allocPtr, pageFaultData.unifiedMemoryManager);
|
||||
this->transferToCpu(allocPtr, pageFaultData.size, pageFaultData.cmdQ);
|
||||
@@ -81,4 +82,9 @@ void PageFaultManager::setAubWritable(bool writable, void *ptr, SVMAllocsManager
|
||||
auto gpuAlloc = unifiedMemoryManager->getSVMAlloc(ptr)->gpuAllocations.getDefaultGraphicsAllocation();
|
||||
gpuAlloc->setAubWritable(writable, GraphicsAllocation::allBanks);
|
||||
}
|
||||
|
||||
void PageFaultManager::waitForCopy() {
|
||||
std::unique_lock<SpinLock> lock{mtx};
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user