driver ring buffer overrun and printf usage

Sudheer Divakaran inbox1.sudheer at gmail.com
Thu Jul 14 09:01:01 EDT 2011


>
> does this behaviour of printf points to some problem in embedded
> linux's  scheduler  ( printf prints data to debug serial port , and
> consecutive read() calls in  read_thread() are  scheduled lately due
> to that ) ?
>
> do the actual implementation of printf  involves any kind of sleeps ?
>
> kindly share necessary insight wrt above printf usage and driver ring
> buffer overrun .

I had encountered a similar problem, I think the problem is in
'printing to serial console' which is a slow process (transfer rate is
very less compared to other i/o), serial I/O may not be able to keep
up to the pace at which kernel logging happens.

In my case, there was no such custom application writing to the
console, instead the logging daemon itself was the culprit, some other
drivers were not able to meet some timing requirements because of the
heavy serial logging and my solution was to reduce the console logging
using 'dmesg -n' option


--
Thanks
Sudheer



More information about the Kernelnewbies mailing list