【发布时间】:2021-08-18 15:44:15
【问题描述】:
我正在尝试收集有关从内存层次结构中检索与给定存储/加载关联的数据的位置的信息。
当使用perf 收集这些信息并使用perf script 提取它时,我发现我的许多样本都有类似以下的解码数据源信息:
L1 miss|SNP N/A|TLB L2 hit|LCK No
L3 miss|SNP N/A|TLB L1 or L2 hit|LCK No
但是,我对在给定的缓存级别(例如,L1 miss、L3 miss)missed 的样本意味着什么感到困惑。它不应该在某处命中,并且不应该报告该命中吗?
我了解这些信息是由perf 通过perf_event_open 使用PERF_SAMPLE_DATA_SRC 收集的。
查看Linux kernel repo,发现如下commit message,说明这个理解是正确的:
This patch adds PERF_SAMPLE_DATA_SRC.
PERF_SAMPLE_DATA_SRC collects the data source, i.e., where
did the data associated with the sampled instruction
come from. ...
【问题讨论】: