public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "dje at google dot com" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/17764] Excessive seeking when reading debug data pegs the CPU @100%
Date: Sat, 27 Dec 2014 17:43:00 -0000	[thread overview]
Message-ID: <bug-17764-4717-Q28uZBHsZr@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-17764-4717@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=17764

--- Comment #4 from dje at google dot com ---
Huh.
46 megs of debug info is not that much (my monster benchmark has ~1.5G of debug
info, with a 350M .gdb_index section, and "gdb foo" takes 13 seconds to get to
the command prompt, 12 of which is spent reading the ELF symbol table, and 10
of that is spent demangling ELF symbols - which is to say ~1 second is spent on
debug info).
Without .gdb_index it takes about 55 seconds (this is from memory so I may be
off by a little, but not by much - I look at this issue a lot).

Plus gdb doesn't really "read" debug info in the .gdb_index case.
It's basically just an mmap() plus a bit of time spent processing the address
table.
So it's interesting that .gdb_index doesn't make a difference.

It would be interesting to see gprof data for gdb.

How easy would it to recompile gdb with '-O2 -pg',
write a small script to exercise the bug,
run gdb --batch -x the-script,
and then send us the output of "gprof gdb gmon.out"?
To recompile gdb, one could just cd into the gdb directory, rm *.o, and do
"make CFLAGS='-O2 -pg'".

Another idea, if it's taking a minute (so you've got time to do this), is to to
attach to the running gdb from a parent gdb, then do repeated "bt, continue,
ctrl-c", say every 5 seconds.  That's a quick hack way of collecting some data.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


  parent reply	other threads:[~2014-12-27 17:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-27 15:46 [Bug gdb/17764] New: " mrsam@courier-mta.com
2014-12-27 15:52 ` [Bug gdb/17764] " jan.kratochvil at redhat dot com
2014-12-27 16:21 ` dje at google dot com
2014-12-27 17:09 ` mrsam@courier-mta.com
2014-12-27 17:43 ` dje at google dot com [this message]
2014-12-27 18:27 ` mrsam@courier-mta.com
2014-12-27 18:44 ` jan.kratochvil at redhat dot com
2014-12-27 18:45 ` jan.kratochvil at redhat dot com
2014-12-28  0:08 ` mrsam@courier-mta.com
2014-12-28 14:40 ` jan.kratochvil at redhat dot com
2014-12-29 15:53 ` hjl.tools at gmail dot com
2014-12-29 23:43 ` mrsam@courier-mta.com
2014-12-29 23:53 ` hjl.tools at gmail dot com
2014-12-30  1:23 ` mrsam@courier-mta.com
2014-12-30 16:27 ` hjl.tools at gmail dot com

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=bug-17764-4717-Q28uZBHsZr@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).