第26章 偽共有の検出
偽共有は、対称型マルチプロセッシング (SMP) システムのプロセッサーコアが、プロセッサー間で共有されていない他のデータアイテムにアクセスするために、他のプロセッサーによって使用されている同じキャッシュラインのデータアイテムを変更すると発生します。
この初期修正では、キャッシュラインを使用する他のプロセッサーがコピーを無効にし、変更されたデータアイテムの更新バージョンをプロセッサーが必要としないにもかかわらず、または必然的にアクセスできる場合でも、更新されたコピーを要求する必要があります。
perf c2c
コマンドを使用して、偽共有を検出できます。
26.1. perf c2c の目的
perf
ツールの c2c
サブコマンドは、Shared Data Cache-to-Cache (C2C) 分析を有効にします。perf c2c
コマンドを使用して、キャッシュライン競合を検査し、true と false の両方の共有を検出できます。
キャッシュラインの競合は、対称型マルチプロセッシング (SMP) システムのプロセッサーコアが、他のプロセッサーによって使用されている同じキャッシュラインにあるデータオブジェクトを修正すると発生します。このキャッシュラインを使用する他のプロセッサーはすべて、コピーを無効にして更新されたものを要求します。これにより、パフォーマンスが低下する可能性があります。
perf c2c
コマンドは、以下の情報を提供します。
- 競合が検出されたキャッシュライン
- データの読み取りおよび書き込みのプロセス
- 競合の原因となった命令
- 競合に関連する NUMA (Non-Uniform Memory Access) ノード