[fix] add migrated pointers to proper container.
when gpu to cpu migration occurs, we need to populate proper container. Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
This commit is contained in:
parent
f2275caf3a
commit
9d0f1879ca
|
@ -63,6 +63,7 @@ void transferAndUnprotectMemoryWithHints(NEO::PageFaultManager *pageFaultHandler
|
|||
pageFaultHandler->transferToCpu(allocPtr, pageFaultData.size, pageFaultData.cmdQ);
|
||||
end = std::chrono::steady_clock::now();
|
||||
long long elapsedTime = std::chrono::duration_cast<std::chrono::nanoseconds>(end - start).count();
|
||||
pageFaultData.unifiedMemoryManager->nonGpuDomainAllocs.push_back(allocPtr);
|
||||
|
||||
if (NEO::DebugManager.flags.PrintUmdSharedMigration.get()) {
|
||||
printf("UMD transferred shared allocation 0x%llx (%zu B) from GPU to CPU (%f us)\n", reinterpret_cast<unsigned long long int>(allocPtr), pageFaultData.size, elapsedTime / 1e3);
|
||||
|
|
|
@ -545,7 +545,11 @@ TEST_F(CommandListMemAdvisePageFault, givenValidPtrAndPageFaultHandlerAndGpuDoma
|
|||
NEO::PageFaultManager::PageFaultData pageData;
|
||||
pageData.cmdQ = deviceImp;
|
||||
pageData.domain = NEO::PageFaultManager::AllocationDomain::Gpu;
|
||||
pageData.unifiedMemoryManager = device->getDriverHandle()->getSvmAllocsManager();
|
||||
EXPECT_EQ(0u, device->getDriverHandle()->getSvmAllocsManager()->nonGpuDomainAllocs.size());
|
||||
mockPageFaultManager->gpuDomainHandler(mockPageFaultManager, ptr, pageData);
|
||||
EXPECT_EQ(1u, device->getDriverHandle()->getSvmAllocsManager()->nonGpuDomainAllocs.size());
|
||||
|
||||
flags = deviceImp->memAdviseSharedAllocations[allocData];
|
||||
EXPECT_EQ(0, flags.cpuMigrationBlocked);
|
||||
|
||||
|
@ -616,6 +620,7 @@ TEST_F(CommandListMemAdvisePageFault, givenValidPtrAndPageFaultHandlerAndGpuDoma
|
|||
NEO::PageFaultManager::PageFaultData pageData;
|
||||
pageData.cmdQ = deviceImp;
|
||||
pageData.domain = NEO::PageFaultManager::AllocationDomain::Gpu;
|
||||
pageData.unifiedMemoryManager = device->getDriverHandle()->getSvmAllocsManager();
|
||||
mockPageFaultManager->gpuDomainHandler(mockPageFaultManager, ptr, pageData);
|
||||
flags = deviceImp->memAdviseSharedAllocations[allocData];
|
||||
EXPECT_EQ(0, flags.cpuMigrationBlocked);
|
||||
|
@ -669,6 +674,7 @@ TEST_F(CommandListMemAdvisePageFault, givenValidPtrAndPageFaultHandlerAndGpuDoma
|
|||
NEO::PageFaultManager::PageFaultData pageData;
|
||||
pageData.cmdQ = deviceImp;
|
||||
pageData.domain = NEO::PageFaultManager::AllocationDomain::Gpu;
|
||||
pageData.unifiedMemoryManager = device->getDriverHandle()->getSvmAllocsManager();
|
||||
mockPageFaultManager->gpuDomainHandler(mockPageFaultManager, ptr, pageData);
|
||||
flags = deviceImp->memAdviseSharedAllocations[allocData];
|
||||
EXPECT_EQ(0, flags.cpuMigrationBlocked);
|
||||
|
@ -715,6 +721,7 @@ TEST_F(CommandListMemAdvisePageFault, givenValidPtrAndPageFaultHandlerAndGpuDoma
|
|||
NEO::PageFaultManager::PageFaultData pageData;
|
||||
pageData.cmdQ = deviceImp;
|
||||
pageData.domain = NEO::PageFaultManager::AllocationDomain::Cpu;
|
||||
pageData.unifiedMemoryManager = device->getDriverHandle()->getSvmAllocsManager();
|
||||
mockPageFaultManager->gpuDomainHandler(mockPageFaultManager, ptr, pageData);
|
||||
flags = deviceImp->memAdviseSharedAllocations[allocData];
|
||||
EXPECT_EQ(0, flags.cpuMigrationBlocked);
|
||||
|
@ -761,6 +768,7 @@ TEST_F(CommandListMemAdvisePageFault, givenInvalidPtrAndPageFaultHandlerAndGpuDo
|
|||
NEO::PageFaultManager::PageFaultData pageData;
|
||||
pageData.cmdQ = deviceImp;
|
||||
pageData.domain = NEO::PageFaultManager::AllocationDomain::Gpu;
|
||||
pageData.unifiedMemoryManager = device->getDriverHandle()->getSvmAllocsManager();
|
||||
void *alloc = reinterpret_cast<void *>(0x1);
|
||||
mockPageFaultManager->gpuDomainHandler(mockPageFaultManager, alloc, pageData);
|
||||
flags = deviceImp->memAdviseSharedAllocations[allocData];
|
||||
|
|
Loading…
Reference in New Issue