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

第 36 章 キャッシュ整合性テスト (mpconstest)

mpconstest は、1 つ以上のキャッシュラインに対して競合を作ることによって、マルチプロセッサ環境でキャッシュの整合性が保たれていることを検証します。このテストにはいくつかのサブテストがあり、その各々が、キャッシュラインに対して異なる種類の競合を作るように設計されています。各サブテストは様々な方法を使用して、共有メモリーバッファー、ストライドサイズ、中間格納または読み込みをテストします。

mpconstest は起動されると、共有メモリーバッファーを作成します。次に、システム上の CPU の数を判定します。それぞれの CPU に対して、次の手順でテストを実行します。

  1. スレッドをフォークし、CPU にバインドします。

  2. 選択したサブテストをスレッドで実行します。

  3. 各 CPU に、1 〜 n の ID 番号を割り当てます。ID 1 が割り当てられた CPU が、マスターとみなされます。

上記の手順が、サブテストのそれぞれについて繰り返されます。1 度に選択できるのは、1 つのサブテストだけです。

このテストは、スケーラブルテストではありません。

mpconstest テストの条件

このテストでは、テスト対象のシステムに少なくとも 2 つの CPU が必要です。この条件が満たされていないと、このテストはオプションとして表示されません。

mpconstest は、SPARC CPU ハードウェアアーキテクチャーの v8plus 規格をサポートするマシンでだけ実行できます。v8plus 命令がサポートされていない場合は、mpconstest はテスト選択 GUI に表示されません。マシンが v8plus 規格をサポートするかどうかを判定するには、そのマシンのコマンドプロンプトで、次のように入力します。

% isalist

sparcv9+vis sparcv9 sparcv8plus+vis sparcv8plus sparcv8


注 -

この一連のテストは、マシンの動作による影響を非常に受けやすいので、他のテストと同時に実行しないでください。


mpconstest のサブテスト

mpconstest のオプション

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

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

Graphic

表 36-1 mpconstest のオプション

オプション 

説明 

Test Name 

実行するサブテストを選択します。 

Number of Timeout Iterations 

タイムアウトまでにテストを実行できる回数を設定します。デフォルトは 1 です。各タイムアウトは、前回のタイムアウトよりもかなり時間が経過した後に発生することに注意してください。つまり、最初のタイムアウトが T 時間単位後に発生したとすると、2 回目は T の後 2T で、3 回目は 2T の後 3T で発生します。

Atomic Mode 

不可分な命令スワップを使用します。デフォルトでは使用不可になっています。 

Byte Mode 

バイト命令を使用して読み込みと格納を行います。デフォルトでは使用不可になっています。 

Immediate Mode 

使用できません。 

Random Mode 

使用できません。 

Reverse Mode 

共有メモリーバッファーを逆方向にトラバースします。デフォルトでは使用不可になっています。 

Prefetch Mode 

読み取りと書き込みにプリフェッチを設定します。デフォルトでは使用不可になっています。 

CoreFile 

コアファイルを生成します。予期しないシグナルの場合は終了します。デフォルトでは使用不可になっています。 

Ecache Disable 

外部キャッシュを使用不可にします。デフォルトでは使用可能になっています。 

Trigger 

1 つのプロセッサが障害を検出した場合に、すべてのプロセッサに割り込みシグナルを送信します。デフォルトでは使用不可になっています。 

Verbose 

冗長メッセージを印刷します。デフォルトでは使用不可になっています。 

Offset 

継続した書き込みと書き込みの間の、ラインサイズのオフセットを指定します。デフォルトでは使用不可になっています。 

Ism 

使用できません。 

CPU Wait Count 

CPU の数が cpucount より少ない場合、最初に CPU 1 が書き込みを行うようにします。デフォルトでは使用不可になっています。

Number of Loops 

テストループの数を選択します。デフォルトは 5 です。 

Number of Passes 

パスの数を選択します。パスの数が多いほど、システムの負担が大きくなります。パスの数を 0 に設定すると、永久ループでテストが実行されます。パスを 0 に設定できるのは、コマンド行モードでだけです。GUI からは設定できません。デフォルトは 1 です。 

Memory Size 

共有メモリーバッファーのサイズをメガバイト単位で選択します。デフォルトは 128 です。 

Random Mode Seed 

ランダムモードは使用不可であるため、このオプションも使用不可です。 

mpconstest のテストモード

表 36-2 mpconstest のテストモード

テストモード 

サポート 

説明 

接続テスト 

× 

サポートされていません。 

機能テスト 

(オフライン) 

○ 

フルテストを実行します。

mpconstest のコマンド行構文

/opt/SUNWvts/bin/mpconstest 標準引数 -o tst=1|2,itm=数値,a,b,c,e,h,loops=数値,memsize=メモリーサイズ, wait=cpucount,passes=パス,r,t,v,x,y

表 36-3 mpconstest のコマンド行構文

引数 

説明 

tst=1|2

サブテスト cons1 または cons2 を選択します。 

itm=数値

タイムアウトまでにテストを実行できる回数を設定します。デフォルトは 1 です。各タイムアウトは、前回のタイムアウトよりもかなり時間が経過した後に発生することに注意してください。つまり、最初のタイムアウトが T 時間単位後に発生したとすると、2 回目は T の後 2T で、3 回目は 2T の後 3T で発生します。

a

不可分モードにします。不可分命令スワップを使用します。 

b

バイトモードにします。バイト命令を使用して読み込みと格納を行います。 

c

コアファイルを生成します。予期しないシグナルの場合は終了します。 

e

外部キャッシュを使用不可にします。 

h

使用法メッセージを出力します。 

loops=数値

反復のループ数を設定します。デフォルトは 5 です。 

memsize=メモリーサイズ

共有メモリーバッファーのサイズをメガバイト単位で選択します。デフォルトは 128 です。 

wait=cpucount

CPU の数が cpucount より少ない場合、最初に CPU 1 が書き込みを行うようにします。

passes=パス

パスの数を選択します。パスの数が多いほど、システムの負担が大きくなります。パスの数を 0 に設定すると、永久ループでテストが実行されます。パスを 0 に設定できるのは、コマンド行モードでだけです。GUI からは設定できません。デフォルトは 1 です。 

r

反転モードを使用可能にします。共有メモリーバッファーを逆方向にトラバースします。 

t

トリガーを使用可能にします。1 つのプロセッサが障害を検出した場合に、すべてのプロセッサに割り込みシグナルを送信します。 

v

冗長モードにします。 

x

プリフェッチを可能にします。読み取りと書き込みをプリフェッチで行います。 

y

オフセットを使用可能にします。継続した書き込みと書き込みの間の、ラインサイズのオフセットを指定します。