マルチコアシステムでシステムデッドロックを引き起こしているキャラクターデバイスドライバーがあります。書き込み呼び出しには、スピンロック(spin_lock_irqsave)によって保護されたクリティカルセクションがあります。ISRは、タスクを完了するためにもこのロックを取得する必要があります。書き込みが別のコアでクリティカルセクションを実行しているときにISRが1つのコアで呼び出されると、ウォッチドッグタイマーがISRのコアでのハードロックアップを検出したためにパニックが発生します。書き込みプロセスは、実行を終了するために戻ることはありません。書き込みプロセスはそのコアで実行を継続するべきではありません。ロックを解除すると、ISR内の他のコアが実行できるようになりますか?
クリティカルセクションを完了するには、約5usが必要です。ハードロックは5秒後に発生します。
私は何か間違ったことをしていると思いますが、何がわからないのです。
助けに感謝します!