Skip to content

Commit

Permalink
Move Drm function
Browse files Browse the repository at this point in the history
Related-To: NEO-5570

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
  • Loading branch information
zzdanowicz authored and Compute-Runtime-Automation committed Mar 18, 2021
1 parent ec7a0bf commit d223508
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 11 deletions.
7 changes: 6 additions & 1 deletion opencl/test/unit_test/os_interface/linux/drm_neo_create.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,17 @@ Drm *Drm::create(std::unique_ptr<HwDeviceId> hwDeviceId, RootDeviceEnvironment &
}
auto drm = new DrmMockDefault(rootDeviceEnvironment);

const HardwareInfo *hwInfo = rootDeviceEnvironment.getHardwareInfo();
if (HwHelper::get(hwInfo->platform.eRenderCoreFamily).getEnableLocalMemory(*hwInfo)) {
drm->queryMemoryInfo();
}

if (drm->isVmBindAvailable() && rootDeviceEnvironment.executionEnvironment.isDebuggingEnabled()) {
drm->setPerContextVMRequired(true);
}

if (!drm->isPerContextVMRequired()) {
drm->createVirtualMemoryAddressSpace(HwHelper::getSubDevicesCount(rootDeviceEnvironment.getHardwareInfo()));
drm->createVirtualMemoryAddressSpace(HwHelper::getSubDevicesCount(hwInfo));
}
return drm;
}
Expand Down
11 changes: 1 addition & 10 deletions shared/source/os_interface/linux/drm_neo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,15 +234,6 @@ void Drm::destroyDrmContext(uint32_t drmContextId) {
UNRECOVERABLE_IF(retVal != 0);
}

int Drm::createDrmVirtualMemory(uint32_t &drmVmId) {
drm_i915_gem_vm_control ctl = {};
auto ret = SysCalls::ioctl(getFileDescriptor(), DRM_IOCTL_I915_GEM_VM_CREATE, &ctl);
if (ret == 0) {
drmVmId = ctl.vm_id;
}
return ret;
}

void Drm::destroyDrmVirtualMemory(uint32_t drmVmId) {
drm_i915_gem_vm_control ctl = {};
ctl.vm_id = drmVmId;
Expand Down Expand Up @@ -449,7 +440,7 @@ std::unique_ptr<uint8_t[]> Drm::query(uint32_t queryId, uint32_t queryItemFlags,

bool Drm::createVirtualMemoryAddressSpace(uint32_t vmCount) {
for (auto i = 0u; i < vmCount; i++) {
uint32_t id = 0;
uint32_t id = i;
if (0 != createDrmVirtualMemory(id)) {
return false;
}
Expand Down
10 changes: 10 additions & 0 deletions shared/source/os_interface/linux/drm_query.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "shared/source/os_interface/linux/cache_info_impl.h"
#include "shared/source/os_interface/linux/drm_engine_mapper.h"
#include "shared/source/os_interface/linux/engine_info_impl.h"
#include "shared/source/os_interface/linux/sys_calls.h"

#include "drm_neo.h"
#include "drm_query_flags.h"
Expand Down Expand Up @@ -77,4 +78,13 @@ void Drm::setupCacheInfo(const HardwareInfo &hwInfo) {
this->cacheInfo.reset(new CacheInfoImpl());
}

int Drm::createDrmVirtualMemory(uint32_t &drmVmId) {
drm_i915_gem_vm_control ctl = {};
auto ret = SysCalls::ioctl(getFileDescriptor(), DRM_IOCTL_I915_GEM_VM_CREATE, &ctl);
if (ret == 0) {
drmVmId = ctl.vm_id;
}
return ret;
}

} // namespace NEO
10 changes: 10 additions & 0 deletions shared/source/os_interface/linux/drm_query_dg1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include "shared/source/os_interface/linux/drm_engine_mapper.h"
#include "shared/source/os_interface/linux/engine_info_impl.h"
#include "shared/source/os_interface/linux/memory_info_impl.h"
#include "shared/source/os_interface/linux/sys_calls.h"

#include "drm_neo.h"
#include "drm_query_flags.h"
Expand Down Expand Up @@ -86,4 +87,13 @@ void Drm::setupCacheInfo(const HardwareInfo &hwInfo) {
this->cacheInfo.reset(new CacheInfoImpl());
}

int Drm::createDrmVirtualMemory(uint32_t &drmVmId) {
drm_i915_gem_vm_control ctl = {};
auto ret = SysCalls::ioctl(getFileDescriptor(), DRM_IOCTL_I915_GEM_VM_CREATE, &ctl);
if (ret == 0) {
drmVmId = ctl.vm_id;
}
return ret;
}

} // namespace NEO

0 comments on commit d223508

Please sign in to comment.