Skip to main content

Module access_trace

Module access_trace 

Source
Expand description

Detcore’s side of the access trace (--record-access-trace-to); the record types are detcore_model::access_trace.

The trace is made in three places:

  • The guest thread notes the descriptor slots its syscall changes (TracedCall), and snapshots the descriptors the call names right after its prehook event (FdInfo). At the posthook, accesses, a pure function of CallFacts, turns these, the arguments and the result into the record’s accesses.
  • The record rides to the scheduler as an optional payload of the prehook, posthook and signal-delivery TraceSchedEvent requests the thread sends anyway (AccessPayload).
  • The scheduler, which numbers the recorded events, completes each record and writes it (AccessTraceWriter).

Nothing here sends a scheduler request, charges virtual time or changes state a scheduling decision reads: the trace observes the run.

Structs§

AccessTraceWriter
Writes the trace as the scheduler records events. It lives in the scheduler, so records are numbered and ordered under the scheduler’s lock.
SignalNote
A signal event and the disposition observed before submitting it.
SyscallEntry
A syscall as its prehook sees it.
SyscallOutcome
A syscall’s outcome, as its posthook sees it.

Enums§

AccessPayload
What a traced schedule event carries to the scheduler, beside the event.

Traits§

ProcessGroups
The process table facts the writer resolves a group signal with.