如何知道哪个内核发送了处理器间中断?
Posted
技术标签:
【中文标题】如何知道哪个内核发送了处理器间中断?【英文标题】:How to know which core that send the inter-processor interrupt? 【发布时间】:2019-10-28 03:19:54 【问题描述】:我正在研究 ARM64。我在void handle_IPI(int ipinr, struct pt_regs *regs)
中的linux/arch/arm64/kernel/smp.c
中添加了一个处理器间中断(IPI)处理程序。
当我得到一个 IPI 时,我想知道哪个内核发送这个 IPI。比如core 3发送一个IPI给core 0,然后core 0得到这个IPI,我想知道这个IPI是来自core 3的IPI handler。
有办法吗?
非常感谢。
【问题讨论】:
【参考方案1】:我最近正在研究 cortex-A9 平台上的 IPI,它使用 ARM GIC 作为中断控制器。经过一些代码阅读,我发现核心信息丢失在irq-gic.c中。也许您应该修改handle_IPI 原型或在handle_IPI 之前调用您的特定IPI 处理程序。两者都是使用触发器信息添加自定义 IPI 处理程序的丑陋方式。
【讨论】:
以上是关于如何知道哪个内核发送了处理器间中断?的主要内容,如果未能解决你的问题,请参考以下文章