RE: ROCm (Rocgdb debugger) use queues to pass debug commands?

"Tye, Tony via Gdb" <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <BN8PR12MB33939954700014EE52B05B9E97B69@BN8PR12MB3393.namprd12.prod.outlook.com>
[AMD Official Use Only - Internal Distribution Only]

The breakpoints are done the same way as on the CPU. So just look at how the CPU does it. Gdb writes trap instructions into the code using ptrace poke or /proc/fs. When the processor (CPU or GPU) executes the  breakpoint instruction is causes a “signal” that gets reported through the ioctl to the gdb process.

The AMD GPU Debugger API is open source in github and has a full doxygen documentation. Also, when you install ROCm the documentation is installed in /opt/rocm/share/doc .

Thanks,
-Tony

From: It's Me <[email protected]>
Sent: Monday, February 1, 2021 4:30 PM
To: Tye, Tony <[email protected]>
Cc: [email protected]
Subject: Re: ROCm (Rocgdb debugger) use queues to pass debug commands?

[CAUTION: External Email]

Hi Tony ,

I appreciate the reply , thanks .

So just to confirm the commands are not encapsulated in a packet and pushed into queues in HSA AQL queues .

Can you please give a high level path for setting a breakpoint from user land to the GPU ( how the flow happen through the software stack )

Also if there is not much trouble can you also provide any APIs for passing a breakpoint . I looked through rocgdb / rocgdb driver code / ROCm API .. and the clear path is not clear for me ..

Again thanks a lot for the help and the reply . Appreciated

On Feb 1, 2021, at 12:24 PM, Tye, Tony <[email protected]<mailto:[email protected]>> wrote:
[AMD Official Use Only - Internal Distribution Only]

rocgdb uses a driver that provides an ioctl interface that is similar in concept to what the ptrace and waitpid do for a CPU. There is a Debugger API library that uses the ioctl interface to provide an general way to control the GPU threads. There is a rocm target that is part of gdb that uses the Debugger ABI to allow GPU threads to be controlled just like CPU threads. All the code is open source.

Thanks,
-Tony

-----Original Message-----
From: Gdb <[email protected]<mailto:[email protected]>> On Behalf Of It's Me via Gdb
Sent: Monday, February 1, 2021 3:18 PM
To: [email protected]<mailto:[email protected]>
Subject: ROCm (Rocgdb debugger) use queues to pass debug commands?

[CAUTION: External Email]

Hi ,

In a heterogenous environment , how ROCm / rocgdb pass its debug commands ( example : breakpoint command) to the target ( Example a GPU) . Does the debugger queue it’s debug commands using HSA queues ? If that’s not that case how ?

What is the role of the driver in this case .

Thanks
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.