Commit Graph

11 Commits

Author SHA1 Message Date
3de9f39348 libsysprof-profile: parse address ranges with GRegex
This uses G_REGEX_OPTIMIZE as well to get the benefit of the JIT when using
PCRE2 via GLib.

This turns out to take about half (or less) of the time that it takes to
use sscanf() to parse the template/input string. 0.03 vs 0.08 seconds on
my system.

If someone wants to take this further, and just look at the input string
rather than rely on GRegex, that'd be fine by me too.
2023-06-05 16:32:08 -07:00
0c6fcea79b libsysprof-profile: avoid splitting string into lines
We will always have either \n or \0 at the end, so we can just sscanf this
without needing to split strings.

The sscanf() is still our top offender though, and so we should probably
look for other ways to parse this string than sscanf().
2023-06-05 15:27:16 -07:00
849db07ad6 libsysprof-profile: stash kallsyms from Perf instrument
That is the instrument that really provides things within the kernel
address space, so it should be the instrument which copies the contents
of kallsyms to the capture file (compressed).
2023-06-05 15:04:14 -07:00
598a2b7cf7 libsysprof-profile: capture podman overlays and containerenv
Additionally keep information about .flatpak-info so that we can
reconstruct which symbols are needed without build-id support.
2023-05-30 17:58:37 -07:00
1840c7b526 libsysprof-profile: add mmap records for existing processes 2023-05-30 17:35:00 -07:00
8ddcf54c37 libsysprof-profile: add mountinfo when process discovered 2023-05-30 17:28:04 -07:00
ee3a78433f libsysprof-profile: add processes during recording
We want to reduce the chances we miss things between prepare and record
virtual methods, so delay the adding of processes until the recording is
started. We may get duplicate records, but we can deal with that when
analyzing the capture.
2023-05-30 17:12:19 -07:00
5c825c1fb5 libsysprof-profile: add some basic process information
This needs to get into the capture, and we still need to respond to the
discovery of new processes as well (which we lack API for).
2023-05-30 17:06:28 -07:00
f91e13e055 libsysprof-profile: require org.gnome.sysprof3.profile policy
This will be needed to read the given proc files that should be captured
in the recording.
2023-05-30 16:11:38 -07:00
4fe9339113 libsysprof-profile: capture files using recording API 2023-05-30 14:44:01 -07:00
02811d593b libsysprof-profile: start on linux host info instrument
This instrument is meant to gather information about the host that we will
need as part of the capture to decode things properly.
2023-05-27 10:33:45 -07:00