Commit Graph

779 Commits

Author SHA1 Message Date
55f8f313b7 speedtrack: add sync and syncfs wrappers 2020-03-13 16:10:14 -07:00
37afd71370 speedtrack: start on simple port of iobt as "speedtrack"
The long term goal here is to help people find issues with their main
loop performance because of mixed workloads getting in the way of
interactivity.
2020-03-13 15:51:33 -07:00
a70907be0e libsysprof: add simple preload source
This source is useful to quickly add an LD_PRELOAD to a profiler.
2020-03-13 15:50:46 -07:00
b022906b9e collector: fix mark name in collection 2020-03-13 15:31:51 -07:00
f3d6bd3ed3 memprof: fix joining of LD_PRELOAD 2020-03-13 15:19:18 -07:00
390c5cde18 libsysprof-ui: add access to control source from .ui 2020-03-13 15:19:06 -07:00
e0de0a94df build: add macros for 3.38 2020-03-13 15:18:01 -07:00
f7a53ca8f9 preload: move backtrace helper into helper
This is useful so that we can have more of these LD_PRELOAD tools without
having to duplicate this code.
2020-03-13 12:06:39 -07:00
5dea152c77 tests: use G_GSIZE_FORMAT instead of G_GUINT64_FORMAT for gsize
This fixes the build on 32-bit platforms with -Werror-format

fixes #32
2020-03-07 10:45:17 +01:00
82c2ee5a73 build: fix building in jhbuild
Not sure why we are hitting this, but we are so just force it to work.
2020-03-06 13:43:15 -08:00
a6c39af553 preload: move to libdir from libexecdir
This isn't an executable, it just belongs in libdir.
2020-03-05 15:46:03 -08:00
745eb981d1 libsysprof-capture: add mark and log variants 2020-03-05 15:43:33 -08:00
2725565eb9 libsysprof-capture: remove fallback code
We don't support the fallback writer interface currently, so this can go
until we decide what to do going forward.
2020-03-05 15:30:02 -08:00
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
b33c3e8af9 libsysprof-capture: add more assertions around alignment 2020-03-05 15:24:47 -08:00
6d8841267a preload: add assertion for performance hack
We steal two pointers temporarily, so ensure that we have the space to
overwrite a couple of addresses.
2020-03-05 15:22:17 -08:00
4af293a364 libsysprof: apply whole-system during capture replay
Fixes #31
2020-03-04 11:05:13 -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
58b9bc9992 libsysprof-ui: fix minute value 2020-02-26 21:59:03 -08:00
1fbeabf2a2 libsysprof: add context check for inline symbol decoding 2020-02-26 10:55:34 -08:00
0c698f2da1 libsysprof-ui: dont warn for not-supported error 2020-02-26 10:46:08 -08:00
f01298ead5 libsysprof: allow disabling the kernel symbol resolver
The kernel symbol resolver requires access to sysprofd, which might not
be available in some contexts (such as when no polkit agent is available).

This allows that to continue working by disabling the kernel with the
user-only setting.
2020-02-26 10:24:40 -08:00
14973bc2b9 callgraph: fix loading of stacks coming from backtrace() 2020-02-26 09:31:31 -08:00
26bf532a8c libsysprof: include process ID when cmdline is not available
We shouldn't really hit this, but if we do, it's easy enough to synthesize
a real parent node for the process in question.
2020-02-26 08:48:05 -08:00
d34e277a6a tests: initialize allocated value to 0 2020-02-24 15:27:58 -08:00
f1322de9e6 tests: add median to calculation 2020-02-24 15:15:20 -08:00
a9dcb58ca6 tests: add in-tree testing tool to list allocations within mark
This would be nice to have more generally useful via filters in the
allocations view. But for now, just make something simple work.
2020-02-24 15:11:01 -08:00
988ad116a4 libsysprof-capture: check alignment in read length
We require aligned frames, so we might as well enforce it in the reader.
2020-02-23 14:30:06 -08:00
fd215a39a3 libsysprof-capture: check frame length overruns
If we got a corrupted frame, just stop reading forward immediately.
2020-02-23 14:26:13 -08:00
98f6dc6642 tools: add --env=VAR=VALUE command line option 2020-02-21 12:40:55 -08:00
cd2c2c954a libsysprof: extend LD_PRELOAD when pre-existing 2020-02-21 12:40:55 -08:00
9b52e88d3a libsysprof-ui: add label for number of allocations 2020-02-21 12:39:13 -08:00
5b88e9c3aa build: check for unw_set_cache_size()
This may not be available on older libunwind versions such as 1.2.
2020-02-20 11:22:56 -08:00
b0157683ef preload: use #ifdef, not #if ENABLE_LIBUNWIND 2020-02-20 11:08:26 -08:00
348a1ef110 libsysprof: fix use of {0} initializers for older GCC
Older GCC versions complain about this so we might as well squash it.
2020-02-20 11:08:21 -08:00
0cb4bb61ac libsysprof: remove use of GAtomicRCBox
Switching this to use an embedded ref count allows us to backport to
operating systems restricted to GLib 2.56.
2020-02-20 11:03:05 -08:00
f25c573ba6 libsysprof-ui: remove use of GAtomicRCBox
Switching this to use an embedded ref count allows us to backport to
operating systems restricted to GLib 2.56.
2020-02-20 11:02:49 -08:00
d89a689ab4 sysprofd: remove use of GAtomicRCBox
Using an embedded ref count allows us to backport to older operating
systems for which GLib is restricted to 2.56.
2020-02-20 11:01:02 -08:00
1017fed467 tests: add missing locale.h include 2020-02-20 10:59:57 -08:00
be6b979714 libsysprof-capture: remove use of GAtomicRCBox
If we backport to an older GLib release, we won't have the newer atomic
helpers available. It's really not too much burden to do that manually if
it means we can run on older systems.
2020-02-20 10:39:33 -08:00
cd8a99402f build: fallback to __sync_synchronize()
If we're running on a GCC older than 4.9, then we won't have the
stdatomic.h available. We can just use a full barrier instead using
__sync_synchronize() to get the same effect, albeit slower.
2020-02-20 10:38:35 -08:00
2cd05c1bd8 libsysprof-capture: fallback to g_time_val_to_iso8601()
To allow us to backport to older systems, we can have a fallback here for
the time being.
2020-02-20 10:36:18 -08:00
a62664f8e5 memprof: add allocation instead of self to clipboard 2020-02-19 20:12:02 -08:00
8e81b1fcf9 libsysprof: add summary information for memprof profile 2020-02-19 00:16:36 -08:00
6b1872a5ce libsysprof-ui: dont change pages if operation was cancelled 2020-02-18 21:03:12 -08:00
dd6b44cb2f libsysprof-ui: move controls above stack 2020-02-18 19:56:30 -08:00
16e35c1fa6 libsysprof-ui: allow switching to temporary allocations 2020-02-18 19:20:38 -08:00
e3cb30e4ee libsysprof: apply selection to temporary allocations 2020-02-18 19:19:01 -08:00
d525f065f4 libsysprof-ui: add API to reload pages
This can be useful when the page is interactive and needs to reload.
2020-02-18 19:17:38 -08:00