Commit Graph

13 Commits

Author SHA1 Message Date
de492d11e5 libsysprof-capture: set padding to 0 2020-03-05 15:26:41 -08:00
43f31fb8b7 libsysprof-capture: add collector interface for samples 2020-03-05 15:26:31 -08:00
351a2089ff libsysprof-capture: remove unused API
We want this alter, but for now, we can skip it until there is a chance
to fully implement it.
2020-02-28 09:27:32 -08:00
0d6a3d0183 libsysprof-capture: fix use of n_addrs 2020-02-18 14:05:26 -08:00
7490a774ab libsysprof-capture: use signed int for backtrace return
This allows us to more safely subtract 1 from the unw_backtrace() to get
the proper number of frames (and detect it in the collector).
2020-02-18 14:03:19 -08:00
fdf912b716 libsysprof-capture: do less work to calculate frame length
These values are already all aligned, so there is no need to realign them.
2020-02-18 13:35:45 -08:00
70bea64f88 libsysprof-capture: allow for backtrace skip optimization
We want to be backtracing directly into the capture buffer, but also need
to skip a small number of frames.

If we call the backtrace before filling in information, we can capture to
the position *before* ev->addrs and then overwrite that data right after.
2020-02-18 13:35:18 -08:00
20f7c271ca libsysprof-capture: clear SYSPROF_CONTROL_FD 2020-02-18 13:17:33 -08:00
4cfb51421b libsysprof-capture: set tid to pid on non-Linux 2020-02-18 13:17:22 -08:00
ee5c43f107 libsysprof-capture: avoid recursion in TLS cleanup 2020-02-16 20:58:39 -08:00
135b5d2fbf libsysprof-capture: remove unused code 2020-02-16 20:56:12 -08:00
c36420d716 libsysprof-capture: write final frame
This frame type can be used to communicate with the peer over the mapped
ring buffer to denote that writing is finished and it can free any
resources for the mapping.
2020-02-15 20:49:27 -07:00
c546d31ad9 libsysprof-capture: add simplified collector API
This is a simplified API for the inferior to use (such as from a
LD_PRELOAD) that will use mmap()'d ring buffer created by Sysprof. Doing
so can reduce the amount of overhead in the inferior enough to make some
workloads useful. For example, collecting memory statistics and backtraces
is now fast enough to be useful.
2020-02-13 18:56:54 -08:00