This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA][3/5] New port: Cell BE SPU (the port itself)
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: drow at false dot org (Daniel Jacobowitz)
- Cc: mark dot kettenis at xs4all dot nl (Mark Kettenis), gdb-patches at sourceware dot org
- Date: Mon, 13 Nov 2006 13:27:40 +0100 (CET)
- Subject: Re: [RFA][3/5] New port: Cell BE SPU (the port itself)
Daniel Jacobowitz wrote:
> On Sun, Nov 12, 2006 at 10:41:34PM +0100, Mark Kettenis wrote:
> > I think that what you really want is a Linux powerpc native configuration
> > that can debug both normal powerpc code and spu code. That'd mean adding
> > spu-linux-nat.c to config/powerpc/linux.mh. But I suppose that doesn't
> > really work right now. But could we make that work?
>
> In theory yes - but I'm not quite sure how. You'd have more than one
> target that could take control when you said "run" and for Cell I think
> you'd have to disambiguate based on the architecture of the file. But
> Ulrich said they had more patches that weren't ready for mainline and I
> bet some of them make this nicer :-) Since really you would want to
> debug both at once.
Yes, exactly. It's not just a matter of checking the executable file
architecture; a single process can have threads executing SPU code at
the same as other threads executing PowerPC code.
I have a set of patches that does appear to work so far; it is based
primarily on switching current_gdbarch on thread switch. However,
there's still some work to be done before this is in a shape suitable
for mainline inclusion.
Therefore I'd hoped it would be possible to get the SPU-only port
accepted first, since this is in itself already quite useful.
> I guess what really is throwing us here is the use of "nat". Isn't
> this really more like one of the custom remote-foo.c targets than a
> native target? It just happens to be implemented using PowerPC/Linux
> kernel facilities spelled "ptrace" and some poking around in a PowerPC
> executable in order to implement "run". The ptrace facilities don't
> seem to be used much to talk to the SPU; new files in /proc are used
> instead. It's forking and running a PowerPC executable until it makes
> a special SPU-related syscall, and then it starts talking to the SPU.
I'll have a look at the remote-foo targets. Is it just more or less just
a matter of renaming the file, or are there significant differences?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com