割り込みハンドラはできるだけ短くする必要があることは誰もが知っています。また、割り込みハンドラ内でのデバッグなどの関数の追加printk
は、行うべきではありません。実際、私が書いた割り込み駆動の char デバイスの Linux カーネルをデバッグしていたときに試してみたところ、ドライバーのタイミングが台無しになりました。
私が持っている質問は、なぜこれが起こっているのですか?
printk
関数はバッファリングされます! これは、データがキューに挿入され、後で処理されることを理解している限り、おそらく割り込みハンドラーが終了した後に処理されることを意味します。
では、なぜ機能しないのでしょうか。