Commit Graph

18 Commits

Author SHA1 Message Date
0539497886 libsysprof: attempt to new spawned process information
If a new process is spawned after the recording has started (processes
spawned *by* sysprof are done before recording starts) then try to extract
information about that process and append it to the recording.

The goal here is to get enough process information to actually decode the
process without creating fork()/exec() amplification.

Related GNOME/gnome-builder#2090
2023-08-28 17:27:18 -07:00
31547de795 libsysprof: rename follow_fork() to follow_process()
This is more of what we want to be doing anyway, we don't care about all
the forks in existence.

Additionally, include the comm[] with the pid so that instruments can take
action based on it.
2023-08-28 17:24:27 -07:00
4250abf81e libsysprof: setup perf streams in prepare
This starts the perf streams from prepare instead of from record so that
we can do the linux instrument work in prepare. The samples are dropped
until our start-time is set.

Doing it this way removes sysprof-cli and sysprofd greatly from the
overhead in the callgraph which is useful so that the user gets to see
what they really care about.

It has the added benefit that we're less likely to see the pkla processes
showing up from authorizing our D-Bus connection for creating per streams.
2023-08-07 12:14:32 -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
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
48e94181a7 libsysprof: remove unused GObjectClass 2023-08-04 15:30:04 -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
c55d1887ba libsysprof: include lsusb information 2023-07-19 19:07:12 -07:00
d04e5c5678 libsysprof: silence stderr 2023-07-19 19:07:05 -07:00
118484607d libsysprof: compress various process information 2023-07-19 18:33:00 -07:00
3b2e9edeb9 libsysprof: record some system info from linux instrument
We might want a secondary instrument for this eventually, but for now we'll
just attach it in the Linux instrument.

This takes the output of eglinfo and glxinfo and adds it as a file in the
capture syscap. Compressed of course to keep the size smaller.
2023-07-19 18:30:24 -07:00
90ed413c5a libsysprof: add API to add compressed file from data 2023-07-19 18:29:38 -07:00
dbb7833cbf libsysprof: join libsysprof-analyze and libsysprof-profile
This brings together the two libraries back into one now that the whole
design is pretty well sorted out. They depend on roughly the same libraries
anyway and it's way easier of the single library can both read and write
the capture files (along with bringing in libsysprof-capture symbols in
a single place).
2023-07-19 17:40:41 -07:00