3

私は組み込み Linux マシン用のデバイス ドライバーを作成していますが、次の質問があります。アプリケーション プログラムで mmap() するよりも、デバイス ドライバーでカーネル空間にバッファーを割り当てて、読み取り中にキャッシュが発生しないようにすることは可能ですか?ドライバーとプログラムからバッファーへの書き込み。つまり、プログラムは、ドライバーがそのバッファーに書き込んだものをすぐに確認し、その逆も同様です。

私の知る限り、O_DIRECT フラグを使用してデバイス ファイルを開くことは mmap 用ではありません (read() および write() syscalls 用です)。アーチ。

パフォーマンスの目的でキャッシュされていないバッファが必要です-ハードウェアからのデータがバッファに配置され、プログラムはそれを一度処理します-バッファ内の古いデータは使用されないため、キャッシュは役に立ちません。

4

0 に答える 0