Re: Bug in Linux serial driver (and fix proposal)

Theodore Y. Ts'o (tytso@mit.edu)
Mon, 4 Oct 1999 15:46:00 -0400


Date: Mon, 4 Oct 1999 20:56:10 +0200
From: Wojciech Zabolotny <wzab@ise.pw.edu.pl>

I just discovered, that the user program can not detect the "overrun"
event in serial data (at least in 2.0.x kernels, I don't know the 2.2.x).
This is a serious bug in the serial driver, if it is used for applications
sensitive to data loss (eg. processing of data from AD converter connected
to the serial port).

It's true that it would be nice if applications where informed about the
data loss, but most of the time there's not much they can do after the
fact, after data has been lost.

That's why currently the overrun case is treated as a system log; it's
an indication that system isn't setup correctly, or that there's a
kernel problem. In practice overruns should never happen. The most
common case of overruns is due to the IDE device driver taking too
long. Read the man page about hdparm's -u option, and try it. It
will likely cause your overrun problem to go away altogether.

I'll think about adding your suggestions, but our time is almost
certain better spent trying to fix why the overrun's are happening in
the first place, rather than trying to improve ways that the application
is notified of the fact that something had gone wrong. Let's rather
concentrate on avoiding things from going wrong in the first place.

- Ted

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/