mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
fix: Crash on over memory allocation
- Add defer backing flag to gem create ioctl - Make memory resident before lock Related-To: NEO-13403 Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
aab1113632
commit
3bef9f886a
@@ -678,6 +678,10 @@ int IoctlHelperXe::createGemExt(const MemRegionsVec &memClassInstances, size_t a
|
||||
create.placement = static_cast<uint32_t>(memoryInstances.to_ulong());
|
||||
create.cpu_caching = this->getCpuCachingMode(isCoherent, isSysMemOnly);
|
||||
|
||||
if (debugManager.flags.EnableDeferBacking.get()) {
|
||||
create.flags |= DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING;
|
||||
}
|
||||
|
||||
printDebugString(debugManager.flags.PrintBOCreateDestroyResult.get(), stdout, "Performing DRM_IOCTL_XE_GEM_CREATE with {vmid=0x%x size=0x%lx flags=0x%x placement=0x%x caching=%hu }",
|
||||
create.vm_id, create.size, create.flags, create.placement, create.cpu_caching);
|
||||
|
||||
@@ -720,6 +724,10 @@ uint32_t IoctlHelperXe::createGem(uint64_t size, uint32_t memoryBanks, std::opti
|
||||
create.placement = static_cast<uint32_t>(memoryInstances.to_ulong());
|
||||
create.cpu_caching = this->getCpuCachingMode(isCoherent, isSysMemOnly);
|
||||
|
||||
if (debugManager.flags.EnableDeferBacking.get()) {
|
||||
create.flags |= DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING;
|
||||
}
|
||||
|
||||
printDebugString(debugManager.flags.PrintBOCreateDestroyResult.get(), stdout, "Performing DRM_IOCTL_XE_GEM_CREATE with {vmid=0x%x size=0x%lx flags=0x%x placement=0x%x caching=%hu }",
|
||||
create.vm_id, create.size, create.flags, create.placement, create.cpu_caching);
|
||||
|
||||
@@ -1566,6 +1574,14 @@ bool IoctlHelperXe::isImmediateVmBindRequired() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IoctlHelperXe::makeResidentBeforeLockNeeded() const {
|
||||
auto makeResidentBeforeLockNeeded = false;
|
||||
if (debugManager.flags.EnableDeferBacking.get()) {
|
||||
makeResidentBeforeLockNeeded = true;
|
||||
}
|
||||
return makeResidentBeforeLockNeeded;
|
||||
}
|
||||
|
||||
void IoctlHelperXe::insertEngineToContextParams(ContextParamEngines<> &contextParamEngines, uint32_t engineId, const EngineClassInstance *engineClassInstance, uint32_t tileId, bool hasVirtualEngines) {
|
||||
auto engines = reinterpret_cast<drm_xe_engine_class_instance *>(contextParamEngines.enginesData);
|
||||
if (engineClassInstance) {
|
||||
|
||||
Reference in New Issue
Block a user