Commit Graph

22 Commits

Author SHA1 Message Date
10b2ecd299 libsysprof-analyze: remove pre-calculated time offsets
These are rather annoying because we want to avoid inflating the objects
in most cases anyway.
2023-06-16 13:10:41 -07:00
6dcb5e5fdd libsysprof-analyze: include time as fractions for marks
This allows more easily calculating the horizontal position of marks and
their duration from charts.
2023-06-15 16:14:32 -07:00
63b42c2319 libsysprof-analyze: track relative offset for frame
This is handy so that we don't have to keep multiple objects around to
handle this request. Otherwise we'd need to keep references to the
document and that is a bit annoying.

This of course has a limit of about an hour (in tv_nsec), but that is
far longer than we can realistically record anyway.
2023-06-12 15:41:29 -07:00
9d2f7d3767 libsysprof-analyze: add SysprofDocumentCtrset
This represents the SysprofCaptureCtrset and allows fetching the raw values
for a given counter. These are raw because they may not be endian swapped
and that is the responsibility of the consumer.

SysprofDocument will use these eventually to store the values for a given
counter and the time of the value shift.
2023-05-22 16:03:46 -07:00
29cfad06ec libsysprof-analyze: add counter define document frames 2023-05-22 14:12:53 -07:00
d28080b9ad libsysprof-analyze: add SysprofDocumentJitmap
This adds a specific frame type for the Jitmap frames in the capture files.
You can iterate them without having to bswap as well, which is why this
does not use the SysprofCaptureJitmapIter (which does require bswap'd
frames).
2023-05-22 12:18:57 -07:00
12e497891f libsysprof-analyze: add SysprofDocumentOverlay
This maps to the SysprofCaptureOverlay data frames. We need them currently
to be able to locate files from various podman/toolbox rootless containers.
2023-05-19 16:51:15 -07:00
235dd98621 libsysprof-analyze: add SysprofDocumentFileChunk
This object will represent frames in the list model which are file chunks.
2023-05-05 13:34:53 -07:00
86561c0c4f libyssprof-analyze: add document type for allocations 2023-04-28 11:44:30 -07:00
6b762ef64a libsysprof-analyze: add document type for fork 2023-04-28 10:36:17 -07:00
d878fbf372 libsysprof-analyze: add document type for task exit
We don't have any extra data here currently, but it can be nice to be able
to check a gtype when consuming frames.
2023-04-27 17:50:28 -07:00
24d0d4af52 libsysprof-analyze: add document type for processes
Generally this is all the processes at startup, but can also be a process
that is executed while the capture is running. Useful to pair with an
Exit frame for pid/tid duration.
2023-04-27 17:45:04 -07:00
6031233cc3 libsysprof-analyze: add document type for marks 2023-04-27 17:22:44 -07:00
92950f4b6b libsysprof-analyze: add document type for log messages 2023-04-27 17:15:35 -07:00
c1d00db0fb libsysprof-analyze: add document type for memory maps 2023-04-27 17:00:18 -07:00
ca83cd6b40 libsysprof-analyze: add document type for samples 2023-04-25 17:10:12 -07:00
a47627e5b9 libsysprof-analyze: use swap helpers to decode 2023-04-25 17:09:38 -07:00
97c93ea965 libsysprof-analyze: track frame length
That way we don't have to decode this too in the subclasses.
2023-04-25 17:09:04 -07:00
e9d5cb733d libsysprof-analyze: move to internal types for documents
We want to have an object hierarchy, but we don't want to expose our class
or other internal details to the public API/ABI. This uses the old form of
class definition so we can maintain that.

An alternative would be to do what GDK does for internal types, should we
find that easier to maintain going forward.
2023-04-25 16:19:54 -07:00
a5dafa5409 libsysprof-analyze: rename some private API
prefix with _, use frame type directly, use needs_swap rather than
is_native so it's more clear to readers.
2023-04-25 16:11:59 -07:00
69930dc876 libsysprof-analyze: read property access to frame header
Also handle swapping the data when non-native endian so that we can leave
our GMappedFile unperturbed (and therefore not have to keep those bytes as
dirty pages in process).
2023-04-25 15:55:41 -07:00
31003c519c libsysprof-analyze: rename to SysprofDocumentFrame
We will eventually be adding sub-types for the various frame types, and
use this as a common ancestor for item inflation.
2023-04-25 15:32:55 -07:00