During async thread event processing, it was possible to
read SSAH before any threads stopped and before it was
resident resulting in an assert. This is both a fix for
assertion and minor optimization.
Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
Some L0 debug CTSs intentionnally written to exit w/o proper
resource clenup, f.e do not call zetDebugDetach() etc.
On windows it could be the situation when cleanup of DebugSession is
called in context of DllMain(DLL_PROCESS_DETACH).
At this point all threads other then main already terminated by Windows,
see remarks for DLL_PROCESS_DETACH in
https://learn.microsoft.com/en-us/windows/win32/dlls/dllmain
In this case worker thread object still exists, handle and Id are not
null but corresponding Windows thread does not exist any more and
application waits forever for threadFinished variable. We can safely
omit this waiting since join() will either return immediately in case of
thread was killed by Windows or wait until thread is terminated in normal way.
Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
- do not mark interrupt as complete when thread was stopped
before handling ATT event
- if no newly stopped threads reported in ATT event, interrupt
trigger thread unavailable event
Related-To: NEO-7501
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
- 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>
Move Linux DebugSession thread conversion functions up to
DebugSessionImp to allow reuse in windows implementation
Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
- when debugDetach() is not called properly, close connection
in debug session before Device is destroyed
Related-To: NEO-7366
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
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>
- all tileInstanced ISAs must be received before sending
MODULE LOAD/UNLOAD events for zebin modules
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
- 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>
- 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>
- 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>
- 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>
We have to always generate module create/destroy events to give
debugger a chance to insert bp, read/write debuggee memory etc
even there is no debug data was generated. In this case ELF will not be
reported to debugger, just ISA GpuVA
Related-To: NEO-6723
Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
- after last tile DebugSession is detached, root DebugSession
must close fd
Related-To: NEO-5784
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>