Re: PREEMPT_RT (2.6.33-rt17) disabled printk-to-console after console_init

From: Nikita V. Youshchenko
Date: Thu May 20 2010 - 06:23:18 EST


> > >>> Well, obviously it's unsafe if you remove safety checks. And if
> > >>> you care to look at the changelog of kernel/printk.c you'll find
> > >>> out why.
> > >>
> > >> Hmm... did a quick look and could not find anything related there.
> > >> Could you please give a pointer?
>
> Gah, yes. The changelog of the commit is not really helpful. Let me
> explain:
>
> The console drivers might take locks, which are converted to "sleeping
> locks" in preempt-rt. As a result we cannot call into those drivers
> from atomic contexts. And that's what the checks in the printk code
> prevent.

I've already understood that when looking at that code some weeks ago.

Still questions:

1) why does that prevent klogd from working?

2) why does print not pass to non-CON_ATOMIC even if called from non-atomic
context?

3) I believe that 8250 serial driver is aware of preempt-rt.
Could you please comment on my "2.6.33.2-rt13: RFC: fix serial console"
post to linux-rt-users list
(http://eeek.borgchat.net/lists/linux-rt-users/msg05569.html)

Nikita
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/