非リアルタイムカーネル(CentOS 6)でリアルタイムプロセスを実行していますが、これはおそらく変更されません。
一度に1.5時間連続してカスタムFPGAから約500 MB / sのPCIeトラフィックを必要とするストリーミングビデオアプリケーションがあります。ほとんどの場合、アプリケーションは非常にうまく機能します。ただし、一度に最大500ミリ秒の間、PCIeまたはメモリリクエストのサービスに対するカーネルの応答が停止するように見える状況がありました。これは、別のスレッドからのバーストファイルIO中に発生するようです。メインアプリケーションの実行中に、ユーザースペースから大量のダミーファイルIOを実行するだけでは、この問題を再現することが不可能であることがわかりました。
この問題を再現できるように、Linuxカーネルのグローバルな「フリーズ」を強制(シミュレーション)する(特に、PCIeまたはすべてのDDR3メモリアクセスなどを停止する)方法はありますか?
現在、最大10ミリ秒のバッファリングを内部FPGAメモリに実装していますが、それだけでは十分ではありません。FPGA DDR3にバッファリングしてからホストにダンプできますが、この新しい機能を強要してテストする方法が必要です。
カーネルを永久にフリーズまたはロックアップさせたくありません。時間間隔を設定する機能が必要です。
私は/proc/sys/vm
システムを仮想的にクロールし、数百ミリ秒後に元に戻す魔法の値を一時的に書き込むラインに沿って何かを探していますが、それを破る可能な方法の数を見ることは私のような初心者のためではありません(https://www.kernel.org/doc/Documentation/sysctl/vm.txt)。たぶんいくつかのnumactl
魔法?