From 7c7cfb1099b9070cf4ab49429291366e14c4c626 Mon Sep 17 00:00:00 2001 From: Maciej Dziuban Date: Mon, 14 Sep 2020 10:57:27 +0200 Subject: [PATCH] Delete unneeded memory transfer for USM Change-Id: I7b11a132b621069febd5b851f9e29e7177d8d395 Signed-off-by: Maciej Dziuban Related-To: NEO-5059 --- .../cpu_page_fault_manager_memory_sync.cpp | 1 + .../unified_memory_aub_tests.cpp | 2 + .../command_queue/enqueue_svm_tests.cpp | 10 +++-- opencl/test/unit_test/kernel/kernel_tests.cpp | 16 ++++---- ...u_page_fault_manager_memory_sync_tests.cpp | 40 ++++++++++++++++++- .../unified_memory_manager_tests.cpp | 6 +-- .../memory_manager/unified_memory_manager.h | 3 +- .../cpu_page_fault_manager.cpp | 1 - .../cpu_page_fault_manager_tests.cpp | 20 +++++----- 9 files changed, 71 insertions(+), 28 deletions(-) diff --git a/opencl/source/memory_manager/cpu_page_fault_manager_memory_sync.cpp b/opencl/source/memory_manager/cpu_page_fault_manager_memory_sync.cpp index dda648b5c6..8a76194642 100644 --- a/opencl/source/memory_manager/cpu_page_fault_manager_memory_sync.cpp +++ b/opencl/source/memory_manager/cpu_page_fault_manager_memory_sync.cpp @@ -19,6 +19,7 @@ void PageFaultManager::transferToCpu(void *ptr, size_t size, void *cmdQ) { } void PageFaultManager::transferToGpu(void *ptr, void *cmdQ) { auto commandQueue = static_cast(cmdQ); + memoryData[ptr].unifiedMemoryManager->insertSvmMapOperation(ptr, memoryData[ptr].size, ptr, 0, false); auto retVal = commandQueue->enqueueSVMUnmap(ptr, 0, nullptr, nullptr, false); UNRECOVERABLE_IF(retVal); retVal = commandQueue->finish(); diff --git a/opencl/test/unit_test/aub_tests/unified_memory/unified_memory_aub_tests.cpp b/opencl/test/unit_test/aub_tests/unified_memory/unified_memory_aub_tests.cpp index e3751befb1..3bb36caff6 100644 --- a/opencl/test/unit_test/aub_tests/unified_memory/unified_memory_aub_tests.cpp +++ b/opencl/test/unit_test/aub_tests/unified_memory/unified_memory_aub_tests.cpp @@ -36,6 +36,8 @@ HWTEST_F(UnifiedMemoryAubTest, givenDeviceMemoryAllocWhenWriteIntoItThenValuesMa HWTEST_F(UnifiedMemoryAubTest, givenSharedMemoryAllocWhenWriteIntoCPUPartThenValuesMatchAfterUsingAllocAsKernelParam) { auto unifiedMemoryType = InternalMemoryType::SHARED_UNIFIED_MEMORY; auto unifiedMemoryPtr = allocateUSM(unifiedMemoryType); + retVal = clEnqueueMemsetINTEL(this->pCmdQ, unifiedMemoryPtr, 0, dataSize, 0, nullptr, nullptr); + EXPECT_EQ(retVal, CL_SUCCESS); writeToUsmMemory(values, unifiedMemoryPtr, unifiedMemoryType); diff --git a/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp index 97efc972c6..0287ed7a2e 100644 --- a/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp @@ -1860,13 +1860,14 @@ TEST_F(EnqueueSvmTest, givenPageFaultManagerWhenEnqueueMemcpyThenAllocIsDecommit auto srcSvm = context->getSVMAllocsManager()->createSVMAlloc(pDevice->getRootDeviceIndex(), 256, {}, pDevice->getDeviceBitfield()); mockMemoryManager->getPageFaultManager()->insertAllocation(srcSvm, 256, context->getSVMAllocsManager(), context->getSpecialQueue()); mockMemoryManager->getPageFaultManager()->insertAllocation(ptrSVM, 256, context->getSVMAllocsManager(), context->getSpecialQueue()); - EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 2); + EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 0); + EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->protectMemoryCalled, 0); this->pCmdQ->enqueueSVMMemcpy(false, ptrSVM, srcSvm, 256, 0, nullptr, nullptr); EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->allowMemoryAccessCalled, 0); EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->protectMemoryCalled, 2); - EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 2); + EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 0); EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToGpuCalled, 2); context->getSVMAllocsManager()->freeSVMAlloc(srcSvm); @@ -1880,13 +1881,14 @@ TEST_F(EnqueueSvmTest, givenPageFaultManagerWhenEnqueueMemFillThenAllocIsDecommi auto memoryManager = context->getMemoryManager(); context->memoryManager = mockMemoryManager.get(); mockMemoryManager->getPageFaultManager()->insertAllocation(ptrSVM, 256, context->getSVMAllocsManager(), context->getSpecialQueue()); - EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 1); + EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 0); + EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->protectMemoryCalled, 0); pCmdQ->enqueueSVMMemFill(ptrSVM, &pattern, 256, 256, 0, nullptr, nullptr); EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->allowMemoryAccessCalled, 0); EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->protectMemoryCalled, 1); - EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 1); + EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 0); EXPECT_EQ(static_cast(mockMemoryManager->getPageFaultManager())->transferToGpuCalled, 1); context->memoryManager = memoryManager; diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index 299d33fa98..8642c4fe10 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -1860,7 +1860,7 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryAndPageFaultManagerWhenMak auto unifiedMemoryGraphicsAllocation = svmAllocationsManager->getSVMAlloc(unifiedMemoryAllocation); mockPageFaultManager->insertAllocation(unifiedMemoryAllocation, 4096u, svmAllocationsManager, mockKernel.mockContext->getSpecialQueue()); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(0u, mockKernel.mockKernel->kernelUnifiedMemoryGfxAllocations.size()); mockKernel.mockKernel->setUnifiedMemoryExecInfo(unifiedMemoryGraphicsAllocation->gpuAllocations.getGraphicsAllocation(pDevice->getRootDeviceIndex())); @@ -1870,7 +1870,7 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryAndPageFaultManagerWhenMak EXPECT_EQ(mockPageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(mockPageFaultManager->protectMemoryCalled, 1); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(mockPageFaultManager->transferToGpuCalled, 1); EXPECT_EQ(mockPageFaultManager->protectedMemoryAccessAddress, unifiedMemoryAllocation); @@ -1895,7 +1895,7 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryAndNotRequiredMemSyncWhenM auto unifiedMemoryGraphicsAllocation = svmAllocationsManager->getSVMAlloc(unifiedMemoryAllocation); mockPageFaultManager->insertAllocation(unifiedMemoryAllocation, 4096u, svmAllocationsManager, mockKernel.mockContext->getSpecialQueue()); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); auto gpuAllocation = unifiedMemoryGraphicsAllocation->gpuAllocations.getGraphicsAllocation(pDevice->getRootDeviceIndex()); mockKernel.mockKernel->kernelArguments[0] = {Kernel::kernelArgType::SVM_ALLOC_OBJ, gpuAllocation, unifiedMemoryAllocation, 4096u, gpuAllocation, sizeof(uintptr_t)}; mockKernel.mockKernel->setUnifiedMemorySyncRequirement(false); @@ -1904,7 +1904,7 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryAndNotRequiredMemSyncWhenM EXPECT_EQ(mockPageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(mockPageFaultManager->protectMemoryCalled, 0); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(mockPageFaultManager->transferToGpuCalled, 0); EXPECT_EQ(0u, mockKernel.mockKernel->kernelUnifiedMemoryGfxAllocations.size()); @@ -1925,7 +1925,7 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryRequiredMemSyncWhenMakeRes mockPageFaultManager->insertAllocation(unifiedMemoryAllocation, 4096u, svmAllocationsManager, mockKernel.mockContext->getSpecialQueue()); auto gpuAllocation = unifiedMemoryGraphicsAllocation->gpuAllocations.getGraphicsAllocation(pDevice->getRootDeviceIndex()); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); mockKernel.mockKernel->kernelArguments[0] = {Kernel::kernelArgType::SVM_ALLOC_OBJ, gpuAllocation, unifiedMemoryAllocation, 4096u, gpuAllocation, sizeof(uintptr_t)}; mockKernel.mockKernel->setUnifiedMemorySyncRequirement(true); @@ -1933,7 +1933,7 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryRequiredMemSyncWhenMakeRes EXPECT_EQ(mockPageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(mockPageFaultManager->protectMemoryCalled, 1); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(mockPageFaultManager->transferToGpuCalled, 1); EXPECT_EQ(0u, mockKernel.mockKernel->kernelUnifiedMemoryGfxAllocations.size()); @@ -1952,14 +1952,14 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryAllocPageFaultManagerAndIn auto unifiedMemoryAllocation = svmAllocationsManager->createSharedUnifiedMemoryAllocation(pDevice->getRootDeviceIndex(), 4096u, sharedProperties, mockKernel.mockContext->getSpecialQueue()); mockPageFaultManager->insertAllocation(unifiedMemoryAllocation, 4096u, svmAllocationsManager, mockKernel.mockContext->getSpecialQueue()); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); mockKernel.mockKernel->unifiedMemoryControls.indirectSharedAllocationsAllowed = true; mockKernel.mockKernel->makeResident(commandStreamReceiver); EXPECT_EQ(mockPageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(mockPageFaultManager->protectMemoryCalled, 1); - EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(mockPageFaultManager->transferToGpuCalled, 1); EXPECT_EQ(mockPageFaultManager->protectedMemoryAccessAddress, unifiedMemoryAllocation); diff --git a/opencl/test/unit_test/memory_manager/cpu_page_fault_manager_memory_sync_tests.cpp b/opencl/test/unit_test/memory_manager/cpu_page_fault_manager_memory_sync_tests.cpp index 69e84115f5..2c57bebfea 100644 --- a/opencl/test/unit_test/memory_manager/cpu_page_fault_manager_memory_sync_tests.cpp +++ b/opencl/test/unit_test/memory_manager/cpu_page_fault_manager_memory_sync_tests.cpp @@ -5,10 +5,14 @@ * */ +#include "shared/source/memory_manager/unified_memory_manager.h" #include "shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests_fixture.h" +#include "shared/test/unit_test/test_macros/test_checks_shared.h" #include "opencl/source/command_queue/command_queue.h" #include "opencl/test/unit_test/mocks/mock_command_queue.h" +#include "opencl/test/unit_test/mocks/mock_graphics_allocation.h" +#include "opencl/test/unit_test/mocks/mock_memory_manager.h" #include "gtest/gtest.h" @@ -41,8 +45,15 @@ struct CommandQueueMock : public MockCommandQueue { }; TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocWhenSynchronizeMemoryThenEnqueueProperCalls) { - void *alloc = reinterpret_cast(0x1); + MockExecutionEnvironment executionEnvironment; + REQUIRE_SVM_OR_SKIP(executionEnvironment.rootDeviceEnvironments[0]->getHardwareInfo()); + + auto memoryManager = std::make_unique(executionEnvironment); + auto svmAllocsManager = std::make_unique(memoryManager.get()); + void *alloc = svmAllocsManager->createSVMAlloc(mockRootDeviceIndex, 256, {}, mockDeviceBitfield); + auto cmdQ = std::make_unique(); + pageFaultManager->insertAllocation(alloc, 256, svmAllocsManager.get(), cmdQ.get()); pageFaultManager->baseCpuTransfer(alloc, 10, cmdQ.get()); EXPECT_EQ(cmdQ->transferToCpuCalled, 1); @@ -53,4 +64,31 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocWhenSynchronizeMemoryThenEnq EXPECT_EQ(cmdQ->transferToCpuCalled, 1); EXPECT_EQ(cmdQ->transferToGpuCalled, 1); EXPECT_EQ(cmdQ->finishCalled, 1); + + svmAllocsManager->freeSVMAlloc(alloc); +} + +TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocWhenGpuTransferIsInvokedThenInsertMapOperation) { + MockExecutionEnvironment executionEnvironment; + REQUIRE_SVM_OR_SKIP(executionEnvironment.rootDeviceEnvironments[0]->getHardwareInfo()); + + struct MockSVMAllocsManager : SVMAllocsManager { + using SVMAllocsManager::SVMAllocsManager; + void insertSvmMapOperation(void *regionSvmPtr, size_t regionSize, void *baseSvmPtr, size_t offset, bool readOnlyMap) override { + SVMAllocsManager::insertSvmMapOperation(regionSvmPtr, regionSize, baseSvmPtr, offset, readOnlyMap); + insertSvmMapOperationCalled++; + } + int insertSvmMapOperationCalled = 0; + }; + auto memoryManager = std::make_unique(executionEnvironment); + auto svmAllocsManager = std::make_unique(memoryManager.get()); + void *alloc = svmAllocsManager->createSVMAlloc(mockRootDeviceIndex, 256, {}, mockDeviceBitfield); + auto cmdQ = std::make_unique(); + pageFaultManager->insertAllocation(alloc, 256, svmAllocsManager.get(), cmdQ.get()); + + EXPECT_EQ(svmAllocsManager->insertSvmMapOperationCalled, 0); + pageFaultManager->baseGpuTransfer(alloc, cmdQ.get()); + EXPECT_EQ(svmAllocsManager->insertSvmMapOperationCalled, 1); + + svmAllocsManager->freeSVMAlloc(alloc); } diff --git a/opencl/test/unit_test/memory_manager/unified_memory_manager_tests.cpp b/opencl/test/unit_test/memory_manager/unified_memory_manager_tests.cpp index a0f8bd772f..22f865da3c 100644 --- a/opencl/test/unit_test/memory_manager/unified_memory_manager_tests.cpp +++ b/opencl/test/unit_test/memory_manager/unified_memory_manager_tests.cpp @@ -912,7 +912,7 @@ TEST(UnfiedSharedMemoryTransferCalls, givenSharedUsmAllocationWithLocalMemoryWhe auto neoQueue = castToObject(commandQueue); auto osContextId = neoQueue->getGpgpuCommandStreamReceiver().getOsContext().getContextId(); - EXPECT_EQ(1u, svmAllocation->cpuAllocation->getTaskCount(osContextId)); + EXPECT_EQ(GraphicsAllocation::objectNotUsed, svmAllocation->cpuAllocation->getTaskCount(osContextId)); status = clEnqueueWriteBuffer(commandQueue, buffer, false, 0u, 4096u, sharedMemory, 0u, nullptr, nullptr); ASSERT_EQ(CL_SUCCESS, status); @@ -920,12 +920,12 @@ TEST(UnfiedSharedMemoryTransferCalls, givenSharedUsmAllocationWithLocalMemoryWhe auto &temporaryAllocations = neoQueue->getGpgpuCommandStreamReceiver().getTemporaryAllocations(); EXPECT_TRUE(temporaryAllocations.peekIsEmpty()); - EXPECT_EQ(2u, svmAllocation->cpuAllocation->getTaskCount(osContextId)); + EXPECT_EQ(1u, svmAllocation->cpuAllocation->getTaskCount(osContextId)); status = clEnqueueReadBuffer(commandQueue, buffer, false, 0u, 4096u, sharedMemory, 0u, nullptr, nullptr); ASSERT_EQ(CL_SUCCESS, status); EXPECT_TRUE(temporaryAllocations.peekIsEmpty()); - EXPECT_EQ(3u, svmAllocation->cpuAllocation->getTaskCount(osContextId)); + EXPECT_EQ(2u, svmAllocation->cpuAllocation->getTaskCount(osContextId)); status = clReleaseMemObject(buffer); ASSERT_EQ(CL_SUCCESS, status); diff --git a/shared/source/memory_manager/unified_memory_manager.h b/shared/source/memory_manager/unified_memory_manager.h index a7ccb99c56..2d6c2d7956 100644 --- a/shared/source/memory_manager/unified_memory_manager.h +++ b/shared/source/memory_manager/unified_memory_manager.h @@ -100,6 +100,7 @@ class SVMAllocsManager { }; SVMAllocsManager(MemoryManager *memoryManager); + MOCKABLE_VIRTUAL ~SVMAllocsManager() = default; void *createSVMAlloc(uint32_t rootDeviceIndex, size_t size, const SvmAllocationProperties svmProperties, @@ -122,7 +123,7 @@ class SVMAllocsManager { size_t getNumAllocs() const { return SVMAllocs.getNumAllocs(); } MapBasedAllocationTracker *getSVMAllocs() { return &SVMAllocs; } - void insertSvmMapOperation(void *regionSvmPtr, size_t regionSize, void *baseSvmPtr, size_t offset, bool readOnlyMap); + MOCKABLE_VIRTUAL void insertSvmMapOperation(void *regionSvmPtr, size_t regionSize, void *baseSvmPtr, size_t offset, bool readOnlyMap); void removeSvmMapOperation(const void *regionSvmPtr); SvmMapOperation *getSvmMapOperation(const void *regionPtr); void addInternalAllocationsToResidencyContainer(uint32_t rootDeviceIndex, diff --git a/shared/source/page_fault_manager/cpu_page_fault_manager.cpp b/shared/source/page_fault_manager/cpu_page_fault_manager.cpp index 416acc5abf..47b0510ca7 100644 --- a/shared/source/page_fault_manager/cpu_page_fault_manager.cpp +++ b/shared/source/page_fault_manager/cpu_page_fault_manager.cpp @@ -17,7 +17,6 @@ namespace NEO { void PageFaultManager::insertAllocation(void *ptr, size_t size, SVMAllocsManager *unifiedMemoryManager, void *cmdQ) { std::unique_lock lock{mtx}; this->memoryData.insert(std::make_pair(ptr, PageFaultData{size, unifiedMemoryManager, cmdQ, false})); - this->transferToCpu(ptr, size, cmdQ); } void PageFaultManager::removeAllocation(void *ptr) { diff --git a/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp b/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp index 946176ea60..2ff7b64b6e 100644 --- a/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp +++ b/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp @@ -31,7 +31,7 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocsWhenInsertingAllocsThenAllo EXPECT_EQ(pageFaultManager->memoryData[alloc1].unifiedMemoryManager, reinterpret_cast(unifiedMemoryManager)); EXPECT_EQ(pageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(pageFaultManager->protectMemoryCalled, 0); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->transferToGpuCalled, 0); EXPECT_TRUE(pageFaultManager->isAubWritable); @@ -47,7 +47,7 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocsWhenInsertingAllocsThenAllo EXPECT_EQ(pageFaultManager->memoryData[alloc2].unifiedMemoryManager, reinterpret_cast(unifiedMemoryManager)); EXPECT_EQ(pageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(pageFaultManager->protectMemoryCalled, 0); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 2); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->transferToGpuCalled, 0); EXPECT_TRUE(pageFaultManager->isAubWritable); @@ -95,7 +95,7 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocsWhenMovingToGpuDomainAllocs pageFaultManager->insertAllocation(alloc1, 10, reinterpret_cast(unifiedMemoryManager), cmdQ); pageFaultManager->insertAllocation(alloc2, 20, reinterpret_cast(unifiedMemoryManager2), cmdQ); pageFaultManager->insertAllocation(alloc3, 30, reinterpret_cast(unifiedMemoryManager), cmdQ); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 3); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->memoryData.size(), 3u); pageFaultManager->memoryData.at(alloc3).isInGpuDomain = true; @@ -103,7 +103,7 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocsWhenMovingToGpuDomainAllocs EXPECT_EQ(pageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(pageFaultManager->protectMemoryCalled, 1); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 3); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->transferToGpuCalled, 1); EXPECT_EQ(pageFaultManager->protectedMemoryAccessAddress, alloc1); @@ -119,13 +119,13 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocWhenMoveToGpuDomainThenTrans pageFaultManager->insertAllocation(alloc, 10, reinterpret_cast(unifiedMemoryManager), cmdQ); EXPECT_EQ(pageFaultManager->memoryData.size(), 1u); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); pageFaultManager->moveAllocationToGpuDomain(alloc); EXPECT_EQ(pageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(pageFaultManager->protectMemoryCalled, 1); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->transferToGpuCalled, 1); EXPECT_EQ(pageFaultManager->protectedMemoryAccessAddress, alloc); @@ -140,7 +140,7 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocInGpuDomainWhenMovingToGpuDo void *alloc = reinterpret_cast(0x1); pageFaultManager->insertAllocation(alloc, 10, reinterpret_cast(unifiedMemoryManager), cmdQ); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->memoryData.size(), 1u); pageFaultManager->memoryData.at(alloc).isInGpuDomain = true; @@ -148,7 +148,7 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocInGpuDomainWhenMovingToGpuDo EXPECT_EQ(pageFaultManager->allowMemoryAccessCalled, 0); EXPECT_EQ(pageFaultManager->protectMemoryCalled, 0); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->transferToGpuCalled, 0); EXPECT_TRUE(pageFaultManager->isAubWritable); } @@ -186,14 +186,14 @@ TEST_F(PageFaultManagerTest, givenTrackedPageFaultAddressWhenVerifyingThenProper pageFaultManager->insertAllocation(alloc1, 10, reinterpret_cast(unifiedMemoryManager), nullptr); pageFaultManager->insertAllocation(alloc2, 20, reinterpret_cast(unifiedMemoryManager), nullptr); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 2); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 0); EXPECT_EQ(pageFaultManager->memoryData.size(), 2u); pageFaultManager->verifyPageFault(alloc1); EXPECT_EQ(pageFaultManager->allowMemoryAccessCalled, 1); EXPECT_EQ(pageFaultManager->protectMemoryCalled, 0); - EXPECT_EQ(pageFaultManager->transferToCpuCalled, 3); + EXPECT_EQ(pageFaultManager->transferToCpuCalled, 1); EXPECT_EQ(pageFaultManager->transferToGpuCalled, 0); EXPECT_EQ(pageFaultManager->allowedMemoryAccessAddress, alloc1);