Commit Graph

26 Commits

Author SHA1 Message Date
eae4eb4ad7 build: Drop redundant _GNU_SOURCE definitions
It’s defined in `meson.build` now. See the previous commit.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-06 11:27:28 +01:00
390c5cde18 libsysprof-ui: add access to control source from .ui 2020-03-13 15:19:06 -07:00
33c81a3a9c memprof: add memory profiling using LD_PRELOAD
This brings over some of the techniques from the old memprof design.
Sysprof and memprof shared a lot of code, so it is pretty natural to
bring back the same callgraph view based on memory allocations.

This reuses the StackStash just like it did in memprof. While it
would be nice to reuse some existing tools out there, the fit of
memprof with sysprof is so naturally aligned, it's not really a
big deal to bring back the LD_PRELOAD. The value really comes
from seeing all this stuff together instead of multiple apps.

There are plenty of things we can implement on top of this that
we are not doing yet such as temporary allocations, cross-thread
frees, graphing the heap, and graphing differences between the
heap at to points in time. I'd like all of these things, given
enough time to make them useful.

This is still a bit slow though due to the global lock we take
to access the writer. To improve the speed here we need to get
rid of that lock and head towards a design that allows a thread
to request a new writer from Sysprof and save it in TLS (to be
destroyed when the thread exits).
2020-02-07 19:00:33 -08:00
731b6dd379 sysprof: allow passing program path to sysprof
If the path provided to us is an executable program (instead of a syscap
file) then we can setup the path as the binary to execute in the profiler
assistant and save the user a couple clicks.
2020-01-23 11:59:50 -08:00
73dc39329a libsysprof-ui: avoid use of environ for -Werror=shadow
Fixes #18
2019-10-21 11:35:42 -07:00
1d445c4fad sysprof-ui: add missing filtering of processes
The search implementation here is pretty barebones, but at least it gets
things working again after the fallout from the redesign.

Fixes #15
2019-10-07 12:57:50 -07:00
8712067b8e rapl: add new aid for the RAPL profiler 2019-07-31 15:05:10 -07:00
b19f995ae2 assistant: add aid for diskstats source 2019-07-01 12:55:21 -07:00
6d4796294e netdev: start on netdev aid to display network graphs 2019-06-26 18:58:31 -07:00
e8528609ec libsysprof-ui: land new UI design
This comprises a massive rewrite of the UI for browsing captures. We use
the SysprofAid class to scan capture files for content and then auto-
matically add visualizers and details pages.

To avoid breaking things incrementally, we just land this as a very large
commit. Not necessarily ideal, but given the amount of stuff that could
break, this is easier.

As part of this process, we're removing a lot of the surface API so that
we can limit how much we need to maintain in terms of ABI.
2019-06-24 20:52:40 -07:00
a7832ce0d4 governor: add UI to toggle CPU governor setting 2019-06-14 08:04:24 -07:00
6e3632c0e5 libsysprof-ui: add local symbol decoder source to profiler
This allows us to decode symbols locally at the end of a capture so that
we avoid trying to decode them on a machine without the info.
2019-05-29 15:13:01 -07:00
e2d5be5f52 libsysprof-ui: setup profiler immediately on setup
We want this set early so that tooling has access to it. We should probably
also teach the local profiler about doing this earlier so that it isn't
necessary to do this.
2019-05-29 15:13:01 -07:00
7b017a31f1 libsysprof-ui: focus record button by default
Because if we break the "hit enter to launch, escape to stop" workflow
some people will be angry.
2019-05-29 15:13:01 -07:00
85f78a5838 libsysprof-ui: only handle selected aids 2019-05-29 15:13:00 -07:00
588fd43d8b libsysprof-ui: stub out proxy source
The goal for this (which is unfinished) is to setup a dbus proxy to the
peer. That can be reused for both gtk and mutter, if configured correctly.

We'll likely need to allow some specific config tweaks in the UI.
2019-05-29 15:13:00 -07:00
210de8268e libsysprof-ui: add hostinfo source when cpu is selected 2019-05-29 15:13:00 -07:00
318744d225 libsysprof-ui: add proc source when on Linux 2019-05-29 15:13:00 -07:00
01f0f5aff6 libsysprof-ui: wire up spawn args 2019-05-29 15:13:00 -07:00
958f428946 libsysprof-ui: add pids to profiler 2019-05-29 15:13:00 -07:00
8f335bc512 libsysprof-ui: wire up recording signal 2019-05-29 15:13:00 -07:00
809c24622e libsysprof-ui: start on aids 2019-05-29 15:13:00 -07:00
65f1a8d5a0 libsysprof-ui: start on data collection icons 2019-05-29 15:13:00 -07:00
b213f7bbe4 libsysprof-ui: setup environment editor 2019-05-29 15:13:00 -07:00
91a5bbaeee libsysprof-ui: start on launch UI 2019-05-29 15:13:00 -07:00
11712643b9 libsysprof-ui: start on profiler assistant 2019-05-29 15:13:00 -07:00