Solaris 動的トレースガイド

第 29 章 fpuinfo プロバイダ

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