Serial console blocking processes in write

From: Dave Airlie
Date: Tue Oct 26 2004 - 02:40:07 EST


Hi,

I've got a system running a 2.6.9-rc1-VP-R0 (it also happens with
2.6.6 vanilla though) kernel, and a busybox 1.00-pre8 along with about
4-5 user space processes all talking out through a serial console
(/dev/ttyS0).

After about 2-3 hours of constant stuff streaming out of the serial
port, my apps all hang on writes to the fd for stderr, (2->/dev/ttyS0
in /proc/<pid>/fd). busybox seems to initially open the ttyS0 device
as O_NONBLOCK so I would assume this propogates down to my
applications as they are fork/execed by busybox.

However my kernel printks keep coming out the serial port quite happily.

If I then type any character on the other end of the console, I get
16-bytes of data (a FIFO load) sent, so if I keep transmitting chars
to the other end, I get 16-bytes for every char and eventually the log
jams seems to clear and it runs again fine for another 2-3 hours until
it seems to happen again.

Any ideas where to start looking, my debugging env is quite crap, but
I'm trying to get space on the flash to throw gdb and switch on a lot
more debugging, at the moment I've gotten busybox telnetd that I can
startup after it crashes, and strace shows be everyone stuck in the
writes....

Dave.
-
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/