如何在中断上下文中安全地将某些内容打印到 kmsg

How can I safely print something to kmsg in interrupt context

我需要在 Irq 服务例程中向内核日志打印一条消息,所以它在 "interrupt context" 中。我知道 printk 不推荐用于这种情况,那么这里最好的选择是什么? 感谢您提出任何建议。

我听说过一个关于printk_deferred的选项,我注意到它用在调度程序中,但还没有找到它在irq isr中的使用位置。谁能解释一下 printk_deferred 和 printk 之间的区别?

一个常见的想法是,我们可以从中断处理程序更新要打印的变量或信息,然后从内核线程将该值打印到内核日志缓冲区。这样handler就完好无损了,我们的objective也会实现。