From: Linus Benedict Torvalds (torvalds@klaava.Helsinki.FI)
Date: 02/04/92


From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: Serial support
Date: 4 Feb 1992 13:40:47 GMT

In article <Feb.3.23.55.22.1992.9885@dumas.rutgers.edu> hedrick@dumas.rutgers.edu (Charles Hedrick) writes:
>I think the problem is that the interrupt level code calls the streams
>processing, and finishes with a character before sending EOI and
>dismissing the interrupt. [ deleted ]

This is how 0.13 will do things: my current driver just sets a bit (this
is part of the better timer-routines I wrote just for things like this),
and the characters are then processed under the timer interrupt. This
way, we still get instant echoing (well, it waits for the timer-intr,
but that happens fairly often: 100 Hz), but we don't get the
copy_to_cooked() function call several thousands of times a second with
speeds > 19200.

The current linux still has a limit of 2kB of buffer, so if the
characters aren't read out of the buffer fast enough, you still lose
characters due to buffer overrun. Also, linux doesn't support the 16550
chip in buffered mode: I don't have the hardware.

        Linus