Skip to content

Commit 75178d0

Browse files
committed
erts: Make trace:info not block schedulers for call_time/memory
Instead use this strategy 0. Seize code mod permission (as before) 1. Allocate temporary zeroed hashes for any traced calls that may happen during the call to trace:info. 2. Thread progress 3. Switch bp index to make the temp hashes active. 4. Thread progress. 5. Collect stats from the real hashes that are now unused and stable. 6. Switch back bp index to make the real hashes active again. 7. Thread progress. 8. Consolidate by collecting stats from the temp hashes into the active generation. 9. Deallocate the temp hashes and make the two halves of the breakpoint identical again using the same real hashes. 10. Build result from stats collected in step 5 11. Release code mod permission
1 parent e09af26 commit 75178d0

File tree

7 files changed

+894
-163
lines changed

7 files changed

+894
-163
lines changed

erts/emulator/beam/atom.names

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -744,6 +744,7 @@ atom total_run_queue_lengths_all
744744
atom tpkt
745745
atom trace traced
746746
atom trace_control_word
747+
atom trace_info_finish
747748
atom trace_status
748749
atom tracer
749750
atom trap_exit

0 commit comments

Comments
 (0)