The fpuinfo provider makes available probes that correspond to the simulation of floating-point instructions on SPARC microprocessors. While most floating-point instructions are executed in hardware, some floating-point operations trap into the operating system for simulation. The conditions under which floating-point operations require operating system simulation are specific to a microprocessor implementation. The operations that require simulation are rare. However, if an application uses one of these operations frequently, the effect on performance could be severe. The fpuinfo provider enables rapid investigation of floating-point simulation seen through either kstat(1M) and the fpu_info kernel statistic or trapstat(1M) and the fp-xcp-other trap.
The fpuinfo provider makes available a probe for each type of floating-point instruction that can be simulated. The fpuinfo provider has a Name Stability of CPU; the names of the probes are specific to a microprocessor implementation, and might not be available on different microprocessors within the same family. For example, some of the probes listed might only be available on UltraSPARC-III and not UltraSPARC-III+ or vice versa.
The fpuinfo probes are described in Table 29–1.
Table 29–1 fpuinfo Probes
fpu_sim_fitoq |
Probe that fires whenever an fitoq instruction is simulated by the kernel. |
fpu_sim_fitod |
Probe that fires whenever an fitod instruction is simulated by the kernel. |
fpu_sim_fitos |
Probe that fires whenever an fitos instruction is simulated by the kernel. |
fpu_sim_fxtoq |
Probe that fires whenever an fxtoq instruction is simulated by the kernel. |
fpu_sim_fxtod |
Probe that fires whenever an fxtod instruction is simulated by the kernel. |
fpu_sim_fxtos |
Probe that fires whenever an fxtos instruction is simulated by the kernel. |
fpu_sim_fqtox |
Probe that fires whenever an fqtox instruction is simulated by the kernel. |
fpu_sim_fdtox |
Probe that fires whenever an fdtox instruction is simulated by the kernel. |
fpu_sim_fstox |
Probe that fires whenever an fstox instruction is simulated by the kernel. |
fpu_sim_fqtoi |
Probe that fires whenever an fqtoi instruction is simulated by the kernel. |
fpu_sim_fdtoi |
Probe that fires whenever an fdtoi instruction is simulated by the kernel. |
fpu_sim_fstoi |
Probe that fires whenever an fstoi instruction is simulated by the kernel. |
fpu_sim_fsqrtq |
Probe that fires whenever an fsqrtq instruction is simulated by the kernel. |
fpu_sim_fsqrtd |
Probe that fires whenever an fsqrtd instruction is simulated by the kernel. |
fpu_sim_fsqrts |
Probe that fires whenever an fsqrts instruction is simulated by the kernel. |
fpu_sim_fcmpeq |
Probe that fires whenever an fcmpeq instruction is simulated by the kernel. |
fpu_sim_fcmped |
Probe that fires whenever an fcmped instruction is simulated by the kernel. |
fpu_sim_fcmpes |
Probe that fires whenever an fcmpes instruction is simulated by the kernel. |
fpu_sim_fcmpq |
Probe that fires whenever an fcmpq instruction is simulated by the kernel. |
fpu_sim_fcmpd |
Probe that fires whenever an fcmpd instruction is simulated by the kernel. |
fpu_sim_fcmps |
Probe that fires whenever an fcmps instruction is simulated by the kernel. |
fpu_sim_fdivq |
Probe that fires whenever an fdivq instruction is simulated by the kernel. |
fpu_sim_fdivd |
Probe that fires whenever an fdivd instruction is simulated by the kernel. |
fpu_sim_fdivs |
Probe that fires whenever an fdivs instruction is simulated by the kernel. |
fpu_sim_fdmulx |
Probe that fires whenever an fdmulx instruction is simulated by the kernel. |
fpu_sim_fsmuld |
Probe that fires whenever an fsmuld instruction is simulated by the kernel. |
fpu_sim_fmulq |
Probe that fires whenever an fmulq instruction is simulated by the kernel. |
fpu_sim_fmuld |
Probe that fires whenever an fmuld instruction is simulated by the kernel. |
fpu_sim_fmuls |
Probe that fires whenever an fmuls instruction is simulated by the kernel. |
fpu_sim_fsubq |
Probe that fires whenever an fsubq instruction is simulated by the kernel. |
fpu_sim_fsubd |
Probe that fires whenever an fsubd instruction is simulated by the kernel. |
fpu_sim_fsubs |
Probe that fires whenever an fsubs instruction is simulated by the kernel. |
fpu_sim_faddq |
Probe that fires whenever an faddq instruction is simulated by the kernel. |
fpu_sim_faddd |
Probe that fires whenever an faddd instruction is simulated by the kernel. |
fpu_sim_fadds |
Probe that fires whenever an fadds instruction is simulated by the kernel. |
fpu_sim_fnegd |
Probe that fires whenever an fnegd instruction is simulated by the kernel. |
fpu_sim_fnegq |
Probe that fires whenever an fneqq instruction is simulated by the kernel. |
fpu_sim_fnegs |
Probe that fires whenever an fnegs instruction is simulated by the kernel. |
fpu_sim_fabsd |
Probe that fires whenever an fabsd instruction is simulated by the kernel. |
fpu_sim_fabsq |
Probe that fires whenever an fabsq instruction is simulated by the kernel. |
fpu_sim_fabss |
Probe that fires whenever an fabss instruction is simulated by the kernel. |
fpu_sim_fmovd |
Probe that fires whenever an fmovd instruction is simulated by the kernel. |
fpu_sim_fmovq |
Probe that fires whenever an fmovq instruction is simulated by the kernel. |
fpu_sim_fmovs |
Probe that fires whenever an fmovs instruction is simulated by the kernel. |
fpu_sim_fmovr |
Probe that fires whenever an fmovr instruction is simulated by the kernel. |
fpu_sim_fmovcc |
Probe that fires whenever an fmovcc instruction is simulated by the kernel. |
There are no arguments to fpuinfo probes.
The fpuinfo provider uses DTrace's stability mechanism to describe its stabilities, as shown in the following table. For more information about the stability mechanism, see Chapter 39, Stability.
Element |
Name stability |
Data stability |
Dependency class |
---|---|---|---|
Provider |
Evolving |
Evolving |
CPU |
Module |
Private |
Private |
Unknown |
Function |
Private |
Private |
Unknown |
Name |
Evolving |
Evolving |
CPU |
Arguments |
Evolving |
Evolving |
CPU |