DTraceの改良点
UEK R4u5のDTraceには、モジュールとユーティリティの更新を含むいくつかのバグ修正と強化が含まれており、現在のバージョンは0.6.1になっています。 注目に値するその他の変更点を次に示します。
-
一般的なバグ修正
多数のバグ修正が適用され、安定性が向上し、パフォーマンスが向上します。
-
機能境界トレース(FBT)の改善
修正は、カーネル機能をエントリ時にFBTを使用してプローブできるかどうかを検出するためのコードに適用され、制限を減らし、Oracle Linux 7システムで機能する能力を向上させました。 また、オフセットに引数を渡してFBTリターン・プローブに渡して、FBTリターン・プローブ引数が正しい値を持つようにするコードにパッチを適用しました。
-
I/Oプロバイダ
I/Oプロバイダ・カバレッジが拡張され、共通ブロック・レイヤーに基づいてブロック・ファイル・システムのプローブが追加されました。 さらに、NFS上で実行されるI/O読み取りと書き込みのトレースをサポートするためのプローブが追加されました。 TCPおよびUDPプロトコル用のSDTプローブも追加されています。 これには、
tcp:::send
,tcp:::receive
,tcp:::state-change
,tcp:::connect-request
,tcp:::connect-refused
,tcp:::connect-established
,tcp:::accept-refused
,tcp:::accept-established
,udp:::send
およびudp:::receive
が含まれます。 -
DTraceモジュールの自動ロード
DTraceカーネル・モジュールは、プロバイダ用に自動的にロードされます。 これは、
/etc/dtrace-modules
ファイルにデフォルトのプロバイダ・モジュールのリストをあらかじめ入力することで実現されます。 これは、dtrace-utils
がシステムにインストールされている場合に実装されます。 -
CTFの改善と修正
libdtrace-ctf
のビット・フィールドのサポートを追加するための変更(ビット・フィールドが表される正しいCTFを出力するためのdwarf2ctfへの変更を含む)が適用されました。 この変更により、DTraceは構造体および共用体内のビット・フィールドの値を確認できます。 また、カーネルCTFがカーネル静的変数を含むように修正が加えられました。 この変更により、モジュール・スコープvars_seen
ハッシュテーブルが重複排除ステートに導入され、変数が静的であるかどうかが識別されます。 複数の静的な定義が存在する変数は、重複する変数名の混乱を避けるために、同じモジュールに対して宣言されている静的な変数と外部の変数が一致するのと同時にブラックリストに載せられます。