1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00
Commit Graph

852 Commits

Author SHA1 Message Date
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
Bartosz Taudul 0b190b1a69 Calculate sum of values in reconstructed memory plot. 2021-10-17 13:14:23 +02:00
Bartosz Taudul 04db76d5fd Calculate plot values sum during data import. 2021-10-17 13:07:37 +02:00
Bartosz Taudul 0bd1364c2f Calculate plot values sum. 2021-10-17 13:04:56 +02:00
Bartosz Taudul a1511a39bd Delta-encode code information pointers. 2021-10-16 16:29:06 +02:00
Bartosz Taudul dfb1ce64df Sample data inconsistency warning. 2021-10-16 16:15:19 +02:00
Bartosz Taudul bcaac7b53f Add ~2 second overflow grace period.
This fixes issues when the GPU is actually permitted to report out-of-order
timestamps (e.g. when tasks are scheduled by the GPU, instead of being forced
to execute in submission order).
2021-10-11 00:29:24 +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
xavier e4ce9f0f41 Include threadid in SampleDataRange
TODO: maybe make lists per thread to avoid increasing the packed structure by 2 bytes?
2021-09-23 21:03:56 +02:00
Bartosz Taudul bcfc4a4fa7 Fix message thread assignment in import-chrome. 2021-09-23 18:08:03 +02:00
Bartosz Taudul 9a22b8e83c Cosmetics. 2021-06-23 20:43:46 +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
Terence Rokop 1f0b4656f4 Introduce SrcLocCountMap
Add to ThreadData a map from source location to a counter,
which will be used to keep track of the number of
appearances of zones with the corresponding source locations
on each thread's stack.
2021-06-20 17:56:14 -07:00
Bartosz Taudul 846bde1a11 Narrow down search range. 2021-06-20 14:37:56 +02:00