delay in booting due to consloe_unlock inprintk

Dave Hylands dhylands at gmail.com
Fri Dec 23 10:40:19 EST 2011


Hi Syam,

On Thu, Dec 22, 2011 at 10:59 PM, Syam <k.meghasyam at gmail.com> wrote:
> HI All,
>
> I am getting more than 1 sec delay during booting.
> While registering console (for serial console ttys ), there is about 1 sec
> delay in executing the console_unlock() in printk.c
>
> It was found that delay is occuring in call_console_drivers()
> ******************************
> if (c == '\n') {
> if (msg_level < 0) {
> /*
> * printk() has already given us loglevel tags in
> * the buffer.  This code is here in case the
> * log buffer has wrapped right round and scribbled
> * on those tags
> */
> msg_level = default_message_loglevel;
> }
> _call_console_drivers(start_print, cur_index, msg_level);    // if this part
> is commented, there is no delay observed?
> *******************************
>
>
> is there any way to find out what is causing the delay.

The kernel actually starts logging the printk buffer before any
consoles are registered. When the first console is registered, it then
prints all of those messages which have been buffered until that time.
If you're logging your console messages to a serial port, then all of
those characters actually need to be sent out the UART, which is
probably where most of the time is being  spent.

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.davehylands.com



More information about the Kernelnewbies mailing list