This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] symbol lookup cache
- From: Doug Evans <xdje42 at gmail dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: Eli Zaretskii <eliz at gnu dot org>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Sun, 21 Dec 2014 18:04:28 -0800
- Subject: Re: [PATCH] symbol lookup cache
- Authentication-results: sourceware.org; auth=none
- References: <yjt2y4qrlqwa dot fsf at ruffy dot mtv dot corp dot google dot com> <CADPb22SwQGcJPQFsPy0w1EOurknejRDa1pPHB8KxRarbu1jY8g at mail dot gmail dot com> <m3oaqybvq0 dot fsf_-_ at sspiff dot org> <83d27esisa dot fsf at gnu dot org> <CAP9bCMTemYD6-X55OMacphFY6PcAan8Vr9E_Rh43KN=x4_NB7Q at mail dot gmail dot com> <83k31mqeoa dot fsf at gnu dot org> <CAP9bCMQWV4LRP+sxLfCkqBCj2e4qwiqJsxnrfDf=CyOgcac0wg at mail dot gmail dot com> <83egrtr80o dot fsf at gnu dot org> <CAP9bCMRNnQsMB5i962mzT_-H_s+in09A7rZiC6KkQ2NfFzJJjg at mail dot gmail dot com> <20141221210151 dot GL12884 at adacore dot com>
On Sun, Dec 21, 2014 at 1:01 PM, Joel Brobecker <brobecker@adacore.com> wrote:
>> Let's first verify the efficacy of the cache, collect some data, and
>> go from there.
>> And the next step after that, besides improving the efficiency of the
>> cache (*1), if the data suggests it, is I think to explore dynamically
>> adjusting the cache size.
>> And if, after that, there are still some important cases where gdb
>> can't do a good enough job on its own, *then* I'd be happy to add some
>> knobs to control the cache size. Maybe the knob we will want is not
>> so much to control the cache size but how it grows.
>
> do you see the amount of data in the cache being all that much?
Nope, and I've noted that in the code.
Plus I recently gained back 40MB for free (16 * #minsyms) on one of my
monster benchmarks.
ref: https://sourceware.org/ml/gdb-patches/2014-11/msg00638.html
We could spend 1/10 that on the cache (which would still be a rather
large cache) and still be way ahead.
> I haven't looked at your implementation, but for Ada, the cache is
> updated when symbols are looked up, usually due to a user querying
> something. So, I don't the cache to be all that big, and FWIW,
> we have never even had to think of having a dynamic hash size.
But, *if* one-size-fits-all *wasn't* working (*1), and I think I can
reasonably assume we're agreed we're not there yet, then would you
immediately go the route of providing a user option to allow changing
the size, or first see if gdb could do better on its own?
---
(*1): I'm only suggesting exploring dynamically adjusting the cache
size (I realize you wrote hash size) *if* the data suggests we need
it. IMO we're not there yet. But, and here's where the disagreement
is (AFAICT), *if* we do get there, I'd rather see if gdb could do
better on its own first, before adding a knob that the user has to
tweak to get the desired performance.