Commit Graph

335 Commits

Author SHA1 Message Date
d8ba258051 libsysprof-analyze: give SysprofDocument a title 2023-06-30 13:23:54 -07:00
5220c6bc21 libsysprof-analyze: add getters for min/max value 2023-06-29 14:14:05 -07:00
756e647e21 libsysprof-analyze: add sysprof_document_find_counter()
This allows finding a specific counter without having to traverse them
all from consumer code.
2023-06-29 10:36:40 -07:00
4efb0abbf8 libsysprof-analyze: give counter values access to type
Otherwise they won't know how to return the proper value to callers.
2023-06-27 15:52:51 -07:00
e15050b568 libsysprof-analyze: fix calculation of number of counters 2023-06-27 13:54:04 -07:00
26346ec790 libsysprof-analyze: sort counter values by time 2023-06-27 13:00:33 -07:00
a880d02a84 libsysprof-analyze: remove debug code 2023-06-27 12:37:23 -07:00
886ff654a1 libsysprof-analyze: calculate counter range after adding values
Otherwise we are just calculating a null set.
2023-06-27 12:19:56 -07:00
514f913f40 libsysprof-gtk: use 0 instead of -inf/inf 2023-06-27 10:59:00 -07:00
696205aaf2 libsysprof-gtk: get expressions for x/y of counter values 2023-06-26 18:14:25 -07:00
6e08309881 libsysprof-analyze: fix pre-calculation 2023-06-26 18:08:37 -07:00
db0d5cce91 libsysprof-analyze: add counters property 2023-06-26 17:52:36 -07:00
d386f13051 libsysprof-analyze: pre-calculate ranges for counters 2023-06-26 17:52:27 -07:00
2b96da9567 libsysprof-analyze: add property for mark end time 2023-06-26 16:46:18 -07:00
453882a39a libsysprof-analyze: expose properties for some data 2023-06-26 16:39:43 -07:00
5c2f4dc0a9 libsysprof-analyze: remove old series implementations 2023-06-23 22:28:10 -07:00
13323c5e79 libsysprof-analyze: improve progress notifications 2023-06-21 22:06:42 -07:00
100b200995 libsysprof-analyze: allow series without a model
This can be useful when you want to generate some data for graphs.
2023-06-20 17:18:57 -07:00
982eee7f31 libsysprof-analyze: return NULL if series is empty 2023-06-20 15:34:43 -07:00
b40be19530 libsysprof-analyze: add test for symbol collision 2023-06-20 14:24:02 -07:00
07d08597ba libsysprof-analyze: handle collision in symbol cache
If we have two nodes that collide for address space, we need to keep the
one we already have in the symbol cache. The other node cannot be cached
and will be dropped instead.

This fixes a leak when collisions occur.
2023-06-20 14:23:46 -07:00
1aafb143fd libsysprof-analyze: clear stream on finalize 2023-06-20 14:22:51 -07:00
5787809f95 libsysprof-analyze: add simple strings test for asan
This just helps track down if there are any leaks via asan.
2023-06-20 13:49:49 -07:00
7595c611d7 libsysprof-analyze: remove unused function
No need for the "peek" variant, so just remove it.
2023-06-20 13:39:09 -07:00
c2a8b04cf7 libsysprof-analyze: ignore inf/-inf values in xy series 2023-06-20 11:49:34 -07:00
d0d19cff39 libsysprof-analyze: use doubles for reference data
We only want to move to float for the internal 0..1 positions which are
used to draw to the screen (to reduce how much data we hold on to). But for
the data we need to calculate those 0..1 positions, we want better
precision for large numbers. Use double for all of those.
2023-06-20 11:49:22 -07:00
72d489f786 libsysprof-analyze: use weak backpointers for child listmodel 2023-06-20 11:26:10 -07:00
ab5c0c2bf7 libsysprof-analyze: don't leak subvolume mount option 2023-06-20 11:19:01 -07:00
3dfd5c0550 libsysprof-analyze: make error message better 2023-06-20 11:03:56 -07:00
29c72cf202 libsysprof-analyze: cleanup tid->symbol hashtable 2023-06-20 11:03:43 -07:00
4d86d8641a libsysprof-analyze: cleanup kernel symbols 2023-06-20 11:03:31 -07:00
43ec0e48f5 libsysprof-gtk: start on some loading progress 2023-06-19 19:00:22 -07:00
7f13f0e327 libsysprof-analyze: ignore end time from syscap header
We are already walking through all the frames so we can guess this better
than what is in the capture file. This helps ensure that loading older
captures still has the end clamped to the last event we'll see.
2023-06-16 17:08:21 -07:00
4e5e6be841 libsysprof-analyze: add API to read back the min/max ranges 2023-06-16 16:58:46 -07:00
06767c0a1d libsysprof-analyze: add an XY series strucuture
This is meant to contain information about XY coordinates that we can
store in a normalized form. That allows them to be reused across different
scales without regenerating them.

It also includes a back-pointer to the model index so that we can pull out
the real object when necessary for drawing.
2023-06-16 16:16:44 -07:00
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
d752e2eec2 libsysprof-analyze: add SysprofTimeSeries
This includes a helper to generate timeseries items such as marks which
have a point in time and optionally a duration.

The TimeSpan has also been beefed up to gain a few operations that are
useful for implementing that.
2023-06-16 13:07:40 -07:00
1a94b60fbf libsysprof-analyze: only extend timespan for data types 2023-06-15 16:51:08 -07:00
d4da036f73 libsysprof-analyze: move timespan to analyze library
That way we can use it for the document itself, and have it update the
timespan of the recording in case it didn't get updated due to ctrl+c or
something prematurely stopping.
2023-06-15 16:43:17 -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
b572b7426e libsysprof-analyze: pre-sort marks from hashtable 2023-06-15 13:27:27 -07:00
1455876835 libsysprof-analyze: make mark catalog work with sections
This allows us more flexibility with creating sections usin the flatten
list model as the rows need to contain the data for the headers.
2023-06-15 13:19:18 -07:00
1a806d3106 libsysprof-analyze: ignore empty message rows 2023-06-15 12:39:21 -07:00
9a762fa1d4 libsysprof-analyze: add mark catalog kind
We can use this to separate catalogs for names vs groups when building
tree models of them.
2023-06-15 11:52:15 -07:00
8b4ab761ab libsysprof-analyze: add mark information during index pass 2023-06-15 11:44:36 -07:00
80dac7c0cd libsysprof-analyze: create mark catalogs from hashtable
We still need to insert these when parsing the mmap'd capture on the
first pass of data.
2023-06-15 10:35:16 -07:00
51ce85b399 libsysprof-analyze: add scaffolding for listing marks by name/group 2023-06-15 09:36:18 -07:00
231535a396 libsysprof-analyze: add SysprofMarkCatalog
This will get used to group marks together by group->name->marks from
the SysprofDocument.
2023-06-14 22:22:34 -07:00
72be9f240f libsysprof-analyze: add sysprof_document_list_marks() 2023-06-14 16:59:20 -07:00
d51d7c4773 libsysprof-analyze: add rsvg/gdk_pixbuf to modules 2023-06-14 15:38:48 -07:00