C.6. glock のトレースポイント
トレースポイントは、blktrace の出力およびオンディスクレイアウトの知識と組み合わせることにより、キャッシュ制御の正確性を確認することができるようにも設計されています。これにより、任意の I/O が正しいロックをかけて発行および完了さており、競合が発生していないことをチェックすることができるようになります。
gfs2_glock_state_change
トレースポイントは、最も重要な理解すべきトレースポイントです。このトレースポイントは初期作成から、gfs2_glock_put
で終わる最終降格、最終の NL からロック解除に至るまでの遷移の全状態をトラッキングします。l (locked) glock フラグは、状態の変更が発生する前に必ず設定され、完了するまではクリアされません。状態の変更中には、許可されるホルダーはありません (H glock ホルダーのフラグ)。キューに配置されたホルダーがある場合には、常に W (waiting) 状態となります。状態の変更が完了すると、ホルダーが許可されることが可能となります。これは、l glock フラグがクリアされる前の最後の操作です。
gfs2_demote_rq
トレースポイントは、ローカルおよびリモートの両方の降格要求を追跡します。ノードに十分なメモリーがあるとすれば、ローカルの降格要求が発生するのはまれです。降格要求はほとんどの場合 umount や時折のメモリー再利用によって作成されます。リモートの降格要求数はノード間における特定の inode やリソースグループに対する競合の一つの尺度です。
ホルダーにロックが許可されると、
gfs2_promote
が呼び出されます。これは、状態変更の最終段階もしくは glock 状態が適切なモードのロックをすでにキャッシュしているため、即時に許可できるロックが要求された場合に発生します。ホルダーがこの glock を最初に許可される場合、そのホルダーには f (first) フラグが設定されます。これは、現在リソースグループのみのよって使用されています。