Commit Graph

868 Commits

Author SHA1 Message Date
Bartosz Taudul
df96293477 Create GPU source location zones stats entry, if not present.
In case of CPU statistics data, this entry is created during creation of a
source location. This won't be done for GPU zones, as it would needlessly
expand the number of held entries. This is assuming the number of GPU zones
is significantly less than the number of CPU zones.
2022-01-29 15:45:25 +01:00
Bartosz Taudul
6d55f79109 Save source location data counts. 2022-01-29 15:14:43 +01:00
Bartosz Taudul
ba87929074 Perform GPU statistics reconstruction.
Note: Zone counts are currently being calculated, but they are not being
saved. Proper usage of this data (as is performed in the CPU counterpart)
would remove the possibility of insertion of new entries into the map in
ReconstructZoneStatistics().
2022-01-29 00:48:01 +01:00
Bartosz Taudul
28d029f820 Collection of GPU statistics. 2022-01-29 00:15:33 +01:00
Bartosz Taudul
f9279afaec GPU zone counting. 2022-01-29 00:15:32 +01:00
Bartosz Taudul
f1095bba12 GPU statistics data accessors. 2022-01-29 00:15:32 +01:00
Bartosz Taudul
db64a5fa7e Explicitly save context switch callstack samples. 2021-12-21 15:24:11 +01:00
Bartosz Taudul
c5654c333a Process explicit context switch callstack samples. 2021-12-21 14:18:32 +01:00
Bartosz Taudul
3f1c540b3a Further split ProcessCallstackSampleImpl(). 2021-12-21 14:18:14 +01:00
Bartosz Taudul
9b624049a5 Immediately disconnect connection on disconnect request.
The disconnect handling logic is broken on the client, after the symbol
resolution was moved to a separate thread. Use workaround until a proper fix
is available.
2021-12-11 13:15:50 +01:00
Bartosz Taudul
bbbae35925 Only identify samples when IdentifySamples is set. 2021-12-04 15:16:17 +01:00
Bartosz Taudul
c98680ad0b Add support for sample data without time. 2021-12-02 02:06:05 +01:00
Bartosz Taudul
d8a611e952 Also calculate sample parents without inlines. 2021-11-27 17:47:09 +01:00
Bartosz Taudul
687d4defc0 Cosmetics. 2021-11-27 17:46:43 +01:00
Bartosz Taudul
355a179678 Merge callstack samples with the same timestamp. 2021-11-27 15:29:33 +01:00
Bartosz Taudul
4f735e1ae2 Extract callstack merging. 2021-11-27 15:06:58 +01:00
Bartosz Taudul
a02575322f Collect child sample addresses. 2021-11-27 02:03:59 +01:00
Bartosz Taudul
4bde9022e1 Properly acknowledge unavailable symbol code. 2021-11-25 22:44:56 +01:00
Bartosz Taudul
abdd6020ba No need to remember addresses of symbol code queries. 2021-11-25 22:35:43 +01:00
Bartosz Taudul
b4da047355 Don't filter out kernel symbols from code transfer. 2021-11-25 22:28:05 +01:00
Bartosz Taudul
8d65b190d6 Handle frame image dictionary creation failures. 2021-11-20 03:30:28 +01:00
Bartosz Taudul
641338cb3c Remove postponed samples when they are handled. 2021-11-14 23:55:44 +01:00
Bartosz Taudul
710a488af0 Handle postponed samples with SortedVector. 2021-11-14 23:48:50 +01:00
Bartosz Taudul
f2380590f9 Limit server query space to 8K entries.
In the default configuration this limit is unlikely to be hit. On Windows the
send buffer is 64 KB, which results in ~5K entries. On Linux the buffer is a
bit higher and the number of entries is lower than 7K.
2021-11-14 18:14:52 +01:00
Bartosz Taudul
ffa8bf4d75 Use table instead of map to track reentrant calls. 2021-11-14 16:42:11 +01:00
Bartosz Taudul
cb004e9cc0 Sort source location zones only when needed. 2021-11-14 16:05:55 +01:00
Bartosz Taudul
e0872ce61b Cosmetics. 2021-11-14 15:51:27 +01:00
Bartosz Taudul
864d7e4e47 Sort symbols list only when actually needed. 2021-11-14 13:05:05 +01:00
Bartosz Taudul
b978a7c652 Sort plot data only when needed (i.e. to draw). 2021-11-14 13:01:27 +01:00
Bartosz Taudul
81c66ad126 Fix samples order on save, not load.
Sorting samples during load was a major mistake, as three different background
processing threads were concurrently accessing the samples table, and it was
being sorted in one of them!
2021-11-13 03:25:47 +01:00
Bartosz Taudul
0ab73e2aa7 Detect context switch samples during reconstruction. 2021-11-13 03:15:20 +01:00
Bartosz Taudul
d8d6423266 Context switch samples counting. 2021-11-13 02:47:39 +01:00
Bartosz Taudul
8ef212c26e Determine if postponed callstacks are for context switches.
Samples are processed only when new context switch data has been received.
2021-11-13 02:44:54 +01:00
Bartosz Taudul
745b795d50 Detect context switch callstack samples.
Context switch callstack samples are not included in the sampling data
statistics (as these don't represent random sampling), but are rather put into
a separate dedicated data structure.

For this to work, a complete context switch data has to be available for the
callstack timestamp. There is no guarantee it will be present at the time it
is needed, so a second structure is added to allow postponing qualification of
callstacks.
2021-11-13 02:40:32 +01:00
Bartosz Taudul
5b799e0e45 Monitor when new context switch data is received. 2021-11-13 02:38:33 +01:00
Bartosz Taudul
00834ed32b No need to pass time and callstack. 2021-11-13 02:26:11 +01:00
Bartosz Taudul
f925da5e01 Handle fiber enter -> enter case (without leave in between). 2021-11-06 21:14:37 +01:00
Bartosz Taudul
40cd5435df Fix context switch reconstruction condition. 2021-11-06 20:49:15 +01:00
Bartosz Taudul
69e5cf796d Construct faux context switch data from fiber events. 2021-11-06 20:38:16 +01:00
Bartosz Taudul
0075050679 Allow checking if thread is a fiber. 2021-11-06 19:02:02 +01:00
Bartosz Taudul
3ede2a1345 Explicit tracking of fiber state in ThreadData.
This replaces the use of hard-to-track global state with well-defined accessor
functionality.
2021-11-06 18:55:29 +01:00
Bartosz Taudul
4c774130ee Allow direct switching from one fiber to another. 2021-11-04 17:51:32 +01:00
Bartosz Taudul
fceb065329 Fiber name transport. 2021-11-03 18:57:30 +01:00
Bartosz Taudul
211b202d8e Process fiber entry and leave events. 2021-11-02 01:53:10 +01:00
Bartosz Taudul
b4e4c05088 Thread context data may be invalidated due to fibers. 2021-11-02 01:52:41 +01:00
Bartosz Taudul
d522af99b9 Threads may be mapped to fibers. 2021-11-02 01:51:54 +01:00
Bartosz Taudul
bb72bf10e9 Add fiber failures. 2021-11-02 01:47:31 +01:00
Bartosz Taudul
93b6d88c4c Save/load fiber thread flag. 2021-11-02 01:46:29 +01:00
Bartosz Taudul
8f44f1c68b Store fiber state is ThreadData. 2021-11-02 01:45:01 +01:00
Bartosz Taudul
8f6a911f1e Save/load sum of values in plots. 2021-10-17 13:14:44 +02:00