Commit Graph

59 Commits

Author SHA1 Message Date
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
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 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
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
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
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
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
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
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
Mateusz Hoppe
23b1f74615 fix: L0 debug - use correct condition variable to wait for event
- getInternalEvent() should wait on cv that is notified when new event is
read
- this change speeds up application execution under debugger
- refactor unit tests - do not start async thread in ults when not
needed , use synchronous read mode instead

Related-To: NEO-7641

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-01-18 11:55:32 +01:00
Warchulski, Jaroslaw
0eac749fcc Cleanup includes 19
Cleaned up files:
opencl/source/api/cl_types.h
shared/source/compiler_interface/external_functions.h
shared/source/compiler_interface/linker.h
shared/source/device_binary_format/elf/elf.h
shared/source/helpers/preamble.h
shared/source/memory_manager/definitions/storage_info.h
shared/source/memory_manager/memory_manager.h
shared/source/memory_manager/os_agnostic_memory_manager.h
shared/source/program/program_info.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-03 11:02:05 +01:00
Mateusz Hoppe
5c23d05312 L0Debug - add support for blocking VM BIND on fence
Related-To: NEO-7454

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-11-18 12:00:23 +01:00
Warchulski, Jaroslaw
90bc1a69d2 L0Debug - wait for the thread to start
Related-To: NEO-7322
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-10-20 10:44:16 +02:00
Mateusz Hoppe
95505d87a5 L0Debug - fix interrupt
- pass deviceIndex based on deviceBitfield
- do not call ioctl again on EBUSY error

Resolves: NEO-7414

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-10-14 13:56:57 +02:00
Yates, Brandon
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
Matias Cabral
56109b882f Support debugger SLM write
Resolves: NEO-5998

Signed-off-by: Matias Cabral <matias.a.cabral@intel.com>
2022-10-11 16:37:14 +02:00
Matias Cabral
c012034c19 Debugger access to SLM
Resolves: NEO-5998

Signed-off-by: Matias Cabral <matias.a.cabral@intel.com>
2022-09-30 11:31:19 +02:00
Mateusz Hoppe
6811b1079f L0Debug - support for out of order debug events
Related-To: NEO-7366
- if VM BIND comes with VM that cannot be mapped to tile,
push the event to pending events and process next events
until context params event with comes
- when pending event is handled - remove it from queue

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-09-30 11:26:24 +02:00
Mateusz Hoppe
7e2e940d6e L0Debug - zebin modules support for mirrored isa heaps
- all tileInstanced ISAs must be received before sending
MODULE LOAD/UNLOAD events for zebin modules

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-09-28 10:53:51 +02:00
Mateusz Hoppe
7ff258fc92 L0Debug - Enable attaching to Root or Subdevices
- enable tile attach mode by default
- both root device and subdevice may be attached to

Related-To: NEO-7347

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-09-26 16:03:54 +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 Hoppe
dd7967a05d L0Debug - account for device bitfield
- converting physical/api thread ids should account for
devicebitfield
- debug events for ISA filtered - skip events for not
relevant tiles

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-09-09 13:03:06 +02:00
Yates, Brandon
12c7f32679 L0 Win Debugger - implement thread control
Resolves: NEO-6722

Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2022-09-05 19:26:14 +02:00
Jitendra Sharma
3212a71760 Debugger L0 Win: Attention event handling from UMD
Related-To: NEO-7261

Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2022-09-02 18:22:41 +02:00
Mateusz Hoppe
ee8af85341 L0Debug fixes for multi tile devices
- notify module allocation for (sub)device used to create module,
makeResident called within (sub)device contexts
- access ISA with vmHandle specific to device index

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-31 10:58:28 +02:00
Mateusz Hoppe
e6c0d2d1e8 L0Debug - store and restore events for tile session
- keep track of all loaded modules
- keep track of process entry/exit state
- restore valid events on attach
- acknowledge/clean events on detach

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-29 15:35:38 +02:00
Mateusz Hoppe
aa59ee94b2 L0Debug - close debug fd when DebugSession is destroyed
- after last tile DebugSession is detached, root DebugSession
must close fd

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-24 14:58:16 +02:00
Mateusz Hoppe
4bd53be195 L0Debug - tile attach - add missing implementation
- interrupt / resume
- read/write registers

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-24 07:32:29 +02:00
Mateusz Hoppe
61242205e0 L0Debug - tile attach implementation
- PROCESS ENTRY/EXIT events
- MODULE events
- DETACH event
- memory access

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-18 13:38:51 +02:00
Mateusz Hoppe
2a5bca380d L0Debug - tile debug session - initial changes
Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-16 10:44:12 +02:00
Mateusz Hoppe
bc605f413c L0Debug - split acking general events from isa events
- allow to pass deviceIndex when acking isa events,
used with per-tile isa

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-11 13:11:55 +02:00
Mateusz Hoppe
3a2d3b9274 L0Debug refactor - move eventsToAck out from ClientConnection
- events to ack are unrelated to client handle

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-09 19:52:17 +02:00
Mateusz Hoppe
869768a01a L0Debug refactor - make memory access steps clear and simple
- split isa, elf and default mem access to separate steps

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-09 18:04:38 +02:00
Mateusz Hoppe
52133e61ce L0Debug - per tile isa and modules in debug session
Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-08-08 15:46:56 +02:00
Mateusz Hoppe
4da6f65d1a L0Debug - Notify cmdQueue create for subdevices
- PROCESS ENTRY triggered for first cmdQ created

Related-To: NEO-5784
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-07-22 16:08:41 +02:00
Compute-Runtime-Validation
5199ea257d Revert "L0Debug - Notify cmdQueue create for subdevices"
This reverts commit ebcb3faad2.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-07-21 18:50:20 +02:00
Mateusz Hoppe
ebcb3faad2 L0Debug - Notify cmdQueue create for subdevices
- PROCESS ENTRY triggered for first cmdQ created

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-07-20 15:13:06 +02:00
Mateusz Jablonski
78c96db2fa Create wrappers for different version of i915 headers
Related-To: NEO-6852
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-07-18 10:15:44 +02:00
Mateusz Hoppe
023f9df999 L0Debug - move apiEvents queue to DebugSessionImp
- the logic of reading api events is OS agnostic

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-07-15 16:19:38 +02:00
Mateusz Hoppe
bd07b3ec97 L0Debug refactor: Replace ze_device_thread_t with EuThread::ThreadId
- ThreadId is preferred beacuse it uniquely identifies thread and is
not related to device topology

Related-To: NEO-5784

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-07-14 20:01:56 +02:00