Commit Graph

395 Commits

Author SHA1 Message Date
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
29772e7ac2 sysprofd: add proxy support for mmap2/build_id
We will want to be able to open perf event streams with these options so
that we can get the build-id extracted from an ELF without having to rely
on parsing it at resolution time.

Additionally, it could give us an option for live-decoding at some point
in userspace without having to write the major DWARF capture data to disk.
2023-07-24 15:30:16 -07:00
49a17d5339 libsysprof: fix format of 64-bit integer 2023-07-23 18:16:59 -07:00
91d48b87d6 libsysprof: calculate min/max/avg/median durations for marks 2023-07-22 16:43:32 -07:00
e74a7eb0e3 libsysprof: add symbols to capture 2023-07-21 20:49:25 -07:00
017e51cb62 libsysprof: return null for empty description
Just to decrease chances this causes tooltips to display.
2023-07-21 16:55:27 -07:00
5fdef90f4d libsysprof: fix tx counter id 2023-07-21 15:58:03 -07:00
1d9b346a49 libsysprof: add some cryptography libraries 2023-07-21 13:14:15 -07:00
42f9f99e50 libsysprof: upate categories.txt 2023-07-21 13:06:26 -07:00
96402c2381 libsysprof: update categories.txt 2023-07-21 12:53:21 -07:00
450c1402b1 libsysprof: tag more binaries with nicks 2023-07-21 12:53:11 -07:00
6ce5b9d1e9 libsysprof: add more categories 2023-07-21 12:52:58 -07:00
81c701c953 libsysprof: update categories.txt 2023-07-21 11:56:00 -07:00
67a284c8b4 libsysprof: allow comments with # 2023-07-21 11:55:46 -07:00
a99a89782a libsysprof: fix category inheritance
Move the bit lower so we can use bitfields properly, and add an unmask
helper to avoid all the 0xFF crap.
2023-07-21 10:51:41 -07:00
ff5c0e4927 libsysprof: assign cairo to paint 2023-07-21 10:35:18 -07:00
5c2a1f2016 libsysprof: fix cost accounting for categories
We don't want to derive the total count from each summary, but instead
the total count of nodes w/ is_toplevel set.
2023-07-21 09:46:12 -07:00
76c0a8ece7 libsysprof: update categories.txt 2023-07-20 17:46:04 -07:00
ad5fc5f372 libsysprof: add locking category 2023-07-20 17:45:55 -07:00
8e861b222d libsysprof: add category-name helper
Just to ease translations
2023-07-20 17:31:15 -07:00
d13d2cb479 sysprof: drop signals category
Not really all that useful currently.
2023-07-20 17:30:44 -07:00
90c6d87a8c libsysprof: implement callgraph frame summaries 2023-07-20 17:02:56 -07:00
0f70dd1d68 libsysprof: keep count in callgraph node
I don't want this to overlap with augmentation data, or be augmentation
data specific, so just keep our own private copy of this data in the
node to do the sort of things we want with it (such as summaries).
2023-07-20 17:02:34 -07:00
a75429241e libsysprof: simplify summary generation
This still doesn't actually do anything, just the scaffolding.
2023-07-20 16:36:29 -07:00
ff40f7d37d tests: move tests to appropriate libraries 2023-07-20 16:20:52 -07:00
b8f39ef20a build: fix library name for libsysprof-6.so 2023-07-20 16:11:14 -07:00
4a8d5007e5 libsysprof: add scaffolding to perform category summaries
The goal here is to summarize the categories starting from a specific
frame.
2023-07-20 16:04:42 -07:00
9400757821 libsysprof: make presentation type one above uncategorized
That way we can do > presentation checks.
2023-07-20 16:03:56 -07:00
79c49fca02 libsysprof: track which nodes are toplevel
We used to do this, and now we have space for it here as we added the
categorization field.
2023-07-20 16:03:37 -07:00
dfa893f06a libsysprof: ensure descendants view is categorized 2023-07-20 15:31:50 -07:00