C H A P T E R  8

Multiprocessor Test (mptest)

The mptest verifies the hardware functionality of multiprocessor hardware. The test provides diagnostic test coverage for different aspects of multiprocessor functionality like 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.



caution icon

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




mptest Options

To reach the dialog box below, 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 may not include the device appropriate to this test. Refer to the SunVTS User's Guide for more details.

FIGURE 8-1 mptest Test Parameter Options Dialog Box

Screenshot of env6test 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 can be run alone or concurrently with other options.

TABLE 8-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 will use 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.

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 will exercise and test 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

This option is used to select the tone for mpconstest cases in the mptest. These are options directly from the mpconstest.The descriptions from the mpconstest options are as follows:mlockBuffer - Lock the shared buffer in memoryAtomicMode - Enable Atomic modeByteMode - Enable Byte modeImmediateMode - Enable Immediate modeRandomMode - Enable Random ModeReverseMode - Reverse direction to decrement through memoryPrefetchMode - Enable use of V9 prefetch instructionsTrigger - Enable LA trigger on errorOffset - 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. This option is used to select 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 mpcontest. Sets random number seed to specified value.



mptest Test Modes
TABLE 8-2 mptest Supported Test Modes

Test Mode

Description

Exclusive

This test mode tests the user 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

TABLE 8-3 mptest Command-Line Syntax

mptest Options

Description

M=4+5+6+7

This option can be used to select the CPU IDs for which to run this test. The test will use 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

method=ECacheCoherency+IOCacheCoherency+SynchronizationPrimitives+SharedMemory+CPUXCall

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, 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, SynchronizationPrimitives, and CPUXCall are selected by default.

tone=ParallelMode+Random

A test tone is a different way of executing the same test. Selecting a different test tone will exercise and test 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_tone=mlockBuffer+AtomicMode+ByteMode+ImmediateMode+RandomMode+ReverseMode+PrefetchMode+Trigger+Offset

This option is used to select the tone for mpconstest cases in the mptest. These are options 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]

This option is used to select 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.




Note - 64-bit tests are located in the sparcv9 subdirectory: /opt/SUNWvts/bin/sparcv9/testname, or the relative path to which you installed SunVTS. If a test is not present in this directory, then it may only be available as a 32-bit test. For more information refer to the "32-Bit and 64-Bit Tests" section of the SunVTS 5.1 Test Reference Manual (816-5145-10).