Commit Graph

113 Commits

Author SHA1 Message Date
Brandon Yates
c1ac3a733d feature: Expand exception bitmask checked by dbgUMD
Related-to: NEO-8306

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2025-02-05 02:39:26 +01:00
Katarzyna Cencelewska
b2f8da5109 fix: return pointer instead of reference from getOsInterface
on tbx this will be a nullpointer

Related-To: HSD-18040897834
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2025-01-21 12:52:39 +01:00
Bartosz Dunajski
47f74b8a7b refactor: reorganize l0 api include directories [1/n]
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-12-20 12:59:08 +01:00
Jitendra Sharma
428e2132b0 fix: Gracefully handle case when SIP version header is greater than 3
Related-To: NEO-7988
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-11-15 17:38:24 +01:00
Jitendra Sharma
171f1e27a3 fix: Add debug variables for configurable timeouts in debugger
Related-To: NEO-13046
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-10-23 10:30:03 +02:00
Jitendra Sharma
26709ba124 fix: Implement polling of SW FIFO
Related-To: NEO-12955
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-10-21 07:19:42 +02:00
Jitendra Sharma
9bd4878841 feature: update GRF register implementation
Related-To: NEO-8314
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-10-15 13:47:34 +02:00
Jitendra Sharma
a111c18fb1 refactor: Add timestamp to all debugger log
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-10-08 18:12:20 +02:00
Brandon Yates
013c49db02 fix: change getBindlessDebugSipKernel to also get heapless sip
Rename function to getDebugSipKernel and select either bindless
or heapless depending on mode

Related-to: NEO-8396

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2024-10-03 20:47:40 +02:00
Jitendra Sharma
733ca5ac28 fix: Write tail index even for fifo wrap around case
Related-To: NEO-7990
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-09-30 18:19:28 +02:00
Jitendra Sharma
2ed2cb43db fix: Read fifo_head from state save area header correctly
Currently we are reading fifo_head from local copy of saved
stateSaveAreaHeader.
However, during fifo read dbgUMD is reading FIFO entries and
accordingly SIP would also update fifo_head.
Hence while accessing fifo_head, ensure that we always read
fifo_head from latest in memory state save area header.

Related-To: NEO-12787
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-09-25 10:44:41 +02:00
Jitendra Sharma
0b3a6df5db fix: Take regset_desc from correct SSH based on version major
Related-To: NEO-7988
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-09-24 12:31:21 +02:00
Mateusz Jablonski
fafc0e10dc refactor: remove not needed code
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2024-09-13 17:52:35 +02:00
Filip Hazubski
f87673e761 fix: Add missing check to DebugSessionImp::readFifo function
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2024-08-22 15:19:43 +02:00
Mateusz Hoppe
4c3a0d8344 fix: add missing sba capture when debug enabled
- In global bindless mode SBA may be programmed for scratch allocation,
missing sba capturing caused issues for kernels with scratch.
- this fix adds SBA capturing after SBA command

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2024-08-20 09:32:17 +02:00
Jitendra Sharma
6df6e4bbb0 feature: Add SW FIFO implementation
Related-To: NEO-7990
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-08-19 16:38:34 +02:00
Brandon Yates
63478808a7 feature: implement new registers for debugger
Related-to: NEO-8396

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2024-07-15 09:44:46 +02:00
Brandon Yates
ab92499b56 feature: Add support for V3 state save header
Related-to: NEO-8396

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2024-06-27 18:46:03 +02:00
Jitendra Sharma
349a86a8dc fix: Read SR register correctly for large GRF detection.
Related-To: NEO-11377
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-05-08 22:03:00 +02:00
Katarzyna Cencelewska
e9f7df6ae6 refactor: create helper for maxPtssIndex
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2024-05-07 12:47:52 +02:00
Jitendra Sharma
74f8eedf1e refactor: print threadSlotOffset and srMagicOffset
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2024-04-30 19:51:20 +02:00
Mateusz Jablonski
bf60d77e10 refactor: correct naming of enum class constants n/n
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-12-20 10:56:37 +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
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
6d67198b4f fix: fix ubsan issues in L0
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-11-09 12:08:30 +01: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
9c56a11c2e refactor(debugger): Move PF exception check into bitmask
Related-to: NEO-8617
Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-09-28 08:28:00 +02:00
Brandon Yates
b3464a2621 feature(debugger): Expose DBG regset
Related-To: NEO-8383

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-09-26 11:50:29 +02:00
Jitendra Sharma
8f7b3e6699 feature: Report 128 GRF count with zetDebugGetRegisterSetProperties
Related-to: NEO-6788

Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2023-09-18 11:03:59 +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
e489c16529 Revert "feature: Report 128 GRF count with zetDebugGetRegisterSetProperties"
This reverts commit 6596ce5097.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-09-14 14:34:55 +02:00
Jitendra Sharma
6596ce5097 feature: Report 128 GRF count with zetDebugGetRegisterSetProperties
Related-to: NEO-6788

Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2023-09-13 14:12:38 +02:00
Jitendra Sharma
9818ef61a5 feature: Report correct GRF register count
Based on Large GRF enabled or not, report correct GRF
register.

Related-To: NEO-6788
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2023-09-04 11:42:48 +02:00
Compute-Runtime-Validation
154530ad23 Revert "feature: Report correct GRF register count"
This reverts commit 8eb3fe222e.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-09-01 15:12:57 +02:00
Jitendra Sharma
8eb3fe222e feature: Report correct GRF register count
Based on Large GRF enabled or not, report correct GRF
register.

Related-To: NEO-6788
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2023-08-31 18:48:29 +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
Brandon Yates
9db08001c4 fix(debugger): Set flags for MME regset
Related-to: NEO-8286

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-08-23 16:38:35 +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
Brandon Yates
bef89a3a7c feature(debugger): Force GRF count to 128
System Routine changes for implementing large-grf debugging
will result in GRF count of 256 being reported for kernels
in all GRF modes. Applications using L0 Debug API do not
yet have a way to determine actual GRF count for kernel.

This commit is a temporary adjustment to avoid breaking debug
API users after new system routine is enabled.

This problem will be fully solved in follow up patch with switch to
zetDebugGetThreadRegisterSetProperties

Related-to: NEO-7370

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-06-27 14:24:52 +02:00
Brandon Yates
713f166d17 feature(debugger): Implement zetDebugGetThreadRegisterSetProperties (1/n)
Current SIP implementation has constant reg descs for all threads.
Initial implementation of this API always returns same reg descs as the
non-thread version of API. When SIP exposes per-thread reg descs,
this API will be updated to expose them.

Related-to: NEO-7370
Signed-off-by: Brandon Yates <brandon.yates@intel.com>
2023-05-08 14:46:48 +02:00
Fabian Zwolinski
e351a90f81 refactor: Rename member variables to camelCase 2/n
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-04-27 20:39:22 +02:00
Mateusz Hoppe
bfd32d6284 fix: read state save area once for all threads for resume(ALL)
- when resume(all) is called - all threads' sr counter needs to be
verified. Reading state save area separately for all threads takes
longer than reading whole state save area once. State save area is
only read again if sr counter wasn't updated
- fail while reading state save area means threads might have completed
execution
- this fix optimizes time spent in resume(all), that may be called before
debugger detaches

Related-To: NEO-7897

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-04-17 15:41:13 +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
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
bfb59cc573 fix: do not resume threads that have pending THREAD_STOPPED events
- threads with pending events cannot be resumed by resume(all) as they
they were not yet discovered by debugger as stopped.
- set reportAsStopped when THREAD_STOPPED event is read
- when resuming, only resume a thread when it was reported

Related-To: NEO-7817

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-03-31 12:42:25 +02:00
Mateusz Jablonski
fbe01e534b fix l0 debug: correct UNRECOVERABLE_IF condition
correct debug API tests to respect more than 8 threads per eu

Related-To: NEO-7442

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-03-10 12:54:31 +01:00
Yates, Brandon
11bec57d10 fix(L0 debug): Fix singleThread conversion for some hw configs
Configs with low slices disabled produced wrong EuThread vector

Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
2023-03-10 10:30:49 +01:00
Mateusz Hoppe
802848a43f fix: L0Debug - allow access only for reported stopped threads
- read/write registers/memory only allowed for threads reported as
stopped by events
- threads newly stopped, accidentally, that are resumed immediately
are not allowed register/memory access

Related-To: NEO-7776

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-03-03 13:34:57 +01:00
Mateusz Hoppe
6947220298 perf(debugger): Optimize registers access during debugging
Register read/write implementation was unnecessarily checking magic values
which were taking significant time. By removing those checks, register
access is speed-up by a factor of 3.

Resolves: NEO-7754

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-02-23 12:14:03 +01:00