.\" cytune.8 --
.\" Created: Sat Mar  4 17:44:53 1995 by faith@cs.unc.edu
.\" Update: Sat Mar  4 18:22:24 1995 by faith@cs.unc.edu
.\" Update: Sun Mar  5 06:40:12 1995 by njs@scifi.emi.net
.\" Copyright 1995 Rickard E. Faith (faith@cs.unc.edu)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" "
.TH CYTUNE 8 " 4 Mar 1995" "" "Linux Programmer's Manual"
.SH NAME
cytune \- Tune driver parameters for Cyclades-Z multiport serial card
.SH SYNOPSIS
.B cytune
.RB [ \-q
.RB [ \-i
.IR interval ]]
.RB [{ \-s | \-S }
.IR value ]
.RB [ \-g | \-G ]
.RB [{ \-t | \-T }
.IR timeout ]
.IR tty ...
.SH DESCRIPTION
.B 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:
.sp
.RS
    Baud        Threshold
.sp
50-4800            10
.br
9600                8
.br
19200               4
.br
38400               2
.br
57600-150000        1
.RE
.PP
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.
.PP
If the cyclades driver was compiled with
.B ENABLE_MONITORING
defined, the cytune command can be used with the
.B \-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:
.sp
.RS
/dev/cubC0: 830 ints, 9130 chars; fifo: 11 threshold, 11 max, 11 now
.br
   166.259866 interrupts/second, 1828.858521 characters/second
.RE
.PP
This output indicates that for this monitoring period, the interrupts were
always being handled within one character time, because
.B max
never rose above
.BR 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.
.PP
In query mode
.B cytune
will produce a summary report when ended with
a SIGINT or when the threshold or timeout is changed.
.PP
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
monitoring
.BR ping (8)
times on a SLIP link controlled by a Cyclades card.  If your SLIP link is
generally used for interactive work such as
.BR telnet (1),
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
.B \-t
or
.B \-T
options to adjust the time that the cyclades waits before flushing its
buffer.  Units are 5ms.
.PP
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.
.PP
.SH OPTIONS
.TP
.BI \-s " value"
Set the current threshold to
.I value
characters.  Note that if the
.I tty
is not being held open by another process, the threshold will be reset on
the next open.  Only values between 1 and 12, inclusive, are permitted.
.TP
.BI \-t " value"
Set the current flush timeout to
.I value
units.  Note that if the
.I tty
is not being held open by another process, the threshold will be reset on
the next open.  Only values between 0 and 255, inclusive, are permitted.
Setting
.I value
to zero forces the default, currently 0x20 (160ms), but soon to be 0x02
(10ms).  Units are 5 ms.
.TP
.B \-g
Get the current threshold and timeout.
.TP
.BI \-S " value"
Set the default threshold to
.I value
characters.  When the
.I tty
is next opened, this value will be used instead of the default.
Only values between 1 and 12, inclusive, are permitted.
.TP
.BI \-T " value"
Set the default flush timeout to
.I value
units.  When the
.I tty
is next opened, this value will be used instead of the default.  If
.I value
is zero, then the the value will default to 0x20 (160ms), soon to be 0x02
(10ms).
.TP
.B \-G
Get the default threshold and flush timeout values.
.TP
.B \-q
Gather statistics about the
.IR tty .
The results are only valid if the Cyclades driver has been compiled with
.B ENABLE_MONITORING
defined.  This is probably not the default.
.TP
.BI \-i " interval"
Statistics will be gathered every
.I interval
seconds.
.SH BUGS
If you run two copies of
.B cytune
at the same time to report statistics about the same port,
the 'ints', 'chars', and 'max' value will be reset
and not reported correctly.
.B cytune
should prevent this, but does not.
.\" .SH AUTHOR
.\" Nick Simicich (njs@scifi.emi.net), with modifications by
.\" Rik Faith (faith@cs.unc.edu)
.SH FILES
.I /dev/ttyC[0-8]
.br
.I /dev/cubC[0-8]
.SH "SEE ALSO"
.BR setserial (8)
.SH AVAILABILITY
The cytune command is part of the util-linux-ng package and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
