Define the task-tracking events
authorDuncan Coutts <duncan@well-typed.com>
Tue, 3 Jul 2012 18:28:40 +0000 (19:28 +0100)
committerMikolaj Konarski <mikolaj@well-typed.com>
Tue, 10 Jul 2012 15:53:34 +0000 (17:53 +0200)
commit54c98b687a5e23f3371604dc4918dfb3106a74f8
tree6f35fbe69fec9f26d14da6f0a146aef5a4a925f1
parent647ae1cfbb5ea3e2d3b1541c2bc12ea5db321134
Define the task-tracking events

Based on initial patches by Mikolaj Konarski <mikolaj@well-typed.com>

These new eventlog events are to let profiling tools keep track of all
the OS threads that belong to an RTS capability at any moment in time.
In the RTS, OS threads correspond to the Task abstraction, so that is
what we track. There are events for tasks being created, migrated
between capabilities and deleted. In particular the task creation event
also records the kernel thread id which lets us match up the OS thread
with data collected by others tools (in the initial use case with
Linux's perf tool, but in principle also with DTrace).
includes/rts/EventLogFormat.h
rts/RtsProbes.d
rts/Trace.c
rts/Trace.h
rts/eventlog/EventLog.c
rts/eventlog/EventLog.h