From: Pedro Alves <pedro@codesourcery.com>
To: Paul Pluzhnikov <ppluzhnikov@google.com>
Cc: Vyacheslav Egorov <vegorov@chromium.org>, gdb@sourceware.org
Subject: Re: JIT interface slowness
Date: Mon, 03 Jan 2011 23:32:00 -0000 [thread overview]
Message-ID: <201101032332.28548.pedro@codesourcery.com> (raw)
In-Reply-To: <AANLkTi=myuzyvOPheZL-KF93xSPK6Q9CjYuuHhta7yQO@mail.gmail.com>
Hi Paul,
thanks for the tests, stats and for looking into this.
On Monday 03 January 2011 22:00:48, Paul Pluzhnikov wrote:
> I'd like to submit a test case for this, but where?
> gdb.base/, gdb.gdb/, elsewhere?
gdb.base/ should be fine.
gdb.gdb/ is for tests that load gdb itself as an inferior.
> diff -u -r1.8 jit.c
Please use cvs diff -up. -p makes wonders at making
patches easier to read. (I just put "diff -up" in ~/.cvsup).
> --- jit.c 1 Jan 2011 15:33:09 -0000 1.8
> +++ jit.c 3 Jan 2011 21:34:17 -0000
> @@ -263,7 +263,7 @@
> my_cleanups = make_cleanup (clear_int, ®istering_code);
>
> /* This call takes ownership of sai. */
> - objfile = symbol_file_add_from_bfd (nbfd, 0, sai, OBJF_SHARED);
> + objfile = symbol_file_add_from_bfd (nbfd, SYMFILE_DEFER_BP_RESET,
> sai, OBJF_SHARED);
>
> /* Clear the registering_code flag. */
> do_cleanups (my_cleanups);
>
>
> makes 100x difference (0.64s vs. 61.5s) for 1000 simulated JIT ELFs.
>
> I think it's pretty safe to assume that we don't need to search JITted
> objfiles for above functions, as JITs do not participate in normal symbol
> resolution at all.
But doesn't that mean that pending breakpoints on JITed functions
won't resolve anymore?
> Do we need a new OBJF_JIT flag, or is above patch good enough?
What if we record a per-objfile flag or cache storing whether a given
objfile contains "longjmp" related symbols, so that we only lookup
those symbols at least once per DSO? Quite similar in spirit to
your objc_objfile_data change. Do we still get a significant
slowdown from breakpoint_re_set with that change?
(I've also noticed before that lookup_minimal_symbol_text iterates
over all objfiles even if given an objfile to work with (worse
case, but then again, new objfiles are appended at the end
of the objfile list). Probably contributes to the noise, but
these things add up.)
--
Pedro Alves
next prev parent reply other threads:[~2011-01-03 23:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-31 19:43 Vyacheslav Egorov
2010-12-31 20:10 ` Pedro Alves
2010-12-31 21:39 ` Vyacheslav Egorov
2010-12-31 22:23 ` Pedro Alves
2010-12-31 23:12 ` Vyacheslav Egorov
2010-12-31 23:36 ` Pedro Alves
2011-01-02 7:54 ` Paul Pluzhnikov
2011-01-03 10:44 ` Vyacheslav Egorov
2011-01-03 17:32 ` Paul Pluzhnikov
2011-01-03 22:01 ` Paul Pluzhnikov
2011-01-03 23:32 ` Pedro Alves [this message]
2011-01-03 23:40 ` Pedro Alves
2011-01-03 23:47 ` Paul Pluzhnikov
2011-01-04 0:13 ` Pedro Alves
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=201101032332.28548.pedro@codesourcery.com \
--to=pedro@codesourcery.com \
--cc=gdb@sourceware.org \
--cc=ppluzhnikov@google.com \
--cc=vegorov@chromium.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