Commit Graph

915 Commits

Author SHA1 Message Date
30fe24aa79 Avoid cmpexchg due to CPU Hardware limitation
Limit the amount of times compare_exchange_weak is called,
to avoid issues with contention when multiple cpu cores request
the same address.

Related-To: NEO-7030

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2022-11-08 17:11:52 +01:00
4c05a54c2b Use correct heap when opening device memory IPC handle
This change extends the logic of opening IPC
memory handles and fills the gap between this
logic and allocation of USM device buffers.

When HEAP_EXTENDED is available, then it is
preferred.

Signed-off-by: Wrobel, Patryk <patryk.wrobel@intel.com>
2022-11-08 12:08:04 +01:00
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
2c71df0957 Fix urecoverable abort upon detach event
Unrecoverable abort will be invoked when drm ioctls fail during
device destruction.

Remove abort for case where i915 is unbinded.

Related-To: LOCI-3139

Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
2022-11-07 08:39:00 +01:00
ef95bfb45e Cleanup includes
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-04 18:04:13 +01:00
930ca001a1 Add a layer to translate exec buffer error to SubmissionStatus value
handle errors: EWOULDBLOCK, ENOSPC, ENOMEM, ENXIO

Related-To: NEO-7144, NEO-7412
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-11-04 10:32:54 +01:00
8ddc889c1d Store hardware IP version in hardware info
Query HW IP version using ioctl helper prelim

Related-To: NEO-7457
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-11-03 09:57:08 +01:00
d45d62ef0e Add debug flag to force nonblocking exec buffer calls when using prelim kernel
Related-To: NEO-7144
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-11-03 09:10:31 +01:00
1131a6a4c1 Update i915 prelim headers to v2.0-rc15
https://github.com/intel-gpu/drm-uapi-helper/releases/tag/v2.0-rc15

Related-To: NEO-7457
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-11-02 11:30:54 +01:00
9816f815f3 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>
2022-10-31 10:09:13 +01:00
a9ba581d97 Always use unrecoverable drm context
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-31 10:08:57 +01:00
040d6693cd Revert "Always use unrecoverable drm context"
This reverts commit 343371faad.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-10-29 19:28:04 +02:00
343371faad Always use unrecoverable drm context
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-28 16:13:15 +02:00
5446b9ca0d Update Fabric Latency to Edge Properties (2)
- Only initialize vertexes when queried.
- Return also bandwidth when calling PRELIM_DRM_I915_QUERY_FABRIC_INFO.

Related-To: LOCI-3464

Signed-off-by: Jaime A Arteaga Molina <jaime.a.arteaga.molina@intel.com>
2022-10-26 08:15:35 +02:00
fad7f10b7b Remove fallback path for PAT index programming
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-25 16:24:43 +02:00
34eabf2960 Pass compression and cachable params to CachePolicyGetPATIndex query
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-25 10:41:17 +02:00
83b4edddf0 Update Fabric Latency to Edge Properties
Related-To: LOCI-3464

Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
2022-10-25 03:23:53 +02:00
9b26e96b11 Do not copy std::vector of OS handles when it is not needed
This change replaces unneeded copying of std::vectors
with usage of const references. Furthermore, it adds
reserve() call before filling the container via push_back().

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-10-21 10:28:58 +02:00
5bd4b9eb48 Do not call DebuggerOpen ioctl again on EBUSY
Resolves: NEO-7429

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-10-19 10:26:35 +02:00
0fdb308207 Use correct context for validateHostPtr
- with per context VMs, context with subdeviceBitfield must
be selected

Resolves: NEO-7426

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-10-18 13:10:28 +02:00
b2c80be6f9 Fix typo and error check when retrieving pci information
Fix
1. typo PhysialDevicePciSpeedInfo to PhysicalDevicePciSpeedInfo
2. error check to verify open() call

Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
2022-10-14 14:57:07 +02:00
9bc7c48206 Enable kmd-migrated shared allocation with multiple BOs by default
Related-To: NEO-7395

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
2022-10-14 09:51:14 +02:00
44894c1fdf L0 Debug- Create generic topologyMap interface
Move Linux DebugSession thread conversion functions up to
DebugSessionImp to allow reuse in windows implementation

Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
2022-10-13 15:12:05 +02:00
5094b279f6 Revert "Return same fd handle on multiple calls to peekHandle"
This reverts commit 5c48e027b9.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-10-13 13:17:35 +02:00
71149b29c5 Revert "Propagate exec buffer error to L0 API level"
This reverts commit 9a95f3c62d.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-10-13 06:21:31 +02:00
9a95f3c62d Propagate exec buffer error to L0 API level
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>
2022-10-12 17:34:35 +02:00
5c48e027b9 Return same fd handle on multiple calls to peekHandle
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2022-10-12 17:17:10 +02:00
6edbfa04a0 Add regkey to create kmd-migrated shared allocation with multiple BOs
Related-To: NEO-7395

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
2022-10-11 16:16:43 +02:00
eb79500c60 Debug flag to print completion fence usage.
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-11 14:58:57 +02:00
b21fef96cb Wait for events from host
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-10-10 12:12:13 +02:00
caaf82bb83 Fix L3 size query
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-06 10:46:39 +02:00
71bef6094d Use max enabled slice in debugger thread mapping
Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
2022-10-03 18:11:50 +02:00
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
aab24e6552 Add support for PRELIM_I915_PARAM_SET_PAIR (2)
Fix query for SET_PAIR.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2022-09-30 21:20:00 +02:00
11eb0aa769 Do not bind command buffer separately
Improve performance by binding the command buffer together with other
allocations if VM_BIND feature is available. Remove the legacy
flag PassBoundBOToExec from DebugManager to simplify the logic.
Adapt unit tests and reuse handy macros to generate proxy mock-methods.

Related-To: NEO-7348
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2022-09-30 18:46:16 +02:00
a3b3f3e86e Add support for PRELIM_I915_PARAM_SET_PAIR
This extension allows pairing two buffer objects so they can be
exported using a single dma-buf handle. When imported, a single
buffer object is created with a total size of the two buffer
objects.

Related-To: LOCI-3355

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

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2022-09-29 23:41:39 +02:00
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
2fbc1f652b Choose alignment as next power of 2 for HEAP_EXTENDED allocations.
This way we will get as big pages as possible without leftovers.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-09-26 16:42:59 +02:00
bac85ddb25 Move kernel globals from SVM to USM device
With this change, module's data sections will be allocated in USM device
pool instead of SVM or USM shared.

Signed-off-by: Luzynski, Sebastian Jozef <sebastian.jozef.luzynski@intel.com>
2022-09-23 23:06:15 +02:00
f5575a1370 Revert "Remove fallback path for PAT index programming"
This reverts commit faf8d51f6d.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-09-23 20:46:31 +02:00
645600d141 Return error when there is no memory to evict
We want to return error code to the application instead of aborting when
we are not able to make more memory resident.

Related-To: NEO-7289
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2022-09-22 14:26:55 +02:00
501873d0e0 Add virtual keyword to IoctlHelper methods for frequency files
Related-To: NEO-7300

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-09-22 14:13:03 +02:00
ec3668fc18 Add initialization method to ioctl helpers
Signed-off-by: Naklicki, Mateusz <mateusz.naklicki@intel.com>
2022-09-22 11:55:59 +02:00
9bde277184 Read frequency from file system based on drm version
Related-To: NEO-7300
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-09-21 13:28:18 +02:00
bddf8c7dbc Do not make resident something that is already resident.
Move checks to upper layers.
100ns gain in ZE_AFFINITY_MASK=0.0 PrintDebugSettings=1
./api_overhead_benchmark_l0 --test=ExecuteCommandListImmediate --api=l0
--UseProfiling=0 --CallsCount=1 --MeasureCompletionTime=0
--useBarrierSynchronization=0 --KernelExecutionTime=1 --iterations=1000

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-09-21 10:59:35 +02:00
faf8d51f6d Remove fallback path for PAT index programming
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-09-21 10:46:43 +02:00
92893a5101 L0Debug - add support for mirrored isa heaps
- allow tileInstanced ISA while debugging

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-09-20 19:32:00 +02:00
99d63facb5 Clarify meaning of ForceDeviceId debug flag
this flag can be used only to override device id in AUB/TBX mode

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-09-20 13:15:15 +02:00
3d5e34f727 Reduce the size of masks to 4.
32 is not required.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-09-19 21:53:40 +02:00
fc9352cfcb Optimize binding process.
- Do not iterate when all devices are parsed
- Early continue if given device not present in context

200ns (+10%) in below scenario from compute-benchmarks
ZE_AFFINITY_MASK=0.0 PrintDebugSettings=1 ./api_overhead_benchmark_l0
--test=ExecuteCommandListImmediate --api=l0 --UseProfiling=0
--CallsCount=1 --MeasureCompletionTime=0 --useBarrierSynchronization=0
--KernelExecutionTime=1 --iterations=1000

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-09-19 16:47:34 +02:00