Commit Graph

428 Commits

Author SHA1 Message Date
Bartosz Taudul
3f1c540b3a
Further split ProcessCallstackSampleImpl(). 2021-12-21 14:18:14 +01:00
Bartosz Taudul
bbbae35925
Only identify samples when IdentifySamples is set. 2021-12-04 15:16:17 +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
abdd6020ba
No need to remember addresses of symbol code queries. 2021-11-25 22:35:43 +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
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
d8d6423266
Context switch samples counting. 2021-11-13 02:47:39 +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
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
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
8f44f1c68b
Store fiber state is ThreadData. 2021-11-02 01:45:01 +01:00
Bartosz Taudul
dfb1ce64df
Sample data inconsistency warning. 2021-10-16 16:15:19 +02:00
Bartosz Taudul
d3905bd4bb
Add context to zone text failures. 2021-10-10 14:14:33 +02:00
Bartosz Taudul
930ef77ea9
Add zone value failure context. 2021-10-10 14:12:13 +02:00
Bartosz Taudul
9300934fa5
Separate zone value and text failures. 2021-10-10 14:05:21 +02:00
Terence Rokop
66053e37f7
Add non-reentrant stats to SourceLocationZones
Extend SourceLocationZones with fields to track the count
and time of non-reentrant zone events -- that is, zone
events which were the only appearances (at the time) of
those zones on their threads' stacks.
2021-06-20 17:56:15 -07:00
Terence Rokop
c90e39e06e
Keep track of zone appearances on thread stacks
Start keeping track, using the previously-introduced
SrcLocCountMap, of the number of appearances of each zone
on each thread's stack at a given time.
2021-06-20 17:56:15 -07:00
Bartosz Taudul
5d86002f82
Calculate all CPU usage values in one go. 2021-06-20 14:19:18 +02:00
Bartosz Taudul
ec3ee09f09
Add inline symbols map accessors. 2021-06-19 19:13:34 +02:00
Bartosz Taudul
654331a8c8
Create code address -> symbol map. 2021-06-19 19:07:57 +02:00
Bartosz Taudul
0fdd5ab01b
Extract callstack sample processing implementation. 2021-06-15 01:59:49 +02:00
Bartosz Taudul
891e1ac280
Read combine samples flag on server. 2021-06-15 01:33:43 +02:00
Bartosz Taudul
3c31fb56a8
Allow range-limiting hardware samples. 2021-06-04 13:58:00 +02:00
Bartosz Taudul
227a8d1aee
Process additional hardware sample data. 2021-05-20 02:19:11 +02:00
Bartosz Taudul
3a0e12043d
Differentiate hw samples from code addresses. 2021-05-19 23:29:27 +02:00
Bartosz Taudul
3228e20c2e
Add hardware samples accessors. 2021-05-19 23:05:50 +02:00
Bartosz Taudul
373a2b66c6
Collect hardware sample data. 2021-05-19 23:05:33 +02:00
Bartosz Taudul
64ed3d057d
Add no-op dispatch of HW samples. 2021-05-19 21:09:55 +02:00
Bartosz Taudul
3d75bf653a
Add interface for frame images dict building. 2021-05-15 15:50:20 +02:00
Bartosz Taudul
db734e3e0a
Parse custom location tags. 2021-05-11 01:37:59 +02:00
Bartosz Taudul
e189f596ac
Add no-statistics guards. 2021-04-18 22:59:10 +02:00
Bartosz Taudul
34b80ac52f
Add child samples count getters. 2021-04-18 15:03:42 +02:00
Bartosz Taudul
4dc6222ba1
Add child samples data structure. 2021-04-18 14:42:35 +02:00
Bartosz Taudul
9b7f759347
Allow checking if disconnect was requested. 2021-04-01 20:16:29 +02:00
Bartosz Taudul
8dd92f32af
Handle memory double allocation failure. 2021-03-09 22:19:42 +01:00
Bartosz Taudul
18e893752b Use SortedVector for source location zones. 2021-02-07 19:35:53 +01:00
Bartosz Taudul
c220177828 Do postponed work only when needed. 2021-02-07 18:29:29 +01:00
Bartosz Taudul
9bb1d13afa Revert to non-shared mutex for data lock.
The main change here is that the UI will be unresponsive when a trace is being
saved when there's no capture being performed. Note that the UI was always
frozen during saving if the capture was live, due to how starvation is
prevented by the locks.
2021-02-07 18:11:36 +01:00
Bartosz Taudul
ad2062fb40 Last-resort source code transfer from client to server. 2021-02-04 00:45:00 +01:00
Bartosz Taudul
7bb6114270 Process GPU context name messages. 2021-01-31 19:15:23 +01:00