Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: msnyder@specifix.com
Cc: mfouts@danger.com, gdb@sourceware.org, mchen@danger.com
Subject: Re: Why does gdb use its own thread ids internally rather than the 	?tid from the underlying thread implementation?
Date: Mon, 03 Mar 2008 20:56:00 -0000	[thread overview]
Message-ID: <200803032055.m23KtxTr022421@brahms.sibelius.xs4all.nl> (raw)
In-Reply-To: <1204576678.19253.589.camel@localhost.localdomain> (message from 	Michael Snyder on Mon, 03 Mar 2008 12:37:58 -0800)

> From: Michael Snyder <msnyder@specifix.com>
> Date: Mon, 03 Mar 2008 12:37:58 -0800
> 
> On Mon, 2008-03-03 at 21:19 +0100, Mark Kettenis wrote:
> > > From: "Michael Snyder" <msnyder@specifix.com>
> > > Date: Mon, 03 Mar 2008 11:57:08 -0800
> > > 
> > > On Mon, 2008-03-03 at 10:38 -0800, Martin Fouts wrote:
> [...]
> > > > Or suggestions about how to accommodate M:N without zombie queues?
> > > 
> > > Have you looked at the linux and solaris implementations?
> > > They both have M:N thread models.
> > 
> > Linux doesn't.  And even Solaris uses a 1:1 model by default nowadays.
> > And I really doubt the code for M:N ever worked properly in GDB.
> 
> Really?  It was never perfect, but I always thought of M:N on
> solaris as "mostly working"...
> 
> > 
> > I'm afraid that implementing GDB support for an M:N threading model is
> > a largely unsolved problem.
> > 
> > Given the fact that GDB doesn't even have support for kernel-level
> > threads (or LWP's) on NetBSD, I'd start with getting that working.
> > After that, it might be possible by implementing an additional stratum
> > on top of that, that does the LWP to user-level thread ID translation,
> > and adds in the threads that are not bound to an LWP.
> 
> Out of curiosity, how different are the thread models 
> between netbsd and freebsd?  I've noticed that there
> seem to be at least two different models for debugging
> threads on freebsd, but I'm not up to speed on it.

The code we have in GDB is for the old FreeBSD 4 userlevel threads
library, which you could call N:1 threading.  As far as I know FreeBSD
tried to do both M:N and 1:1 in FreeBSD 5, but I think M:N was more or
less abandoned because they couldn't get it to work properly.

I'm not sure what the NetBSD folks are up to these days.  Given the
history of FreeBSD, Linux and Solaris, I'd advise them to stick to
1:1, or at least get that working first before trying M:N.

OpenBSD has the beginnings of a 1:1 model, but it is not enabled by
default.  The official threads library on OpenBSD is based on the same
code as the old FreeBSD userlevel threads library (N:1).  This one is
supported by the same code in GDB.


      reply	other threads:[~2008-03-03 20:56 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-03 18:42 Why does gdb use its own thread ids internally rather than the tid " Martin Fouts
2008-03-03 19:57 ` Michael Snyder
2008-03-03 20:09   ` Daniel Jacobowitz
2008-03-03 20:20   ` Why does gdb use its own thread ids internally rather than the ?tid " Mark Kettenis
2008-03-03 20:38     ` Michael Snyder
2008-03-03 20:56       ` Mark Kettenis [this message]

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=200803032055.m23KtxTr022421@brahms.sibelius.xs4all.nl \
    --to=mark.kettenis@xs4all.nl \
    --cc=gdb@sourceware.org \
    --cc=mchen@danger.com \
    --cc=mfouts@danger.com \
    --cc=msnyder@specifix.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