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

From: Nikita V. Youshchenko
Date: Thu May 20 2010 - 07:12:50 EST


> > Still questions:
> >
> > 1) why does that prevent klogd from working?
>
> Patch below.
> ...
> @@ -1084,18 +1084,8 @@ void release_console_mutex(void)
> #endif
> }
> console_locked = 0;
> - raw_spin_unlock_irqrestore(&logbuf_lock, flags);
> mutex_unlock(&console_mutex);

Hmm... that lock is taken inside loop body, then control goes out of loop
at 'break' statement, and then, if this line is deteled, lock is still
held at function return. Looks wrong.

> > 2) why does print not pass to non-CON_ATOMIC even if called from
> > non-atomic context?
>
> That's a good question. We call release_console_mutex() always with
> interrupts disabled from printk(), so that atomic check triggers. Have
> to look deeper to figure out whether we can enable interupts there,
> probably not, but with the klogd fix this should not matter.

IMO it still matters, since printk-over-serial is almost only available
debugging tool when [while driver debugging] system just hangs and one is
trying to find out why and where.

> > 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)
>
> While that can work due to the trylock, it can introduce massive
> latencies just in case some driver reports a status change or what
> ever.

Isn't it better just manually disable console (with 'quiet' kernel command
line option) when running in production? This may be recommended in proper
guidelines.
But while developing, serial console functionality is essential.

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/