ハードウェアカウンタオーバーフローのプロファイルには、次のような制限があります。
ハードウェアカウンタオーバーフローデータの収集を行えるのは、ハードウェアカウンタが用意されていてオーバーフロープロファイルをサポートしているプロセッサにおいてだけです。そのほかのシステムでは、ハードウェアカウンタオーバーフローのプロファイルは無効です。UltraSPARC III プロセッサファミリより前の UltraSPARC プロセッサは、ハードウェアカウンタオーバーフローのプロファイルをサポートしません。
Solaris OS を実行しているシステムで、cpustat(1) コマンドを実行中にハードウェアカウンタオーバーフローのデータを収集することはできません。これは、cpustat がカウンタを制御しており、ユーザープロセスがカウンタを利用できないためです。データ収集中に cpustat を起動すると、ハードウェアカウンタオーバーフローのプロファイルは終了され、実験にエラーが記録されます。
ハードウェアカウンタオーバーフローのプロファイルを行う場合、独自のコードでハードウェアカウンタを使用することはできません。コレクタは libcpc ライブラリ関数に割り込み、コレクタからの呼び出しではなかった場合、-1 の戻り値で復帰します。ハードウェアカウンタへのアクセスの取得に失敗した場合に正常に機能するようにプログラムをコーディングする必要があります。この処理を行うようにコーディングされていない場合、ハードウェアカウンタプロファイル時に、スーパーユーザーがカウンタを使用するシステム全体のツールを起動した場合、またはそのシステムでカウンタがサポートされていない場合にプログラムが失敗します。
dbx をプロセスに接続することによって、ハードウェアカウンタライブラリを使用している実行中プログラムのハードウェアカウンタデータを収集しようとすると、実験が壊れることがあります。
使用可能なすべてのカウンタの一覧を表示するには、引数を指定せずに collect コマンドを実行します。