mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
Revert "Deferred deletion of allocations in main thread"
This reverts commit 2ea734491a.
Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
43cc747843
commit
062abef8ef
@@ -5,7 +5,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/test/common/mocks/mock_deferrable_deletion.h"
|
||||
#include "shared/test/common/mocks/mock_deferred_deleter.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
@@ -22,70 +21,16 @@ TEST(DeferredDeleter, WhenDeferredDeleterIsCreatedThenItIsNotAssignable) {
|
||||
EXPECT_FALSE(std::is_copy_assignable<DeferredDeleter>::value);
|
||||
}
|
||||
|
||||
struct DeferredDeleterTest : public ::testing::Test {
|
||||
|
||||
void SetUp() override {
|
||||
deleter.reset(new MockDeferredDeleter());
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
EXPECT_TRUE(deleter->isQueueEmpty());
|
||||
EXPECT_EQ(0, deleter->getElementsToRelease());
|
||||
}
|
||||
|
||||
std::unique_ptr<MockDeferredDeleter> deleter;
|
||||
};
|
||||
|
||||
TEST_F(DeferredDeleterTest, WhenTheAllocationsAreReadyThenCallClearQueueTillFirstFailure) {
|
||||
auto deletion1 = new MockDeferrableDeletion();
|
||||
auto deletion2 = new MockDeferrableDeletion();
|
||||
deleter->DeferredDeleter::deferDeletion(deletion1);
|
||||
deleter->DeferredDeleter::deferDeletion(deletion2);
|
||||
EXPECT_FALSE(deleter->isQueueEmpty());
|
||||
deleter->clearQueueTillFirstFailure();
|
||||
EXPECT_TRUE(deleter->isQueueEmpty());
|
||||
EXPECT_EQ(1, deleter->clearQueueTillFirstFailureCalled);
|
||||
EXPECT_EQ(1, deleter->clearCalled);
|
||||
EXPECT_EQ(1, deleter->clearCalledWithBreakTillFailure);
|
||||
}
|
||||
|
||||
TEST_F(DeferredDeleterTest, WhenSomeAllocationIsNotReadyThenCallClearQueueTillFirstFailureMultipleTimes) {
|
||||
auto deletionReady = new MockDeferrableDeletion();
|
||||
auto deletionNotReadyTill3 = new MockDeferrableDeletion();
|
||||
deletionNotReadyTill3->setTrialTimes(3);
|
||||
deleter->DeferredDeleter::deferDeletion(deletionReady);
|
||||
deleter->DeferredDeleter::deferDeletion(deletionNotReadyTill3);
|
||||
EXPECT_FALSE(deleter->isQueueEmpty());
|
||||
deleter->clearQueueTillFirstFailure();
|
||||
EXPECT_FALSE(deleter->isQueueEmpty());
|
||||
EXPECT_EQ(1, deleter->clearQueueTillFirstFailureCalled);
|
||||
EXPECT_EQ(1, deleter->clearCalled);
|
||||
EXPECT_EQ(1, deleter->clearCalledWithBreakTillFailure);
|
||||
deleter->clearQueueTillFirstFailure();
|
||||
EXPECT_FALSE(deleter->isQueueEmpty());
|
||||
deleter->clearQueueTillFirstFailure();
|
||||
EXPECT_TRUE(deleter->isQueueEmpty());
|
||||
}
|
||||
|
||||
TEST_F(DeferredDeleterTest, WhenSomeAllocationIsNotReadyThenCallClearQueueTillFirstFailureAndThenDrain) {
|
||||
auto deletionReady = new MockDeferrableDeletion();
|
||||
auto deletionNotReadyTill3 = new MockDeferrableDeletion();
|
||||
deletionNotReadyTill3->setTrialTimes(3);
|
||||
deleter->DeferredDeleter::deferDeletion(deletionReady);
|
||||
deleter->DeferredDeleter::deferDeletion(deletionNotReadyTill3);
|
||||
EXPECT_FALSE(deleter->isQueueEmpty());
|
||||
deleter->clearQueueTillFirstFailure();
|
||||
EXPECT_FALSE(deleter->isQueueEmpty());
|
||||
EXPECT_EQ(1, deleter->clearQueueTillFirstFailureCalled);
|
||||
EXPECT_EQ(1, deleter->clearCalled);
|
||||
EXPECT_EQ(1, deleter->clearCalledWithBreakTillFailure);
|
||||
deleter->drain();
|
||||
TEST(DeferredDeleter, givenDeferredDeleterWhenBlockingDrainIsCalledThenArElementsReleasedIsCalled) {
|
||||
auto deleter = std::make_unique<MockDeferredDeleter>();
|
||||
deleter->drain(true);
|
||||
EXPECT_NE(0, deleter->areElementsReleasedCalled);
|
||||
EXPECT_EQ(1, deleter->drainCalled);
|
||||
EXPECT_TRUE(deleter->isQueueEmpty());
|
||||
}
|
||||
|
||||
TEST_F(DeferredDeleterTest, GivenDeferredDeleterWithEmptyQueueThenCallClearQueueTillFirstFailure) {
|
||||
deleter->clearQueueTillFirstFailure();
|
||||
TEST(DeferredDeleter, givenDeferredDeleterWhenNonBlockingDrainIsCalledThenArElementsReleasedIsNotCalled) {
|
||||
auto deleter = std::make_unique<MockDeferredDeleter>();
|
||||
deleter->drain(false);
|
||||
EXPECT_EQ(0, deleter->areElementsReleasedCalled);
|
||||
EXPECT_EQ(1, deleter->clearQueueTillFirstFailureCalled);
|
||||
EXPECT_EQ(1, deleter->drainCalled);
|
||||
}
|
||||
|
||||
@@ -157,13 +157,7 @@ HWTEST_F(MemoryhManagerMultiContextResourceTests, givenAllocationUsedByManyOsCon
|
||||
EXPECT_TRUE(nonDefaultOsContext->isLowPriority());
|
||||
|
||||
auto graphicsAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{device->getRootDeviceIndex(), MemoryConstants::pageSize});
|
||||
|
||||
auto &productHelper = device->getProductHelper();
|
||||
if (productHelper.isMultiContextResourceDeferDeletionSupported()) {
|
||||
multiContextDestructor->expectClearQueueTillFirstFailure();
|
||||
} else {
|
||||
multiContextDestructor->expectDrainBlockingValue(false);
|
||||
}
|
||||
multiContextDestructor->expectDrainBlockingValue(false);
|
||||
|
||||
nonDefaultCsr->taskCount = *nonDefaultCsr->getTagAddress();
|
||||
nonDefaultCsr->latestFlushedTaskCount = *nonDefaultCsr->getTagAddress();
|
||||
|
||||
Reference in New Issue
Block a user