[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libunwind-devel] interval based cache?
From: |
Doug Moore |
Subject: |
[Libunwind-devel] interval based cache? |
Date: |
Tue, 11 Apr 2017 17:24:21 -0500 |
The libunwind cache is based on hashing an instruction pointer (IP) value. On
a cache miss, the exploration for the right stack-popping info may come down to
a search of intervals defined by an eh_frame_hdr, so that the interval found to
include this IP could also include lots of neighboring instructions, which
would also lead to cache misses, if we ever looked them up. I’m wondering
whether it's worth considering a change to the caching mechanism so that
instead of using a hash table, it used some ordered data structure (binary
tree, skip list, etc) of intervals, not IPs, so that there would be at most one
cache miss per interval.
Is there a problem in my thinking here? If not, is the libunwind world
generally friendly or hostile to such a change?
Doug Moore