首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >英特尔处理器跟踪入门(英特尔PT)

英特尔处理器跟踪入门(英特尔PT)
EN

Stack Overflow用户
提问于 2015-07-28 21:43:06
回答 2查看 1.7K关注 0票数 1

我已经阅读过《英特尔®64与IA-32体系结构软件开发人员手册》第3卷(3A、3B和3C):系统编程指南》的第36章,能够理解英特尔PT的功能/特性。然而,我无法获得如何使用它的信息。如果我想要开始捕获跟踪,我应该如何继续,在哪里可以配置我感兴趣的选项?任何指向此类信息的指针都将非常有帮助。一旦我有了这些信息,我就可以按照上面提到的36章对捕获的跟踪进行分析。

EN

回答 2

Stack Overflow用户

发布于 2015-12-10 14:07:48

你可以用Linux内核4.3来做这件事,下面是包含的补丁:

https://lkml.org/lkml/2013/12/11/233

https://lkml.org/lkml/2015/9/24/181

https://lkml.org/lkml/2015/9/27/45

这是PT与其他英特尔功能(如LBT)的交互:

https://lkml.org/lkml/2014/7/31/572

请阅读tools/perf/ documentation /intel-pt.txt上的文档,了解如何使用。

英特尔的Andi Kleen是Skylake/Broadwell补丁的创始人(只有这两个处理器支持英特尔PT),他有一个用户空间工具来演示其用于调试的用法:

https://github.com/andikleen/simple-pt

例如,根据上面的工具,下面是两种不同的用法:

"sptcmd -c tcall任务集-c 0。/tcall“

"sptdecode --边带ptout.sideband --pt ptout.0“。

票数 3
EN

Stack Overflow用户

发布于 2017-06-01 03:36:01

您问题的解决方案包括两个不同的部分:首先,您需要配置系统的处理器以开始收集处理器跟踪信息,然后将该数据转储到一个文件中,以便稍后进行处理。其次,您需要能够理解该文件内容的工具。

必须回答的第一个问题是:您运行的是什么操作系统?执行处理器配置和数据收集的代码将需要在系统/内核级别运行,因此您必须习惯于为该空间编写驱动程序,或者能够找到已经完成这项工作的程序。

如上所述,从4.1内核开始,Linux内核已经内置了对处理器跟踪的支持,并集成到了perf工具中。一些措辞得当的搜索应该就是你所需要的一切,以利用这一点。

对于早期版本的Linux,可以在https://github.com/andikleen/simple-pt上找到上面描述的simple-pt内核模块

这个模块至少可以在3.0内核中工作,并且添加起来相当简单。如果您想要完全移植到不同的操作系统,它也是一个很好的起点,因为它为您提供了一个如何让处理器执行正确的技巧来收集数据的示例。

该库还具有用户空间实用程序,用于配置和控制simple-pt内核模块,就像我们将其作为解码模块输出的工具一样。同样,如果您需要迁移到不同的操作系统,这些可以作为您自己项目的起点。请注意,这些实用程序需要英特尔跟踪解码器库(libipt):https://github.com/01org/processor-trace

还要注意,simple-ptlibipt的版本并不同步。为了正确构建,最新的simple-pt依赖于libipt的中间版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31678090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档