---
name: "dtrace_callout_execute"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/dtrace_callout_execute"
---

# dtrace\_callout\_execute(4)

a DTrace provider for the callout API

## NAME

**dtrace\_callout\_execute** – a DTrace provider for the callout API

## SYNOPSIS

**callout\_execute****:kernel::callout\_start**

**callout\_execute****:kernel::callout\_end**

## DESCRIPTION

The **callout\_execute** provider allows for tracing the [callout(9)](/callout/9.md) mechanism.

The **callout\_execute****:kernel::callout\_start** probe fires just before a callout.

The **callout\_execute****:kernel::callout\_end** probe fires right after a callout.

The only argument to the **callout\_execute** probes, *args\[0\]*, is a callout handler *struct* *callout* *\** of the invoked callout.

## EXAMPLES

### Example 1: Graph of Callout Execution Time

The following [d(7)](/d/7.md) script generates a distribution graph of [callout(9)](/callout/9.md) execution times:

```
callout_execute:::callout_start
{
    self->cstart = timestamp;
}
callout_execute:::callout_end
{
    @length = quantize(timestamp - self->cstart);
}
```

## SEE ALSO

[dtrace(1)](/dtrace/1.md), [tracing(7)](/tracing/7.md), [callout(9)](/callout/9.md), [SDT(9)](/SDT/9.md)

## AUTHORS

The **callout\_execute** provider was written by Robert N. M. Watson ⟨*rwatson@FreeBSD.org*⟩.

This manual page was written by Mateusz Piotrowski ⟨*0mp@FreeBSD.org*⟩.
