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. |