SUMMARY: ace fifo and interrupt trouble with serial dev

From: Armin Ollig <armin_at_metzelkueche.tabu.uni-bonn.de>
Date: Wed, 09 Aug 2000 23:41:03 +0200 (CEST)

Here we go,

Many thanks to Dr. Tom Blinn who straightened things out.

Problem:
When using a high speed ISDN TA on the serial port of my Alpha i get 8k
interrups per second thus using 50% of my 500mhz CPU. My suggestion was to
increase the threshold, in order to make the OS flush the 16
byte UART16650A fifo not for every byte, but instead fetch 8 bytes in one
chunk to save CPU.
The threshold as when to flush the fifo can be adjusted in xxxBSD systems
in the driver source file ("pccom.c" in the case of OpenBSD).

Answer/Solution:
Dr. Tom Blinn pointed out that Tru64 is designed to work that way:

"You will note in the FAQ you cite that one thing some people do with
the part in question is make sure it interrupts when there are only a
few characters in the buffer. We make it interrupt even sooner, and
we may chew up more CPU cycles in the process. That's just the way
it works. While it might be desirable to be able to tune the way we
operate that particular piece of hardware (and perhaps even on a per
line basis), that's not the way the software actually works, and it
would be a real piece of work to make it different. I personally do
not expect that to happen any time soon."


Bottom line: "Its not a bug, itsa feature" 8^]

-Armin
Received on Wed Aug 09 2000 - 21:42:26 NZST

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:41 NZDT