xperf 调用堆栈函数:“System\Interrupts + DPCs”

Posted

技术标签:

【中文标题】xperf 调用堆栈函数:“System\\Interrupts + DPCs”【英文标题】:xperf call stack functions: "System\Interrupts + DPCs"xperf 调用堆栈函数:“System\Interrupts + DPCs” 【发布时间】:2018-05-08 23:49:32 【问题描述】:

在使用 xperf 分析 Windows 性能时,我收集了跟踪信息并获得了调用堆栈数据。如果继续深入调用堆栈,跟踪有时会以System\Interrupts + DPCsSystem\ETW overhead 结束。

我附加了一个堆栈跟踪,显示相同:

折叠的跟踪再次调用System\Interrupts + DPCs<itself>

这些堆栈条目是什么意思?这里调用了哪些函数?忽略它是否安全(不过,我对此表示怀疑)?

【问题讨论】:

【参考方案1】:

您正在查看的是框架标签。这是一个可选显示,其中一堆实际调用被折叠在有意义的描述(标签)下。 您可以通过显示不同的列来查看实际的堆栈(“堆栈”,名称中没有标签一词)。

如果您查看跟踪属性,您会发现一个指向标签定义文件的链接。您可以编辑它或提供您自己的。这有助于按主题组合相关的堆栈调用以加快分析速度。

见https://docs.microsoft.com/en-us/windows-hardware/test/wpt/stack-tags

【讨论】:

Git 吧。堆栈标签在开始时将功能组合在一起。堆栈框架标签在堆栈的最末端对函数进行分组。

以上是关于xperf 调用堆栈函数:“System\Interrupts + DPCs”的主要内容,如果未能解决你的问题,请参考以下文章

为啥没有“通用事件”的调用堆栈

使用 xperf 获取符号

微软网站下载XPerf没有成功

使用 xperf 分析网络事件

Xperf 摘要窗口混乱

Xperf (ETW) 如何测量驱动程序加载时间?