Em Tue, Feb 23, 2021 at 12:44:58PM -0800, Bill Wendling escreveu: > Bump for exposure. While preparing my presentation for devconf.cz I stumbled on a problem with split btf, I want to first bisect this before publishing... I'll move this to the front of my priority list and inform here about it ASAP. - Arnaldo > On Fri, Feb 12, 2021 at 1:16 PM Bill Wendling <morbo@xxxxxxxxxx> wrote: > > > > Hey gang, > > > > I would like your feedback on this patch. > > > > This patch creates one hash table that all CUs share. The impetus for this > > patch is to support clang's LTO (Link-Time Optimizations). Currently, pahole > > can't handle the DWARF data that clang produces, because the CUs may refer to > > tags in other CUs (all of the code having been squozen together). > > > > One solution I found is to process the CUs in two steps: > > > > 1. add the CUs into a single hash table, and > > 2. perform the recoding and finalization steps in a a separate step. > > > > The issue I'm facing with this patch is that it balloons the runtime from > > ~11.11s to ~14.27s. It looks like the underlying cause is that some (but not > > all) hash buckets have thousands of entries each. I've bumped up the > > HASHTAGS__BITS from 15 to 16, which helped a little. Bumping it up to 17 or > > above causes a failure. > > > > A couple of things I thought of may help. We could increase the number of > > buckets, which would help with distribution. As I mentioned though, that seemed > > to cause a failure. Another option is to store the bucket entries in a > > non-list, e.g. binary search tree. > > > > I wanted to get your opinions before I trod down one of these roads. > > > > Share and enjoy! > > -bw > > > > Bill Wendling (1): > > dwarf_loader: have all CUs use a single hash table > > > > dwarf_loader.c | 45 +++++++++++++++++++++++++++++++++------------ > > 1 file changed, 33 insertions(+), 12 deletions(-) > > > > -- > > 2.30.0.478.g8a0d178c01-goog > > -- - Arnaldo