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

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

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

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

mptest のオプション

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

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

Graphic

Configuration: の下に、テストできるプロセッサが表示されます。このメニューのプロセッサごとに、マルチプロセッサテストを有効にしたり、無効にしたりすることができます。

以下のオプションは、単独で実行することも、または他のオプションと並行して実行することもできます。

表 38-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 のテストモード

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

テストモード 

サポート 

説明 

接続テスト 

○ 

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

機能テスト 

(オフライン) 

○ 

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

mptest のコマンド行構文

/opt/SUNWvts/bin/mptest 標準引数 -o M=0+1+2+3...,NL,ND,NS,NC,omask=16_進数

表 38-3 mptest のコマンド行構文

引数 

説明 

M=0+1+2+3...

0、1、2 はテストするプロセッサを指定します。 

NL

ロック・ロック解除テストを無効にします。 

ND

データ入出力テストを無効にします。 

NS

共有メモリーテストを無効にします。 

NC

キャッシュ整合性テストを無効にします。 

omask=16_進数

プロセッサのオリジナルマスク。ビット 0 はプロセッサ 0 を表し、ビット 1 はプロセッサ 1 を表します。例: 03333320


注 -

64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。