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>
Wed, 19 Jun 2019 01:41:21 +0000 (21:41 -0400)
commitb77fed86214bb80316e7376586f0d72f944aff06
tree2d1027a65e76b375c0fba7f170f578cfb8d130fa
parentf98864faa4e831a1ae5d74c97780ec40a99f6f97
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