eudebug interface is now hidden under EuDebugInterface class
shared code uses generic object and param values
layout of structs is guarded by static asserts
eudebug support is guarded by cmake flags:
- NEO_ENABLE_XE_EU_DEBUG_SUPPORT - enables eudebug in general
- NEO_USE_XE_EU_DEBUG_EXP_UPSTREAM - registers exp upstream uAPI support
- NEO_ENABLE_XE_PRELIM_DETECTION - registers prelim uAPI support
This way we can support two different xe-eudebug interfaces within
single binary.
In unit tests there is mock eudebug interface enabled (even if no
eudebug support is enabled by cmake flag).
Related-To: NEO-13472
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
Xe debugger will receive one CLIENT_OPEN event per driver open. In
some use cases their will be multiple opens. We are only interested in
the open from the UMD under debug. Setting clientHandle when metadata is
received will filter out unneeded CLIENT_OPEN events
Signed-off-by: Brandon Yates <brandon.yates@intel.com>
This fixes an uncommon race condition in processing vmBinds in debugger
where occasionally a VMBind may go unacked.
Related-to: NEO-12866
Signed-off-by: Brandon Yates <brandon.yates@intel.com>
handleVmBind only if all the num_binds and num_extension events
and UFENCE events have arrived.
Related-To: NEO-11083
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
Also remove not needed resumeImp and interruptImp methods
from level_zero/tools/source/debug/linux/xe/debug_session.h
The correct implementation is in DebugSessionLinux and
the overrides in DebugSessionLinuxXe are not needed
Related-To: NEO-8407
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
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>
- 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>
- 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>