mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-26 23:33:20 +08:00
feature: Before resuming the thread unlock them
Related-To: NEO-7988 Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
3fa5504a5d
commit
ac52a2ff5b
@@ -718,7 +718,6 @@ int DebugSessionLinuxXe::threadControlResume(const std::vector<EuThread::ThreadI
|
||||
euControl.client_handle = clientHandle;
|
||||
euControl.bitmask_size = 0;
|
||||
euControl.bitmask_ptr = 0;
|
||||
euControl.cmd = DRM_XE_EUDEBUG_EU_CONTROL_CMD_RESUME;
|
||||
|
||||
std::unique_ptr<uint8_t[]> bitmask;
|
||||
size_t bitmaskSize = 0;
|
||||
@@ -733,15 +732,23 @@ int DebugSessionLinuxXe::threadControlResume(const std::vector<EuThread::ThreadI
|
||||
euControl.exec_queue_handle = execQueueHandle;
|
||||
euControl.lrc_handle = lrcHandle;
|
||||
|
||||
euControlRetVal = ioctl(DRM_XE_EUDEBUG_IOCTL_EU_CONTROL, &euControl);
|
||||
if (euControlRetVal != 0) {
|
||||
PRINT_DEBUGGER_ERROR_LOG("DRM_XE_EUDEBUG_IOCTL_EU_CONTROL failed: retCode: %d errno = %d command = %d, execQueueHandle = %llu lrcHandle = %llu\n",
|
||||
euControlRetVal, errno, static_cast<uint32_t>(euControl.cmd), static_cast<uint64_t>(euControl.exec_queue_handle),
|
||||
static_cast<uint64_t>(euControl.lrc_handle));
|
||||
} else {
|
||||
PRINT_DEBUGGER_INFO_LOG("DRM_XE_EUDEBUG_IOCTL_EU_CONTROL: seqno = %llu command = %u\n", static_cast<uint64_t>(euControl.seqno), static_cast<uint32_t>(euControl.cmd));
|
||||
auto invokeIoctl = [&](int cmd) {
|
||||
euControl.cmd = cmd;
|
||||
euControlRetVal = ioctl(DRM_XE_EUDEBUG_IOCTL_EU_CONTROL, &euControl);
|
||||
if (euControlRetVal != 0) {
|
||||
PRINT_DEBUGGER_ERROR_LOG("DRM_XE_EUDEBUG_IOCTL_EU_CONTROL failed: retCode: %d errno = %d command = %d, execQueueHandle = %llu lrcHandle = %llu\n",
|
||||
euControlRetVal, errno, static_cast<uint32_t>(euControl.cmd), static_cast<uint64_t>(euControl.exec_queue_handle),
|
||||
static_cast<uint64_t>(euControl.lrc_handle));
|
||||
} else {
|
||||
PRINT_DEBUGGER_INFO_LOG("DRM_XE_EUDEBUG_IOCTL_EU_CONTROL: seqno = %llu command = %u\n", static_cast<uint64_t>(euControl.seqno), static_cast<uint32_t>(euControl.cmd));
|
||||
}
|
||||
};
|
||||
|
||||
if (l0GfxCoreHelper.threadResumeRequiresUnlock()) {
|
||||
invokeIoctl(getEuControlCmdUnlock());
|
||||
}
|
||||
|
||||
invokeIoctl(DRM_XE_EUDEBUG_EU_CONTROL_CMD_RESUME);
|
||||
return euControlRetVal;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user