Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Tom Tromey <tom@tromey.com>, Kevin Buettner <kevinb@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH v2] gdb/dwarf2: Add symbols for function declarations
Date: Fri, 5 Sep 2025 12:20:34 -0400	[thread overview]
Message-ID: <091476a8-8f2f-4973-92c9-d0571a4d415f@simark.ca> (raw)
In-Reply-To: <875xdwsye2.fsf@tromey.com>

[-- Attachment #1: Type: text/plain, Size: 1343 bytes --]

On 9/5/25 11:38 AM, Tom Tromey wrote:
>>>>>> "Kevin" == Kevin Buettner <kevinb@redhat.com> writes:
> 
> Kevin>   This version 2 commit
> Kevin> adds that by making DW_TAG_subprogram declarations "interesting" to
> Kevin> the indexer.  The changes which do this are in gdb/dwarf2/abbrev.c
> Kevin> and gdb/dwarf2/cooked-indexer.c.
> 
> I have some questions about this change.
> 
> How many symbols does it add, and what performance impact does it have?
> I tend to think the indexer is fast primarily because it skips DIEs, but
> IIUC this will have it read many more.

To measure this, I do:

$ ./gdb -nx -q --data-directory=data-directory -ex 'maint set dwarf sync on' -ex 'maintenance set per-command time on'

Then, use the "file" command.

For example, I ran gdb on libxul.so.debug without and with this patch
applied, see the two attached files.

The longest "DWARF indexing worker" step went from

  wall 0.668, user 0.574, sys 0.093, user+sys 0.667, 99.9 % CPU

to

  wall 0.792, user 0.664, sys 0.124, user+sys 0.788, 99.5 % CPU

The longest "DWARF finalize worker" step went from

  wall 1.691, user 1.687, sys 0.003, user+sys 1.690, 99.9 % CPU

to

  wall 3.650, user 3.626, sys 0.008, user+sys 3.634, 99.6 % CPU

The complete file command went from

  13.375465 (cpu), 3.019934 (wall)

to

  23.984434 (cpu), 5.163825 (wall)

Simon

[-- Attachment #2: before.txt --]
[-- Type: text/plain, Size: 2884 bytes --]

(gdb) file /usr/lib/debug/usr/lib/firefox/libxul.so.debug
2025-09-05 12:11:02.618 - command started
Reading symbols from /usr/lib/debug/usr/lib/firefox/libxul.so.debug...
Time for "minsyms install worker": wall 0.080, user 0.066, sys 0.012, user+sys 0.078, 97.5 % CPU
Time for "minsyms install worker": wall 0.091, user 0.074, sys 0.004, user+sys 0.078, 85.7 % CPU
Time for "minsyms install worker": wall 0.121, user 0.110, sys 0.010, user+sys 0.120, 99.2 % CPU
Time for "minsyms install worker": wall 0.135, user 0.104, sys 0.013, user+sys 0.117, 86.7 % CPU
Time for "minsyms install worker": wall 0.161, user 0.149, sys 0.011, user+sys 0.160, 99.4 % CPU
Time for "minsyms install worker": wall 0.175, user 0.151, sys 0.010, user+sys 0.161, 92.0 % CPU
Time for "minsyms install worker": wall 0.196, user 0.160, sys 0.017, user+sys 0.177, 90.3 % CPU
Time for "minsyms install worker": wall 0.212, user 0.190, sys 0.013, user+sys 0.203, 95.8 % CPU
Time for "DWARF indexing worker": wall 0.317, user 0.259, sys 0.055, user+sys 0.314, 99.1 % CPU
Time for "DWARF indexing worker": wall 0.379, user 0.340, sys 0.039, user+sys 0.379, 100.0 % CPU
Time for "DWARF indexing worker": wall 0.384, user 0.354, sys 0.029, user+sys 0.383, 99.7 % CPU
Time for "DWARF indexing worker": wall 0.431, user 0.376, sys 0.052, user+sys 0.428, 99.3 % CPU
Time for "DWARF indexing worker": wall 0.449, user 0.388, sys 0.061, user+sys 0.449, 100.0 % CPU
Time for "DWARF indexing worker": wall 0.454, user 0.409, sys 0.045, user+sys 0.454, 100.0 % CPU
Time for "DWARF indexing worker": wall 0.474, user 0.440, sys 0.032, user+sys 0.472, 99.6 % CPU
Time for "DWARF indexing worker": wall 0.668, user 0.574, sys 0.093, user+sys 0.667, 99.9 % CPU
Time for "DWARF skeletonless type units": wall 0.000, user 0.000, sys 0.000, user+sys 0.000, -nan % CPU
Time for "DWARF add parent map": wall 0.112, user 0.104, sys 0.008, user+sys 0.112, 100.0 % CPU
Time for "DWARF finalize worker": wall 0.646, user 0.643, sys 0.002, user+sys 0.645, 99.8 % CPU
Time for "DWARF finalize worker": wall 0.000, user 0.000, sys 0.000, user+sys 0.000, -nan % CPU
Time for "DWARF finalize worker": wall 0.784, user 0.780, sys 0.002, user+sys 0.782, 99.7 % CPU
Time for "DWARF finalize worker": wall 0.843, user 0.841, sys 0.001, user+sys 0.842, 99.9 % CPU
Time for "DWARF finalize worker": wall 0.872, user 0.865, sys 0.007, user+sys 0.872, 100.0 % CPU
Time for "DWARF finalize worker": wall 0.995, user 0.988, sys 0.006, user+sys 0.994, 99.9 % CPU
Time for "DWARF finalize worker": wall 1.121, user 1.119, sys 0.001, user+sys 1.120, 99.9 % CPU
Time for "DWARF finalize worker": wall 1.308, user 1.294, sys 0.013, user+sys 1.307, 99.9 % CPU
Time for "DWARF finalize worker": wall 1.691, user 1.687, sys 0.003, user+sys 1.690, 99.9 % CPU
2025-09-05 12:11:05.637 - command finished
Command execution time: 13.375465 (cpu), 3.019934 (wall)


[-- Attachment #3: after.txt --]
[-- Type: text/plain, Size: 2883 bytes --]

(gdb) file /usr/lib/debug/usr/lib/firefox/libxul.so.debug
2025-09-05 12:14:23.009 - command started
Reading symbols from /usr/lib/debug/usr/lib/firefox/libxul.so.debug...
Time for "minsyms install worker": wall 0.078, user 0.069, sys 0.009, user+sys 0.078, 100.0 % CPU
Time for "minsyms install worker": wall 0.090, user 0.073, sys 0.005, user+sys 0.078, 86.7 % CPU
Time for "minsyms install worker": wall 0.121, user 0.109, sys 0.011, user+sys 0.120, 99.2 % CPU
Time for "minsyms install worker": wall 0.135, user 0.110, sys 0.007, user+sys 0.117, 86.7 % CPU
Time for "minsyms install worker": wall 0.160, user 0.149, sys 0.010, user+sys 0.159, 99.4 % CPU
Time for "minsyms install worker": wall 0.174, user 0.158, sys 0.006, user+sys 0.164, 94.3 % CPU
Time for "minsyms install worker": wall 0.197, user 0.162, sys 0.014, user+sys 0.176, 89.3 % CPU
Time for "minsyms install worker": wall 0.210, user 0.189, sys 0.017, user+sys 0.206, 98.1 % CPU
Time for "DWARF indexing worker": wall 0.338, user 0.288, sys 0.049, user+sys 0.337, 99.7 % CPU
Time for "DWARF indexing worker": wall 0.464, user 0.418, sys 0.043, user+sys 0.461, 99.4 % CPU
Time for "DWARF indexing worker": wall 0.501, user 0.433, sys 0.065, user+sys 0.498, 99.4 % CPU
Time for "DWARF indexing worker": wall 0.585, user 0.507, sys 0.076, user+sys 0.583, 99.7 % CPU
Time for "DWARF indexing worker": wall 0.636, user 0.569, sys 0.064, user+sys 0.633, 99.5 % CPU
Time for "DWARF indexing worker": wall 0.646, user 0.569, sys 0.076, user+sys 0.645, 99.8 % CPU
Time for "DWARF indexing worker": wall 0.754, user 0.626, sys 0.126, user+sys 0.752, 99.7 % CPU
Time for "DWARF indexing worker": wall 0.792, user 0.664, sys 0.124, user+sys 0.788, 99.5 % CPU
Time for "DWARF skeletonless type units": wall 0.000, user 0.000, sys 0.000, user+sys 0.000, -nan % CPU
Time for "DWARF add parent map": wall 0.133, user 0.128, sys 0.004, user+sys 0.132, 99.2 % CPU
Time for "DWARF finalize worker": wall 0.885, user 0.882, sys 0.001, user+sys 0.883, 99.8 % CPU
Time for "DWARF finalize worker": wall 0.000, user 0.000, sys 0.000, user+sys 0.000, -nan % CPU
Time for "DWARF finalize worker": wall 1.376, user 1.372, sys 0.003, user+sys 1.375, 99.9 % CPU
Time for "DWARF finalize worker": wall 1.864, user 1.861, sys 0.002, user+sys 1.863, 99.9 % CPU
Time for "DWARF finalize worker": wall 2.240, user 2.235, sys 0.004, user+sys 2.239, 100.0 % CPU
Time for "DWARF finalize worker": wall 2.295, user 2.287, sys 0.005, user+sys 2.292, 99.9 % CPU
Time for "DWARF finalize worker": wall 2.470, user 2.467, sys 0.003, user+sys 2.470, 100.0 % CPU
Time for "DWARF finalize worker": wall 2.888, user 2.876, sys 0.011, user+sys 2.887, 100.0 % CPU
Time for "DWARF finalize worker": wall 3.650, user 3.626, sys 0.008, user+sys 3.634, 99.6 % CPU
2025-09-05 12:14:28.173 - command finished
Command execution time: 23.984434 (cpu), 5.163825 (wall)


  reply	other threads:[~2025-09-05 16:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-03 19:45 Kevin Buettner
2025-08-12  0:23 ` Kevin Buettner
2025-08-12 14:48 ` Simon Marchi
2025-08-29 18:30 ` Andrew Burgess
2025-09-05 15:24 ` Andrew Burgess
2025-09-05 15:38 ` Tom Tromey
2025-09-05 16:20   ` Simon Marchi [this message]
2025-09-10  0:40   ` Tom Tromey
2025-09-13  0:55   ` Kevin Buettner

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=091476a8-8f2f-4973-92c9-d0571a4d415f@simark.ca \
    --to=simark@simark.ca \
    --cc=gdb-patches@sourceware.org \
    --cc=kevinb@redhat.com \
    --cc=tom@tromey.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