7c98f782c0
libsysprof-profile: add getter for capture writer
2023-05-26 17:07:16 -07:00
e4ec04812d
libsysprof-profile: bring over mapped ring buffer source
2023-05-26 16:48:26 -07:00
38dbf0dc95
build: add mapped_ring_buffer_sources for inclusion
...
We use this in various places but it relies on some static API in the
libsysprof-capture. Make it available to the other libraries.
2023-05-26 16:46:44 -07:00
55353aa185
libsysprof-profile: add record vfunc scaffolding
...
We still need to create the ring buffer and the source to stream it into
the capture writer, but that will come soon.
2023-05-26 16:32:17 -07:00
8409022c5c
libsysprof-profile: add record step to recording/instruments
2023-05-26 16:05:48 -07:00
4d54aa6a51
libsysprof-profile: add SysprofInstrument record vfunc
2023-05-26 16:05:30 -07:00
1e3ad3982d
libsysprof-profile: implement prepare vfunc
...
This doesn't start reading from the input stream, but does get things into
place until we actually start processing the recording. When we get a
record vfunc, we will do the input processing.
2023-05-26 15:41:58 -07:00
800c32e303
libsysprof-profile: add private API to get recording spawnable
...
This will still need to be set by the profiler eventually, but this gets
the readback API in place so we can use it from instruments.
2023-05-26 15:37:39 -07:00
9494b403f4
libsysprof-profile: add SysprofSpawnable
...
This comes from libsysprof, but the goal here is to remove that library
after getting this one into shape. So C&P is fine for now.
2023-05-26 15:37:02 -07:00
b4e6f7c915
libsysprof-profile: add recording session fiber
...
Setup instrument policy, preparation, etc.
2023-05-26 15:05:29 -07:00
fac12d657a
libsysprof-profile: implement polkit checking with libdex
...
Also, I no longer wish to try to maintain support for no-polkit. If there
is truly a system where that is something we want to support, we can bring
back the shims as a compile time alternative.
2023-05-26 13:48:16 -07:00
d1bcf93922
build: add libdex-1 requirement for libsysprof-profile
...
Being able to manage asynchronous operations with libdex will drastically
simplify how we implement the profiler and instruments. We may eventually
do the same with libsysprof-analyze to parallelize some operations.
2023-05-26 12:21:36 -07:00
11aa39f151
libsysprof-profile: add scaffolding for controlfd source
...
This is internal to the profile and will always be active when running
subprocesses with Sysprof.
2023-05-26 12:18:59 -07:00
97128b4185
libsysprof-profile: transfer instrument ownership
2023-05-26 12:18:26 -07:00
731841a523
libsysprof-profile: wait for recording and seutp ctrl+c
2023-05-25 17:25:13 -07:00
ce4a4200f8
libsysprof-profile: create recording and start it
2023-05-25 17:24:54 -07:00
07dc728bfe
libsysprof-profile: change state on stop
...
We will need some more checks in here later on once we're doing things
with the instruments, but this gets the job done for now.
2023-05-25 17:24:33 -07:00
7fb77ee01d
libsysprof-profile: create writer and test record
2023-05-25 17:17:25 -07:00
a8fbb645d0
libsysprof-profile: add writer as record parameter
2023-05-25 17:17:04 -07:00
9498d15170
libsysprof-profile: fix copy-paste typo
2023-05-25 17:16:47 -07:00
d3fe382954
libsysprof-profile: add test-profiler
2023-05-25 17:10:37 -07:00
7b83ff3f34
libsysprof-profile: fix includes for profiler
2023-05-25 17:10:23 -07:00
08aa970c7c
libsysprof-analyze: add instruments to recording and list policy
...
We need to know all the policy that must be acquired upfront so that we
don't have to do individual queries on policy.
2023-05-25 17:05:16 -07:00
ccdc1b8cff
libsysprof-profile: add API to list required policy
...
The idea here is that we stop having instruments do their own policy
checking and instead do the policy checking as a set from the recording
as part of prepare/etc.
2023-05-25 16:43:56 -07:00
2ae33917b2
libsysprof-profile: add writer to recording object
2023-05-25 16:26:18 -07:00
93153d1943
libsysprof-profile: add scaffolding for base objects
...
The goal here is to have a fairly small exposed API surface for profiling
similar to libsysprof-analyze where implementation details are hidden.
SysprofProfiler - Where you setup your recording
SysprofInstrument - What you add to a profiler to extract data
SysprofRecording - Represents an active recording w/ instruments
2023-05-25 16:21:40 -07:00
24b876f437
libsysprof-profile: stub out libsysprof-profile library
...
This does the same thing as we did for libsysprof-analyze, but to contain
the profiler bits that will be used from applications/etc.
2023-05-25 15:43:53 -07:00