cytune queries and modifies the interruption threshold for the Cyclades driver.
Each serial line on a Cyclades card has a 12-byte FIFO for input (and
another 12-byte FIFO for output). The "threshold" specifies how many input
characters must be present in the FIFO before an interruption is raised.
When a Cyclades tty is opened, this threshold is set to a default value
based on baud rate:
If the threshold is set too low, the large number of interruptions can load
the machine and decrease overall system throughput. If the threshold is set too high, the
FIFO buffer can overflow, and characters will be lost. Slower machines,
however, may not be able to deal with the interrupt load, and will require
that the threshold be adjusted upwards.
If the cyclades driver was compiled with
ENABLE_MONITORING defined, the cytune command can be used with the
-q option to report interrupts over the monitoring interval and
characters transferred over the monitoring interval. It will also report
the state of the FIFO. The maximum number of characters in the FIFO when
an interrupt occurred, the instantaneous count of characters in the FIFO,
and how many characters are now in the FIFO are reported. This output might
look like this:
/dev/cubC0: 830 ints, 9130 chars; fifo: 11 threshold, 11 max, 11 now
166.259866 interrupts/second, 1828.858521 characters/second
This output indicates that for this monitoring period, the interrupts were
always being handled within one character time, because
max never rose above
threshold. This is good, and you can probably run this way, provided that a large
number of samples come out this way. You will lose characters if you
overrun the FIFO, as the Cyclades hardware does not seem to support
the RTS RS-232 signal line for hardware flow control from the
DCE to the DTE.
In query mode
cytune will produce a summary report when ended with
a SIGINT or when the threshold or timeout is changed.
There may be a responsiveness vs. throughput tradeoff. The Cyclades card,
at the higher speeds, is capable of putting a very high interrupt load on the
system. This will reduce the amount of CPU time available for other tasks
on your system. However, the time it takes to respond to a single character
may be increased if you increase the threshold. This might be noticed by
times on a SLIP link controlled by a Cyclades card. If your SLIP link is
generally used for interactive work such as
you may want to leave the threshold low, so that characters are responded
to as quickly as possible. If your SLIP link is generally used for file
transfer, WWW, and the like, setting the FIFO to a high value is likely to
reduce the load on your system while not significantly affecting
throughput. Alternatively, see the
-T options to adjust the time that the cyclades waits before flushing its
buffer. Units are 5ms.
If you are running a mouse on a Cyclades port, it is likely that you would
want to maintain the threshold and timeout at a low value.