diff --git a/runtime/memory_manager/memory_manager.cpp b/runtime/memory_manager/memory_manager.cpp index f0deaca6ab..97ce1c6625 100644 --- a/runtime/memory_manager/memory_manager.cpp +++ b/runtime/memory_manager/memory_manager.cpp @@ -118,9 +118,6 @@ void MemoryManager::cleanGraphicsMemoryCreatedFromHostPtr(GraphicsAllocation *gr } GraphicsAllocation *MemoryManager::createGraphicsAllocationWithPadding(GraphicsAllocation *inputGraphicsAllocation, size_t sizeWithPadding) { - if (!paddingAllocation) { - paddingAllocation = allocateGraphicsMemoryWithProperties({inputGraphicsAllocation->getRootDeviceIndex(), paddingBufferSize, GraphicsAllocation::AllocationType::INTERNAL_HOST_MEMORY}); - } return createPaddedAllocation(inputGraphicsAllocation, sizeWithPadding); } @@ -132,12 +129,6 @@ void MemoryManager::freeSystemMemory(void *ptr) { ::alignedFree(ptr); } -void MemoryManager::applyCommonCleanup() { - if (this->paddingAllocation) { - this->freeGraphicsMemory(this->paddingAllocation); - } -} - void MemoryManager::freeGraphicsMemory(GraphicsAllocation *gfxAllocation) { if (!gfxAllocation) { return; diff --git a/runtime/memory_manager/memory_manager.h b/runtime/memory_manager/memory_manager.h index 2876fd3773..e7cf349f57 100644 --- a/runtime/memory_manager/memory_manager.h +++ b/runtime/memory_manager/memory_manager.h @@ -110,7 +110,6 @@ class MemoryManager { bool peekVirtualPaddingSupport() const { return virtualPaddingAvailable; } void setVirtualPaddingSupport(bool virtualPaddingSupport) { virtualPaddingAvailable = virtualPaddingSupport; } - GraphicsAllocation *peekPaddingAllocation() { return paddingAllocation; } DeferredDeleter *getDeferredDeleter() const { return deferredDeleter.get(); @@ -213,8 +212,6 @@ class MemoryManager { bool force32bitAllocations = false; bool virtualPaddingAvailable = false; - GraphicsAllocation *paddingAllocation = nullptr; - void applyCommonCleanup(); std::unique_ptr deferredDeleter; bool asyncDeleterEnabled = false; bool enable64kbpages = false; diff --git a/runtime/memory_manager/os_agnostic_memory_manager.cpp b/runtime/memory_manager/os_agnostic_memory_manager.cpp index 89fe3f37a9..82c73330dc 100644 --- a/runtime/memory_manager/os_agnostic_memory_manager.cpp +++ b/runtime/memory_manager/os_agnostic_memory_manager.cpp @@ -37,9 +37,7 @@ OsAgnosticMemoryManager::OsAgnosticMemoryManager(bool aubUsage, ExecutionEnviron } } -OsAgnosticMemoryManager::~OsAgnosticMemoryManager() { - applyCommonCleanup(); -} +OsAgnosticMemoryManager::~OsAgnosticMemoryManager() = default; struct OsHandle { }; diff --git a/runtime/os_interface/linux/drm_memory_manager.cpp b/runtime/os_interface/linux/drm_memory_manager.cpp index 7bbb53f229..0638e1716a 100644 --- a/runtime/os_interface/linux/drm_memory_manager.cpp +++ b/runtime/os_interface/linux/drm_memory_manager.cpp @@ -61,7 +61,6 @@ DrmMemoryManager::DrmMemoryManager(gemCloseWorkerMode mode, } DrmMemoryManager::~DrmMemoryManager() { - applyCommonCleanup(); if (gemCloseWorker) { gemCloseWorker->close(false); } diff --git a/runtime/os_interface/windows/wddm_memory_manager.cpp b/runtime/os_interface/windows/wddm_memory_manager.cpp index 6e5deac622..b494da3820 100644 --- a/runtime/os_interface/windows/wddm_memory_manager.cpp +++ b/runtime/os_interface/windows/wddm_memory_manager.cpp @@ -34,9 +34,7 @@ namespace NEO { -WddmMemoryManager::~WddmMemoryManager() { - applyCommonCleanup(); -} +WddmMemoryManager::~WddmMemoryManager() = default; WddmMemoryManager::WddmMemoryManager(ExecutionEnvironment &executionEnvironment) : MemoryManager(executionEnvironment), wddm(executionEnvironment.osInterface->get()->getWddm()) { diff --git a/unit_tests/memory_manager/memory_manager_tests.cpp b/unit_tests/memory_manager/memory_manager_tests.cpp index 48f0989aaf..3420a05b25 100644 --- a/unit_tests/memory_manager/memory_manager_tests.cpp +++ b/unit_tests/memory_manager/memory_manager_tests.cpp @@ -962,29 +962,6 @@ TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenGraphicsAllocationIsP ASSERT_NE(nullptr, paddedGraphicsAllocation); EXPECT_NE(paddedGraphicsAllocation, graphicsAllocation); - //padding buffer was created - ASSERT_NE(nullptr, memoryManager.peekPaddingAllocation()); - auto paddingAllocation = memoryManager.peekPaddingAllocation(); - EXPECT_EQ(paddingBufferSize, paddingAllocation->getUnderlyingBufferSize()); - - memoryManager.freeGraphicsMemory(paddedGraphicsAllocation); - memoryManager.freeGraphicsMemory(graphicsAllocation); -} - -TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenTwoGraphicsAllocationArePaddedThenOnlyOnePaddingBufferIsUsed) { - MockExecutionEnvironment executionEnvironment(*platformDevices); - MemoryManagerCreate memoryManager(false, false, executionEnvironment); - auto graphicsAllocation = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); - - auto sizeWithPadding = 8192; - auto paddedGraphicsAllocation = memoryManager.createGraphicsAllocationWithPadding(graphicsAllocation, sizeWithPadding); - auto paddingAllocation = memoryManager.peekPaddingAllocation(); - auto paddedGraphicsAllocation2 = memoryManager.createGraphicsAllocationWithPadding(graphicsAllocation, sizeWithPadding); - auto paddingAllocation2 = memoryManager.peekPaddingAllocation(); - - EXPECT_EQ(paddingAllocation2, paddingAllocation); - - memoryManager.freeGraphicsMemory(paddedGraphicsAllocation2); memoryManager.freeGraphicsMemory(paddedGraphicsAllocation); memoryManager.freeGraphicsMemory(graphicsAllocation); } diff --git a/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp b/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp index 0909004a5f..8ab0c50112 100644 --- a/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp +++ b/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp @@ -2122,9 +2122,9 @@ TEST_F(DrmMemoryManagerTest, givenSharedAllocationWithSmallerThenRealSizeWhenCre } TEST_F(DrmMemoryManagerTest, givenMemoryManagerSupportingVirutalPaddingWhenItIsRequiredThenNewGraphicsAllocationIsCreated) { - mock->ioctl_expected.gemUserptr = 3; - mock->ioctl_expected.gemWait = 3; - mock->ioctl_expected.gemClose = 3; + mock->ioctl_expected.gemUserptr = 2; + mock->ioctl_expected.gemWait = 2; + mock->ioctl_expected.gemClose = 2; //first let's create normal buffer auto bufferSize = MemoryConstants::pageSize; auto buffer = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{bufferSize}); @@ -2132,8 +2132,6 @@ TEST_F(DrmMemoryManagerTest, givenMemoryManagerSupportingVirutalPaddingWhenItIsR //buffer should have size 16 EXPECT_EQ(bufferSize, buffer->getUnderlyingBufferSize()); - EXPECT_EQ(nullptr, memoryManager->peekPaddingAllocation()); - auto bufferWithPaddingSize = 8192u; auto paddedAllocation = memoryManager->createGraphicsAllocationWithPadding(buffer, 8192u); EXPECT_NE(nullptr, paddedAllocation); @@ -2277,10 +2275,10 @@ TEST_F(DrmMemoryManagerTest, givenMemoryManagerWhenAskedForInternalAllocationWit } TEST_F(DrmMemoryManagerTest, givenMemoryManagerSupportingVirutalPaddingWhenAllocUserptrFailsThenReturnsNullptr) { - mock->ioctl_expected.gemUserptr = 3; - mock->ioctl_expected.gemWait = 2; - mock->ioctl_expected.gemClose = 2; - this->ioctlResExt = {mock->ioctl_cnt.total + 2, -1}; + mock->ioctl_expected.gemUserptr = 2; + mock->ioctl_expected.gemWait = 1; + mock->ioctl_expected.gemClose = 1; + this->ioctlResExt = {mock->ioctl_cnt.total + 1, -1}; mock->ioctl_res_ext = &ioctlResExt; //first let's create normal buffer @@ -2290,8 +2288,6 @@ TEST_F(DrmMemoryManagerTest, givenMemoryManagerSupportingVirutalPaddingWhenAlloc //buffer should have size 16 EXPECT_EQ(bufferSize, buffer->getUnderlyingBufferSize()); - EXPECT_EQ(nullptr, memoryManager->peekPaddingAllocation()); - auto bufferWithPaddingSize = 8192u; auto paddedAllocation = memoryManager->createGraphicsAllocationWithPadding(buffer, bufferWithPaddingSize); EXPECT_EQ(nullptr, paddedAllocation);