losing interrupts - printk is bad

2 messages, 2 authors, 2001-03-19 · open the first message on its own page

losing interrupts - printk is bad

From: Matthias Fuchs <hidden>
Date: 2001-03-19 17:12:50

Hi,

I got a nice problem: I am working on an embedded PPC board (IBM405CR)
with a serial console (115200 baud). While I was testing some new driver
code, I made a lot of prink debugging output - as we all like to do :-)
My problem is, that I always lose some bytes on an other serial port. I
found out that printk waits until the complete format string is send
through the console. That takes about 5 ms for 40 bytes. During this
time printk blocks the interrupts !!! That means some incomming data on
the other serial port can be (and is) lost. This is a very strange
problem.

Well first would be glad to get a good workaround. Well, a 'klogd -c 1'
turn off all the debuggin and printk is much faster, but I need the
debugging output.

Second, could anybody explain t ome, what klogd is doing ? It would be
glad to get klogd read all the debugging output from the kernel and
output the data from user space (well buffered and not blocking the
whole system). It seems that klogd cannot do that, am I right ?

Matthias

--
-------------------------------------------------
\ Matthias Fuchs                                 \
 \ esd electronic system design Gmbh              \
  \ Vahrenwalder Straße 205                        \
   \ D-30165 Hannover                               \
    \ email: matthias.fuchs@esd-electronics.com      \
     \ phone: +49-511-37298-0                         \
      \ fax:   +49-511-37298-68                        \
       --------------------------------------------------

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: losing interrupts - printk is bad

From: Gabriel Paubert <hidden>
Date: 2001-03-19 17:29:16

On Mon, 19 Mar 2001, Matthias Fuchs wrote:
Hi,

I got a nice problem: I am working on an embedded PPC board (IBM405CR)
with a serial console (115200 baud). While I was testing some new driver
code, I made a lot of prink debugging output - as we all like to do :-)
My problem is, that I always lose some bytes on an other serial port. I
found out that printk waits until the complete format string is send
through the console. That takes about 5 ms for 40 bytes. During this
time printk blocks the interrupts !!! That means some incomming data on
the other serial port can be (and is) lost. This is a very strange
problem.

Well first would be glad to get a good workaround. Well, a 'klogd -c 1'
turn off all the debuggin and printk is much faster, but I need the
debugging output.

Second, could anybody explain t ome, what klogd is doing ? It would be
glad to get klogd read all the debugging output from the kernel and
output the data from user space (well buffered and not blocking the
whole system). It seems that klogd cannot do that, am I right ?
Do you have a nettwork (Ethernet interface) ? I get all my debugging
output in /var/log/messages on another system with properly configured
syslogd. Of course, if has to go through userspace but once you've got
your driver stable enough , it should not be a problem.

	Regards,
	Gabriel.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help