This appendix is divided into two parts. The first half provides a brief overview of the SunDiag diagnostic program and explains how to start and run tests. The second part provides specific information on running xbtest which tests the SBus Expansion Subsystem.
SunDiag is a system exerciser; its primary purpose is to "stress" Sun hardware devices and record any errors that result from this testing. SunDiag allows multiprocessing systems to run any number of tests on any or all processors.
By nature, this program also tests system configurations. SunDiag automatically probes for hardware devices when it is started. If the probe does not find a hardware device that is connected to the system under test, that indicates a problem.
System administrators and hardware maintenance personnel use this program the most. The SunDiag interface is easy to use however, and it can be run by anyone who wants to "stress-test" a Sun system.
This Appendix provides a brief overview of the SunDiag program. For a detailed description of the program and the individual tests, see the latest version of the SunDiag User's Guide, shipped with SunOS documentation.
You can run the SunDiag System shipped with your SBus Expansion Subsystem in two different modes. These modes vary according to the configuration of your hardware components. The two modes of testing are transparent and nontransparent. These modes are mutually exclusive and you cannot run them both at the same time.
Select this testing mode whenever you have SBus cards plugged into the SBus Expansion Subsystem.
Use this testing mode when you do not have any SBus cards plugged into the SBus Expansion Subsystem. It will test only the SBus Expansion Subsystem. This mode is normally only used by the production locations and the field service representatives.
The primary and easiest way to run SunDiag test is from the SunDiag SUNVIEW® window. This is the window interface shown in Figure C-1, and the only one described in detail in this Appendix.
SunDiag also has a TTY interface to run tests from a terminal, and individual tests can be run from the command line of a SunOS shell. See the latest version of the SunDiag User's Guide for details.
SunDiag runs on any SPARCstation or SPARCsystem installed with SunOS version 4.1.1 or later. The operating system kernel must be configured to support all of the peripherals to be tested.
The amount of swap space required varies widely with the type and amount of hardware being tested. SunDiag tests require a minimum of 8 Mbytes of swap space for SPARCstations, and SPARCsystem servers should have enough swap space to equal twice the amount of on-board memory. In addition, frame buffer tests require additional swap space, and the virtual memory test has special swap space considerations. See the SunDiag User's Guide for more detailed information on swap space requirements.
When you start SunDiag in SUNVIEW, the SunDiag window appears on your screen (see Figure C-1). The window is divided into four sections:
Follow these steps to run the SunDiag SunView user interface.
--------------------------------------
penguin# /usr/diag/sundiag/sundiag --------------------------------------
This command starts the basic SunDiag program. There are a wide variety of options to this command; see the SunDiag User's Guide shipped with SunOS documentation, for details on testing other than SBus Expansion Subsystem configurations.
The bottom set of tests are dedicated to testing Sbus cards inserted into an SBus Expansion Subsystem. For each slot, the system provides a transparent mode check box and a non transparent mode check box. When you check a box in the Control Panel, the system will automatically display the device status in the System Status Panel.
You should not select transparent mode if the SBus Expansion slots are empty and you cannot select the nontransparent mode if you have one or more SBus cards in the SBus Expansion slots. These two types of modes are mutually exclusive and cannot be tested at the same time.
If a device is missing from the control panel, make sure that the device is properly installed.
Figure C-2 Typical SunDiag Control Panel
Note - SunDiag enables all available tests when it is invoked. Starting all available tests slows down your system considerably. You can avoid most problems by disabling the virtual memory (vmem) test.
Note - You only need to change the options settings once. SunDiag continues to use your selections each time you run SunDiag.
The test name, xbtest, must match the name that appears on the SunDiag System Status panel.
This test is divided into two modes of testing: transparent and nontransparent.
After you invoke the xbtest the system will fork into two processes. The first, the parent process, will wait for the exit of the child process and then it will exit. The child process will issue an XAC_WAIT_FOR_ERROR ioctl call to the SBus Expansion Subsystem device driver and then enter a sleep mode.
When the device driver receives an error, it wakes up and passes an error packet to the child process. The child process dumps the contents of the error packet and then it exits also.
This test will perform the following steps:
This test will perform the following steps:
This test will perform the following steps:
This test will perform the following steps:
This test will perform the following steps:
The system will repeat each test ten times. Time-out checks are included to avoid indefinite hangs. Failure of any test should not result in panics although full recovery is not guaranteed.
You can run SunDiag in a single test mode. To do this, enter the following command in any shell.
--------------------------------------------------------------
/usr/diag/sundiag/xbtest D=devicename WE T=test_period SD standard_arguments --------------------------------------------------------------
----------------------------------------------------------------------------------
Arguments ----------------------------------------------------------------------------------
D=devicename devicename specifies the name of the device to be tested. Up to three SBus Expansion Subsystems are supported, so the choices are: xbox0, xbox1, and xbox2. WE Wait for Error. This option directs xbtest to run in transparent mode. This option will run xbtest continually until an error is returned, or until the time interval specified with the T=test_period option has ended. This argument cannot be used with the SD argument T=test_period Used only with the WE option. test_period specifies how long the test will run unless an error is returned, or the test is stopped manually. Substitute test_period with the number of minutes you want the test to run. The default is 15 minutes. SD Self Diagnostic test. This options directs xbtest to run in non transparent mode. This argument cannot be used with the WE argument. ----------------------------------------------------------------------------------
Note - The SunDiag standard arguments are described in Chapter 4 of the SunDiag User's Guide
The following are samples of .usertest commands using the command arguments:
--------------------------------------------------
xbox0 transparent mode, xbtest, S D=xbox0 WE T=1 xbox1 nontransparent mode, xbtest, S D=xbox0 SD --------------------------------------------------
Whenever there are errors generated by the system, the SunDiag system will display the following error message in the lower left half of the SunDiag SUNVIEW window:
-----------------------------
error status dirty bit n -----------------------------
The system will return a hex character to indicate the error incurred. The hex number will replace the n with the character shown in the Bit Number column of table C-1.
Table C-1 SBus Expansion Subsystem Error Status Type Bit
--------------------------------------------------------
Error Message Mnemonic Bit Number --------------------------------------------------------
cable resend timeout error (dpr1) crlt1 e cable parity error (dpr1) cadp1 d expansion sbus read error (err ack) xrea c expansion sbus read error (rsvd ack) xrra b expansion sbus read error (late error) xrle a expansion sbus timeout error xbto 9 write 0 read error wrzr 8 buffer write error (err ack) bwea 7 buffer write error (rsvd ack) bwra 6 buffer write error (late error) bwle 5 cable resend timeout error (dpr0) crtl 4 cable ack timeout error cato 3 cable parity error (dpr0) cadp0 2 cable serial interrupt parity error csip 1 child not ready error cnrd 0 --------------------------------------------------------
The system may return one or more of the following error messages:
Table C-2 Miscellaneous SunDiag Errors
----------------------------------------------------------
probe xbox device failed
action_on_error ioctl command fail xbox status ioctl command fail can not switch to non transparent mode self diag test failed in TEST_NON_TRANSPARENT count %d self diag test failed in TEST_XAC_DVMA count %d self diag test failed in TEST_XBC_DVMA count %d self diag test failed in TEST_XAC_DVMA.int count %d self diag test failed in TEST_XBC_DVMA.int count %d XAC_TRANSPARANT ioctl command fail XAC_NON_TRANSPARANT ioctl command fail (device name): main:fork (device name) XAC_WAIT_FOR_ERROR ioctl command fail XAC_CLEAR_WAIT_FOR_ERROR ioctl command fail ----------------------------------------------------------
Note - Please refer to the SunDiag 2.4 User's Guide for specific information on testing SBus cards and disk drives. Test information may also be included in the documentation accompanying the particular device.