Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xpstat(8C) — OS/MP 4.1A3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

iostat(8)

xp(4S)

XPSTAT(8C)  —  MAINTENANCE COMMANDS

NAME

xpstat − show xp (Xylogics MUX) interface statistics

SYNOPSIS

xpstat [ − [ v ][ z ][ ctlr# ]] [ kernel ] [ core ]

DESCRIPTION

xpstat reports the statistics gathered by the kernel for the named interface. 

OPTIONS

ctlr# Select which xp interface to report statistics for.  0 is the default. 

z Zero the statistics kept by the driver after printing their current values.  This option is available only to root. 

v Turn on verbose output.  Currently, this enables the printing of the xp_softc structure in addition to the normal display of the xp_cstats structure. 

kernel Extract name list from kernel rather than /vmunix. 

core Extract values from core rather than /dev/kmem. 

STATISTICS

The following statistics reported by xpstat are extracted from the xp_cstats structure:

intr (xpc_intr)
The total number of interrupts received from the board.

nich (xpc_nich)
Count of the number of input characters received through the board.

noch (xpc_noch)
Count of the number of output characters sent through the board.

sb_wr (xpc_sb_wr)
Number of asynchronous write completions reported by the hardware.

sb_rd (xpc_sb_rd)
Number of asynchronous read completions reported by the hardware.

sb_sync (xpc_sb_sync)
Number of synchronous write completions reported by the hardware.

maxsbperint (xpc_maxsbperint)
Largest number of status blocks (which report i/o completions, errors, etc) seen when handling a single interrupt.

maxxpersb (xpc_maxxpersb)
Largest number of write completions (synchronicity is not distinguished) reported with any single interrupt.

maxrpersb (xpc_maxrpersb)
Largest number of read completions reported with any single interrupt.

start (xpc_starts_wr)
Number of times new data became available for transmission.

start_wr (xpc_starts_wr_async)
Number of times new data resulted in sending a write command to the hardware.

start_sync (xpc_starts_sync)
Number of synchronization commands that were sent to the hardware.

drops (xpc_ring_cantput)
Number of input silo overflows detected.  These overflows are reported by the kernel as “xp%d,%x: ring buffer overflow”.

maxblcnt (xpc_maxblcnt)
Largest number of times the driver looped waiting for the hardware to acknowlege receipt of the previous board-level command.  This loop is executed to wait for any previosly-issued commands to complete before issuing a new command.

xpparam (xpc_xpparam)
Number of times that serial line parameters have been set.

xpparam_nop (xpc_xpparam_nop)
Number of times that serial line parameters were set to the same values they already had.

maxloopcntb (xpc_maxllcntb)
Largest number of times the driver looped waiting for the hardware to acknowledge receipt of the previous line-level command.  This loop is executed to wait for any previously-issued commands to complete before issuing a new command.

cmd (xpc_maxllcntb_cmd)
The command that was waited for the longest (see xpc_maxllcntb).

line (xpc_maxllcntb_line)
The line that was waited for the longest (see xpc_maxllcntb).

maxloopcnta (xpc_maxllcnta)
Largest number of times the driver looped waiting for the hardware to complete a new line-level command.  This loop is executed after every line-level command is sent -- such commands are not performed asynchronously like board-level commands are.

cmd (xpc_maxllcnta_cmd)
The line-level command with the longest delay after being issued (see xpc_maxllcnta).

line (xpc_maxllcnta_line)
The line with the longest delay after a command was issued to is (see xpc_maxllcnta).

who (xpc_maxllcnta_who)
A small integer indicating where the most-recent line-level command was generated (see xpc_maxllcnta).

arg (xpc_maxllcnta_arg)
What command-specific argument was provided with the most-recent line-level command (see xpc_maxllcnta).

lastcmd (xpc_last_cmd)
The last command given to the hardware, either board- or line-level.

lastline (xpc_last_line)
The last line that was given a command.  If the last command was a board-level command, the line number has the MSB set.

For each terminal line, the following statistics are reported:

nich (xpl_nich)
Count of the number of input characters received through that line.

noch (xpl_noch)
Count of the number of output characters sent through the line.

pferr (xpl_sb_pferr)
Combined count of parity and framing errors encountered on the line.

mdm (xpl_sb_mdm)
Number of modem control state changes reported by the hardware for the line.

err (xpl_sb_err)
Combined error count for the line, minus parity/framing errors (see xpl_sb_pferr, above).  The errors are: XP_RPT_OVERRUN (“xp%d,%x: silo overflow”), XP_RPT_CMDERR (“xp%d,%x: command error”), XP_RPT_BUSERR (“xp%d,%x: bus error”), XP_RPT_TIMEOUT (“xp%d,%x: time out error”), XP_RPT_OVERFLOW (“xp%d,%x: OCTART overflow”), XP_RPT_QUEUEOF (“xp%d,%x: Internal Queue overflow”), and unrecognized errors (“xp%d,%x: unknown interrupt, rpt=0x%x”).

drops (xpl_ring_cantput)
Number of input silo overflows detected on the line.  These overflows are reported by the kernel as “xp%d,%x: ring buffer overflow”.

When verbose output is enabled via the -v flag, all of the following statistics are also reported.  These are extracted from the xp_softc, xp_idb, xp_ibuf, and xp_obuf structures:

idb (xs_idb)
The address of the xp_idb structure associated with this particular board.

xs_ib (xs_ib)
The address of the xp_ibuf input-buffer structure associated with this particular board.

xs_ob (xs_ob)
The address of the xp_obuf output-buffer structure associated with this particular board.

btlb (xs_btlb)
Which baud-rate vector in global table xp_speeds is associated with this board. 

iblen (idb_iblen)
Combined length in characters of all input buffers for the board.

oblen (idb_oblen)
Combined length in characters of all output buffers for the board.

adrmod (idb_addrmod)
VME address modifier used to distinguish between the input and output data buffers.

iintr (idb_invec, idb_inlev)
The input interrupt vector and interrupt level.

ointr (idb_outvec, idb_outlev)
The output interrupt vector and interrupt level.

sintr (idb_statvec, idb_statlev)
The status-change interrupt vector and interrupt level.

When verbose reporting is turned, the following information is reported for each terminal line:

xs flags (xd_line[i].xp_flags)
Various serial-line-specific flags.  See <kapdev/xpvar.h> for details.

xs icnt (xd_line[i].xp_icnt)
Number of characters in the input silo.

xs iptr (xd_line[i].xp_iptr)
Pointer into the input buffer where new data will be stored.

xs sptr (xd_line[i].xp_sptr)
Pointer into the input buffer where data will be removed from.

idb scc (idb_uart[i].u_scc)
UART operating characteristics:  number of stop and parity bits, length of characters, and flow control.  See the U_SCC_∗ defines in <kapdev.xpreg.h>.

idb baud (idb_uart[i].u_baud)
The baud rate selector.

idb mdmst (idb_uart[i].u_modem_state)
Last state of the modem control lines that was set or reported, as modified by u_modem_mask (see below).

idb mdmmsk (idb_uart[i].u_modem_mask)
No status is reported via u_modem_state for the bits that are set in this mask.

idb ito (idb_uart[i].u_input_timeout)
Maximum number of 5-millisecond periods to wait for more data to arrive before assuming that the current read has completed (and an interrupt is delivered to the host).  The timeout period starts after the first character is received after the host delivers a read command.

idb imin (idb_uart[i].u_input_min)
The minimum number of characters the host expects to receive as a result of a read command.  Receiving this many characters causes a read-completion interrupt, even if the timeout period (u_input_timeout) has not expired.

idb xon (idb_uart[i].u_xon)
The character to use for the XON half of XON-XOFF flow-control.

idb xoff (idb_uart[i].u_xoff)
The character to use for the XOFF half of XON-XOFF flow-control.

idb ltide (idb_uart[i].u_lowtide)
After the output queue has been filled completely, when it drains down to this number of characters a notification is sent to the host that the queue is no longer full.

idb breakt (idb_uart[i].u_breaktime)
Number of 5 millisecond periods that a break signal is asserted for.

idb pererr (idb_uart[i].u_parerr)
Number of parity errors detected on this line.

idb frmerr (idb_uart[i].u_frmerr)
Number of framing errors and breaks detected on this line.

idb ovfl (idb_uart[i].u_ovflerr)
Number of queue overflows (input overrun, UART overrun, and internal queue overflow) that have occurred on this line.

ib count (ibuf[i].xi_count)
Index into the line’s circular input buffer.

ob put (obuf[i].xo_put)
An index into the data portion of the output buffer that always indicates the most recently added character, except when the buffer is empty.  This field is maintained by the host.

ob get (obuf[i].xo_get)
An index into the data portion of the output buffer that always indicates the next character to be transmitted, except when the buffer is empty.  This field is maintained by the hardware.

ob count The count of characters currently in the output queue.  This is derived as (xo_put+1) - xo_get.  If the result is less than zero, the size of the buffer is added to correct for buffer wrap-around. 

SEE ALSO

iostat(8), xp(4S)

Solbourne Computer, Inc.  —  2 December 1991

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026