Thanks. I finally find that if I disable interrupt during ata_qc_issue() in libata-scsi.c, my sata driver works without any problem. But I find USB EHCI driver is more complicated. Kernel crashes every where when RT is turned on. It seems whenever the stack spin_lock ehci->lock and interrupt comes at that moment, kernel will be crashes. The reason is EHCI interrupt handler will also take the same lock. If my point of view, USB stack seems no PREEMPT_RT safe. Is it correct? Am I miss anything? On Fri, Feb 1, 2013 at 3:52 AM, Frank Rowand <frank.rowand@xxxxxxxxxxx> wrote: > On 01/31/13 01:27, Jacky Lam wrote: >> Thanks Stano, >> >> I am still debugging this driver. But I find very strange that >> sometimes printk() in interrupt handler do not output anything. This >> makes me very difficult to debug. Is it RT patch's expected behaviour? >> Or I am doing something wrong?? > > If CONFIG_PREEMPT_RT_FULL then printk() from irq context will be buffered > but the console driver will not be called to flush the buffer. The > next printk() outside irq context will flush the buffer. > > -Frank On Fri, Feb 1, 2013 at 3:52 AM, Frank Rowand <frank.rowand@xxxxxxxxxxx> wrote: > On 01/31/13 01:27, Jacky Lam wrote: >> Thanks Stano, >> >> I am still debugging this driver. But I find very strange that >> sometimes printk() in interrupt handler do not output anything. This >> makes me very difficult to debug. Is it RT patch's expected behaviour? >> Or I am doing something wrong?? > > If CONFIG_PREEMPT_RT_FULL then printk() from irq context will be buffered > but the console driver will not be called to flush the buffer. The > next printk() outside irq context will flush the buffer. > > -Frank -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html