SunVTS 2.0 Test Reference Manual
只搜尋這本書
以 PDF 格式下載這本書

mptest

15

Multiprocessor Test (mptest)

The multiprocessor test (mptest) verifies the functionality of multiprocessing hardware. This test allocates a page of virtual memory for the test, declaring the page shared, locks the page against swapping, and creates threads to each of the processors being tested. Up to 64 processors can be tested by mptest in a CPU.
The processor mask argument can be sent to mptest during test probing. The mptest verifies that the current processor mask matches what is entered from the command line or from the GUI/TTYUI.

mptest Options

圖形

Figure 15-1 mptest

The processors that can be tested are listed in the Configuration area of the menu. The multiprocessing test can be enabled or disabled for individual processors on this menu.
The following options can be run alone or concurrently with other options:
  • Processors lets you specify which processors to test. Click SELECT on the check boxes to enable or disable each processor. A check mark means the processor is enabled for testing; the default setting is all processors enabled. Note that mptest requires at least two enabled processors to test multiprocessing systems.
  • Lock/Unlock tests the lock/unlock mechanism that guarantees exclusive access to a physical page to one processor. A thread is created at each of the processors. Each processor uses the SPARC atomic instruction ldstub to write to the same shared physical memory page. While one processor is attempting the write, the other processors should be free spinning for their
turn. As each processor acquires the lock, it writes an ordinal number to a shared trace buffer using a shared write pointer. After the test cycle is complete, the trace buffer is dumped for analysis.
This test fails and returns an error message if the trace buffer does not contain an equal number of ordinal numbers for each processor. For example, if the specified loop count is 5, the trace buffer should contain five 0s, five negative 1s, five 2s, and so on.
  • Data I/O requires two or more threads, each of which locks onto one of the processors. Each processor, in turn, writes data to a temporary file that has been mapped to the physical address. The modified data is immediately read by other processors being tested. This test hangs and fails if the processors do not recognize the expected data.
  • Shared Memory a shared memory buffer is divided into a number of contiguous chunks, one for each of the CPUs participating in the test. Each CPU is assigned a unique chunk based upon its ID (1-N). This subtest has two parts.

    First, each CPU locks and writes data to its data chunk. Identical data is written for each CPU. Then each CPU reads and compares the information on its data chunk with that of another CPU.

    If two CPUs do not confirm consistent data, the test fails and returns an error message. If that happens, testing stops and this test is run again in verbose mode to return more detailed information.

  • Cache Consistency requires two or more processors to access and write to the same physical address. This test verifies that a change in physical address by one processor is confirmed by another.

    If two processors do not confirm consistent data, the test continues to run, but the Pass Count in the SunVTS status window stops incrementing. If this happens, stop testing and run the test again in verbose mode for a more detailed picture of the problem.

mptest Test Modes

Connectivity Mode: The Connectivity Mode checks the current processors on the system with the original processor mask. An error is reported if they do not match. The original processor mask is set during probing, which shows the processors on system during the probe. The status of each selected processor is checked by procsesor_bind.
Online Mode: This test mode verifies that the current processor mask is the same as that from the command line, or the same as that from the GUI/TTYUI.
Offline Mode: The offline test mode is the same as Online Mode.

mptest Command Line Syntax

/opt/SUNWvts/bin/mptest standard_arguments -o M=0+1+2+3...,NL,ND,NS,NC

Arguments Explanation
NLDisable the Lock/Unlock subtest
NDDisable the Data I/O subtest
NSDisable the Shared Memory subtest
NCDisable Cache Consistency subtest
M=<processors to be enabled

omask=<original mask of processors>

Where 0, 1, 2 are processors

mptest Error Messages

The mptest error messages specify problems with specific command-line arguments and explanations or probable causes are listed below:
6000 mp lock failed

Probable_Cause(s):
a. Faulty Processor
Recommended_Action(s):
a. If the problem persists, call your authorized Sun service provider.
6001 All subtests are disabled

Probable_Cause(s):
a. Parameter error
Recommended_Action(s):
a. At least enable one subtest
6002 thr_setconcurrency error

Probable_Cause(s):
a. System load too heavy
 System error

Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
6003 Error in creating threads: <name>

Probable_Cause(s):
a. System load too heavy
 System error

Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
6004 thr_join() thread <number> error status: <number>

Probable_Cause(s):
a. System load too heavy b. System error
Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
6005 Processor Mask Error: Expect <number> Was <number>

Probable_Cause(s):
a. Some processors are disappeared from processor mask
Recommended_Action(s):
a. If the problem persists, call your authorized Sun service provider.
6006 Failed in system call uadmin, errno = <number>,
sys_errlist = <name>

Probable_Cause(s):
a. System load too heavy b. System error
Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
6007 Failed in function getnextbitmsk!

Probable_Cause(s):
a. System error
Recommended_Action(s):
a. If the problem persists, call your authorized Sun service provider.
6008 Processor Mask Error: check mask <number> cpu mask
<number>

Probable_Cause(s):
a. Some processors are disappeared from processor mask
Recommended_Action(s):
a. If the problem persists, call your authorized Sun service provider.
6009 Failed to get shared memory, err = <name>

Probable_Cause(s):
a. System load too heavy b. System error
Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
6010 Failed to create shared memory, err = <name>

Probable_Cause(s):
a. System load too heavy b. System error
Recommended_Action(s):
a. Reduce the system load
b. If the problem persists, call your authorized Sun service provider.
6011 Shared Memory Subtest:  Process <number>, Processor
<number>, *curr_add <number> curr_addr <number>, cpu_mask
<number> failed.

Probable_Cause(s):
a. System load too heavy b. System error
Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
6014 Failed on read & compare: Processor <number>,
read=<number>, exp=<number>

6016 Not a MP system!

Probable_Cause(s):
a. Faulty Processor b. Should not run mptest on this system
8000 Failed to open <name>

Probable_Cause(s):
a. Not enough disk space b. Permission error
c. System error
Recommended_Action(s):
a. Allocate disk space b. Check directory/file permission
c. If the problem persists, call your authorized Sun service provider.
8001 Failed to create a page

Probable_Cause(s):
a. System load too heavy b. System error
Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
8002 mmap address space to device

Probable_Cause(s):
a. System load too heavy b. System error
Recommended_Action(s):
a. Reduce the system load b. If the problem persists, call your authorized Sun service provider.
8003 mlock error.  <name>

Probable_Cause(s):
a. Processor error
Recommended_Action(s):
a. Isolate the bad processor.
8005 All subtests are disabled

Probable_Cause(s):
a. Parameter error: None subtest is selected
Recommended_Action(s):
a. Re-enter command line correctly: At least select one subtest
8006 Can not run mptest! You need to enable at least two
processors.

Probable_Cause(s):
a. Parameter error You have selected less than two processors for testing
Recommended_Action(s):
a. Re-enter command line correctly At least select two processors