Commit Graph

424 Commits

Author SHA1 Message Date
053271f946 sysprof: implement document saving 2023-08-06 17:59:50 -07:00
d9932de4ff libsysprof: remove unused code 2023-08-06 16:32:37 -07:00
56332e0071 libsysprof: remove lsusb from linux instrument
This is done more generically now with the graphical recorder.
2023-08-06 15:59:41 -07:00
fd6e9c964e libsysprof: remove glxinfo/eglinfo from linux device
This is a separate instrument now.
2023-08-06 15:43:22 -07:00
15d9cbc28f libsysprof: add test for subprocess output 2023-08-06 14:51:42 -07:00
433dff95ce libsysprof: add helper instrument for subprocess output 2023-08-06 14:51:42 -07:00
fe4995cf1f libsysprof: synchronize access to tid symbols hashtable
This can get mutated after the document is loaded, so we need to
synchronize access to it.
2023-08-06 02:18:43 -07:00
c5517c0ead libsysprof: try to break cycles at end of recording 2023-08-05 23:42:57 -07:00
3ddf806f92 libsysprof: avoid fork amplification from recording 2023-08-04 16:00:01 -07:00
51e1e4ef4b Revert "libsysprof: do process setup before recording starts"
This reverts commit a286c2a8cb.

This is needed so that we get better system info currently for
processes spawned by sysprof-cli.
2023-08-04 15:36:13 -07:00
56680ae12f libsysprof: implement follow fork instead of tracking spawnable 2023-08-04 15:31:00 -07:00
48e94181a7 libsysprof: remove unused GObjectClass 2023-08-04 15:30:04 -07:00
c705bae53e libsysprof: notify instruments of process spawn 2023-08-04 15:02:38 -07:00
f217d788ee libsysprof: avoid g_type_instance constructor/destructors 2023-08-04 14:34:59 -07:00
dc560d6de5 libsysprof: add type system category
Include various introspection and GObject things within that.
2023-08-04 14:25:46 -07:00
6ac730629f libsysprof: add API to ignore the idle process (pid 0) 2023-08-04 12:39:12 -07:00
0ae8765c0e libsysprof: remove unused finalize 2023-08-04 12:31:33 -07:00
a286c2a8cb libsysprof: do process setup before recording starts
Otherwise we end up recording ourselves too much. Do it before even though
there is a small race condition chance to miss a process spawning at the
time between prepare and record.
2023-08-04 12:17:30 -07:00
b2ce9efbb4 libsysprof: get various process info during prepare
That way it doesn't show up on the profiles themselves.
2023-08-04 12:11:19 -07:00
2c0f055af1 build: make sysprof-journald-source.c conditional
Fixes #88
2023-08-02 11:57:32 -07:00
78f4d1b37e libsysprof: add capture time as metadata
This is actually readable to the user and doesn't require dealing with
SysprofCaptureFileHeader data.
2023-08-02 10:11:54 -07:00
61f94957d3 libsysprof: use #if instead of #ifdef for HAVE_LIBSYSTEMD
Fixes #88
2023-08-02 10:00:32 -07:00
181963fb73 libsysprof: swap fields for marks 2023-08-01 15:37:09 -07:00
b587e35ada libsysprof: add test to convert .ninja_log to trace marks 2023-08-01 15:33:17 -07:00
3c33ae06a0 sysprof: add dbus utility
This allows viewing the message contents that were captured in a textview
within the utility pane.

We already limit the max size of a message in the capture file, so
presumably messages are relatively small enough to fit here.
2023-08-01 11:20:24 -07:00
aaafa8e9ef libsysprof: start naming some bits as app store
Probably can come up with better naming here, but it'd be nice to lay
blame where it makes sense.
2023-07-31 13:29:34 -07:00
d5f9cecec5 libsysprof: provide escape patch for listing traceables
We don't want this to get out of hand, so limit it to 1000 for now.
2023-07-31 12:16:51 -07:00
6f6228b1b5 libsysprof: sort indexes by size from smallest
This is just to help ensure we are not doing extra work that would fall
out of the visible range of the index.
2023-07-31 12:07:17 -07:00
fc888857c4 libsysprof-profile: fix signature of sysprof_perf_event_stream_new
Followup to 283da1e107
2023-07-31 17:43:00 +03:00
2529abc3db build: add missing header 2023-07-30 13:42:10 -07:00
6082d5f277 Merge branch 'meson' of https://gitlab.gnome.org/tristan957/sysprof 2023-07-28 17:42:14 -07:00
438c42d0ae libsysprof: add a tool to list allocations by function (and children) 2023-07-28 13:04:09 -07:00
f93767cfb2 meson: use variables for gio-2.0, glib-2.0, and gio-unix-2.0 2023-07-28 14:00:04 -05:00
dd4686404c libsysprof: ensure we always have trailing \0 on bytes
This is needed so that our invariants elsewhere are maintained.
2023-07-28 11:59:32 -07:00
79ba6ab3d5 meson: remove explicit pkgconfig install_dir
This is the default.
2023-07-28 13:09:48 -05:00
afe71d7562 libsysprof: add coredump category
This just makes it easier to see if the time spent on something was
related to a coredump handler in the kernel.
2023-07-28 10:49:14 -07:00
048e366ea9 libsysprof: add a SysprofTracefdConsumer
This is meant to simplify the proxying of data from a tracefd into the
destination capture.
2023-07-27 15:40:59 -07:00
1701b4e4c6 libsysprof: add bus-type property 2023-07-27 14:45:20 -07:00
e210572700 libsysprof-capture: add bus type to add_dbus API 2023-07-27 14:25:06 -07:00
19c3d90886 libsysprof: add more accessors for dbus message info 2023-07-27 14:20:20 -07:00
6e4b0ace8b libsysprof: add sysprof_document_list_dbus_messages()
Another indexed helper to get just dbus messages.
2023-07-27 13:43:02 -07:00
3c105057c7 libsysprof: add message-type property 2023-07-27 13:42:44 -07:00
8dd2d3d73c libsysprof: add support for dbus messages as a document type 2023-07-27 12:22:31 -07:00
e585be1459 libsysprof: add self tracking of sysprof libs 2023-07-26 18:05:36 -07:00
d8483691dc libsysprof: use non-breaking space between units 2023-07-26 11:52:26 -07:00
58b47cbe19 libsysprof: remove some weak pointer usage
These are incredibly slow and just not worth the overhead of using weak
pointers for everything.

Fixes some jank on filtering function symbols.
2023-07-25 20:32:21 -07:00
29a1ec952f libsysprof: add API to lookup a process by PID 2023-07-25 19:31:40 -07:00
a0ce83eead libsysprof: provide build-id in MMAP2 event to capture writer
We may not always get this value (in fact, I can't seem to actually get
the Kernel to provide it to me locally), but should we actually get it
this will send that along to the capture writer so it may add a @build-id\0
tail to the SysprofCaptureMap frame.
2023-07-24 17:31:51 -07:00
85344b4963 libsysprof: handle mmap2 records
We still need to add an additional capture writer so that we can keep the
build-id around, but this gets the mechanics in place to handle the
PERF_EVENT_MMAP2 event type.
2023-07-24 16:32:58 -07:00
5f5868c060 libsysprof: add control structure for mmap2 events 2023-07-24 15:34:35 -07:00