Related-To: NEO-13325
Replace blocking obtainUniqueOwnership with non-blocking
tryObtainUniqueOwnership in isCopyEngineOnDeviceIdle.
Treat copy engine as not idle when lock is contended
(conservative; prevents false stops).
Avoid deadlock scenarios caused by holding
directSubmissionsMutex while waiting on a CSR lock.
Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
When relocation points to symbol that is not defined within module mark
it as optional. When symbol is available at dynamic linking time then
info from the function is retrieved but when the symbol is not available
then ignore the dependency.
Any unresolved symbol needed for module linking is already handled
in a separate place.
Related-To: NEO-16243, NEO-16263, NEO-16262, NEO-16268
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
Clonable is a helper type which eases proper management of
dynamically-allocated resources. It allows to reduce the amount of
manual handling.
Related-To: NEO-16017
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
Apply common file to release 12.74.
Move isMatrixMultiplyAccumulateSupported
specialization outside of the common file.
Move common specializations from releases: 12.70, 12.71, 12.74
to release_helper_common_xe_lpg.inl file.
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
Related-To: NEO-13325
Replace blocking obtainUniqueOwnership() with tryObtainUniqueOwnership()
in critical paths to prevent deadlock between controller thread holding
directSubmissionsMutex and submission threads holding CSR locks.
Changes:
- Add CommandStreamReceiver::tryObtainUniqueOwnership() method
- Use try_lock in checkNewSubmissions() and context group idle detection
- Skip contended CSRs instead of blocking (conservative approach)
- Add comprehensive unit tests for try_lock functionality
Fixes deadlock scenario where registerDirectSubmission() waits for
directSubmissionsMutex while checkNewSubmissions() holds it and waits
for CSR ownership locks.
Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
This test naively compares estimated blit command stream sizes instead
of actually checking if a command stream is correctly programmed.
The tested functionality is already covered by
givenMultiRootDeviceSyncNodeWhenFlushBcsTaskThenMiFlushAdded.
Signed-off-by: Radoslaw Jablonski <radoslaw.jablonski@intel.com>
Use default tested platform as default device instead of hardcoded value.
Remove rev_id parameter and use revision found in hw info.
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
skip unsupported builtins
don't initialize test kernel when not needed in GetSizeRequiredBuffer tests
Related-To: NEO-14097
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
Make sure hostFunctionInitialized bool is set after actual operations
are done
Related-To: NEO-14577
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
On new append calls, reset flag if previous submissions
are completed.
Related-To: NEO-16184
Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
The usage of host function allocation is similar to tagBuffer.
Ensure it's uncached and it follows tag buffer's cache policy.
Host function allocation will be readable and writable
by both: cpu and gpu.
Related-To: NEO-14577
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
- program in place for immediate cmdlist
- add to patch commands for regular cmdlist
- initialize host data allocation for the 1st use in csr
Related-To: NEO-14577
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>