Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <vladimir@codesourcery.com>
To: Marc Khouzam <marc.khouzam@ericsson.com>
Cc: "'gdb@sources.redhat.com'" <gdb@sources.redhat.com>
Subject: Re: [MI] Extending -list-thread-groups --available to show cores
Date: Mon, 09 Nov 2009 16:25:00 -0000	[thread overview]
Message-ID: <200911091739.12743.vladimir@codesourcery.com> (raw)
In-Reply-To: <F7CE05678329534C957159168FA70DEC5158E02529@EUSAACMS0703.eamcs.ericsson.se>

On Monday 09 November 2009 Marc Khouzam wrote:

> 
> > -----Original Message-----
> > From: gdb-owner@sourceware.org 
> > [mailto:gdb-owner@sourceware.org] On Behalf Of Vladimir Prus
> > Sent: Sunday, November 08, 2009 10:05 AM
> > To: gdb@sources.redhat.com
> > Subject: [MI] Extending -list-thread-groups --available to show cores
> > 
> > 
> > Current GDB has a MI command -list-thread-groups to nagivate
> > the hierarchy of the debugged thing. This command also the the
> > --available option that cause GDB to report the processes that
> > can be attached to, as opposed to processes currently being
> > debugged.
> > 
> > We were recently asked to slightly extend the returned information
> > to include the core where each thread runs. Such information is
> > of little use for typical Linux application, since threads are
> > migrated between cores. However, it's useful for both custom 
> > Linux applications that specifically pin threads to specific cores,
> > and for embedded systems. Therefore, I plan to add a new field
> > to the thread information that is output by 
> > -list-thread-groups --available, named 'core' that will give the
> > number of the core. E.g.
> 
> I assume you didn't mean to restrict this output to the "--available"
> form of "-list-thread-groups", but meant to say that it would affect
> all forms of "-list-thread-groups", right?

I actually did mean to restrict to --available ;-) But if 'core'
will be beneficial for ordinary '-list-thread-group', please assume
it's there.


> > Related to that, it would be somewhat inefficient to issue 
> > -list-thread-groups
> > for every avaialable process to discover the full list of 
> > threads on specific
> > core, so it would be nice to pass several thread groups, like so:
> > 
> > 	-list-thread-groups 17 18
> > 	^done,groups=[{id="17", types="process", ..., 
> >                    threads=[{id="2",target-id="Thread 
> > 0xb7e14b90 (LWP 21257)",cores=[1]}]},
> > 			      {id="18", types="process", ..., 
> 
> This is unclear to me.
> I see that you are adding the details of the processes before each
> process's list of threads.  I guess this is necessary because a
> frontend will need to know which process the list of threads belong to,
> since the will be multiple list of threads.
> But how will that affect the ouput of 
> -list-thread-groups 17
> which currently does not show the details of the process?  I assume
> it will also include the process info?
> (BTW, is "types" in that output meant to be "type")

Yes, "types" should be "type". Basically, we have a compatibility issue
here. Now, -list-thread-groups 17 prints only threads in that process.
And if we make '-list -thread-groups 17 18' print only threads in one
list, there will be no way to figure what process each thread belongs to.
We can either:

- add 'process' parent link to each thread
- show groups, with threads inside them, as the above output shows

The second approach seems easier for frontend, since it won't be required
to group threads itself. But it makes the output for '17' and '17 18'
cases be different in structure, so a frontend should be prepared to
both outputs. Does not seem like we can do much better?

Well, we probably can declare that -list-thread-groups is so new that
we can break backward compatibility -- what do you think?

- Volodya


  reply	other threads:[~2009-11-09 14:39 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-09  1:36 Vladimir Prus
2009-11-09 16:17 ` Marc Khouzam
2009-11-09 16:25   ` Vladimir Prus [this message]
2009-11-09 16:42     ` Marc Khouzam
2009-11-09 17:20       ` Vladimir Prus
2009-11-09 17:33         ` Marc Khouzam
2009-11-09 20:02           ` Marc Khouzam
2009-11-16 14:52           ` Vladimir Prus
2009-11-16 17:55             ` Vladimir Prus
2009-11-17  7:45 ` Vladimir Prus
2009-11-17 13:49   ` Marc Khouzam
2009-11-19  6:44     ` Vladimir Prus
2009-11-19  7:11       ` Marc Khouzam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200911091739.12743.vladimir@codesourcery.com \
    --to=vladimir@codesourcery.com \
    --cc=gdb@sources.redhat.com \
    --cc=marc.khouzam@ericsson.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox