スピンロック パラメーターのカスタマイズ
既定で、システムでは、1000 件の競合していないすべての取得に対して 1 つのスピンロック イベントをログに記録し、競合が発生するたびに 1 つのスピンロック イベントを記録します。 スピンロック データ収集は、データ収集をカスタマイズするための 3 つのパラメーターをサポートしています。 スピンロック収集パラメーターを設定するには、次のコマンドを使用します。
xperf -setspinlocksample [spin_threshold] [acquire_sample_rate] [contention_sample_rate]
パラメーター
spin_threshold
スピンロック インストルメンテーションは、頻繁に競合するロックをトレースする機能を提供します。 これは、高いスピンしきい値を設定することによって実現されます。 ロックのスピンがこのしきい値未満の場合、スピンロック イベントはログ記録されません。 たとえば、この値が 1 の場合、ロックを取得しようとするたびに 1 つのスピンロック イベントが取得されます。 この値が 10 の場合、ロックを取得しようとするたびに 1 つのスピンロック イベントがログ記録されます。 既定値は 1 です。
acquire_sample_rate
トレース中にスピンロック イベントがログ記録されるサンプル レート。 たとえば、この値が 1000 の場合、1000 件の競合しないイベントの取得ごとに 1 つのスピンロック イベントがログ記録されます。 既定値は 1000 です。
contention_sample_rate
競合が発生したときにスピンロック イベントがログ記録される速度。 たとえば、この値が 100 の場合、100 件のスピンロック競合ごとに 1 つのスピンロック イベントがログ記録されます。 既定値は 1 です。
注釈
スピンロック収集パラメーターは、システムの再起動時に既定値に戻ります。 有効なデータ収集を保証するには、イベント データの収集を開始する前に、常にスピンロック パラメーターをクエリまたは設定します。
例
次の例は、現在の値をクエリする方法を示しています。
xperf -spinlock
次の例では、スピンしきい値を 1、取得サンプル レートを 1000、スピンロック競合サンプル レートを 100 に設定しています。
xperf -setspinlocksample 1 1000 100
このクエリは、前の例で設定された値に対して次の結果を返します。
Current Spinlock Spin Threshold = 1
Current Spinlock Acquire Sample Rate = 1000
Current Spinlock Contention Sample Rate = 100