Linux で WBINV 命令を使用して、プロセッサの L1 キャッシュをクリアしようとしています。
次のプログラムはコンパイルされますが、実行しようとするとセグメンテーション違反が発生します。
int main() {asm ("wbinvd"); return 1;}
gcc 4.4.3 を使用しており、x86 ボックスで Linux カーネル 2.6.32-33 を実行しています。
プロセッサー情報: Intel(R) Core(TM)2 Duo CPU T5270 @ 1.40GHz
次のようにプログラムを作成しました。
$ gcc
$ ./a.out
セグメンテーション違反
誰かが私が間違っていることを教えてもらえますか? これを実行するにはどうすればよいですか?
PS: いくつかのパフォーマンス テストを実行していますが、プロセッサ キャッシュの以前の内容が結果に影響しないことを確認したいと考えています。