mptest は、多重処理ハードウェアの機能を検査します。このテストは、テスト用に 1 ページの仮想メモリーを開始時に確保して、そのページの共有宣言とスワップ禁止を行い、テストする各プロセッサにスレッドを生成します。1 つの CPU の mptest で、最高 1024 個のプロセッサをテストすることができます。
テストプローブ中に、プロセッサマスク引数を使用することができます。mptest は、現在のプロセッサマスクが、コマンド行または GUI/TTY UI から入力されたものと一致するかどうかを調べます。
ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックし、Test Parameter Options を選択します。システムマップにこのテスト名が表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合は、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 4.0 ユーザーマニュアル』を参照してください。
Configuration: の下に、テストできるプロセッサが表示されます。このメニューのプロセッサごとに、マルチプロセッサテストを有効にしたり、無効にしたりすることができます。
以下のオプションは、単独で実行することも、または他のオプションと並行して実行することもできます。
表 26-1 mptest のオプション
オプション |
説明 |
---|---|
Processors |
テストするプロセッサを指定します。セレクトボタンでチェックボックスをクリックして、各プロセッサを使用可能または使用不可にします。チェックマークが付くと、そのプロセッサはテストに使用可能になります。デフォルトの設定は、すべてのプロセッサが使用可能になっています。 注 - mptest を使用して多重処理システムをテストするには、2 つ以上の使用可能なプロセッサが必要です。 |
Lock/Unlock |
1 つのプロセッサに、物理ページへの排他アクセスを保証する、ロック・ロック解除機構をテストします。スレッドが各プロセッサで生成されます。各プロセッサは、SPARC 不可分命令 ldstub を使用して、同じ共有物理メモリーページに書き込みます。1 つのプロセッサが書き込みを行っている間は、他のプロセッサはアイドル状態で、順番を待つ必要があります。各プロセッサは、ロックを獲得すると、共有書き込みポインタを使用して、序数を共有トレースバッファーに書き込みます。テストサイクルが完了した後、解析のためにトレースバッファーがダンプされます。
トレースバッファーに書き込まれた各プロセッサの序数の個数が異なると、テストは失敗してエラーメッセージを返します。たとえば、指定したループカウントが 5 であれば、トレースバッファーには、5 つの 0、5 つの 1、5 つの 2 というように序数が書き込まれている必要があります。 |
Data I/O |
2 つ以上のスレッドを必要とし、その各々がプロセッサの 1 つでロックします。各プロセッサは、次に物理アドレスに割り当てられた一時ファイルにデータを書き込みます。変更されたデータは、直ちにテスト中の他のプロセッサによって読み取られます。プロセッサが予測したデータを認識しないと、このテストは中断して失敗します。 |
Shared Memory |
共有メモリーバッファーは、テストに関わっている CPU ごとに連続したいくつかの領域に分割されます。各 CPU は、その ID (1 〜 N) に基づいて、独自の領域を割り当てられます。このサブテストは 2 つの部分に分かれます。
まず、各 CPU は、そのデータ領域をロックしてデータを書き込みます。同一のデータが CPU ごとに書き込まれます。次に、各 CPU は、そのデータ領域にあるデータを読み取り、他の CPU のデータと比較します。 2 つの CPU がデータが一致することを確認できない場合は、テストは失敗し、エラーメッセージが返されます。この場合は、テストを停止して、再度詳細モードで実行してください。さらに詳細な情報が返されます。 |
Cache Consistency |
同一の物理アドレスにアクセスして書き込む 2 つ以上のプロセッサを必要とします。このテストは、1 つのプロセッサによる物理アドレスの変更が他のプロセッサによって確認されるかどうかを検査します。
2 つのプロセッサが、データが一致することを確認できない場合も、テストは継続されますが、SunVTS 状態ウィンドウの Pass Count は、増分を停止します。この場合は、テストを停止し、もう一度詳細モードで実行してください。問題の詳細がさらに明確になります。 |
テストモード |
サポート |
説明 |
---|---|---|
接続テストモード |
○ |
システム上の現在のプロセッサと元のプロセッサマスクが照合され、一致しない場合は、エラーが報告されます。元のプロセッサマスクは、プローブ中に設定されます。このプローブでは、システムのすべてのプロセッサが示されます。選択された各プロセッサの状態が、processor_bind によって検査されます。 |
機能テストモード(オフライン) |
○ |
現在のプロセッサマスクが、コマンド行または GUI/TTYUI から入力したものと同じかどうかを調べます。 |
機能テストモード(オンライン) |
○ |
現在のプロセッサマスクが、コマンド行または GUI/TTYUI から入力したものと同じかどうかを調べます。 |
/opt/SUNWvts/bin/mptest 標準引数 -o M=0+1+2+3...,NL,ND,NS,NC,omask=16_進数
表 26-3 mptest のコマンド行構文
引数 |
説明 |
---|---|
NL |
ロック・ロック解除テストを無効にします。 |
ND |
データ入出力テストを無効にします。 |
NS |
共有メモリーテストを無効にします。 |
NC |
キャッシュ整合性テストを無効にします。 |
M=0+1+2+3... |
0、1、2 はテストするプロセッサを指定します。 |
omask=16_進数 |
プロセッサのオリジナルマスク。ビット 0 はプロセッサ 0 を表し、ビット 1 はプロセッサ 1 を表します。例: 03333320 |
64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。
|
エラーメッセージ |
考えられる原因 |
対処方法 |
---|---|---|---|
6000 |
mp lock failed |
プロセッサの不良 |
エラーがなくならない場合は、購入先に問い合わせてください。 |
6001 |
All subtests are disabled |
パラメタエラー |
少なくとも 1 つのサブテストを有効にしてください。 |
6002 |
thr_setconcurrency error |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。 |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
6003 |
Error in creating threads: 名前 |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。 |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
6004 |
thr_join() thread 数値 error status: 数値 |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。 |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
6005 |
Processor Mask Error: Expect 数値 Was 数値 |
プロセッサマスクから一部プロセッサが消えています。 |
エラーがなくならない場合は、購入先に問い合わせてください。 |
6006 |
Failed in system call uadmin, errno = 数値, sys_errlist = 名前 |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。 |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
6007 |
Failed in function getnextbitmsk! |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
6008 |
Processor Mask Error: check mask 数値 cpu mask数値 |
プロセッサマスクから一部プロセッサが消えています。 |
エラーがなくならない場合は、購入先に問い合わせてください。 |
6009 |
Failed to get shared memory, err = 名前 |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。
|
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
6010 |
Failed to create shared memory, err = 名前 |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
6011 |
Shared Memory Subtest: Process 数値, Processor 数値, *curr_add 数値 curr_addr 数値, cpu_mask 数値 failed |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。 |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
6014 |
Failed on read & compare: Processor 数値, read=数値, exp=数値 |
|
|
6016 |
Not a MP system! |
プロセッサの不良 |
|
このシステムで mptest を実行することはできません。 |
|
||
8000 |
Failed to open 名前 |
ディスクの空き領域が不足しています。 |
ディスク領域を確保してください。 |
アクセス権のエラー |
ディレクトリまたはファイルに対するアクセス権を調べてください。 |
||
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
8001 |
Failed to create a page |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。 |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
8002 |
mmap address space to device |
システムに多大な負荷がかかっています。 |
システムの負荷を減らしてください。 |
システムエラー |
エラーがなくならない場合は、購入先に問い合わせてください。 |
||
8003 |
mlock error. 名前 |
プロセッサエラー |
不良プロセッサを切り分けてください。 |
8005 |
All subtests are disabled |
パラメタエラー。サブテストが選択されていません。 |
コマンド行を正しく入力してください。少なくとも 1 つのサブテストを選択してください。 |
8006 |
Can not run mptest! You need to enable at least two processors |
パラメタエラー。2 つ以上のプロセッサが選択されていません。 |
コマンド行を正しく入力してください。少なくとも 2 つのプロセッサを選択してください。 |
8008 |
alloc error:エラーメッセージ |
システムの負荷が大きすぎるか、システムエラーです。 |
エラーがなくならない場合は、購入先に問い合わせてください。 |
8010 |
CPU number 数値:Expected ID 数値, was 数値 |
プロセッサマスクに現れないプロセッサがあります。 |
エラーがなくならない場合は、購入先に問い合わせてください。 |
8014 |
Processor 数値 is not online or does not exist |
存在しないプロセッサがコマンド行で指定されています。選択されたプロセッサがオフラインです。 |
コマンド行とオプションファイルを確認してください。エラーがなくならない場合は、購入先に問い合わせてください。 |