[Beignet] [PATCH 0/5] Add support for kernel debugging

Mircea Gherzan mircea.gherzan at intel.com
Wed Jul 13 23:30:21 UTC 2016


On 13-Jul-16 10:47 AM, He Junyan wrote:
> Hi Mircea,
> Thanks a lot for you contribution.
> I have several questions here.
> According to my understanding, your debug feature strongly depends on
> the libigfxdbgxchg64.so lib, which I think is a binary and I can not
> find it in your patchset. I notice you get a SIP of some system routine
> and allocate a buffer object to copy that system routine. How can user
> control the execution of GPU program is unknown in this patchset. So
> is it possible to open the source code of libigfxdbgxchg64.so.  Or at
> least can you provide that lib and give a document about how to use it?

Indeed, these patches partially depend on the libigfxdbgxchg64.so 
("interchange library"). This library is an open-source one and its 
sources are distributed with the Intel(R) Parallel Studio XE 2017 Beta 
[1] installation.

The user can control the execution of the GPU program using standard GDB 
commands. The re-targeted GDB and the infrastructure required by it 
(library + kernel driver) are also distributed with the Intel(R) 
Parallel Studio XE 2017 Beta.

- Mircea

[1] 
https://software.intel.com/en-us/articles/intel-parallel-studio-xe-2017-beta 


> On Fri, Jul 08, 2016 at 02:39:34PM +0200, Mircea Gherzan wrote:
>> Date: Fri,  8 Jul 2016 14:39:34 +0200
>> From: Mircea Gherzan <mircea.gherzan at intel.com>
>> To: beignet at lists.freedesktop.org
>> Cc: Mircea Gherzan <mircea.gherzan at intel.com>, fabian.schnell at intel.com
>> Subject: [Beignet] [PATCH 0/5] Add support for kernel debugging
>> X-Mailer: git-send-email 1.7.0.7
>>
>> This patch series enables debugging OpenCL Beignet shaders with the GDB port
>> for Intel(R) GPUs.
>> 	
>> Enabling debugging in the Beignet codebase involves:
>> * checking if the debugger is present
>> * setting a breakpoint on the first instruction of a kernel,
>> * getting the "debug system routine" that dumps the content of the EU registers
>>   to a "debug surface" once a breakpoint is encountered in the shader,
>> * setting up the BOs for the system routine and for the debug surface,
>> * writing the right MMIO registers (via batch buffer commands) in order
>>   to enable the shader debug in the hardware.
>> * notifying the debugger infrastructure that a certain kernel is under debug,
>>   in order to prevent the "Debug Companion Driver" from auto-resuming
>>   the kernel.
>>
>> The interaction with the debugger is done via the debugger interchange library.
>> This library as well as other debugger open-source components (the kernel driver,
>> libraries, GDB) are delivered in the Intel(R) Parallel Studio XE.
>>
>> Tested on HSW, BDW and SKL.
>>
>> Mircea Gherzan (5):
>>   backend: add support for kernel debugging
>>   runtime: add support for the interchange library of the debugger
>>   runtime: use the "-debug" build option if the debugger is active
>>   runtime: set the kernel name in the cl_gpgpu_kernel structure
>>   runtime: support for the debug system routine, surface and MMIO
>>     registers
>>
>>  backend/src/backend/context.cpp     |   4 +-
>>  backend/src/backend/context.hpp     |   4 +-
>>  backend/src/backend/gen_context.cpp |  12 ++-
>>  backend/src/backend/gen_context.hpp |   2 +-
>>  backend/src/backend/gen_program.cpp |   7 +-
>>  backend/src/backend/gen_program.hpp |   8 +-
>>  backend/src/backend/program.cpp     |   5 +-
>>  src/CMakeLists.txt                  |   1 +
>>  src/cl_command_queue_gen7.c         |   6 +-
>>  src/cl_context.c                    |   4 +
>>  src/cl_context.h                    |   2 +
>>  src/cl_driver.h                     |   4 +
>>  src/cl_driver_defs.c                |   2 +-
>>  src/cl_program.c                    |  40 ++++++++
>>  src/intel/intel_debugger.c          | 158 +++++++++++++++++++++++++++++
>>  src/intel/intel_debugger.h          |  70 +++++++++++++
>>  src/intel/intel_defines.h           |  11 +++
>>  src/intel/intel_gpgpu.c             | 192 ++++++++++++++++++++++++++++++++++--
>>  src/intel/intel_gpgpu.h             |   7 ++
>>  19 files changed, 516 insertions(+), 23 deletions(-)
>>  create mode 100644 src/intel/intel_debugger.c
>>  create mode 100644 src/intel/intel_debugger.h
>>
>> --
>> 1.8.3.1
>>


More information about the Beignet mailing list