Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <cagney@gnu.org>
To: davidm@hpl.hp.com
Cc: Andrew Cagney <ac131313@redhat.com>,
	Kevin Buettner <kevinb@redhat.com>,
	"J. Johnston" <jjohnstn@redhat.com>,
	gdb-patches@sources.redhat.com
Subject: Re: RFA: ia64 portion of libunwind patch
Date: Sun, 09 Nov 2003 00:13:00 -0000	[thread overview]
Message-ID: <3FAD7F01.2050407@gnu.org> (raw)
In-Reply-To: <16300.39298.323956.667764@napali.hpl.hp.com>


>   Andrew> "at least not locally".  The unwind info can always be found
>   Andrew> in the target's memory.
> 
>   Andrew> There are two choices here: - make the interface more remote
>   Andrew> friendly - just ignore the issue until someone complains
> 
> Can you make it so that the local ELF image is used _when_ it's
> available?

"libunwind" should assume that GDB will fill each memory request using 
the most efficient [correct] source available.  One potential source 
being the local ELF image.  If this isn't happening then GDB has 
something to fix (significantly, "libunwind" should resist the 
temptation to work around any such problems).

What I don't think "libunwind" should be doing is assuming that most 
efficient way to obtain specific elements of that unwind table is to 
read that table en-mass.  Instead I think "libunwind" be careful to only 
request the specific memory locations that it needs - trust the client 
to supply the requests in the most efficient way possible.  I should 
note that this has come up before, GDB encountered performance problems 
with a library that was trying to out smart a memory read bottle neck by 
slurping ever increasing chunks of unneeded memory.  This made the 
performance problem worse not better - it was the volume of data and not 
the number of xfers that was the bottle neck.

If we look at GDB with its 128k of unwind data.  At 14*28 byte requests 
per unwind, it would take ~300 unwinds before GDB was required to xfer 
128k (yes I'm pushing the numbers a little here, but then I'm also 
ignoring the very significant locality of the searches).

> I personally never used gdb without specifying an
> executable file (I'm not even sure how that works), so I guess I'm
> willing to wait until someone complains (note that it's not as easy as
> simply setting table_data to NULL, because there would be no way to
> calculate the address of the unwind-table entry, so I'm not sure what
> you want could be done without breaking the existing API).

Scary as it is, GDB's already got a requrest to feltch a shared library 
image from the target's memory :-/.  Provided the remote target knows 
the address of the unwind table, GDB should be able to find a way of 
getting it to libunwind.

>   Andrew> Hmm, a good question to ask is "how cross debug friendly" is
>   Andrew> libunwind.?  If its anything like libthread-db then this
>   Andrew> discussion is mute.
> 
> I don't know what the issue with libthread-db is, but libunwind is
> designed to be cross-debug friendly.  It's a feature that gets
> regularly tested, e.g., as part of libunwind built into HP's ia64
> simulator (which runs fine on x86 linux, for example).  In theory,
> libunwind also support multiple unwind targets in the same binary, but
> this hasn't been tested much so far (but I also have no reason to
> believe that it doesn't work).

"all of the above", this is very good news!

Andrew



  reply	other threads:[~2003-11-09  0:13 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-31 19:25 J. Johnston
2003-10-31 20:46 ` Andrew Cagney
2003-10-31 22:55   ` David Mosberger
2003-11-07 21:47     ` Andrew Cagney
2003-11-07 22:43       ` David Mosberger
2003-11-07 23:01         ` Andrew Cagney
2003-11-07 23:12           ` David Mosberger
2003-11-07 23:38             ` Andrew Cagney
2003-11-07 23:55               ` David Mosberger
2003-11-08  0:07                 ` Andrew Cagney
2003-11-08  0:13                   ` Kevin Buettner
2003-11-08  0:27                     ` Andrew Cagney
2003-11-08  7:21                       ` David Mosberger
2003-11-09  0:13                         ` Andrew Cagney [this message]
2003-11-10 22:10                           ` David Mosberger
2003-11-10 22:43                             ` Andrew Cagney
2003-11-10 23:01                               ` David Mosberger
2003-11-26  0:11                               ` David Mosberger
2003-12-04  2:15                                 ` David Mosberger
2003-12-04  3:15                                   ` Kevin Buettner
2003-12-04 23:57                                   ` J. Johnston
2003-12-05  0:39                                     ` David Mosberger
2003-12-10 20:58                                       ` J. Johnston
2003-12-10 22:15                                         ` David Mosberger
2003-12-12 22:25                                         ` Kevin Buettner
     [not found]                                 ` <davidm@napali.hpl.hp.com>
2003-12-13  4:01                                   ` Kevin Buettner
2003-12-31 20:19                                     ` make inferior calls work on ia64 even when syscall is pending David Mosberger
2003-12-31 23:37                                       ` Mark Kettenis
2004-01-01  2:43                                         ` David Mosberger
2004-02-13  1:14                                         ` David Mosberger
2004-02-13 15:00                                           ` Mark Kettenis
2004-02-13 15:09                                             ` Andrew Cagney
2004-02-13 15:12                                             ` Andrew Cagney
2004-02-13 22:07                                               ` David Mosberger
2004-02-17 16:21                                                 ` Andrew Cagney
2004-02-23 19:58                                                   ` Kevin Buettner
2004-02-23 21:15                                                 ` Kevin Buettner
2003-11-09  1:34             ` RFA: ia64 portion of libunwind patch Marcel Moolenaar
2003-11-10 21:54               ` David Mosberger
2003-11-10 23:18                 ` Marcel Moolenaar
2003-10-31 21:36 ` Marcel Moolenaar
2003-10-31 23:00   ` David Mosberger
2003-10-31 23:42     ` Andrew Cagney
2003-10-31 23:59       ` David Mosberger
  -- strict thread matches above, loose matches on Subject: below --
2003-10-24  0:11 J. Johnston
2003-10-24 17:57 ` Kevin Buettner
2003-10-24 18:20   ` J. Johnston
2003-10-24 18:56     ` Kevin Buettner
2003-10-24 21:53       ` Marcel Moolenaar
2003-10-24 23:58         ` Kevin Buettner
2003-10-28 23:53       ` J. Johnston
2003-10-29  1:28         ` Daniel Jacobowitz
2003-10-29  4:48           ` Kevin Buettner
2003-10-29 18:43             ` J. Johnston
2003-10-29 22:48           ` Andrew Cagney
2003-11-04 19:09             ` J. Johnston
2003-11-04 20:48               ` Kevin Buettner
2003-11-14  0:26               ` J. Johnston
2003-11-14  1:17                 ` Kevin Buettner
2003-11-14 20:49                   ` J. Johnston
2003-10-29 23:28         ` Andrew Cagney
2003-11-02 20:39         ` Elena Zannoni
2003-10-29 15:18 ` Andrew Cagney

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=3FAD7F01.2050407@gnu.org \
    --to=cagney@gnu.org \
    --cc=ac131313@redhat.com \
    --cc=davidm@hpl.hp.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=jjohnstn@redhat.com \
    --cc=kevinb@redhat.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