Commit Graph

116 Commits

Author SHA1 Message Date
Mateusz Jablonski
973757a58d build: enable xe drm detection by default
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2024-03-11 14:29:20 +01:00
Jitendra Sharma
e1e1c0d046 feature: Implement metadata create event handling in XE
Related-To: NEO-8407
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-03-07 14:26:48 +01:00
Jitendra Sharma
5c4be8df54 fix: Ensure after EU_CONTROL IOCTL, bitmask ptr is not null
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-02-26 10:07:09 +01:00
Jitendra Sharma
2c10f5639e feature: Implement thread control and att event handling for xe
Related-To: NEO-9673
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-02-23 16:15:59 +01:00
Compute-Runtime-Validation
40cea2f6fe Revert "feature: Implement thread control and att event handling for xe"
This reverts commit fb73fad6d7.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-02-23 05:00:21 +01:00
Jitendra Sharma
fb73fad6d7 feature: Implement thread control and att event handling for xe
Related-To: NEO-9673
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-02-22 15:24:35 +01:00
Brandon Yates
0f817d1db4 refactor: Move debugger IsaAllocation to common linux code
-replace i915 event with generic EventToAck type
-Move isamap to common Client Connection
-Move isa memory access functions to common linux imp

Related-to: NEO-9669

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2024-02-21 12:04:31 +01:00
Jitendra Sharma
f56babb2a9 refactor: Move common attention handling EuDebug code out of prelim
Move common attention handling code from prelim in common linux
debug_session(.h/.cpp) files.
This common code could be shared to handle attention events for
prelim and xe driver based Eu Debug

Related-To: NEO-9673
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-02-19 14:49:30 +01:00
Brandon Yates
0fb6f4bf3f refactor: make Debugger ClientConnection common for xe/i915
- Add base ClientConnection type and derived i915/xe types
- Add accessor function fo retreive ClientConnection
- Move getElfOffset to common linux code
- Add accessor functions for getElfSize and getElfData

Related-to: NEO-9669

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2024-02-15 11:27:10 +01:00
Brandon Yates
1e3d57b29a refactor: Move Debugger Mem Access to generic linux implementation
Related-to: NEO-9669

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2024-02-13 18:56:00 +01:00
Jitendra Sharma
ff604bda1b feature: Implement thread control for debugger in XE
Related-To: NEO-9668
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-02-12 19:46:28 +01:00
Brandon Yates
ea7ae7564f feature: Implement read/writeGpuMemory for Xe debugger
- makes prelim read/writeGpuMemory generic
- Implements Xe specific ioctls and fsyncs
- Refactors dbg IoctlHelper to use shared base class
for Xe and i915

Related-to: NEO-9668

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2024-02-08 22:09:59 +01:00
Jitendra Sharma
d69bb8ac15 refactor: Move common debugger methods out of prelim directory
Related-To: NEO-9668
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-02-06 12:45:58 +01:00
Jitendra Sharma
adef8fbc8d feature: Implement Process entry/exit event with xe
Related-To: NEO-9671

Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-02-06 08:40:34 +01:00
Jitendra Sharma
e8ca729002 feature: Add support to handle DRM_XE_EUDEBUG_EVENT_VM event
Related-To: NEO-8407

Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-01-24 15:57:32 +01:00
Jitendra Sharma
b34e8646ac feature: Implement Xe Eu debug Open and Exec Queue events
Related-To: NEO-8407

Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-01-23 08:04:21 +01:00
Mateusz Jablonski
138fb65401 refactor: correct naming of enum class constants 11/n
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-19 14:52:57 +01:00
Brandon Yates
0c7ba17f1a feature(debugger): Implement attach for xe debugger
Related-to: NEO-8407

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-12-18 16:27:17 +01:00
Mateusz Jablonski
8c90350f3c refactor: correct naming of enum class constants 5/n
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-13 10:06:02 +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 Hoppe
eac3d2130d fix: correclty report pagefaults while single-stepping or resuming bp
- while resuming threads - after checking threads stopped immediately
check for FE bit, if set do not generate thread stop event
- if PageFault occured, report stop event based on pagefault event

Related-To: GSD-7316

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-12-11 14:53:49 +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
Mateusz Jablonski
36194c4e7d refactor: correct variable namings
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-11-29 23:49:03 +01:00
Brandon Yates
7f1167d5fe fix(debugger): Fix handling pf event with flat hierarchy
Related-to: GSD-6918

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-11-20 10:57:17 +01:00
Brandon Yates
fd48de3da9 feature(debugger): Add initial Xe debugger skeleton
sync xe_drm.h for debugger to 1d2144ed from
https://gitlab.freedesktop.org/miku/kernel/-/tree/eudebug-dev

Related-to: NEO-8402

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-11-07 17:36:18 +01:00
Brandon Yates
157d7a327a feature(debugger): Create DebugSessionLinux class
DebugSessionLinux is common base class for all linux dbgUMD
implementations. This patch also moves DrmHelper to common debug folder

Related-to: NEO-8404

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-10-24 21:22:44 +02:00
Brandon Yates
85d35d5239 feature(debugger): use linux driver type to create correct debug session imp
Related-to: NEO-8403

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-10-23 10:25:28 +02:00
Mateusz Jablonski
420f273a6c fix: don't wait on condition in unit tests
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-10-10 15:14:30 +02:00
Brandon Yates
3fbce47182 refactor(debugger): Rename DebugSessionLinux
Rename to DebugSessionLinuxi915 in preparation
for implementation of Xe debugger

Related-to: NEO-8404

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-10-09 10:12:47 +02:00
Mateusz Jablonski
95eb5df978 refactor: use reference in for-range loops
Related-To: NEO-9038
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-10-04 15:32:26 +02:00
Mateusz Jablonski
895a586083 refactor: use reference in for-range loops
Related-To: NEO-9038
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-10-03 18:56:53 +02:00
Brandon Yates
253e1df43b feature(debugger): Filter page fault threads by start IP
When a thread is stopped due to potential page fault
we must check AIP against start IP to ensure it is not
a newly started thread accidentally caught by PF algorithm

Related-to: NEO-8617

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-09-29 12:45:32 +02:00
Brandon Yates
7c1f5585d7 feature(debugger): online page fault event handling
Sync to
https://github.com/intel-gpu/drm-uapi-helper/releases/tag/v2.0-rc20

Related-to: LOCI-2052

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-09-18 00:15:45 +02:00
Brandon Yates
513045bd90 fix(debugger): auto-ack vmbind on tile for module from other tiles
Related-to: NEO-8371

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-09-14 15:33:58 +02:00
Compute-Runtime-Validation
e61c5af7ec Revert "feature(debugger): online page fault event handling"
This reverts commit 0c6444aab7.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-08-24 08:16:45 +02:00
Brandon Yates
0c6444aab7 feature(debugger): online page fault event handling
Related-to: LOCI-2052

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-08-23 18:29:58 +02:00
Mateusz Hoppe
8e07dd30cb performance(debugger): optimize ATT handling - minimize mem allocs
- do not allocate state save area every time attention event
is handled
- keep allocated memory for subsequent events
- remove not needed DBEUG_BREAK

Related-To: NEO-8183

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-07-18 08:37:04 +02:00
Mateusz Hoppe
9a53f20e6c performance(debugger): optimize ATT event handling
- check threads with attention state before reading SR_IDENT
- memory read is costly, for threads already in stopped state
there is no need to read sr_ident and check thread state again
- single stepping one thread performance is substantially improved,
by the factor of 6x

Related-To: NEO-8183

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-07-17 10:42:34 +02:00
Mateusz Hoppe
6205cca038 fix(debugger): require immediate binding for Module's allocations
- all bos from Module must have requireImmediateBinding
flag set
- this change fixes hang in debugger - where MODULE LOAD event
was not sent

Resolves: NEO-8121

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-07-06 17:34:22 +02:00
Mateusz Hoppe
c4f36a6808 fix(debugger): ack pending events before closing session
- ack module / isa vm bind events before close(fd)

Related-To: NEO-7960

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-05-11 17:21:23 +02:00
Mateusz Hoppe
079105a5c2 fix: optimize ATT handling - read state save area once for all threads
- reading state save area for every threads takes too long when all
application threads have completed and there are stale ATT events to
process
- on detach gdb seemed to be frozen waiting for ATT event to be handled
- fix is to read state save area once - and check SIP counter for every
thread in ATT bitmask

Related-To: NEO-7897

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-04-14 10:57:18 +02:00
Mateusz Hoppe
d1393e08d3 refactor: remove debug break when EU CONTROL ioctl fails
- when no threads are executing, interrupt all may fail and debug break
fires - although error is handled and correct event is returned. To
prevent abort, debug break has to be removed

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-04-05 13:07:31 +02:00
Mateusz Hoppe
e26ebfc51b fix: check exception reason for stopped threads
- before marking interrupt request check exception reason. If there is
exception other than forced exception or forced external halt treat
thread as stopped and generate distinct event for it.

Related-To: NEO-7869

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-04-05 12:01:20 +02:00
Mateusz Hoppe
f2275caf3a performance: L0 debug - improve single-step time
- check threads with ATT only when more than one thread is resumed
- if single thread is resumed - check only that thread
- delay thread state check - allowing thread to reenter SIP

Related-To: NEO-7750

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-03-15 09:48:35 +01:00
Mateusz Hoppe
caecbb12f0 fix: Add ATT scan after interrupt in handling ATT event
- make sure to capture all threads after interrupt, also those that
could be lagging to enter SIP

Related-To: NEO-7776

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-03-07 11:53:25 +01:00
Mateusz Hoppe
e8b4841577 perf(debugger): Optimize single-stepping of eu threads
Single-stepping threads is based on resume() and THREAD_STOPPED events
To speed up single-stepping, stopped threads must be discovered
immediately after resume() is called.
This change is adding ATT scan and event generation in resume()

Related-To: NEO-7750

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-02-23 11:06:13 +01:00
Warchulski, Jaroslaw
b224ec947e Cleanup includes 50
Cleaned up files:
shared/source/helpers/hw_info.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-10 20:26:13 +01:00
Kamil Kopryk
d8d1b7f331 Initialize status variable
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-10 11:01:47 +01:00
Kamil Kopryk
524d945e8c refactor: rename l0 hw_helpers dir to gfx_core_helpers
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-02 11:15:56 +01:00
Kamil Kopryk
eb002acaa1 refactor: rename l0_gfx_core_helper files
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-01-24 12:59:26 +01:00