Multiprocessor Test (mptest)
|
The mptest verifies the hardware functionality 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 onward.
|
|
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 24-1 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 can be run alone or concurrently with other options.
TABLE 24-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
|
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. 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.
|
Strand Level Test
|
Performs strand level testing for high end multi-stranded processors. 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 24-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, strandleveltest=Yes|No
TABLE 24-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 high end multi-stranded processors. 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. Currently, 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+.
|
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).
|