ワークキューの優先度を設定できますか?
ハードウェアとより高速に通信できるように、SPI カーネル モジュール「spidev」を変更しています。外部ハードウェアは非常に小さなバッファーを持つ CAN コントローラーであるため、データの損失を避けるために受信データをすばやく読み取る必要があります。新しいデータを通知するために GPIO 割り込みを構成しましたが、割り込みハンドラーで SPI ハードウェアを読み取ることができません。私の割り込みハンドラーは基本的に、SPI データを読み取るワークキューをセットアップします。カーネルにアクティブなプロセスが 1 つしかない場合は、問題なく動作します。他のプロセス (プロセス ビューアーのトップを含む) を同時に開くとすぐに、データの束が失われ始めます。つまり、1000 パケットのデータを問題なく受信し、その後 15 パケットを続けて失う可能性があります。 . 私の問題の原因は、他のプロセス (トップ、この場合) は、割り込みハンドラーが実行する CPU を制御しますが、スケジューラが再度呼び出されるまで、ワークキュー内の作業は制御されません。プロセスの優先度を上げようとしましたが、成功しませんでした。
割り込み処理関数の直後にワークキュー内の作業を実行するようにカーネルに指示する方法はあるのだろうか。提案は大歓迎です。