rts: Tracing support for nonmoving collection events
authorBen Gamari <ben@well-typed.com>
Tue, 5 Feb 2019 16:51:52 +0000 (11:51 -0500)
committerBen Gamari <ben@smart-cactus.org>
Fri, 17 May 2019 17:02:09 +0000 (13:02 -0400)
commita7affe42bb04bd53c23a6dea13879ff02e745868
tree99268f01ecb500d9458e7c6c4c266d8ffefb8bc6
parentfe2b6bb5c8906d40a8d900d288b0951b06b13dc5
rts: Tracing support for nonmoving collection events

This introduces a few events to mark key points in the nonmoving
garbage collection cycle. These include:

 * `EVENT_CONC_MARK_BEGIN`, denoting the beginning of a round of
   marking. This may happen more than once in a single major collection
   since we the major collector iterates until it hits a fixed point.

 * `EVENT_CONC_MARK_END`, denoting the end of a round of marking.

 * `EVENT_CONC_SYNC_BEGIN`, denoting the beginning of the post-mark
   synchronization phase

 * `EVENT_CONC_UPD_REM_SET_FLUSH`, indicating that a capability has
   flushed its update remembered set.

 * `EVENT_CONC_SYNC_END`, denoting that all mutators have flushed their
   update remembered sets.

 * `EVENT_CONC_SWEEP_BEGIN`, denoting the beginning of the sweep portion
   of the major collection.

 * `EVENT_CONC_SWEEP_END`, denoting the end of the sweep portion of the
   major collection.
includes/rts/EventLogFormat.h
rts/Trace.c
rts/Trace.h
rts/eventlog/EventLog.c
rts/eventlog/EventLog.h
rts/sm/NonMoving.c
rts/sm/NonMovingMark.c