tracy/public
Keno Fischer 5417227e83 Use patchable rdtsc sequence to avoid slowdowns under rr
We (Julia) ship both support for using tracy to trace julia applications,
as well as using `rr` (https://github.com/rr-debugger/rr) for record-replay debugging.
After our most recent rebuild of tracy, users have been reporting signfificant performance
slowdowns when `rr` recording a session that happens to also load the tracy library
(even if tracing is not enabled). Upon further examination, the recompile happened
to trigger a protective heuristic that disabled rr's patching of tracy's use of
`rdtsc` because an earlier part of the same function happened to look like a
conditional branch into the patch region. See https://github.com/rr-debugger/rr/pull/3580
for details. To avoid this issue occurring again in future rebuilds of tracy,
adjust tracy's `rdtsc` sequence to be `nopl; rdtsc`, which (as of of the
linked PR) is a sequence that is guaranteed to bypass this heuristic
and not incur the additional overhead when run under rr.

This functionality is kept behind a compile-time flag `TRACY_PATCHABLE_NOPSLEDS`
in order to avoid polluting the instruction cache unnecessarily.
2023-09-20 20:21:40 -04:00
..
client Use patchable rdtsc sequence to avoid slowdowns under rr 2023-09-20 20:21:40 -04:00
common Merge pull request #624 from slomp/slomp/udp-broadcast-fix 2023-09-21 20:29:32 +02:00
libbacktrace adapt libbacktrace to musl 2023-09-10 19:26:38 +08:00
tracy Fixed Vulkan context running out of queries after 64k 2023-09-11 20:51:42 +02:00
TracyClient.cpp Add system power use tracking skeleton. 2023-03-09 22:31:31 +01:00