03906a84c6
tools: add --no-throttle sysprof-cli option
...
This allows disabling the CPU governer by switching to "performance".
2020-03-18 11:16:00 -07:00
01d196abe4
libsysprof-collector: avoid formatting unless recording
...
We can avoid the process of creating the log message altogether if we are
not actively recording messages.
2020-03-16 12:28:04 -07:00
3d546eb6d1
libsysprof-capture: add sysprof_collector_log_printf()
...
This is a convenience function to call sysprof_collector_log() while also
formatting the message.
Ideally we'd be able to avoid the string format if we are not currently
collecting data, but that can be left for a future commit. We don't have
recursive locks so we need to duplicate the structure setup.
2020-03-16 12:28:04 -07:00
014b696dc0
Merge branch 'wip/jojnar/litsuf' into 'master'
...
Fix -Werror=literal-suffix
See merge request GNOME/sysprof!25
2020-03-16 03:33:18 +00:00
89f656013a
tools: add --speedtrack command line option
2020-03-15 16:00:22 -07:00
9de1dd3ab5
libsysprof-ui: remove control source
...
This is already part of the local profiler.
2020-03-15 15:57:26 -07:00
9393078d7b
Fix -Werror=literal-suffix
...
When trying to build gjs with --werror, I get the following error:
In file included from /nix/store/snc19nr462570ssx03v455p164vyz15s-sysprof-3.36.0-dev/include/sysprof-3/sysprof-capture-condition.h:59,
from /nix/store/snc19nr462570ssx03v455p164vyz15s-sysprof-3.36.0-dev/include/sysprof-3/sysprof-capture.h:66,
from ../gjs/profiler.cpp:53:
/nix/store/snc19nr462570ssx03v455p164vyz15s-sysprof-3.36.0-dev/include/sysprof-3/sysprof-capture-types.h:76:40: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
76 | #define SYSPROF_CAPTURE_ADDRESS_FORMAT "0x%016"G_GINT64_MODIFIER"x"
| ^
cc1plus: all warnings being treated as errors
2020-03-15 22:07:49 +01:00
259aa9ba93
libsysprof-ui: allow double click to select mark range
2020-03-13 17:00:17 -07:00
eb0d58dcc4
speedtrack: track g_main_context_iteration()
...
We can't get all the symbols here because of -Bsymbolic on the glib
library, but we can get the higher level bit. And if we're blocking for
a period of time, it can help track things down to know we block for
longer time periods.
2020-03-13 16:49:38 -07:00
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