Where does 10ms serial port read latency come from?

Wall, Tim (tim.wall@pinpointco.com)
Mon, 19 Oct 1998 19:08:25 -0400


Please CC my email address (tim.wall@pinpointco.com); I am not
subscribed

> I'm developing an application which relies on high-frequency
data
> transfer over /dev/ttyS0 (100 bursts/second) (this was
supposed to be a temporary solution
> until our hardware got a PCI interface, but that may not
happen for a
> while). I'm running at speed B115200. At the other end of
the serial
> port is a SHARC DSP which responds to packets sent by the PC.
What I'm
> seeing is a consistent delay between sending requests
(multi-byte xfers to the DSP) and receiving
> responses. After the write() completes, there is a 9-10ms
interval
> before the corresponding read() completes (using non-blocking
I/O, the
> read() call returns EAGAIN about 2100 times (233MMX P5) before
any
> characters are received). The request and response are 8-12
bytes in
> length. I would expect such a delay due to xmission time when
sending
> large blocks of characters, but for just a few?
>
> I've hooked up a logic analyzer to the TX/RX pins which show
that, effectively, the response is sent immediately after
> the request completes.
>
> Both sides are using standard 16550A uarts.

I've found nothing relevant in the linux docs, except perhaps for the
100Hz kernel scheduling timer, though since there's no process between
mine and the serial port, i can't see how that matters.
Any help would be appreciated.

Timothy Wall voice 781 687 9720
x331
Embedded Software Engineer fax 781 687
9730
PinPoint Corporation

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