mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 14:02:58 +08:00
Add unit test for query page fault support
Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c0dc88db33
commit
bc4c64b095
@@ -4755,6 +4755,14 @@ TEST(DrmMemoryManagerSimpleTest, givenDrmMemoryManagerWhenFreeGraphicsMemoryIsCa
|
||||
memoryManager.freeGraphicsMemoryImpl(drmAllocation);
|
||||
}
|
||||
|
||||
TEST(DrmMemoryManagerSimpleTest, WhenDrmIsCreatedThenQueryPageFaultSupportIsCalled) {
|
||||
MockExecutionEnvironment executionEnvironment(defaultHwInfo.get());
|
||||
executionEnvironment.rootDeviceEnvironments[0]->osInterface = std::make_unique<OSInterface>();
|
||||
auto drm = std::unique_ptr<Drm>(Drm::create(nullptr, *executionEnvironment.rootDeviceEnvironments[0]));
|
||||
|
||||
EXPECT_TRUE(static_cast<DrmMock *>(drm.get())->queryPageFaultSupportCalled);
|
||||
}
|
||||
|
||||
using DrmMemoryManagerWithLocalMemoryTest = Test<DrmMemoryManagerWithLocalMemoryFixture>;
|
||||
|
||||
TEST_F(DrmMemoryManagerWithLocalMemoryTest, givenDrmMemoryManagerWithLocalMemoryWhenLockResourceIsCalledOnAllocationInLocalMemoryThenReturnNullPtr) {
|
||||
|
||||
@@ -110,6 +110,8 @@ Drm *Drm::create(std::unique_ptr<HwDeviceIdDrm> &&hwDeviceId, RootDeviceEnvironm
|
||||
|
||||
drmObject->checkContextDebugSupport();
|
||||
|
||||
drmObject->queryPageFaultSupport();
|
||||
|
||||
if (rootDeviceEnvironment.executionEnvironment.isDebuggingEnabled()) {
|
||||
if (drmObject->isVmBindAvailable()) {
|
||||
drmObject->setPerContextVMRequired(true);
|
||||
@@ -126,8 +128,6 @@ Drm *Drm::create(std::unique_ptr<HwDeviceIdDrm> &&hwDeviceId, RootDeviceEnvironm
|
||||
|
||||
drmObject->queryAdapterBDF();
|
||||
|
||||
drmObject->queryPageFaultSupport();
|
||||
|
||||
return drmObject.release();
|
||||
}
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ class Drm : public DriverModel {
|
||||
MOCKABLE_VIRTUAL bool isVmBindAvailable();
|
||||
MOCKABLE_VIRTUAL bool registerResourceClasses();
|
||||
|
||||
void queryPageFaultSupport();
|
||||
MOCKABLE_VIRTUAL void queryPageFaultSupport();
|
||||
bool hasPageFaultSupport() const;
|
||||
|
||||
MOCKABLE_VIRTUAL uint32_t registerResource(ResourceClass classType, const void *data, size_t size);
|
||||
|
||||
@@ -107,6 +107,11 @@ class DrmMock : public Drm {
|
||||
return allowDebugAttach;
|
||||
}
|
||||
|
||||
void queryPageFaultSupport() override {
|
||||
Drm::queryPageFaultSupport();
|
||||
queryPageFaultSupportCalled = true;
|
||||
}
|
||||
|
||||
static const int mockFd = 33;
|
||||
|
||||
bool failRetTopology = false;
|
||||
@@ -154,6 +159,8 @@ class DrmMock : public Drm {
|
||||
drm_i915_gem_context_param receivedContextParamRequest = {};
|
||||
uint64_t receivedRecoverableContextValue = std::numeric_limits<uint64_t>::max();
|
||||
|
||||
bool queryPageFaultSupportCalled = false;
|
||||
|
||||
//DRM_IOCTL_I915_GEM_EXECBUFFER2
|
||||
drm_i915_gem_execbuffer2 execBuffer = {0};
|
||||
uint64_t bbFlags;
|
||||
|
||||
@@ -45,6 +45,8 @@ Drm *Drm::create(std::unique_ptr<HwDeviceIdDrm> &&hwDeviceId, RootDeviceEnvironm
|
||||
|
||||
drm->queryMemoryInfo();
|
||||
|
||||
drm->queryPageFaultSupport();
|
||||
|
||||
if (drm->isVmBindAvailable() && rootDeviceEnvironment.executionEnvironment.isDebuggingEnabled()) {
|
||||
drm->setPerContextVMRequired(true);
|
||||
}
|
||||
@@ -53,8 +55,6 @@ Drm *Drm::create(std::unique_ptr<HwDeviceIdDrm> &&hwDeviceId, RootDeviceEnvironm
|
||||
drm->createVirtualMemoryAddressSpace(HwHelper::getSubDevicesCount(hwInfo));
|
||||
}
|
||||
|
||||
drm->queryPageFaultSupport();
|
||||
|
||||
return drm;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user