为Intel PT注册自定义中断处理程序

时间:2018-06-16 13:29:37

标签: c linux interrupt interrupt-handling irq

我目前正在为英特尔处理器跟踪(PT)编写自定义驱动程序。

根据英特尔软件开发人员手册Vol。 3C 36-13,CPU “将在输出包装之前尝试发出ToPA PMI中断信号 覆盖缓冲区的顶部。“

我正在努力寻找如何在内核时通知内核 PMI发生。我有关于编写通用IRQ处理程序的各种资源(特别是LDD3 Ch. 10), 但是无法弄清楚PT中断的IRQ号码 - 或者如果它有一个。

我还查看了在Linux内核中处理PT的代码,但无法弄清楚中断处理程序的注册位置和方式:https://elixir.bootlin.com/linux/v4.17.2/source/arch/x86/events/intel/pt.c#L1245

非常感谢任何指针,资源甚至代码参考。

1 个答案:

答案 0 :(得分:0)

要查找引用标识符的位置,我们使用该网站上的“搜索标识符”框。 它立即给出了这个结果:https://elixir.bootlin.com/linux/v4.17.2/source/arch/x86/events/intel/core.c#L2299

因此,intel_pt_interrupt来自intel_pmu_handle_irq

那里的评论解释了后者是什么以及如何调用它。 简而言之,PMI不是正常的中断,因此阅读LDD书籍不会产生有用的信息。有关深奥的英特尔拱门详细信息的更多问题,请访问communities.intel.com上的英特尔论坛