mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 15:53:45 +08:00
Propagate exec buffer error to L0 API level on Xe HPC
This change makes that drm file is opened in nonblocking mode for prelim kernels. In such case when calling exec buffer ioctl and get EAGAIN (aka EWOULDBLOCK) we may return error to API level Related-To: NEO-7144 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
a9ba581d97
commit
9816f815f3
@@ -33,28 +33,6 @@ const std::map<std::string, std::pair<uint32_t, uint32_t>> guidUuidOffsetMap = {
|
||||
#include "shared/source/xe_hpc_core/os_agnostic_hw_info_config_xe_hpc_core.inl"
|
||||
#include "shared/source/xe_hpc_core/pvc/os_agnostic_hw_info_config_pvc.inl"
|
||||
|
||||
template <>
|
||||
int HwInfoConfigHw<gfxProduct>::configureHardwareCustom(HardwareInfo *hwInfo, OSInterface *osIface) {
|
||||
enableCompression(hwInfo);
|
||||
|
||||
hwInfo->featureTable.flags.ftr57bGPUAddressing = (hwInfo->capabilityTable.gpuAddressSpace == maxNBitValue(57));
|
||||
|
||||
enableBlitterOperationsSupport(hwInfo);
|
||||
|
||||
hwInfo->featureTable.flags.ftrRcsNode = false;
|
||||
if (DebugManager.flags.NodeOrdinal.get() == static_cast<int32_t>(aub_stream::EngineType::ENGINE_CCCS)) {
|
||||
hwInfo->featureTable.flags.ftrRcsNode = true;
|
||||
}
|
||||
|
||||
auto &kmdNotifyProperties = hwInfo->capabilityTable.kmdNotifyProperties;
|
||||
kmdNotifyProperties.enableKmdNotify = true;
|
||||
kmdNotifyProperties.delayKmdNotifyMicroseconds = 150;
|
||||
kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission = true;
|
||||
kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds = 20;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
uint64_t HwInfoConfigHw<gfxProduct>::getDeviceMemoryPhysicalSizeInBytes(const OSInterface *osIface, uint32_t subDeviceIndex) {
|
||||
|
||||
@@ -94,5 +72,10 @@ uint64_t HwInfoConfigHw<gfxProduct>::getDeviceMemoryMaxBandWidthInBytesPerSecond
|
||||
return memoryMaxClkRateInMhz * 1000 * 1000 * numberOfHbmStacksPerTile * memoryBusWidth / 8;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
#include "shared/source/xe_hpc_core/linux/hw_info_config_xe_hpc_core.inl"
|
||||
|
||||
namespace NEO {
|
||||
template class HwInfoConfigHw<gfxProduct>;
|
||||
} // namespace NEO
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
#include "shared/source/helpers/constants.h"
|
||||
#include "shared/source/os_interface/hw_info_config.h"
|
||||
|
||||
namespace NEO {
|
||||
template <>
|
||||
int HwInfoConfigHw<gfxProduct>::configureHardwareCustom(HardwareInfo *hwInfo, OSInterface *osIface) {
|
||||
enableCompression(hwInfo);
|
||||
|
||||
hwInfo->featureTable.flags.ftr57bGPUAddressing = (hwInfo->capabilityTable.gpuAddressSpace == maxNBitValue(57));
|
||||
|
||||
enableBlitterOperationsSupport(hwInfo);
|
||||
|
||||
hwInfo->featureTable.flags.ftrRcsNode = false;
|
||||
if (DebugManager.flags.NodeOrdinal.get() == static_cast<int32_t>(aub_stream::EngineType::ENGINE_CCCS)) {
|
||||
hwInfo->featureTable.flags.ftrRcsNode = true;
|
||||
}
|
||||
|
||||
auto &kmdNotifyProperties = hwInfo->capabilityTable.kmdNotifyProperties;
|
||||
kmdNotifyProperties.enableKmdNotify = true;
|
||||
kmdNotifyProperties.delayKmdNotifyMicroseconds = 150;
|
||||
kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission = true;
|
||||
kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds = 20;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool HwInfoConfigHw<gfxProduct>::isNonBlockingGpuSubmissionSupported() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
Reference in New Issue
Block a user