Create drm to check status of set memory regions operation

Related-To: NEO-3008

Change-Id: I0c26656c905ad52295ed0aaf2c53731c99da9cc2
Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
This commit is contained in:
Slawomir Milczarek 2019-10-15 10:23:04 +02:00
parent 3cbd6e9c26
commit c46e886649
5 changed files with 21 additions and 5 deletions

View File

@ -190,7 +190,11 @@ Drm *Drm::create(int32_t deviceOrdinal) {
if (HwHelper::get(device->pHwInfo->platform.eRenderCoreFamily).getEnableLocalMemory(*device->pHwInfo)) {
drmObject->queryMemoryInfo();
drmObject->setMemoryRegions();
ret = drmObject->setMemoryRegions();
if (ret != 0) {
printDebugString(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s", "FATAL: Failed to set memory regions\n");
return nullptr;
}
}
drms[deviceOrdinal % drms.size()] = drmObject.release();

View File

@ -78,7 +78,7 @@ class Drm {
void queryEngineInfo();
void queryMemoryInfo();
int setEngines();
void setMemoryRegions();
int setMemoryRegions();
MemoryInfo *getMemoryInfo() const {
return memoryInfo.get();

View File

@ -25,7 +25,8 @@ int Drm::setEngines() {
return 0;
}
void Drm::setMemoryRegions() {
int Drm::setMemoryRegions() {
return 0;
}
unsigned int Drm::bindDrmContext(uint32_t drmContextId, uint32_t deviceIndex, aub_stream::EngineType engineType) {

View File

@ -277,6 +277,16 @@ TEST_F(DrmTests, failOnInvalidDeviceName) {
EXPECT_EQ(drm, nullptr);
}
TEST_F(DrmTests, whenDrmIsCreatedThenSetMemoryRegionsDoesntFailAndDrmObjectIsReturned) {
DebugManagerStateRestore restore;
DebugManager.flags.EnableLocalMemory.set(1);
auto drm = DrmWrap::createDrm(0);
EXPECT_NE(drm, nullptr);
DrmWrap::closeDevice(0);
}
TEST(AllocatorHelper, givenExpectedSizeToReserveWhenGetSizeToReserveCalledThenExpectedValueReturned) {
EXPECT_EQ((maxNBitValue<47> + 1) / 4, NEO::getSizeToReserve());
}

View File

@ -37,12 +37,13 @@ TEST(DrmTest, whenSettingEnginesThenReturnZeroValueAndCallNoIoctls) {
EXPECT_EQ(0u, drm->ioctlCallsCount);
}
TEST(DrmTest, whenSettingMemoryRegionsThenNoIoctlIsCalled) {
TEST(DrmTest, whenSettingMemoryRegionsThenZeroIsReturnedAndNoIoctlsAreCalled) {
std::unique_ptr<DrmMock> drm = std::make_unique<DrmMock>();
EXPECT_NE(nullptr, drm);
drm->setMemoryRegions();
auto ret = drm->setMemoryRegions();
EXPECT_EQ(0, ret);
EXPECT_EQ(0u, drm->ioctlCallsCount);
}