qq_38839860 2023-09-01 14:04 采纳率: 40%
浏览 6
已结题

关于LINUX多核SMP中断绑定CPU的问题?

我在学习的过程中,创建了gpio按键中断,但是我想做下实验,我cat /proc/interrupts 发现我的的中断类型为gpio,网卡等中断类型是GICV3,我想将我自己的按键中断绑定在CPU2上,使用echo "2" > /proc/irq/70/smp_affinity
sh: echo: write error: Input/output error,但是我绑定网卡等中断就可以,我搞不明白,是否有这个方向的学习资料。

  • 写回答

1条回答 默认 最新

  • raymond27 2023-09-01 14:41
    关注

    首先,要理解中断和CPU的关系。每个CPU都有其自己的中断控制器(Interrupt Controller,IC),这个控制器会将来自设备的所有中断信号路由到系统中的特定CPU上。因此,你不能直接将一个特定的中断绑定到特定的CPU上。你只能控制哪个CPU可以接收来自特定中断控制器(如GIC)的中断。

    关于你遇到的问题,echo "2" > /proc/irq/70/smp_affinity 这个命令是用来控制GIC的中断在哪些CPU之间进行亲和性调度。这适用于GIC类型的中断,而不适用于GPIO或其他非GIC类型的中断。

    如果你想将你的GPIO中断路由到特定的CPU,你可能需要查看你的硬件和操作系统的文档,看看是否有任何选项可以让你控制这个。这可能涉及到修改你的设备驱动,或者修改系统的中断路由配置。

    在Linux内核中,中断的路由和分配是由中断控制器的驱动程序来控制的。这包括GIC、GPIO等。对于具体的设备,你需要查看设备的技术手册或者Linux内核的文档。

    此外,关于Linux中断和SMP(多处理器)的更多信息,你可以查阅Linux内核的文档或者相关的教科书。这是一项深入的工作,需要理解操作系统、硬件和驱动程序的基础知识。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月9日
  • 已采纳回答 9月1日
  • 创建了问题 9月1日

悬赏问题

  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项