Commit Graph

130 Commits

Author SHA1 Message Date
Slawomir Milczarek
edaac6ce43 feature: Add ioctl helper function to synchronize userptr allocations
Related-To: NEO-12846

Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2024-11-22 17:58:25 +01:00
Wenbin Lu
2ba80ce114 feature: support physical host memory
Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-11-20 08:19:52 +01:00
Slawomir Milczarek
8b7aa340ad feature: Add ioctl helper function to allocate user ptr
Related-To: NEO-12846

Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2024-11-15 22:10:29 +01:00
Slawomir Milczarek
a331ffcb55 feature: Add ioctl helper functions to mmap/unmap and acquire/releaseGpuRange
Related-To: NEO-11817

Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2024-11-08 15:22:44 +01:00
Alicja Lukaszewicz
654fdc1345 feature: add query for additional device properties
Related-To: NEO-12590

Signed-off-by: Alicja Lukaszewicz <alicja.lukaszewicz@intel.com>
2024-10-29 20:40:27 +01:00
Wenbin Lu
a8a40d2afd feature: support SVM heap in reserveVirtualMem
Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-10-22 16:47:14 +02:00
Bartosz Dunajski
f430279d62 fix: change doorbell type
Related-To: NEO-12870

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-10-14 14:58:11 +02:00
Compute-Runtime-Validation
41df1a6f47 Revert "feature: support SVM heap in reserveVirtualMem"
This reverts commit bfaeeb01d6.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-10-03 14:53:50 +02:00
Dominik Dabek
ac8dcdb298 fix: do not unregister shared allocation
Allocations imported from shared handle are not using registerAlloc in drm
manager but on free, unregister was called.

This could lead to problems with allocation size tracking.

This change will skip the unregisterAllocation call if allocation is
imported from shared handle.

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-10-02 16:32:24 +02:00
Maciej Plewka
80f75ceace fix: submit dummy exec to pin memory during zeContextMakeMemoryResident call
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2024-09-23 14:43:59 +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
Wenbin Lu
bfaeeb01d6 feature: support SVM heap in reserveVirtualMem
Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-09-09 23:22:04 +02:00
Compute-Runtime-Validation
d842f65cf1 Revert "fix: submit dummy exec to pin memory during zeContextMakeMemoryReside...
This reverts commit f9b87d53e6.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-09-05 03:28:03 +02:00
Maciej Plewka
f9b87d53e6 fix: submit dummy exec to pin memory during zeContextMakeMemoryResident call
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>

Related-To: NEO-11879
2024-09-04 14:07:29 +02:00
Compute-Runtime-Validation
99f62ac866 Revert "feature: support SVM heap in reserveVirtualMem"
This reverts commit 93cde3ee12.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-09-03 20:20:25 +02:00
Wenbin Lu
93cde3ee12 feature: support SVM heap in reserveVirtualMem
Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-09-03 11:38:51 +02:00
Bartosz Dunajski
bca8478bd4 feature: use iotclhelper to get num media engines
Related-To: NEO-9777

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-08-08 09:36:28 +02:00
Szymon Morek
b03ac6abd1 fix: disable usm compression on linux
Related-To: NEO-12047

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2024-07-16 14:59:33 +02:00
Szymon Morek
432ecbc8f4 fix: disable compression for exported allocations
Related-To: NEO-12021

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2024-07-16 05:41:14 +02:00
Bartosz Dunajski
bb21d25ed0 feature: initial support for creating media context
Related-To: NEO-11386

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-07-03 12:23:31 +02:00
Jaroslaw Warchulski
daec249430 refactor: remove not needed createGraphicsAllocationFromNTHandle method
Related-To: NEO-11498
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2024-06-18 14:25:00 +02:00
Jaroslaw Warchulski
76a05c1cab refactor: pass arrayIndex to Wddm::openNTHandle function
Related-To: NEO-11498
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2024-06-12 12:11:35 +02:00
Jaroslaw Warchulski
0ac1be7669 refactor: pass arrayIndex to Wddm::openSharedHandle function
Related-To: NEO-11498
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2024-06-07 09:51:26 +02:00
Bartosz Dunajski
64af8dd956 feature: allocating interrupt support
Related-To: NEO-8179

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-06-03 18:35:24 +02:00
Maciej Bielski
dc32da2507 feature: prepare StorageInfo for Drm-specific customization
Get the local memory regions count from the primary source (MemoryInfo)
and store for further use when using DrmMemoryManager.
Add a point of dispatch (virtual `createStorageInfoFromProperties`) for
further Drm-specific customizations related to StorageInfo. As the
function became virtual, move one of its callers
(`isLocalMemoryUsedForIsa()`) from the constructor of `MemoryManager` to
respective constructors of all derivative classes. This prevents
bypassing the virtual call dispatch.

Related-To: NEO-9754
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2024-05-16 12:24:48 +02:00
Maciej Bielski
014720fc29 refactor: use DeviceBitfield where appropriate
Replace less type-safe uint32_t and reduce conversions between both
types.

Related-To: NEO-9754
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2024-05-14 09:13:11 +02:00
Young Jin Yoon
82728ff394 feature: add logic to iterate for all contexts to check GPU pagefault
Implemented to go through entire contexts in the process and then query
reset status to check the unexpected GPU segfault.

Added a new debug variable GpuFaultCheckThreshold to change the checking
frequency for each hang check for performance analysis.

Related-To: GSD-5673
Signed-off-by: Young Jin Yoon <young.jin.yoon@intel.com>
2024-03-15 07:48:39 +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
Maciej Plewka
7728123907 fix: Do not use 2mb alignment for host ptr allocs
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>

Related-To: NEO-9945
2024-01-29 11:01:00 +01:00
Warchulski, Jaroslaw
f7dc17e6a2 fix: set mmapPtr in every allocation in multiGraphicAllocation
Related-To: GSD-7360
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2024-01-16 15:18:44 +01:00
Young Jin Yoon
4ccae1dbb4 feature: support memory policy for GEM_CREATE
Modified ioctl_helper_prelim to support the extension of gem_create_ext,
i.e. prelim_drm_i915_gem_create_ext_mempolicy.

Added two debug variables to be used for the mempolicy extension.

Modified functions in memory_info and drm_memory_manager to support extension

Added numaif.h from https://github.com/numactl/numactl/tree/master,
v2.0.14

Related-To: NEO-8276
Signed-off-by: Young Jin Yoon <young.jin.yoon@intel.com>
2024-01-04 23:49:10 +01:00
Mateusz Jablonski
a4888b39c6 build: add clang-tidy restriction for Enum case
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-21 08:58:51 +01:00
John Falkowski
911acd81a2 feature: add SetBOChunkingSize debug variable
Resolves: NEO-9562

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2023-12-04 06:21:01 +01:00
Compute-Runtime-Validation
9add9f12dc Revert "feature: add SetBOChunkingSize debug variable"
This reverts commit e1df8f9112.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-12-03 03:28:16 +01:00
John Falkowski
e1df8f9112 feature: add SetBOChunkingSize debug variable
Resolves: NEO-9562

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2023-12-01 09:39:47 +01:00
Spruit, Neil R
456f07212d fix: Return pageSize/Heap for reservation based on the size and devices
Related-To: NEO-9127,NEO-9142

- Change the heap/pageSize used based on the size of the reservation
required and the device heaps available.
- Return the page size required based on the size requested by the user
for virtual reservation and the devices on the system.
- Check the size passed in by the user in memory map and physical memory
allocation is valid for the heap and page size that is required.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-10-19 10:44:13 +02:00
Dunajski, Bartosz
06a02552ce refactor: debug flag to override PAT index for given memory type
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-10-12 15:47:28 +02:00
Mateusz Jablonski
a31dd7b454 fix: add unrecoverable to avoid out of bound access
Related-To: NEO-9038
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-10-10 10:45:30 +02:00
John Falkowski
56f05303c9 feature: add support for zeMemGet/SetAtomicAccessAttributeExp
Resolves: NEO-8219

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2023-10-02 15:59:17 +02:00
Mateusz Hoppe
371412a826 refactor: remove useLocalMem from allocate32BitGraphicsMemoryImpl
- this method allocates System Memory
- argument is not needed - ExternalHeap is selected inside this function
- remove unneeded ults
- allocate memory in Device Pool for external heap allocation in
OsAgnosticMemoryManager

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-09-18 10:08:09 +02:00
John Falkowski
f652c7311d feature: Add prefetch for chunking with shared and device mem
Perform prefetching of chunks on shared and device allocations
after bind.

Related-To: NEO-8066

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Signed-off by: John Falkowski <john.falkowski@intel.com>
2023-08-05 02:17:39 +02:00
Jaime Arteaga
2efd6e547a feature: Add support for chunking in the UMD (1/N)
Read if support for chunking is available in the KMD.
If available, KMD will create a BO with 1 or more chunks,
depending on the chunk size selected.

Related-To: NEO-7695

Sync to
https://github.com/intel-gpu/drm-uapi-helper/releases/tag/v2.0-rc18

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Signed-off-by: John Falkowski <john.falkowski@intel.com>
2023-06-02 23:27:40 +02:00
Neil R Spruit
ded9d7bff2 feature: Get Peer Allocation with specified base Pointer
Related-To: LOCI-4176

- Given a Base Pointer passed into Get Peer Allocation, then the base
pointer is used in the map of the new allocation to the virtual memory.
- Enables users to use the same pointer for all devices in Peer To Peer.
- Currently unsupported on reserved memory due to mapped and exec
resiedency of Virtual addresses.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2023-05-24 20:41:20 +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
Spruit, Neil R
364c2da9fb feature: Add Support for zeMemPutIpcHandle & zeMemGet IPC Handle converters
Related-To: LOCI-4172, LOCI-4305, LOCI-4306

- Create a new IPC Memory handle upon call to getIpcMemHandle if the
previous handle has been freed.
- Release the Ipc Memory Handle when zeMemPutIpcHandle is called.
- Create a new IPC Handle for tracking thru zeMemGetAllocProperties
when ze_external_memory_export_fd_t is used.
- Convert FD to opaque IPC handle and IPC Handle to FD.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-04-27 03:53:52 +02:00
Maciej Bielski
09b111cc97 refactor: improve code reuse and readability
Extract distinct steps as dedicated functions, especially when the code
is duplicated. This eases analysis of the logic and highlights
differences between callers of a common code.

Related-To: NEO-7788
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2023-04-24 12:30:01 +02:00
Spruit, Neil R
86e739e9dc feature: Relaxed Virtual Memory reservation with pStart
Related-To: LOCI-3871

- Relaxed the Virtual Memory Reservation to allow pStart and not fail if
the pStart value is not obtained.
- Moves checks on pStart to the user to check and determine if they want
to re-reserve or use the address allocated.
- Changed reserveGpuAddress to use unit64_t type to allow internal
address range structure assignment without cast.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-03-08 08:06:50 +01:00
Milczarek, Slawomir
674691d170 Fix check for page faults enabled in get memory access properties
Related-To: NEO-6465

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
2023-02-28 10:13:25 +01:00
Neil Spruit
2aaebddb37 Revert "Heap allocation allow base address and growable addresses"
This reverts commit 44ec497b1a.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-02-15 18:34:40 +01:00
Spruit, Neil R
44ec497b1a feature: Allow for Allocating a base address in the heap and grow an allocation
Related-To: LOCI-3871

- Enabled allocation of specified base address in the targeted heap.
- Enabled virtual memory reservations to grow by allocating at the start
of the heap vs the end of the heap.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-02-15 08:13:38 +01:00