Add new IOCTL call to disable persistence on given context

Change-Id: Ia91c8240fe2fac40c067e91ce70867edb2263463
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-4048
This commit is contained in:
Kamil Kopryk
2019-12-18 19:38:22 +01:00
committed by sys_ocldev
parent 6ba76147d0
commit 07cacd4e70
10 changed files with 95 additions and 1 deletions

View File

@@ -173,7 +173,6 @@ TEST(DrmTest, GivenDrmWhenAskedForContextThatFailsThenFalseIsReturned) {
TEST(DrmTest, givenDrmWhenOsContextIsCreatedThenCreateAndDestroyNewDrmOsContext) {
DrmMock drmMock;
uint32_t drmContextId1 = 123;
uint32_t drmContextId2 = 456;
@@ -199,6 +198,30 @@ TEST(DrmTest, givenDrmWhenOsContextIsCreatedThenCreateAndDestroyNewDrmOsContext)
EXPECT_EQ(0u, drmMock.receivedContextParamRequestCount);
}
TEST(DrmTest, givenDrmAndNegativeCheckNonPersistentSupportWhenOsContextIsCreatedThenReceivedContextParamRequestCountReturnsCorrectValue) {
DrmMock drmMock;
uint32_t drmContextId1 = 123;
drmMock.StoredCtxId = drmContextId1;
auto expectedCount = 0u;
{
drmMock.StoredRetValForPersistant = -1;
drmMock.checkNonPersistentSupport();
++expectedCount;
OsContextLinux osContext(drmMock, 0u, 1, aub_stream::ENGINE_RCS, PreemptionMode::Disabled, false);
EXPECT_EQ(expectedCount, drmMock.receivedContextParamRequestCount);
}
{
drmMock.StoredRetValForPersistant = 0;
drmMock.checkNonPersistentSupport();
++expectedCount;
OsContextLinux osContext(drmMock, 0u, 1, aub_stream::ENGINE_RCS, PreemptionMode::Disabled, false);
++expectedCount;
EXPECT_EQ(expectedCount, drmMock.receivedContextParamRequestCount);
}
}
TEST(DrmTest, givenDrmPreemptionEnabledAndLowPriorityEngineWhenCreatingOsContextThenCallSetContextPriorityIoctl) {
DrmMock drmMock;
drmMock.StoredCtxId = 123;
@@ -332,6 +355,16 @@ TEST(DrmTest, givenPlatformWhereGetSseuRetFailureWhenCallSetQueueSliceCountThenS
EXPECT_NE(drm->getSliceMask(newSliceCount), drm->storedParamSseu);
}
TEST(DrmTest, whenCheckNonPeristentSupportIsCalledThenIsNonPersistentSupportedReturnsCorrectValues) {
std::unique_ptr<DrmMock> drm = std::make_unique<DrmMock>();
drm->StoredRetValForPersistant = -1;
drm->checkNonPersistentSupport();
EXPECT_FALSE(drm->isNonPersistentSupported());
drm->StoredRetValForPersistant = 0;
drm->checkNonPersistentSupport();
EXPECT_TRUE(drm->isNonPersistentSupported());
}
TEST(DrmTest, givenPlatformWhereSetSseuRetFailureWhenCallSetQueueSliceCountThenReturnFalse) {
uint64_t newSliceCount = 1;
std::unique_ptr<DrmMock> drm = std::make_unique<DrmMock>();