C H A P T E R  37

Multiprocessor Test (mptest)


mptest Description

The mptest verifies the proper hardware functioning of multiprocessor hardware. The test provides diagnostic test coverage for different aspects of multiprocessor functionality, such as E-cache coherency, synchronization primitives, I/O cache coherency and shared memory, and interprocessor interrupts.

The mptest is adaptive to different cache size and line sizes. The test causes cache coherency operations for E-Cache and I/O Cache. It also tests the synchronization primitives provided by the sparcv8/sparcv9 architecture.



Note - mptest is not supported on sun4m platforms in SunVTS 5.1 PS6 or subsequent compatible versions.





caution icon

Caution - This is an exclusive mode test. This test can not be run in parallel with any other tests or applications.





caution icon

Caution - mptestby default selects the CPUXCall class of test method. If CPUXCall is selected, and mptestis run, the machine might seem hung for a few minutes. The duration depends on the number of CPUs.




mptest Options

To reach the following dialog box, right-click on the test name in the System Map and select Test Parameter Options. If you do not see this test in the System Map, you might need to expand the collapsed groups, or your system might not include the device appropriate to this test. Refer to the SunVTS User's Guide for more details.


FIGURE 37-1 mptest Test Parameter Options Dialog Box

Screenshot of mptest Test Parameter Options dialog box


The processors that can be tested are listed in the Configuration area of the menu. You can enable or disable the multiprocessing test for individual processors on this menu.

The options listed in the following table can be run alone or concurrently with other options.


TABLE 37-1 mptest Options

mptest Options

Description

Processors

This option can be used to select the CPU IDs for which to run this test. The test uses all CPUs on the system by default. Thus, this parameter is optional.

The CPU IDs currently present in the system can be retrieved with the psrinfo(1M) command.

Specifying a CPU ID not present in the system or one that is currently offline induces an appropriate error message from the test.

Class of Test Methods

The Multiprocessor (MP) functionality consists of different components. A class of test method is used to specify the functionality of the MP system to be tested. Currently, the Class-of-Test methods supported by mptest are: E-CacheCoherency, IOCacheCoherency, SynchronizationPrimitives, and SharedMemory, and CPUXCall.

This option can be used to selectively test one or more of the MP functions. If you do not specify the class of test methods, E-CacheConsistency and SynchronizationPrimitives are selected by default.

Test Tone

A test tone is a different way of executing the same test. Selecting a different test tone exercises and tests the MP functionality in a slightly different manner.

The tone option can be used to select the test tone for the test. The supported test tones are Random and Parallel mode.

The Random test tone introduces some randomness in testing. The ParallelTone implies that the tests perform parallel operations (like write) on different CPUs at the same time.

This tone option is optional.

If you do not specify any option, then the test assumes a normal tone of testing.

mpcons Test Tone

Selects the tone for mpconstest cases in the mptest. These options are directly from the mpconstest.

The descriptions from the mpconstest options are as follows:

  • mlockBuffer - Lock the shared buffer in memory
  • AtomicMode - Enable Atomic mode
  • ByteMode - Enable Byte mode
  • ImmediateMode - Enable Immediate mode
  • RandomMode - Enable Random mode
  • ReverseMode - Reverse direction to decrement through memory
  • PrefetchMode - Enable use of V9 prefetch instructions
  • Trigger - Enable LA trigger on error
  • Offset - Enable use of linesize buffer offsets

This option is not mandatory. By default, the mpcons-tone assumes a normal mode of operation.

Number of Iterations

Same option as in mpcontest. Selects the number of iterations for running the test loops. The range for this option is 1 to 200 and the default is 5.

Number Of Timeout Iterations

Same option as in mpcontest. Selects number of timeout iterations.

CPU Wait Count 0

Same option as in mpcontest. Forces CPU 1 to write first if number of CPUs is less than count.

Number of Loops

Same option as in mpcontest. Sets loops to specified value.

Memory Size 0--Use Default

Same option as in mpcontest. Specifies memory size (MB). This should always be set to the default value.

Random Mode Seed 0

Same option as in mpconstest. Sets random number seed to specified value.

Strand Level Test

Performs strand level testing for multi-stranded processors such as Niagara. This option selects all strands for testing instead of selecting one strand/core. Thes option can be set to Yes or No.



mptest Test Modes


TABLE 37-2 mptest Supported Test Modes

Test Mode

Description

Exclusive

Tests the selected multiprocessor functionality.



mptest Command-Line Syntax

/opt/SUNWvts/bin/mptest standard-arguments M=4+5+6+7, method=ECacheCoherency+IOCacheCoherency+SynchronizationPrimitives+SharedMemory+CPU Call, tone=ParallelMode+Random, mpcons-tone=mlockBuffer+AtomicMode+ByteMode+ImmediateMode+RandomMode+ReverseMode+PrefetchMode+Trigger+Offset, count=[1-200], mpcons-numtmout=[1-10], mpcons-wait=0, mpcons-loops=[1-999], mpcons-memsize=0, mpcons-seed=0, strandleveltest=Yes|No


TABLE 37-3 mptest Command-Line Syntax

mptest Options

Description

M=4+5+6+7

Selects the CPU IDs for which to run this test. The test uses all CPUs on the system by default. Hence, this parameter is optional.

The CPU IDs currently present in the system can be retrieved with the psrinfo(1M) command.

Specifying a CPU ID not present in the system or one which is currently offline induces an appropriate error message from the test.

Example: If you want to select CPU IDs 4, 5, 6 and 7, specify: M=4+5+6+7. The behaviour is little different for multi-stranded processors such as Niagara. Each ID corresponds to a CPU ID of a strand in any core. If strandleveltest is set to No, only one CPU from a strand is chosen. To override this behavior, that is. to select more than one strand from a core, the strandleveltest option must be set to Yes.

method=ECacheCoherency+IOCacheCoherency+SynchronizationPrimitives+SharedMemory+CPUXCall

Selectively tests one or more of the MP functions. If you do not specify the class of test methods, E-CacheConsistency, SynchronizationPrimitives, and CPUXCall are selected by default.

The Multiprocessor (MP) functionality consists of different components. A class of test method is used to specify the functionality of the MP system to be tested. The Class-of-Test methods supported by mptest are: E-CacheCoherency, IOCacheCoherency, SynchronizationPrimitives, SharedMemory, and CPUXCall.

tone=ParallelMode+Random

A test tone is a different way of executing the same test. Selecting a different test tone exercises and tests the MP functionality in a slightly different manner.

The tone option can be used to select the test tone for the test. The supported test tones are: Random and Parallel mode.

The Random test tone introduces some randomness in testing. The ParallelTone implies that the tests perform parallel operations (like write) on different CPUs at the same time.

This tone option is optional.

If you do not specify an option, the test assumes a normal tone of testing.

mpcons-tone=mlockBuffer+AtomicMode+ByteMode+ImmediateMode+RandomMode+ReverseMode+PrefetchMode+Trigger+Offset

Selects the tone for mpconstest cases in the mptest. These options are directly from the mpconstest.

The descriptions from thes mpconstest options are as follows:

  • mlockBuffer - Lock the shared buffer in
  • memoryAtomicMode - Enable Atomic
  • modeByteMode - Enable Byte
  • modeImmediateMode - Enable Immediate
  • modeRandomMode - Enable Random Mode
  • ReverseMode - Reverse direction to decrement through memory
  • PrefetchMode - Enable use of V9 prefetch instructions
  • Trigger - Enable LA trigger on error
  • Offset - Enable use of linesize buffer offsets

This option is not mandatory. By default, the mpcons-tone assumes a normal mode of operation.

count=[1-200]

Selects the number of iterations for running the test loops. The range for this option is 1 to 200 and the default is 5.

mpcons-numtmout=[1-10]

Same option as in mpcontest. Selects number of timeout iterations.

mpcons-wait=0

Same option as in mpcontest. Forces CPU 1 to write first if number of CPUs is less than count.

mpcons-loops=[1-999]

Same option as in mpcontest. Sets loops to specified value.

mpcons-memsize=0

Same option as in mpcontest. Specifies memory size (MB). This should always be set to the default value.

mpcons-seed=0

Same option as in mpcontest. Sets random number seed to specified value.

dev=mp

Specifies the device.

strandleveltest=Yes|No

Enables the strand level testing and selects all strands for testing. The default option No performs the most optimal testing and is the most generally used. This option doesnt have any effect on non-multistranded processors such as UltraSPARC IV+.