mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
Revert "performance: Ensure hostptrs removed before creating new one"
This reverts commit 5b2f2f3d83.
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
ff80a02fcb
commit
8a647f6a39
@@ -34,20 +34,19 @@ void MockDeferredDeleter::removeClient() {
|
||||
--numClients;
|
||||
}
|
||||
|
||||
void MockDeferredDeleter::drain(bool blocking, bool hostptrsOnly) {
|
||||
void MockDeferredDeleter::drain(bool blocking) {
|
||||
if (expectDrainCalled) {
|
||||
EXPECT_EQ(expectedDrainValue, blocking);
|
||||
}
|
||||
DeferredDeleter::drain(blocking, hostptrsOnly);
|
||||
DeferredDeleter::drain(blocking);
|
||||
drainCalled++;
|
||||
}
|
||||
|
||||
void MockDeferredDeleter::drain() {
|
||||
return drain(true, false);
|
||||
return drain(true);
|
||||
}
|
||||
|
||||
bool MockDeferredDeleter::areElementsReleased(bool hostptrsOnly) {
|
||||
this->areElementsReleasedCalledForHostptrs = hostptrsOnly;
|
||||
bool MockDeferredDeleter::areElementsReleased() {
|
||||
areElementsReleasedCalled++;
|
||||
return areElementsReleasedCalled != 1;
|
||||
}
|
||||
@@ -66,8 +65,8 @@ bool MockDeferredDeleter::shouldStop() {
|
||||
return shouldStopCalled > 1;
|
||||
}
|
||||
|
||||
void MockDeferredDeleter::clearQueue(bool hostptrsOnly) {
|
||||
DeferredDeleter::clearQueue(hostptrsOnly);
|
||||
void MockDeferredDeleter::clearQueue() {
|
||||
DeferredDeleter::clearQueue();
|
||||
clearCalled++;
|
||||
}
|
||||
|
||||
@@ -101,7 +100,7 @@ void MockDeferredDeleter::setDoWorkInBackgroundValue(bool value) {
|
||||
}
|
||||
|
||||
bool MockDeferredDeleter::baseAreElementsReleased() {
|
||||
return DeferredDeleter::areElementsReleased(false);
|
||||
return DeferredDeleter::areElementsReleased();
|
||||
}
|
||||
|
||||
bool MockDeferredDeleter::baseShouldStop() {
|
||||
|
||||
@@ -22,9 +22,9 @@ class MockDeferredDeleter : public DeferredDeleter {
|
||||
|
||||
void removeClient() override;
|
||||
|
||||
void drain(bool blocking, bool hostptrsOnly) override;
|
||||
void drain(bool blocking) override;
|
||||
|
||||
bool areElementsReleased(bool hostptrsOnly) override;
|
||||
bool areElementsReleased() override;
|
||||
|
||||
bool shouldStop() override;
|
||||
|
||||
@@ -56,8 +56,6 @@ class MockDeferredDeleter : public DeferredDeleter {
|
||||
|
||||
int areElementsReleasedCalled = 0;
|
||||
|
||||
bool areElementsReleasedCalledForHostptrs = false;
|
||||
|
||||
std::atomic<int> shouldStopCalled;
|
||||
|
||||
std::atomic<int> clearCalled;
|
||||
@@ -75,6 +73,6 @@ class MockDeferredDeleter : public DeferredDeleter {
|
||||
|
||||
bool expectDrainCalled = false;
|
||||
|
||||
void clearQueue(bool hostptrsOnly) override;
|
||||
void clearQueue() override;
|
||||
};
|
||||
} // namespace NEO
|
||||
|
||||
@@ -23,23 +23,14 @@ TEST(DeferredDeleter, WhenDeferredDeleterIsCreatedThenItIsNotAssignable) {
|
||||
|
||||
TEST(DeferredDeleter, givenDeferredDeleterWhenBlockingDrainIsCalledThenArElementsReleasedIsCalled) {
|
||||
auto deleter = std::make_unique<MockDeferredDeleter>();
|
||||
deleter->drain(true, false);
|
||||
deleter->drain(true);
|
||||
EXPECT_NE(0, deleter->areElementsReleasedCalled);
|
||||
EXPECT_FALSE(deleter->areElementsReleasedCalledForHostptrs);
|
||||
EXPECT_EQ(1, deleter->drainCalled);
|
||||
}
|
||||
|
||||
TEST(DeferredDeleter, givenDeferredDeleterWhenBlockingDrainOnlyForHostptrsIsCalledThenArElementsReleasedIsCalledWithHostptrsOnly) {
|
||||
auto deleter = std::make_unique<MockDeferredDeleter>();
|
||||
deleter->drain(true, true);
|
||||
EXPECT_NE(0, deleter->areElementsReleasedCalled);
|
||||
EXPECT_TRUE(deleter->areElementsReleasedCalledForHostptrs);
|
||||
EXPECT_EQ(1, deleter->drainCalled);
|
||||
}
|
||||
|
||||
TEST(DeferredDeleter, givenDeferredDeleterWhenNonBlockingDrainIsCalledThenArElementsReleasedIsNotCalled) {
|
||||
auto deleter = std::make_unique<MockDeferredDeleter>();
|
||||
deleter->drain(false, false);
|
||||
deleter->drain(false);
|
||||
EXPECT_EQ(0, deleter->areElementsReleasedCalled);
|
||||
EXPECT_EQ(1, deleter->drainCalled);
|
||||
}
|
||||
|
||||
@@ -51,21 +51,18 @@ class DeferrableDeletionTest : public ::testing::Test {
|
||||
};
|
||||
|
||||
TEST_F(DeferrableDeletionTest, givenDeferrableDeletionWhenIsCreatedThenObjectMembersAreSetProperly) {
|
||||
MockDeferrableDeletion deletion(wddm.get(), &handle, allocationCount, resourceHandle, AllocationType::buffer);
|
||||
MockDeferrableDeletion deletion(wddm.get(), &handle, allocationCount, resourceHandle);
|
||||
EXPECT_EQ(wddm.get(), deletion.wddm);
|
||||
EXPECT_NE(nullptr, deletion.handles);
|
||||
EXPECT_EQ(handle, *deletion.handles);
|
||||
EXPECT_NE(&handle, deletion.handles);
|
||||
EXPECT_EQ(allocationCount, deletion.allocationCount);
|
||||
EXPECT_EQ(resourceHandle, deletion.resourceHandle);
|
||||
EXPECT_FALSE(deletion.isExternalHostptr());
|
||||
MockDeferrableDeletion deletion2(wddm.get(), &handle, allocationCount, resourceHandle, AllocationType::externalHostPtr);
|
||||
EXPECT_TRUE(deletion2.isExternalHostptr());
|
||||
}
|
||||
|
||||
TEST_F(DeferrableDeletionTest, givenDeferrableDeletionWhenApplyIsCalledThenDeletionIsApplied) {
|
||||
wddm->callBaseDestroyAllocations = false;
|
||||
std::unique_ptr<DeferrableDeletion> deletion(DeferrableDeletion::create((Wddm *)wddm.get(), &handle, allocationCount, resourceHandle, AllocationType::buffer));
|
||||
std::unique_ptr<DeferrableDeletion> deletion(DeferrableDeletion::create((Wddm *)wddm.get(), &handle, allocationCount, resourceHandle));
|
||||
EXPECT_EQ(0u, wddm->destroyAllocationResult.called);
|
||||
deletion->apply();
|
||||
EXPECT_EQ(1u, wddm->destroyAllocationResult.called);
|
||||
|
||||
@@ -4032,6 +4032,13 @@ struct WddmMemoryManagerWithAsyncDeleterTest : public ::testing::Test {
|
||||
WddmMock *wddm;
|
||||
};
|
||||
|
||||
TEST_F(WddmMemoryManagerWithAsyncDeleterTest, givenWddmWhenAsyncDeleterIsEnabledThenDoNotDeferExternalHostptrDeletions) {
|
||||
EXPECT_EQ(0, deleter->deferDeletionCalled);
|
||||
memoryManager->tryDeferDeletions(nullptr, 0, 0, 0, AllocationType::externalHostPtr);
|
||||
EXPECT_EQ(0, deleter->deferDeletionCalled);
|
||||
EXPECT_EQ(1u, wddm->destroyAllocationResult.called);
|
||||
}
|
||||
|
||||
TEST_F(WddmMemoryManagerWithAsyncDeleterTest, givenWddmWhenAsyncDeleterIsEnabledThenCanDeferDeletions) {
|
||||
EXPECT_EQ(0, deleter->deferDeletionCalled);
|
||||
memoryManager->tryDeferDeletions(nullptr, 0, 0, 0, AllocationType::unknown);
|
||||
|
||||
Reference in New Issue
Block a user