gpt4 book ai didi

linux-kernel - perf 如何使用 offcore 事件?

转载 作者:行者123 更新时间:2023-12-04 01:48:51 24 4
gpt4 key购买 nike

一些内置的 perf 事件被映射到 offcore 事件。例如,LLC-loadsLLC-load-misses 映射到 OFFCORE_RESPONSE. 事件。正如 here 中所讨论的,这可以很容易地确定。 .然而,这些核外事件需要将特定值写入特定 MSR 寄存器以实际指定特定事件。 perf 似乎正在使用一个名为 snb_hw_cache_extra_regs 的数组指定要写入哪些 MSR 寄存器的值。我想知道这个数组是如何使用的。基本上我想知道如何通过查看源代码来确定 perf 事件映射到的特定 offcore 事件。

最佳答案

存储了 offcore PM MSR 的数组 here对于 SnB,其他架构接近。
INTEL_UEVENT_EXTRA_REGhere它只是将 msr 设置为第二个参数,将 config_mask 设置为 0x000000FFULL 并将 valid_mask 设置为第三个参数(第一个是对关联的普通 PMR 进行编程的事件)。

snb_hw_cache_extra_regs 的值就是将要写入所选 PM MSR1 的值。
查找此数组 here并使用 here选择第一个 PM MSR 匹配,其中 config arg 来自数组 hw_cache_event_ids .

所以它基本上是一个循环测试几个位掩码,直到找到兼容的 PM MSR,我认为您可以跳过它并查看存储在 snb_hw_cache_extra_regs 数组中的值。


1由于为使 snb_hw_cache_extra_regs 中的值而定义的宏从未在源代码中重复使用,并且这些值直接映射到 Intel 手册中记录的 MSR 布局,因此我没有费心验证此声明。

关于linux-kernel - perf 如何使用 offcore 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54223074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com