Closed gcjenkinson closed 5 years ago
An new SPI interface was added to dtrace allowing in-kernel consumers to register and receive callbacks as the dtrace state machine transitions into the go and stop states. These in-kernel consumers then behave identically to user-space Dtrace clients, periodically swapping and consuming the Dtrace per-CPU buffers.
The proposed buffer SPI allows buffers to be provided either by the Dtrace kernel module itself or by another source. Principal, Aggregation and Speculation buffers provided by an external buffer provider can then be processed differently. For example, in the case of distributed DTrace the trace buffers are send through a distributed log primitive for further processing. Trace buffers allocated by an external source, act as an integration point between the Dtrace Kernel module and the Distributed DTrace log primitive.