SunVTS 3.4 テストリファレンスマニュアル

第 26 章 マルチプロセッサテスト (mptest)

mptest は、多重処理ハードウェアの機能を検査します。このテストは、テスト用に 1 ページの仮想メモリーを開始時に確保して、そのページの共有宣言とスワップ禁止を行い、テストする各プロセッサにスレッドを生成します。1 つの CPU の mptest で、最高 256 個のプロセッサをテストすることができます。

テストプローブ中に、プロセッサマスク引数を使用することができます。mptest は、現在のプロセッサマスクが、コマンド行または GUI/TTY UI から入力されたものと一致するかどうかを調べます。

mptest のオプション

ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックし、Test Parameter Options を選択します。システムマップにこのテスト名が表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合は、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 3.4 ユーザーマニュアル』を参照してください。

図 26-1 mptest のテストパラメタオプションダイアログボックス

Graphic

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 は、増分を停止します。この場合は、テストを停止し、もう一度詳細モードで実行してください。問題の詳細がさらに明確になります。 

mptest のテストモード

表 26-2 mptest のテストモード

テストモード 

説明 

接続テストモード 

システム上の現在のプロセッサと元のプロセッサマスクが照合され、一致しない場合は、エラーが報告されます。元のプロセッサマスクは、プローブ中に設定されます。このプローブでは、システムのすべてのプロセッサが示されます。選択された各プロセッサの状態が、processor_bind によって検査されます。

機能テストモード(オフライン) 

現在のプロセッサマスクが、コマンド行または GUI/TTYUI から入力したものと同じかどうかを調べます。 

機能テストモード(オンライン) 

現在のプロセッサマスクが、コマンド行または GUI/TTYUI から入力したものと同じかどうかを調べます。 

mptest のコマンド行構文

/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 ビットテスト」を参照してください。


mptest のエラーメッセージ

表 26-4 mptest のエラーメッセージ

 

エラーメッセージ 

考えられる原因 

対処方法 

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

存在しないプロセッサがコマンド行で指定されています。選択されたプロセッサがオフラインです。 

コマンド行とオプションファイルを確認してください。エラーがなくならない場合は、購入先に問い合わせてください。