CVSROOT:        /cvs
Module name:    src
Changes by:     chel...@cvs.openbsd.org 2024/03/12 11:22:24

Modified files:
        usr.sbin/btrace: ksyms.c 

Log message:
btrace(8): cache ELF .symtab, .strtab entries in sorted array

Currently, every kelf_snprintsym() call performs a linear search
through the .symtab for a matching symbol.  The search is very
costly and causes btrace(8) to drop a lot of profiling events.

Storing the STT_FUNC .symtab entries and their corresponding .strtab
entries in a sorted array cuts the lookup cost from O(n) to O(lg n).
Lower overhead reduces the drop rate for profiling events.

With tweaks from mpi@.

Thread: https://marc.info/?l=openbsd-tech&m=170830125132105&w=2

probably ok mpi@

Reply via email to