fpuinfo プロバイダは、SPARC マイクロプロセッサで行われる浮動小数点命令のシミュレーションに関連するプローブを提供します。ほとんどの浮動小数点命令はハードウェアで実行されますが、一部の浮動小数点命令はオペレーティングシステムをトラップし、ここでシミュレーションが行われます。どのような条件のときに、浮動小数点演算のシミュレーションがオペレーティングシステム側で行われるかは、マイクロプロセッサの実装ごとに異なります。シミュレーションを必要とする演算はごく少数です。しかし、このような演算を頻繁に行うアプリケーションがある場合、パフォーマンスに深刻な影響が現れる可能性があります。fpuinfo プロバイダでは、kstat(1M) と fpu_info カーネル統計情報、または trapstat(1M) と fp-xcp-other トラップを利用して、浮動小数点演算のシミュレーション内容をすばやく確認できます。
fpuinfo プロバイダは、シミュレート可能な浮動小数点命令の型ごとに 1 つずつ、プローブを提供します。fpuinfo プロバイダでは、CPU の「名前の安定性」が実現されています。したがって、プローブ名はマイクロプロセッサの実装ごとに固有であり、同じファミリに属する別のマイクロプロセッサ上では使用できないことがあります。たとえば、以下の表に示すプローブの中には、UltraSPARC-III では使用できるが UltraSPARC-III+ では使用できないものもあれば、その逆もあります。
Table 29–1 に、表 29–1 プローブを一覧します。
表 29–1 fpuinfo プローブ
fpu_sim_fitoq |
カーネルが fitoq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fitod |
カーネルが fitod 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fitos |
カーネルが fitos 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fxtoq |
カーネルが fxtoq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fxtod |
カーネルが fxtod 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fxtos |
カーネルが fxtos 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fqtox |
カーネルが fqtox 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fdtox |
カーネルが fdtox 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fstox |
カーネルが fstox 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fqtoi |
カーネルが fqtoi 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fdtoi |
カーネルが fdtoi 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fstoi |
カーネルが fstoi 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fsqrtq |
カーネルが fsqrtq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fsqrtd |
カーネルが fsqrtd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fsqrts |
カーネルが fsqrts 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fcmpeq |
カーネルが fcmpeq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fcmped |
カーネルが fcmped 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fcmpes |
カーネルが fcmpes 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fcmpq |
カーネルが fcmpq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fcmpd |
カーネルが fcmpd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fcmps |
カーネルが fcmps 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fdivq |
カーネルが fdivq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fdivd |
カーネルが fdivd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fdivs |
カーネルが fdivs 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fdmulx |
カーネルが fdmulx 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fsmuld |
カーネルが fsmuld 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmulq |
カーネルが fmulq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmuld |
カーネルが fmuld 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmuls |
カーネルが fmuls 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fsubq |
カーネルが fsubq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fsubd |
カーネルが fsubd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fsubs |
カーネルが fsubs 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_faddq |
カーネルが faddq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_faddd |
カーネルが faddd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fadds |
カーネルが fadds 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fnegd |
カーネルが fnegd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fnegq |
カーネルが fneqq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fnegs |
カーネルが fnegs 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fabsd |
カーネルが fabsd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fabsq |
カーネルが fabsq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fabss |
カーネルが fabss 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmovd |
カーネルが fmovd 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmovq |
カーネルが fmovq 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmovs |
カーネルが fmovs 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmovr |
カーネルが fmovr 命令をシミュレートしたときに起動するプローブ。 |
fpu_sim_fmovcc |
カーネルが fmovcc 命令をシミュレートしたときに起動するプローブ。 |
fpuinfo プローブは引数をとりません。
以下の表に、fpuinfo プロバイダの安定性を DTrace の安定性機構に従って示します。安定性機構の詳細については、第 39 章安定性を参照してください。
要素 |
名前の安定性 |
データの安定性 |
依存クラス |
---|---|---|---|
プロバイダ |
発展中 |
発展中 |
CPU |
モジュール |
非公開 |
非公開 |
不明 |
機能 |
非公開 |
非公開 |
不明 |
名前 |
発展中 |
発展中 |
CPU |
引数 |
発展中 |
発展中 |
CPU |