mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-27 07:44:16 +08:00
fix: remove invalid hardcoded flags for vm create in xe path
Related-To: NEO-10496 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
420a6092ae
commit
0b57b0fb7a
@@ -781,15 +781,9 @@ std::unique_ptr<uint8_t[]> IoctlHelperXe::createVmControlExtRegion(const std::op
|
||||
|
||||
uint32_t IoctlHelperXe::getFlagsForVmCreate(bool disableScratch, bool enablePageFault, bool useVmBind) {
|
||||
xeLog(" -> IoctlHelperXe::%s %d,%d,%d\n", __FUNCTION__, disableScratch, enablePageFault, useVmBind);
|
||||
uint32_t flags = 0u;
|
||||
if (disableScratch) {
|
||||
flags |= XE_NEO_VMCREATE_DISABLESCRATCH_FLAG;
|
||||
}
|
||||
uint32_t flags = DRM_XE_VM_CREATE_FLAG_LR_MODE;
|
||||
if (enablePageFault) {
|
||||
flags |= XE_NEO_VMCREATE_ENABLEPAGEFAULT_FLAG;
|
||||
}
|
||||
if (useVmBind) {
|
||||
flags |= XE_NEO_VMCREATE_USEVMBIND_FLAG;
|
||||
flags |= DRM_XE_VM_CREATE_FLAG_FAULT_MODE;
|
||||
}
|
||||
return flags;
|
||||
}
|
||||
@@ -1052,12 +1046,9 @@ int IoctlHelperXe::ioctl(DrmIoctl request, void *arg) {
|
||||
xeLog(" -> IoctlHelperXe::ioctl GemClose found=%d h=0x%x r=%d\n", found, d->handle, ret);
|
||||
} break;
|
||||
case DrmIoctl::gemVmCreate: {
|
||||
GemVmControl *d = static_cast<GemVmControl *>(arg);
|
||||
GemVmControl *vmControl = static_cast<GemVmControl *>(arg);
|
||||
struct drm_xe_vm_create args = {};
|
||||
args.flags = DRM_XE_VM_CREATE_FLAG_LR_MODE;
|
||||
if (drm.hasPageFaultSupport()) {
|
||||
args.flags |= DRM_XE_VM_CREATE_FLAG_FAULT_MODE;
|
||||
}
|
||||
args.flags = vmControl->flags;
|
||||
|
||||
if (drm.getRootDeviceEnvironment().executionEnvironment.getDebuggingMode() != DebuggingMode::disabled) {
|
||||
args.extensions = reinterpret_cast<unsigned long long>(allocateDebugMetadata());
|
||||
@@ -1067,9 +1058,8 @@ int IoctlHelperXe::ioctl(DrmIoctl request, void *arg) {
|
||||
args.extensions = reinterpret_cast<unsigned long long>(freeDebugMetadata(reinterpret_cast<void *>(args.extensions)));
|
||||
}
|
||||
|
||||
d->vmId = ret ? 0 : args.vm_id;
|
||||
d->flags = ret ? 0 : args.flags;
|
||||
xeLog(" -> IoctlHelperXe::ioctl gemVmCreate f=0x%x vmid=0x%x r=%d\n", d->flags, d->vmId, ret);
|
||||
vmControl->vmId = args.vm_id;
|
||||
xeLog(" -> IoctlHelperXe::ioctl gemVmCreate f=0x%x vmid=0x%x r=%d\n", vmControl->flags, vmControl->vmId, ret);
|
||||
|
||||
} break;
|
||||
case DrmIoctl::gemVmDestroy: {
|
||||
|
||||
@@ -22,10 +22,6 @@ struct drm_xe_engine_class_instance;
|
||||
#define XE_NEO_BIND_IMMEDIATE_FLAG 0x20
|
||||
#define XE_NEO_BIND_MAKERESIDENT_FLAG 0x300
|
||||
|
||||
#define XE_NEO_VMCREATE_DISABLESCRATCH_FLAG 0x100000
|
||||
#define XE_NEO_VMCREATE_ENABLEPAGEFAULT_FLAG 0x20000
|
||||
#define XE_NEO_VMCREATE_USEVMBIND_FLAG 0x3000
|
||||
|
||||
#define PRELIM_I915_UFENCE_WAIT_SOFT (1 << 15)
|
||||
|
||||
#define XE_ONE_SEC 1000000000
|
||||
|
||||
@@ -279,8 +279,6 @@ TEST(IoctlHelperXeTest, givenIoctlHelperXeWhenCallingAnyMethodThenDummyValueIsRe
|
||||
|
||||
EXPECT_EQ(nullptr, xeIoctlHelper->createVmControlExtRegion({}));
|
||||
|
||||
EXPECT_EQ(0u, xeIoctlHelper->getFlagsForVmCreate(false, false, false));
|
||||
|
||||
GemContextCreateExt gcc;
|
||||
EXPECT_EQ(0u, xeIoctlHelper->createContextWithAccessCounters(gcc));
|
||||
|
||||
@@ -398,10 +396,16 @@ TEST(IoctlHelperXeTest, givenIoctlHelperXeWhenCallingAnyMethodThenDummyValueIsRe
|
||||
|
||||
EXPECT_TRUE(xeIoctlHelper->completionFenceExtensionSupported(true));
|
||||
|
||||
EXPECT_EQ(static_cast<uint32_t>(XE_NEO_VMCREATE_DISABLESCRATCH_FLAG |
|
||||
XE_NEO_VMCREATE_ENABLEPAGEFAULT_FLAG |
|
||||
XE_NEO_VMCREATE_USEVMBIND_FLAG),
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_VM_CREATE_FLAG_LR_MODE |
|
||||
DRM_XE_VM_CREATE_FLAG_FAULT_MODE),
|
||||
xeIoctlHelper->getFlagsForVmCreate(true, true, true));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_VM_CREATE_FLAG_LR_MODE |
|
||||
DRM_XE_VM_CREATE_FLAG_FAULT_MODE),
|
||||
xeIoctlHelper->getFlagsForVmCreate(false, true, false));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_VM_CREATE_FLAG_LR_MODE),
|
||||
xeIoctlHelper->getFlagsForVmCreate(true, false, true));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_VM_CREATE_FLAG_LR_MODE),
|
||||
xeIoctlHelper->getFlagsForVmCreate(false, false, false));
|
||||
|
||||
EXPECT_EQ(static_cast<uint64_t>(XE_NEO_BIND_CAPTURE_FLAG |
|
||||
XE_NEO_BIND_IMMEDIATE_FLAG |
|
||||
@@ -545,16 +549,16 @@ TEST(IoctlHelperXeTest, whenCallingIoctlThenProperValueIsReturned) {
|
||||
}
|
||||
{
|
||||
GemVmControl test = {};
|
||||
drm.pageFaultSupported = false;
|
||||
uint32_t expectedVmCreateFlags = DRM_XE_VM_CREATE_FLAG_LR_MODE;
|
||||
test.flags = expectedVmCreateFlags;
|
||||
ret = mockXeIoctlHelper->ioctl(DrmIoctl::gemVmCreate, &test);
|
||||
EXPECT_EQ(0, ret);
|
||||
EXPECT_EQ(static_cast<int>(test.vmId), testValueVmId);
|
||||
EXPECT_EQ(test.flags, expectedVmCreateFlags);
|
||||
|
||||
drm.pageFaultSupported = true;
|
||||
expectedVmCreateFlags = DRM_XE_VM_CREATE_FLAG_LR_MODE |
|
||||
DRM_XE_VM_CREATE_FLAG_FAULT_MODE;
|
||||
test.flags = expectedVmCreateFlags;
|
||||
ret = mockXeIoctlHelper->ioctl(DrmIoctl::gemVmCreate, &test);
|
||||
EXPECT_EQ(0, ret);
|
||||
EXPECT_EQ(static_cast<int>(test.vmId), testValueVmId);
|
||||
|
||||
Reference in New Issue
Block a user