Closed Bug 895156 Opened 11 years ago Closed 11 years ago

Investigate solutions for loading/incorporating arm exception handling tables of dlopen'd libraries at runtime

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: huseby, Assigned: huseby)

References

Details

(Keywords: perf, Whiteboard: c=profiling)

Currently, arm exception handling index tables are mmap'd at load time. The problem is that only the executable and linked libraries are included. Any dlopen'd libraries are not included. On B2G that includes things like GL libraries amongst other things. This bug tracks the work to investigate solutions for loading and incorporating the exception handling index tables for dlopen'd libraries at runtime. This is non-trivial as the data has to be available to the thread-safe profiling sig handler.
Keywords: perf
Whiteboard: c=profiling
Assignee: jld → dhuseby
The best solution for this is to implement our own preload .so file that implements and exports dlopen and dlclose. That way we can hook into all calls to those functions at runtime and handle loading the exception and DWARF information for the specified library. Adding the loaded information to the data structure used by the profile signal handler is a little trickier. We're probably going to have to do an atomic pointer swap to add the data into the list searched in the signal handler.
Status: NEW → ASSIGNED
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.