Commit Graph

328 Commits

Author SHA1 Message Date
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
b6589e67cf libsysprof-analyze: include threads in filtered descendants view 2023-06-14 15:26:56 -07:00
5b929b8d5d libsysprof-analyze: add callgraph flags for thread-ids
This allows you to set a flag to show the thread id of what was recorded.

Use this to help disassociate similar threads in a process to figure out
which thread is consuming a majority of the Total time of that process.
2023-06-14 15:11:56 -07:00
e63c0b7c2e libsysprof-analyze: fix descendants of process symbols 2023-06-14 14:25:01 -07:00
2a65bf30af libsysprof-analyze: add symbol kind property for symbols
Additionally, add the pid as the binary nick for processes so that we can
show them in the callgraph with the process name.
2023-06-14 12:08:23 -07:00
6ab28ff641 libsysprof-analyze: make summary augmentation optional
That way the descendant graphs can generate the self values but ignore the
summary augmentation (as that would mess up the generated values).

This fixes it so that showing the descendants tree keeps proper Total
and Self values.
2023-06-13 10:31:42 -07:00
662cc65bb9 libsysprof-analyze: clean up descendant node tree on finalize 2023-06-13 10:30:25 -07:00
ef11121ff6 libsysprof-analyze: mark fallback symbol is_process 2023-06-12 23:01:22 -07:00