mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Revert "fix: don't use fake userptr flag in ioctl helper xe"
This reverts commit d3ab256f55.
Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
e11917cfcd
commit
94cc48f81b
@@ -1048,7 +1048,7 @@ TEST_F(DrmMemoryManagerTest, WhenAskedButNotAllowedHostPtrThenDoNotPinAfterAlloc
|
||||
TEST_F(DrmMemoryManagerTest, WhenUnreferenceIsCalledThenCallSucceeds) {
|
||||
mock->ioctlExpected.gemUserptr = 1;
|
||||
mock->ioctlExpected.gemClose = 1;
|
||||
BufferObject *bo = memoryManager->allocUserptr(1234, (size_t)1024, rootDeviceIndex);
|
||||
BufferObject *bo = memoryManager->allocUserptr(0, (size_t)1024, rootDeviceIndex);
|
||||
ASSERT_NE(nullptr, bo);
|
||||
memoryManager->unreference(bo, false);
|
||||
}
|
||||
|
||||
@@ -533,14 +533,11 @@ TEST(IoctlHelperXeTest, whenCallingIoctlThenProperValueIsReturned) {
|
||||
drm.testMode(0);
|
||||
{
|
||||
GemUserPtr test = {};
|
||||
test.userPtr = 2;
|
||||
test.handle = 1;
|
||||
ret = mockXeIoctlHelper->ioctl(DrmIoctl::gemUserptr, &test);
|
||||
EXPECT_EQ(0, ret);
|
||||
|
||||
EXPECT_EQ(test.userPtr, mockXeIoctlHelper->bindInfo[0].userptr);
|
||||
EXPECT_EQ(0u, mockXeIoctlHelper->bindInfo[0].handle);
|
||||
GemClose cl = {};
|
||||
cl.userptr = test.userPtr;
|
||||
cl.handle = test.handle;
|
||||
ret = mockXeIoctlHelper->ioctl(DrmIoctl::gemClose, &cl);
|
||||
EXPECT_EQ(0, ret);
|
||||
}
|
||||
@@ -645,7 +642,6 @@ TEST(IoctlHelperXeTest, whenCallingIoctlThenProperValueIsReturned) {
|
||||
}
|
||||
{
|
||||
GemClose test = {};
|
||||
test.handle = 1;
|
||||
ret = mockXeIoctlHelper->ioctl(DrmIoctl::gemClose, &test);
|
||||
EXPECT_EQ(0, ret);
|
||||
}
|
||||
@@ -1770,120 +1766,3 @@ TEST(IoctlHelperXeTest, whenCallingGetStatusAndFlagsForResetStatsThenZeroIsRetur
|
||||
|
||||
EXPECT_FALSE(ioctlHelper->validPageFault(0u));
|
||||
}
|
||||
|
||||
TEST(IoctlHelperXeTest, givenMultipleBindInfosWhenGemCloseIsCalledThenProperHandleIsTaken) {
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
DrmMockXe drm{*executionEnvironment->rootDeviceEnvironments[0]};
|
||||
|
||||
auto ioctlHelper = std::make_unique<MockIoctlHelperXe>(drm);
|
||||
|
||||
drm.gemCloseCalled = 0;
|
||||
|
||||
BindInfo bindInfo{};
|
||||
|
||||
bindInfo.handle = 1;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
bindInfo.handle = 2;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
|
||||
bindInfo = {};
|
||||
bindInfo.userptr = 1;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
bindInfo.userptr = 2;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
|
||||
GemClose gemClose{};
|
||||
gemClose.handle = 0;
|
||||
gemClose.userptr = 2;
|
||||
EXPECT_EQ(0, ioctlHelper->ioctl(DrmIoctl::gemClose, &gemClose));
|
||||
EXPECT_EQ(0, drm.gemCloseCalled);
|
||||
|
||||
gemClose.handle = 2;
|
||||
gemClose.userptr = 0;
|
||||
EXPECT_EQ(0, ioctlHelper->ioctl(DrmIoctl::gemClose, &gemClose));
|
||||
EXPECT_EQ(1, drm.gemCloseCalled);
|
||||
EXPECT_EQ(2u, drm.passedGemClose.handle);
|
||||
|
||||
gemClose.handle = 0;
|
||||
gemClose.userptr = 1;
|
||||
EXPECT_EQ(0, ioctlHelper->ioctl(DrmIoctl::gemClose, &gemClose));
|
||||
EXPECT_EQ(1, drm.gemCloseCalled);
|
||||
|
||||
gemClose.handle = 1;
|
||||
gemClose.userptr = 0;
|
||||
EXPECT_EQ(0, ioctlHelper->ioctl(DrmIoctl::gemClose, &gemClose));
|
||||
EXPECT_EQ(2, drm.gemCloseCalled);
|
||||
EXPECT_EQ(1u, drm.passedGemClose.handle);
|
||||
|
||||
EXPECT_EQ(0ul, ioctlHelper->bindInfo.size());
|
||||
}
|
||||
|
||||
TEST(IoctlHelperXeTest, givenMultipleBindInfosWhenVmBindIsCalledThenProperHandleIsTaken) {
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
DrmMockXe drm{*executionEnvironment->rootDeviceEnvironments[0]};
|
||||
|
||||
auto ioctlHelper = std::make_unique<MockIoctlHelperXe>(drm);
|
||||
|
||||
drm.vmBindInputs.clear();
|
||||
|
||||
BindInfo bindInfo{};
|
||||
|
||||
bindInfo.handle = 1;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
bindInfo.handle = 2;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
|
||||
bindInfo = {};
|
||||
bindInfo.userptr = 1;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
bindInfo.userptr = 2;
|
||||
ioctlHelper->bindInfo.push_back(bindInfo);
|
||||
|
||||
MockIoctlHelperXe::UserFenceExtension userFence{};
|
||||
userFence.tag = userFence.tagValue;
|
||||
VmBindParams vmBindParams{};
|
||||
vmBindParams.userFence = castToUint64(&userFence);
|
||||
vmBindParams.handle = 0;
|
||||
vmBindParams.userptr = 2;
|
||||
EXPECT_EQ(0, ioctlHelper->vmBind(vmBindParams));
|
||||
|
||||
EXPECT_EQ(1ul, drm.vmBindInputs.size());
|
||||
EXPECT_EQ(0u, drm.vmBindInputs[0].bind.obj);
|
||||
EXPECT_EQ(2u, drm.vmBindInputs[0].bind.obj_offset);
|
||||
drm.vmBindInputs.clear();
|
||||
|
||||
vmBindParams.handle = 2;
|
||||
vmBindParams.userptr = 0;
|
||||
EXPECT_EQ(0, ioctlHelper->vmBind(vmBindParams));
|
||||
|
||||
EXPECT_EQ(1ul, drm.vmBindInputs.size());
|
||||
EXPECT_EQ(2u, drm.vmBindInputs[0].bind.obj);
|
||||
EXPECT_EQ(0u, drm.vmBindInputs[0].bind.obj_offset);
|
||||
drm.vmBindInputs.clear();
|
||||
|
||||
vmBindParams.handle = 0;
|
||||
vmBindParams.userptr = 1;
|
||||
EXPECT_EQ(0, ioctlHelper->vmBind(vmBindParams));
|
||||
|
||||
EXPECT_EQ(1ul, drm.vmBindInputs.size());
|
||||
EXPECT_EQ(0u, drm.vmBindInputs[0].bind.obj);
|
||||
EXPECT_EQ(1u, drm.vmBindInputs[0].bind.obj_offset);
|
||||
drm.vmBindInputs.clear();
|
||||
|
||||
vmBindParams.handle = 1;
|
||||
vmBindParams.userptr = 0;
|
||||
EXPECT_EQ(0, ioctlHelper->vmBind(vmBindParams));
|
||||
|
||||
EXPECT_EQ(1ul, drm.vmBindInputs.size());
|
||||
EXPECT_EQ(1u, drm.vmBindInputs[0].bind.obj);
|
||||
EXPECT_EQ(0u, drm.vmBindInputs[0].bind.obj_offset);
|
||||
drm.vmBindInputs.clear();
|
||||
|
||||
vmBindParams.handle = 0;
|
||||
vmBindParams.userptr = 0;
|
||||
EXPECT_NE(0, ioctlHelper->vmBind(vmBindParams));
|
||||
|
||||
EXPECT_EQ(0ul, drm.vmBindInputs.size());
|
||||
|
||||
ioctlHelper->bindInfo.clear();
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ struct MockIoctlHelperXe : IoctlHelperXe {
|
||||
using IoctlHelperXe::getFdFromVmExport;
|
||||
using IoctlHelperXe::IoctlHelperXe;
|
||||
using IoctlHelperXe::setDefaultEngine;
|
||||
using IoctlHelperXe::UserFenceExtension;
|
||||
using IoctlHelperXe::xeFindMatchingEngine;
|
||||
using IoctlHelperXe::xeGetBindFlagsName;
|
||||
using IoctlHelperXe::xeGetBindOperationName;
|
||||
@@ -135,15 +134,10 @@ class DrmMockXe : public DrmMockCustom {
|
||||
v->vm_id = testValueVmId;
|
||||
ret = 0;
|
||||
} break;
|
||||
case DrmIoctl::gemUserptr: {
|
||||
case DrmIoctl::gemUserptr:
|
||||
case DrmIoctl::gemClose:
|
||||
ret = 0;
|
||||
} break;
|
||||
case DrmIoctl::gemClose: {
|
||||
auto gemClose = reinterpret_cast<GemClose *>(arg);
|
||||
passedGemClose = *gemClose;
|
||||
gemCloseCalled++;
|
||||
ret = 0;
|
||||
} break;
|
||||
break;
|
||||
case DrmIoctl::gemVmDestroy: {
|
||||
struct drm_xe_vm_destroy *v = static_cast<struct drm_xe_vm_destroy *>(arg);
|
||||
if (v->vm_id == testValueVmId)
|
||||
@@ -271,8 +265,6 @@ class DrmMockXe : public DrmMockCustom {
|
||||
int forceIoctlAnswer = 0;
|
||||
int setIoctlAnswer = 0;
|
||||
int gemVmBindReturn = 0;
|
||||
GemClose passedGemClose{};
|
||||
int gemCloseCalled = 0;
|
||||
|
||||
static_assert(sizeof(drm_xe_engine) == 4 * sizeof(uint64_t), "");
|
||||
uint64_t queryEngines[45]{}; // 1 qword for num engines and 4 qwords per engine
|
||||
|
||||
Reference in New Issue
Block a user