メッセージング方針は正しいか?4

sakkyさんからTLBのキャッシュコストにはinvlpg命令を使うと良いとアドバイスを頂いた。
Intelのマニュアルによると

ソース・オペランドで指定されたトランスレーション・ルックアサイド・バッファ(TLB) のエ
ントリを無効化( フラッシュ) する。ソース・オペランドは、メモリ・アドレスである。プロ
セッサは、そのアドレスが含まれるページを判定し、そのページのTLB エントリをフラッシュ
INVLPG 命令は特権命令である。プロセッサが保護モードで動作している場合は、この命令を
実行するには、プログラムまたはプロシージャのCPL が0 でなければならない。
通常、INVLPG 命令は指定されたページのTLB エントリだけをフラッシュするが、場合によっ
てはTLB 全体をフラッシュすることもある。TLB をフラッシュする操作の詳細については、本
章の「MOV―Move to/from Control Registers」を参照のこと。

とのこと。
つまり、ページに対応するTLBエントリをフラッシュすることが出来るようだ。
ここからは予想だが、目的のアドレスがキャッシュに載っているか分からないので
一度アクセスしてキャッシュに乗せてから、invlpgすればそのコストが分かるということだろうか。

ちょっと気になる記述が

TLB の特定のページ・テーブル・エントリを無効化するため、INVLPG 命令が用意されている。
通常、この命令は個別のTLB エントリだけを無効化するが、指定されたエントリ以外のエント
リを無効化する場合があり、すべてのTLB を無効化することもある。

うーむ。やってみるかな。