Re: Dropped characters in serial connection without flow control

From: Alan Cox
Date: Wed Oct 28 2009 - 14:15:29 EST


> There is no(!) support for flow control in the hardware.

So do XON/XOFF ?

> Is there anything I can do to reduce serial port interrupt latency or
> otherwise try to mitigate this in my ldisc or in Linux in general? I
> realize that it will never be quite reliable without any flow
> control.
>
> Baud rate is currently 115200 but could become 57600.

The core tty buffering code tops out at about 40Mbits on a decent PC
system so you shouldn't be seeing problems from that. Our internal
buffering is about 64K which at 115200 is actually over 5 seconds.

> Is there something in particular that I can do wrong or right in
> the ldisc?
>
> Might it be a good idea to add a circ_buf in the receiver path and
> move out any and all attempts at parsing incoming data? Currently
> it has a simple message buffer and a state machine in there.

ldisc processing is not done in the receiver path

> Characters are dropped both going out and coming in. Nothing to do
> about the out direction, but maybe input can be made reliable?
>
> I don't expect it, but maybe you know a trick?

Without knowing more about the hardware and the code and the like its a
bit tricky to even guess what your problems are.
--
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/