Commit Graph

683 Commits

Author SHA1 Message Date
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
Jaime Arteaga 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
Maciej Bielski 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
Jaime Arteaga 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
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
Michal Mrozek 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
Luzynski, Sebastian Jozef 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
Compute-Runtime-Validation 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
Fabian Zwolinski 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
Mateusz Jablonski 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
Naklicki, Mateusz ec3668fc18 Add initialization method to ioctl helpers
Signed-off-by: Naklicki, Mateusz <mateusz.naklicki@intel.com>
2022-09-22 11:55:59 +02:00
Mateusz Jablonski 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
Michal Mrozek 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
Dunajski, Bartosz 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
Mateusz Hoppe 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
Mateusz Jablonski 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
Michal Mrozek 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
Michal Mrozek 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
Compute-Runtime-Validation 45c8124d8f Revert "Move kernel globals from SVM to USM device"
This reverts commit 706a5a7a8c.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-09-18 12:49:44 +02:00
Sebastian Luzynski 706a5a7a8c 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: Sebastian Luzynski <sebastian.jozef.luzynski@intel.com>
2022-09-15 16:50:12 +02:00
Patryk Wrobel 0fb52f7d45 Fix undefined behavior in IoctlHelperPrelim20::prepareVmBindExt()
When pointer type differs from the type, which was obtained
via new[] operator, then delete[] is undefined behavior.

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-09-12 14:14:51 +02:00
Patryk Wrobel 53c127e64c Remove superfluous const_casts
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-09-06 13:34:01 +02:00
Dunajski, Bartosz 3c8c09634f Add fallback path to query L3 size
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-09-02 15:32:16 +02:00
Patryk Wrobel e0b686a538 Remove possible out-of-bound array access from Drm::registerResource()
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-09-02 14:05:02 +02:00
Patryk Wrobel 90ba50bf52 Warn when RAII lock returned from function is discarded
Discarding RAII lock returned from function almost always
is a bug. This change introduces usage of [[no_discard]]
attribute from C++17 to prevent such misues.

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-09-01 16:53:03 +02:00
Dunajski, Bartosz 2102117e12 Fix data race for TLB flush check
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-08-31 12:27:48 +02:00
Mateusz Jablonski f42e012bd8 Retry calling ioctl when getting -EBUSY from ioctl call
Related-To: NEO-7195
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-08-31 11:55:36 +02:00
Mateusz Hoppe 75b117b82f L0Debug - fixes for ZE AFFINITY MASK
- pass correct deviceIndex when notifying cmdQs
- fix allocating debug surface - single tile allocation when single
bit set in storageInfo

Related-To: NEO-6980

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-31 11:43:19 +02:00
Dunajski, Bartosz 4809a2a9b3 Allow debug flag to apply allocation alignment for heaps
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-08-29 15:17:56 +02:00
Patryk Wrobel c0342a0ab5 Optimize binaries' size by adjusting linkage of constants in headers
When header is included for the first time in translation unit,
then preprocessor simply copy-pastes its content. If we define a
constant in a header file and this constant has internal linkage
then each and every translation unit, which includes this header
will have its own copy of this constant.

C++17 introduces inline variables, which are meant to allow creation
of variables in header files, which do not cause multiple instances.

The inline variable has a single instance when:
- constexpr is used without static (constexpr implicitly implies inline)
- inline is used without static
- inline const is used without static (const does not imply internal linkage
when used with inline)

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-08-26 22:52:04 +02:00
Mateusz Jablonski e934a449db Add missing pragmas once
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-08-25 09:46:44 +02:00
Mateusz Jablonski ca0686b404 Unify include directories for i915 headers
include i915_drm_prelim.h using relative path

Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-08-24 14:58:01 +02:00
Kamil Diedrich b39be32e20 Add member for handling additional adapterInfo fields
Signed-off-by: Kamil Diedrich <kamil.diedrich@intel.com>
2022-08-09 14:11:05 +02:00
Mateusz Jablonski 6450be2414 Remove redundant device and revision id members from Drm class
Drm should set these values directly to hw info in root device environment

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-08-09 10:13:32 +02:00
Mateusz Jablonski 762aebaea3 Make drm_neo.cpp independent on i915 headers
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-08-08 22:13:22 +02:00
Philippe Lecluse a931f1654e Add new enum values to DrmIoctl
Signed-off-by: Philippe Lecluse <philippe.lecluse@intel.com>
2022-08-05 00:40:21 +02:00
Neil R Spruit ada9b5d4a9 Handle if L0 Event Memory is Shareable
- Properly check for IPC event handle flag to determine if the event
pool memory is sharable between processes.
- Given Host Visible Event Pool, a check is done to determine if the
Host memory can be shared between the processes.
- Enabled handling if Event Host Memory is shareable for DRM
- If Event Pool Memory is Not shareable, then retrieving the IPC Event
Pool Handle returns unsupported.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-08-05 00:11:05 +02:00
Milczarek, Slawomir 9f36b20423 Bind buffer object before calling vm prefetch
Related-To: NEO-6740

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
2022-08-01 15:03:21 +02:00
Mateusz Jablonski 50c0e07bec Move drm wrappers checks to separated cpp
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-28 13:23:06 +02:00
Mateusz Jablonski 6bdc920d21 Add wrappers for I915 macros for struct definition
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-27 17:04:04 +02:00
Kamil Kopryk 5a3746df76 Cleanup includes 2/n
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-07-27 12:01:36 +02:00
Mateusz Jablonski 7434a7503a Change macro definition to constexpr definition
I915_CONTEXT_PRIVATE_PARAM_BOOST -> contextPrivateParamBoost

Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-27 11:26:19 +02:00
Mateusz Jablonski 416ca5938e Create enum values for i915 context param values
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-27 09:53:02 +02:00
Mateusz Jablonski db2d1a53b9 Cleanup includes in drm_memory_manager.h
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-26 20:53:21 +02:00
Mateusz Jablonski c94b6581c2 Make drm memory manager independent on drm headers
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-26 20:46:22 +02:00
Mateusz Jablonski b2489a4c28 Add enum value for i915 mmap offset wb and wc
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-26 18:28:08 +02:00
Mateusz Jablonski 17d2d6087a Add enum value for drm query topology info
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-26 15:37:13 +02:00
Dunajski, Bartosz 0378f2e8b3 Debug flag to override Images support
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-07-26 12:01:35 +02:00
Mateusz Jablonski 3d1c990e37 Move set domain cpu logic to ioctl helper
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-25 16:16:34 +02:00
Mateusz Jablonski b49e2237c5 Pass drm to MemoryInfo ctor
Related-To: NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-25 15:44:10 +02:00