Probe |
Description |
change-pri |
Probe that fires whenever a thread's
priority is about to be changed. The lwpsinfo_t of the thread is
pointed to by args[0]. The thread's current priority is in the pr_pri
field of this structure. The psinfo_t of the process containing the thread
is pointed to by args[1]. The thread's new priority is contained in
args[2]. |
dequeue |
Probe that fires immediately before a runnable thread is dequeued from a
run queue. The lwpsinfo_t of the thread being dequeued is pointed to
by args[0]. The psinfo_t of the process containing the thread is pointed
to by args[1]. The cpuinfo_t of the CPU from which the thread
is being dequeued is pointed to by args[2]. If the thread is
being dequeued from a run queue that is not associated with a
particular CPU, the cpu_id member of this structure will be -1. |
enqueue |
Probe that
fires immediately before a runnable thread is enqueued to a run queue.
The lwpsinfo_t of the thread being enqueued is pointed to by args[0].
The psinfo_t of the process containing the thread is pointed to by
args[1]. The cpuinfo_t of the CPU to which the thread is being
enqueued is pointed to by args[2]. If the thread is being enqueued
from a run queue that is not associated with a particular CPU,
the cpu_id member of this structure will be -1. The value in
args[3] is a boolean indicating whether the thread will be enqueued to
the front of the run queue. The value is non-zero if the
thread will be enqueued at the front of the run queue, and
zero if the thread will be enqueued at the back of the
run queue. |
off-cpu |
Probe that fires when the current CPU is about to end
execution of a thread. The curcpu variable indicates the current CPU. The
curlwpsinfo variable indicates the thread that is ending execution. The curpsinfo variable
describes the process containing the current thread. The lwpsinfo_t structure of the
thread that the current CPU will next execute is pointed to by
args[0]. The psinfo_t of the process containing the next thread is pointed
to by args[1]. |
on-cpu |
Probe that fires when a CPU has just begun execution
of a thread. The curcpu variable indicates the current CPU. The curlwpsinfo
variable indicates the thread that is beginning execution. The curpsinfo variable describes
the process containing the current thread. |
preempt |
Probe that fires immediately before the current
thread is preempted. After this probe fires, the current thread will select
a thread to run and the off-cpu probe will fire for the
current thread. In some cases, a thread on one CPU will be
preempted, but the preempting thread will run on another CPU in the
meantime. In this situation, the preempt probe will fire, but the dispatcher
will be unable to find a higher priority thread to run and
the remain-cpu probe will fire instead of the off-cpu probe. |
remain-cpu |
Probe that fires
when a scheduling decision has been made, but the dispatcher has elected
to continue to run the current thread. The curcpu variable indicates the
current CPU. The curlwpsinfo variable indicates the thread that is beginning execution.
The curpsinfo variable describes the process containing the current thread. |
schedctl-nopreempt |
Probe that fires
when a thread is preempted and then re-enqueued at the front of
the run queue due to a preemption control request. See schedctl_init(3C) for
details on preemption control. As with preempt, either off-cpu or remain-cpu will
fire after schedctl-nopreempt. Because schedctl-nopreempt denotes a re-enqueuing of the current thread
at the front of the run queue, remain-cpu is more likely to
fire after schedctl-nopreempt than off-cpu. The lwpsinfo_t of the thread being preempted
is pointed to by args[0]. The psinfo_t of the process containing the
thread is pointed to by args[1]. |
schedctl-preempt |
Probe that fires when a thread that
is using preemption control is nonetheless preempted and re-enqueued at the back
of the run queue. See schedctl_init(3C) for details on preemption control. As
with preempt, either off-cpu or remain-cpu will fire after schedctl-preempt. Like preempt
(and unlike schedctl-nopreempt), schedctl-preempt denotes a re-enqueuing of the current thread at
the back of the run queue. As a result, off-cpu is more
likely to fire after schedctl-preempt than remain-cpu. The lwpsinfo_t of the thread
being preempted is pointed to by args[0]. The psinfo_t of the process
containing the thread is pointed to by args[1]. |
schedctl-yield |
Probe that fires when a
thread that had preemption control enabled and its time slice artificially extended
executed code to yield the CPU to other threads. |
sleep |
Probe that fires immediately
before the current thread sleeps on a synchronization object. The type of
the synchronization object is contained in the pr_stype member of the lwpsinfo_t
pointed to by curlwpsinfo. The address of the synchronization object is contained
in the pr_wchan member of the lwpsinfo_t pointed to by curlwpsinfo. The
meaning of this address is a private implementation detail, but the address
value may be treated as a token unique to the synchronization object. |
surrender |
Probe
that fires when a CPU has been instructed by another CPU to
make a scheduling decision – often because a higher-priority thread has become
runnable. |
tick |
Probe that fires as a part of clock tick-based accounting. In clock
tick-based accounting, CPU accounting is performed by examining which threads and processes
are running when a fixed-interval interrupt fires. The lwpsinfo_t that corresponds to
the thread that is being assigned CPU time is pointed to by
args[0]. The psinfo_t that corresponds to the process that contains the thread
is pointed to by args[1]. |
wakeup |
Probe that fires immediately before the current thread
wakes a thread sleeping on a synchronization object. The lwpsinfo_t of the
sleeping thread is pointed to by args[0]. The psinfo_t of the process
containing the sleeping thread is pointed to by args[1]. The type of
the synchronization object is contained in the pr_stype member of the lwpsinfo_t
of the sleeping thread. The address of the synchronization object is contained
in the pr_wchan member of the lwpsinfo_t of the sleeping thread. The
meaning of this address is a private implementation detail, but the address
value may be treated as a token unique to the synchronization object. |