From: Tom Tromey <tromey@redhat.com>
To: dje@google.com (Doug Evans)
Cc: gdb-patches@sourceware.org, ccoutant@google.com
Subject: Re: [RFA] Add global/static and symbol kind indicator to .gdb_index
Date: Fri, 22 Jun 2012 19:45:00 -0000 [thread overview]
Message-ID: <87txy3f7wr.fsf@fleche.redhat.com> (raw)
In-Reply-To: <20120619074931.6F0B41E136F@ruffy2.mtv.corp.google.com> (Doug Evans's message of "Tue, 19 Jun 2012 00:49:31 -0700 (PDT)")
>>>>> "Doug" == Doug Evans <dje@google.com> writes:
Doug> The global/static bit massively speeds up looking up things like
Doug> "int" when debugging with lots of shared libraries (all having
Doug> .gdb_index). PR 14125
I don't think this patch is needed to achieve this. At least, the "int"
case and other similar cases were fixed by:
revision 1.462
date: 2010/09/27 18:42:36; author: tromey; state: Exp; lines: +80 -45
* dwarf2read.c (dwarf2_read_index): Only allow version 3.
(write_psymbols): Add 'psyms_seen' and 'is_static' arguments.
Only emit a given psymbol once.
(struct signatured_type_index_data) <psyms_seen>: New field.
(write_one_signatured_type): Update.
(cleanup_htab): New function.
(write_psymtabs_to_index): Update. Create psyms_seen hash. Bump
version to 3.
(save_gdb_index_command): Update index documentation.
What happens after 1.462 is that a given partial symbol only ends up in
the index once. Due to the bcache this means that all duplicates of the
same type are filtered out.
So, for instance, from gdb.debug on Fedora 16:
barimba. readelf --debug-dump=gdb_index /usr/lib/debug/usr/bin/gdb.debug |fgrep '] int:'
[29426] int: 0
That is, "int" is just defined in a single CU.
Maybe gold isn't doing this? I think it probably should.
I was going to ask if you measured the size increase; but I think it
can't be very large -- basically only in the case where a psymbol
appears in one CU's static list and another CU's global list. I doubt
that happens often enough to worry about.
Doug> The symbol kind indicator speeds up things like "info fun|var foo".
Doug> [One example is ~500MB/67sec -> ~250MB/30sec.]
I think this is a reasonable justification.
Doug> [The patch adds include/gdb/gdb-index.h which technically needs
Doug> approval from binutils@, but no point in submitting it there
Doug> until the gdb parts are approved.]
I don't think I even knew about this directory until I read your patch
:-)
Anyway, I read the patch, and I didn't see any issues with it.
I think it is ok.
Tom
next prev parent reply other threads:[~2012-06-22 19:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-19 7:49 Doug Evans
2012-06-19 14:01 ` Pedro Alves
2012-06-19 16:08 ` Eli Zaretskii
2012-06-19 19:41 ` Doug Evans
2012-06-22 19:45 ` Tom Tromey [this message]
2012-06-22 21:03 ` Tom Tromey
2012-06-22 21:20 ` Cary Coutant
2012-06-23 19:59 ` Doug Evans
2012-06-25 14:53 ` Tom Tromey
2012-06-25 15:06 ` Tom Tromey
2012-06-23 22:25 ` Doug Evans
2012-06-24 8:09 ` Doug Evans
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=87txy3f7wr.fsf@fleche.redhat.com \
--to=tromey@redhat.com \
--cc=ccoutant@google.com \
--cc=dje@google.com \
--cc=gdb-patches@sourceware.org \
/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