Commit Graph

24 Commits

Author SHA1 Message Date
b2091926fe cli: Add sd-notify integration
Let's make sysprof-cli send a READY=1 sd-notify message when it's
finished its setup logic. This allows starting sysprof as a systemd
service and delaying startup of other services until sysprof has
finished its setup logic. This ensures we don't miss any profiling
data when running sysprof-cli in a systemd service as part of the
bootup process.

We skip this step for now when we're running a child process so that
we don't accidentally interfere with a child process that receives
an sd-notify socket and is supposed to send notifications on it instead
of sysprof-cli.
2025-04-07 14:21:24 -07:00
163406ccfe sysprof-cli: add --no-sysprofd command line option
This tells the SysprofProfiler that it should avoid using sysprofd unless
for some reason that instrument simply cannot work without it. Currently
that is at least the RAPL and user-space stack decoding instruments
but there may be others.
2025-03-21 12:08:16 -07:00
4999ae8598 libsysprof: add SysprofSymbolsBundle:enable-debuginfod property
This adds a property instead of the global to key off if the debuginfod
resolver should be used to bundle symbols into the capture at the
augmentation point post-capture.

This defaults to off because we do not want to auto-include them when
recording from the GTK UI (as we'd spend a bunch of time not showing a
window) but we do want to include them from sysprof-cli as that could
be running on a remote machine/container/vm with different debug URLs.

In the future, that could be improved with a different UI flow though.

Related: #130
2025-02-06 22:23:24 -08:00
91c8bc7105 libsysprof: Add debuginfod toggle for sysprof-cli inside libsysprof
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
2025-02-06 00:59:34 +05:30
c3cb2f71bc sysprof-cli: add support for live unwinding
This allows you to specify --stack-size=(multiple_of_page_size) to unwind
from captured stack contents. It will use the new SysprofUserSampler to
unwind stack traces via sysprof-live-unwinder.
2024-11-03 10:59:05 -08:00
b726f49d15 Turn polkit-agent support into an optional feature.
This simplifies deployment on embedded devices, where polkit is usually
unncessary at runtime, but pulls in quite a few otherwise unncessary
dependencies. Start to improve the situation by allowing to selectively
disable polkit-agent support at compile time, which aids in container
usage scenarios, where one wants to invoke 'sysprof-cli' from within
the container. Bypassing polkit-agent in the container is then desired,
since the host sysprofd will handle asking for permissions to enable
the tracing. It allows for a simpler setup of rootless podman
containers, avoiding UID mismatches, that lead to rejection of the
tracing enablement.

- Add a new 'polkit-agent' meson build feature, that allows to force disabling
  polkit-agent support (-Dpolkit-agent=disabled).

- Mark the 'polkit-agent' feature as enabled, by default, to reflect
  the current status (sysprof-cli did not build without polkit-agent support).

- libsysprof/sysprof-instrument.c: Build fix when polkit is not available,
  remove the unnecessary 'g_autopr(PolkitDetails) details' variable.

- Alter the sysprof-cli dependencies to only attempt to link against
  polkit-agent, if necessary. Modify sysprof-cli.c to wrap all code using
  polkit-agent in HAVE_POLKIT_AGENT blocks.
2024-08-20 20:46:11 +02:00
32690091ef sysprof-cli: set GJS_ENABLE_PROFILER 2024-08-14 14:40:39 -07:00
bdcd499c8b Revert "build: fix post-freeze string breakage"
This reverts commit e5cc857464.

String freeze exception approved.
2024-03-01 09:42:40 -08:00
e5cc857464 build: fix post-freeze string breakage
Fixes #115
2024-02-28 10:19:38 -08:00
0fbac325b9 sysprof-cli: add option to specify additional d-bus to monitor 2024-02-27 17:08:06 -08:00
3b3f78131c sysprof-cli: check for /var/run/host
Give users some info if there is a good chance their decode will be bad.
2023-08-31 14:51:55 -07:00
3a5aa1e887 sysprof-cli: add --scheduler option 2023-08-21 15:25:35 -07:00
a141d9a194 sysprof-cli: bump default buffer size to 8mb
The goal here is just to reduce the number of file system transactions during
the recording process.
2023-08-14 10:26:24 -07:00
336d4a6e91 cli: add option to specify buffer size in pages 2023-08-14 10:22:33 -07:00
912f8e8852 sysprof-cli: avoid erroring on non-zero exit 2023-08-09 22:49:24 -07:00
6fbf7250b1 build: fix warning from release build 2023-08-07 14:52:37 -07:00
9ab48d6eeb tools: add glxinfo/eglinfo to cli/agent variants
Always do it here for now unless we really find a reason to not have it.
2023-08-06 15:45:33 -07:00
c087b71299 sysprof-cli: note about appending symbols to capture 2023-07-28 12:08:59 -07:00
3a74254f73 tools: use sysprof_tracefd_consumer_new
This just allows us to avoid some duplicated code.
2023-07-27 15:49:34 -07:00
7b9c92985a sysprof-cli: allow profiling session and system buses 2023-07-27 12:34:19 -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
2dbf6553b4 libsysprof-profile: add instrument to bundle symbols
This instrument does as our previous symbols_source did and will augment
the capture with additional symbols that improves the chances you'll get
proper symbolization on machines that did not create the capture.
2023-07-17 17:37:32 -07:00
29fd9e9cc0 sysprof-cli: port to libsysprof-profile 2023-07-17 15:35:47 -07:00
1fba250444 build: drop legacy v2 service and simplify build system
This removes -Dagent and just uses -Dtools as it only affects sysprof-cli
and sysprof-agent. We still need to patch sysprof-cli for recent changes
as we did for sysprof-agent though.

Additionally, we haven't used the v2 service in forever, so drop that as
I can't imagine anyone has been using it.
2023-07-17 15:11:10 -07:00