Re: patch: serial 16550C autoflow

Jamie Lokier (lkd@tantalophile.demon.co.uk)
Fri, 25 Sep 1998 11:15:00 +0100


On Wed, Sep 23, 1998 at 06:42:58PM -0400, Theodore Y. Ts'o wrote:
> I've found that hardware receive autoflow based on the FIFO flowing
> generally isn't a great idea. First of all, if the system can't handle
> the serial interrupt within 8 character times, there's something pretty
> seriously wrong, and automatic flow control merely hides the problem.
> If you are in this bad situation, yanking the flow control signals up
> and down rapidly as the FIFO fills and empties is also not good for
> performance, because there is often a delay before a device starts
> sending after it stops sending due to a flow control signal.

Possibly. But at the data rates mentioned (400kbaud), 8 character times
is 20us, which is pushing it for Linux on a PC at the moment. And if
there's another interrupt being serviced, goodbye data.

I wonder why they don't just put a bigger FIFO on the serial chip.

Still agree with the rest of your post.

-- Jamie

>
> Also, many devices aren't can't stop instantly, either. That's why
> Linux as a 1024 byte internal buffer, and will start signalling the flow
> control signal when there 128 bytes left. I want to give plenty of time
> for the flow control signal to happen.
>
> As you yourself point out in the source code, this can cause some data
> transfer lockups.
>
> + * *** Currently only implemented for the 16550C. The 16650=
>
> + * can do autoflow too, but it uses different registers.
>
> Not true. The National Semiconductor 16550 can not do automatic flow
> control.
>
> In any case, I'll look at supporting the 16550C, but only if someone can
> identify the manufacturer and I can get a hold of some formal datasheets
> describing it. I've done some web searching, and nothing's shown up as
> far as an manufacturer is concerned.
>
> - Ted
>
> Please read the FAQ at http://www.tux.org/lkml/
>
> ------------------------------

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