Commit Graph

100 Commits

Author SHA1 Message Date
Lukasz Jobczyk 5bcf500c13 fix: Extend ULLS light mutex range
If some operatioins requires ULLS light stop, execute such operations
under mutex in pair with ULLS stop to ensure no other thread will start
ULLS.

Related-To: NEO-14406, NEO-13922

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2025-04-07 17:35:04 +02:00
Maciej Plewka 36fa6d66ae fix: lock csr in stopDirectSubmission if needed
Related-To: NEO-13875, NEO-14143, HSD-16026538384, HSD-16026780358
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2025-03-18 09:30:38 +01:00
Szymon Morek f08b32761e fix: avoid race when evicting resources
Related-To: NEO-13843

DrmMemoryOperationsHandler::mutex is used for residency
handling.
However, this mutex is not being locked during eviction when vm bind
failed.
This is causing races for example when ULLS controller wants to make
resources resident, and user thread wants to evict
them.
Fix is to explicitly obtain lock in problematic path.

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2025-03-07 07:01:41 +01:00
Lukasz Jobczyk 051f7928f1 performance: tiny improvements for ULLS light
Related-To: NEO-13922

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2025-02-17 23:52:33 +01:00
Lukasz Jobczyk bc2b49b958 feature: Introduce ULLS light
Add core implementation of ULLS without VM_BIND interface aka ULLS
light.

Related-To: NEO-13922

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2025-02-12 17:52:02 +01:00
Chandio, Bibrak Qamar 7149743162 fix: Set vmbind user fence when makeMemoryResident
Related-To: NEO-11977, GSD-10293

Signed-off-by: Chandio, Bibrak Qamar <bibrak.qamar.chandio@intel.com>
2025-02-10 14:20:09 +01:00
Compute-Runtime-Validation d23249b061 Revert "fix: Set vmbind user fence when makeMemoryResident"
This reverts commit 80dc4fb43a.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2025-01-31 11:36:29 +01:00
Chandio, Bibrak Qamar 80dc4fb43a fix: Set vmbind user fence when makeMemoryResident
Related-To: NEO-11977, GSD-10293

Signed-off-by: Chandio, Bibrak Qamar <bibrak.qamar.chandio@intel.com>
2025-01-28 22:04:37 +01:00
Chandio, Bibrak Qamar 27c7fbc611 feature: set error description in os_interface/linux
Added setErrorDescription for drm_buffer_object, drm_memory_manager,
and ioctl_helper_prelim

Related-To: NEO-12456

Signed-off-by: Chandio, Bibrak Qamar <bibrak.qamar.chandio@intel.com>
2024-09-12 18:48:41 +02:00
Young Jin Yoon 675ec13439 fix: add rootDeviceIndex for BufferObjectHandleWrapper
Modified sharedBoHandles to use the (boHandle, rootDeviceIndex) pair
as a key instead of boHandle, and added rootDeviceIndex variable in
the BufferObjectHandleWrapper class of drm_buffer_object.h.

Previously sharedBoHandles uses boHandle as a key. However, this will
not work with the system using multiple devices, because each devices
can return the same handle to refer different memory region.

Related-To: GSD-9024
Signed-off-by: Young Jin Yoon <young.jin.yoon@intel.com>
2024-09-10 19:27:19 +02:00
Slawomir Milczarek 0258667a6e fix: Set control block in buffer object handle wrapper to null after deletion
Related-To: HSD-18039543925

Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2024-08-29 12:06:59 +02:00
Mateusz Jablonski 6af9856e33 fix: reorder members in BufferObject class
Related-To: HSD-13011781488
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2024-03-25 11:44:38 +01:00
Mateusz Jablonski ec19ce536a refactor: store userptr value in buffer object
Related-To: NEO-10496
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2024-03-22 12:49:13 +01:00
Compute-Runtime-Validation 94cc48f81b Revert "fix: don't use fake userptr flag in ioctl helper xe"
This reverts commit d3ab256f55.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-03-15 03:08:01 +01:00
Mateusz Jablonski d3ab256f55 fix: don't use fake userptr flag in ioctl helper xe
Related-To: NEO-10496
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2024-03-14 18:41:17 +01:00
Compute-Runtime-Validation ef7dbc99f1 Revert "fix: don't use fake userptr flag in ioctl helper xe"
This reverts commit 98824fdaf6.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-03-14 14:35:14 +01:00
Mateusz Jablonski 98824fdaf6 fix: don't use fake userptr flag in ioctl helper xe
Related-To: NEO-10496
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2024-03-14 10:07:38 +01:00
Michal Mrozek 27f4eab52f fix: restore previous order of variables
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
Resolves: NEO-10439
2024-02-19 14:13:54 +01:00
Dominik Dabek 0120d8a58d performance: program pat index on mtl linux
Enable programming pat indexes on mtl linux for device buffers.

Change DrmMemoryManager::allocateMemoryByKMD to use gemCreateExt.

Set mmap flags based on coherency.
Map as write back on legacy and coherent.
On non-coherent map as write combined.

Changes currently disabled, to enable use debug keys:
DisableGemCreateExtSetPat=0
UseGemCreateExtInAllocateMemoryByKMD=1

Reorder BufferObject to decrease padding.

Related-To: NEO-7896

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-02-16 17:33:07 +01:00
Mateusz Jablonski de93bc6928 refactor: correct naming of enum class constants 10/n
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-19 11:30:39 +01:00
Mateusz Jablonski 2eba5b35e4 refactor: correct naming of DrmParam enum values
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-13 15:43:46 +01:00
Mateusz Jablonski 739d181026 refactor: correct naming of enum class constants 6/n
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-13 14:48:52 +01:00
Mateusz Jablonski cff6c81be0 refactor: correct naming of DrmIoctl enums
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-12 10:02:19 +01:00
Mateusz Jablonski c9664e6bad refactor: rename global debug manager to debugManager
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-11-30 13:00:59 +01:00
Cencelewska, Katarzyna a6ea67bd09 fix: add empty functions to set and get gemTiling in xeIoctlHelper
it is needed until there is no support in xe kmd for image tiling

Related-To: NEO-8325
Signed-off-by: Cencelewska, Katarzyna <katarzyna.cencelewska@intel.com>
2023-09-12 16:11:37 +02:00
Mateusz Jablonski 32d8a3bc6d fix: store registered engines per root device
in most cases we need to iterate over engines associated to single root device

Related-To: NEO-7925
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-04-27 10:54:07 +02:00
Wrobel, Patryk 4c58eda90d Ensure that BO handle is closed only once
When one process had exported and then opened IPC handle
of memory, then close function was called twice for the
same BO handle. It caused debugBreak() and aborted
an application.

This change allows multiple separate BOs to share one
handle. The last shared handle owner calls close() function.

Related-To: NEO-7200
Signed-off-by: Wrobel, Patryk <patryk.wrobel@intel.com>
2023-02-13 14:42:49 +01:00
Warchulski, Jaroslaw be647d42d9 Cleanup includes 12
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-12-07 13:14:15 +01:00
Maciej Plewka 4b42b066f8 Use dedicated using type for TaskCount
Related-To: NEO-7155

Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2022-11-28 16:44:44 +01:00
Warchulski, Jaroslaw 1c03361273 Cleanup includes 6
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-21 12:02:14 +01:00
Warchulski, Jaroslaw f35f59b573 Cleanup includes 5
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-18 22:46:38 +01:00
Warchulski, Jaroslaw fb25f96081 Cleanup includes 2
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-07 10:36:50 +01:00
Compute-Runtime-Validation 95434f446f Revert "Retry in loop when exec or bind fails with ENXIO"
This reverts commit ec13b185a3.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-10-01 12:13:35 +02:00
Maciej Plewka ec13b185a3 Retry in loop when exec or bind fails with ENXIO
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2022-09-29 06:23:41 +02:00
Mateusz Jablonski e88bad79a6 Dont pass drm to ioctl helper methods - use Ioctl Helper's member instead
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-30 11:11:12 +02:00
Mateusz Jablonski b72fcad1be Drm: call ioctl using ioctl helper if possible
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-29 11:29:40 +02:00
Mateusz Jablonski 70cef0cfe8 Create enum values for I915 tiling mode
Related-To: NEO-6852, NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-21 23:33:50 +02:00
Mateusz Jablonski e67307b724 Add DrmParam enum values for I915_EXEC values
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-15 08:39:39 +02:00
Mateusz Jablonski b3814e41b4 Create enum for Ioctl request values
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-27 13:22:59 +02:00
Mateusz Jablonski 05cb48976f Create wrappers for drm getparam, query, gem close, prime handle, version
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-24 19:51:27 +02:00
Mateusz Jablonski ac3005a463 Create a wrapper for drm_i915_query_item
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-18 11:32:44 +02:00
Mateusz Jablonski de465b1e6c Move drm wrappers to a separate file
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-17 17:58:19 +02:00
Mateusz Jablonski 2cca28af07 Create wrappers for drm_i915_gem_get_tiling and drm_i915_gem_set_tiling
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-17 11:08:08 +02:00
Artur Harasimiuk 819e0f5515 style: configure readability-identifier-naming.LocalVariableCase
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2022-05-16 12:39:44 +02:00
Mateusz Jablonski 3c18744d10 Create a wrapper for drm_i915_gem_execbuffer2
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-12 17:58:16 +02:00
Mateusz Jablonski 268393d776 Create wrapper for drm_i915_gem_exec_object2
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-12 13:14:27 +02:00
Krzysztof Gibala 143694aa0a Adjust gmmHelper canonize method accessing point in Drm
Accessing canonize method as a member of GmmHelper class object

Related-To: NEO-6523
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2022-05-11 17:35:08 +02:00
Artur Harasimiuk e9be9b64c6 clang-tidy configuration cleanup
Define single .clang-tidy configuration with all used checks and use
NOLINT to selectively silence tool. That way cleanup should be easier.
third_part/ has its own configuration that disables clang-tidy for this
folder.

Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2022-05-11 14:02:04 +02:00
Bartosz Dunajski 06fa316a75 Assign pat_index to BO during creation
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-04-21 13:25:13 +02:00
Patryk Wrobel 352583b9d9 Detect GPU hang in evictUnusedAllocations()
This change introduces checking of the return value
of wait function in case of blocking version of
evictUnusedAllocations(). Furthermore, it propagates
the error to the callers. It contains also ULTs.

Related-To: NEO-6681
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-13 15:39:02 +02:00