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


_______________________________________________
Libunwind-devel mailing list
Libunwind-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to