Commit Graph

4441 Commits

Author SHA1 Message Date
52dec92fc3 Merge branch 'gbsneto/sysprof-initial-counter-id' into 'master'
libsysprof-capture: Cut off first 8 bytes of initial counter id

See merge request GNOME/sysprof!134
2025-03-31 21:53:16 +00:00
14af6bab2e libsysprof-capture: Cut off first 8 bytes of initial counter id
This ensures that the id won't be screwed by the 32 → 24 bit conversion
that happens implicitly when using SysprofCaptureCounter & family of
structs.

These structs are tightly packed and declare the id field as a 24-bit
unsigned, which doesn't necessarily match the counting that is done
via SysprofCollector.

This is by no means a definitive solution, but this gets things in a
more usable state until a better solution is implemented.
2025-03-31 16:33:34 -03:00
8fa1dd2c1d Merge branch 'greeter-activate' into 'master'
sysprof: Always present existing window on activation

See merge request GNOME/sysprof!130
2025-03-28 23:50:17 +00:00
2f46205fa7 Update Slovenian translation 2025-03-28 16:00:03 +00:00
7db526fbd9 sysprof: Always present existing window on activation
This fixes the problem that a new greeter window is created on second
launch if the greeter window or the recording window is active.
2025-03-28 09:59:21 +01:00
21c9fd4f8c Merge branch 'gbsneto/filter-by-marks' into 'master'
Filter samples by marks

See merge request GNOME/sysprof!129
2025-03-26 17:55:54 +00:00
1612707d21 sysprof: Add filters popover
This allows visualizing currently applied filters, and remove individual
and all filters applied.

Currently the only filter that can show up is the mark filter, but in
the future new filters may be applied.
2025-03-26 14:43:31 -03:00
d80188f019 sysprof: Implement markchartrow.filter-by-mark action
This finally allows setting a session-wide mark filter.
2025-03-26 14:43:31 -03:00
23dacf954d sysprof: Add sysprof_session_filter_by_mark
This will be used to set a global marks filter in the session filter.
2025-03-26 14:43:31 -03:00
02b1d9603b sysprof: Add stub context menu to SysprofMarkChartRow
This will expose the action to set this row's mark catalog as a session
filter.
2025-03-26 14:43:31 -03:00
fb30dd2300 sysprof: Move GtkInscription to SysprofMarkChartRow
No functional changes.
2025-03-26 14:43:31 -03:00
c73f4fa40d sysprof: Apply session filter to sample's scrubber
So that the actual filtered samples are properly represented in the
time scrubber. This will be useful for filtering by marks.
2025-03-26 14:43:31 -03:00
d637c55214 sysprof: Introduce SysprofMarkFilter
It's a GtkFilter implementation that takes a marks catalog, and filters
frames based on whether the timestamps of the frames hit any mark in
the catalog.

Internally this uses an augmented RB tree based on sys/tree.h. The
augment is a timestamp interval. This tree is used to store the mark
intervals and perform the hit test.

This can probably be optimized / improved by building the tree on
demand but as is, this code seems to be able to handle dozens of
thousands of marks without any visible choke.
2025-03-26 14:43:31 -03:00
a7afaf5559 libsysprof: move tree.h to contrib/
Soon src/sysprof will use it as well.
2025-03-26 14:43:22 -03:00
8166c207d1 Update Slovenian translation 2025-03-25 22:10:15 +00:00
226b893d72 Merge branch 'varunrmallya/gtkfiledialog' into 'master'
sysprof/greeter: use GtkFileDialog to select debug directories

See merge request GNOME/sysprof!128
2025-03-24 16:56:34 +00:00
2c08b404ff sysprof/greeter: use GtkFileDialog to select debug directories 2025-03-24 16:56:34 +00: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
8ee9784188 libsysprof: add SysprofProfiler:acquire-privileges property
If this property is set to TRUE (the default) it queries sysprofd and
policy-kit for appropriate privileges. That generally means that the
instruments will use sysprofd to get access to things like /proc files,
perf event streams, and what not.

If set to FALSE, then this tells the instruments that they should try to
do that work locally instead of querying the sysprofd instance via D-Bus.
2025-03-21 12:08:16 -07:00
f7eb2134ad libsysprof/instruments: use provided D-Bus connection for sysprofd
If we were provided a D-Bus connection to use for sysprofd then use that.
Otherwise, try to fallback to doing the work in process without the help
of sysprofd.
2025-03-21 12:08:16 -07:00
94af48094d libsysprof/perf-event-stream: do local syscall when DBus is unavailable
If we are setup without a D-Bus connection to use to talk to sysprofd then
try to perform the syscall() directly for perf_event_open.

Generally that means you need to be root.
2025-03-21 12:08:15 -07:00
637dfceb85 libsysprof/instruments: add set_connection() vfunc
This is used to tell the instruments what GDBusConnection they should use
to query sysprofd. Lack of a connection means they should try to do things
in process without querying sysprofd.
2025-03-21 12:08:15 -07:00
2971f34541 libsysprof/util: add helper to get proc file
This helper allows us to get the file locally or via sysprofd when the
GDBusConnection is provided.

Be careful about use as your local /proc may be different than the
"system" /proc where sysprofd lives.
2025-03-21 12:08:12 -07:00
ae58643f4d build: add GNOME 49 version macros 2025-03-21 11:59:18 -07:00
4de3985e13 Merge branch 'varunrmallya/issue130-goal3' into 'master'
sysprof-greeter: Add UI and functionality for adding external debug directories.

See merge request GNOME/sysprof!122
2025-03-20 20:03:10 +00:00
50036d26fd sysprof/greeter: fixup g_auto usage and trailing space 2025-03-20 13:02:45 -07:00
0c406167dc sysprof-greeter: add debug directory handling in profiler creation
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
2025-03-20 13:02:45 -07:00
6424bd35aa sysprof-greeter: improve code quality and UI in greeter
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
2025-03-20 13:02:45 -07:00
78c6a5ad49 sysprof-recording-template: add debugdirs property for external debug directories
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
2025-03-20 13:02:44 -07:00
db914e8c63 sysprof-greeter: validate directory existence in debug directory entry
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
2025-03-20 13:02:44 -07:00
530aff1d50 sysprof-greeter: replicate UI for managing debug directories with wrong key
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
2025-03-20 13:02:44 -07:00
7f1d30eb88 Bump version for 49 development 2025-03-20 12:53:21 -07:00
fdea12454a .foundry: setup ignore 2025-03-20 12:52:29 -07:00
5e1dfa47db Update British English translation 2025-03-19 20:39:42 +00:00
19547e96e6 DESIGN.md: add some information on how sysprof is built 2025-03-17 18:47:08 -07:00
05dface80a Merge branch 'wip/hppa' into 'master'
mapped-ring-buffer: Round to the shared memory boundary on hppa

See merge request GNOME/sysprof!127
2025-03-18 01:31:25 +00:00
745c5c28c4 build: add check for asm/perf_regs.h
Related: #127
2025-03-17 18:28:19 -07:00
5dac046f2f contrib/elfparser: be a bit more defensive
Related: #139
2025-03-17 17:52:35 -07:00
b129c7dea2 mapped-ring-buffer: Round to the shared memory boundary on hppa
In map_head_and_body_twice(), the second mmap call fails:

mmap2(NULL, 135168, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0xf64a2000
mmap2(0xf64b3000, 65536, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, 3, 0x1000) = -1 EINVAL (Invalid argument)

Due to cache issues, all shared mapping of a page must be equivalently
mapped.  This requires page mappings to be at the same virtual address
modulo 4 MB.  Due to a kernel limitation, all mappings to a file must
be equivalent.

The test can be fixed by rounding the buffer_size used in the mapped
ring buffer to 4 MB on hppa.  This makes the two mmap mappings equivalent.

Bug-Debian: https://bugs.debian.org/1021853
2025-03-17 11:53:28 -04:00
8ee813c9a9 Updated Spanish translation 2025-03-17 11:06:11 +01:00
f4edefb44e Post-release version bump 2025-03-15 12:45:32 -07:00
392c6e9687 Release 48.0 2025-03-15 12:45:16 -07:00
3d3694025f Update Swedish translation 2025-03-12 16:25:51 +00:00
289ed176c3 Update Catalan translation 2025-03-12 14:20:44 +00:00
c563334707 Update Indonesian translation 2025-03-12 09:51:21 +00:00
ce5db32c94 Update Nepali translation 2025-03-12 05:05:57 +00:00
001c7ea15a Release 48.rc
A little late but should help distributions doing integration.
2025-03-11 10:12:20 -07:00
dc698e6d5b Update Turkish translation 2025-03-10 11:51:39 +00:00
af3daadbdd Merge branch 'varunrmallya/issue136' into 'master'
Adds persistence to environment variables

See merge request GNOME/sysprof!125
2025-03-09 17:28:08 +00:00
4e372c6497 Update Danish translation 2025-03-09 01:34:45 +00:00