0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux中断子系统相关节点

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:Jasonangel 2023-09-27 17:32 次阅读

Linux 中断相关节点

/proc/interrupts

cat 这个节点,会打印系统中所有的中断信息,如果是多核CPU,每个核都会打印出来。

包括每个中断的名字、中断号 IRQ number、每个中断的触发次数、在哪个CPU核处理的、是边沿触发还是电平触发,属于哪个中断控制器,都会打印出来。

/proc/irq/…

进入这个目录。会看到以中断号命名的文件夹,每个中断号文件夹下面都有几个节点,存储了这个中断的信息,比如smp_affinity、affinity_hint、spurious等。smp_affinity代表中断号核CPU之间的亲缘绑定关系,也就是如果某个中断号绑定了一个CPU核,那么这个中断就会一直在这个CPU上处理。

如何让某个中断在某个特定的 CPU 处理?

kernel 2.4 以后的版本才支持把不同的硬件中断请求(IRQs)分配到特定的 CPU 上,这个绑定威廉希尔官方网站 被称为 SMP IRQ Affinity.更多介绍请参看 Linux 内核源代码自带的文档:linux-4.14/Documentation/IRQ-affinity.txt

/proc/irq/{IRQ}/smp_affinity

/proc/irq/{IRQ}/smp_affinity_list

/proc/irq/{IRQ}/smp_affinity 指定给定的 irq中断号源允许哪些CPU执行,它是一个掩码位,比如是ff,代表11111111,表示这个中夺冠可以在 8 个 CPU 执行,具体在哪一个 CPU执行,靠分配器分配。
如果这个 /proc/irq/{IRQ}/smp_affinity 指定为00000001,代表这个IRQ只能在最后一个CPU核进行处理,其他CPU不允许处理,大家可以测试一下,主测试是 OK的(GIC支持,其他中断控制器不一定)。

串口手动赋值的重启以后会消失,可以在代码中调用 irq_set_affinity 函数,指定中断的掩码,来达到某个中断被固定CPU处理的需求。

中断分发机制

对于 GIC-V2 而言,SPI 的分发是根据 Distributor 中的 Interrupt Processor Targets Registers 来决定的。对于任何一个 SPI,其都有在某个 GICD_ITARGETSRn 寄存器中有 8 个bit标识送达的processor,如果只有一个 bit 被 set,那么就很简单了,如果该中断是当前优先级最高的中断,那么 Distributor 就会送到对应的 CPU interface,该中断最终会送达指定的 CPU。

如果该中断对应的 Interrupt Processor Targets Registers 中的那 8 个 bit 有多个 bit 被 set
的话,Distributor 如何处理呢?“依次轮着把产生的中断给各个CPU,还是说看哪个CPU有空就给哪个CPU来着”,让硬件处理这么复杂的逻辑有些不合适,实际上,GIC的硬件是不会进行任何判断的,也不会集成任何的算法,它就是根据Interrupt Processor Targets Registers的bit设定情况,忠实的把中断送往指定的一个processor或者多个processors。

大家可以去看看 gic_set_affinity 这个函数,这个函数确保一个中断的 Interrupt Processor Targets
Registers 中的那8个bit只有一个bit被设定。

/kernel5.15/drivers/irqchip/irq-gic-v3.c

图片图片

在 1244 和 1246 行,1246 行就是在 online 的 CPU 中选中一个,1263 行写入到寄存器中,GIC 会读取这个寄存器,是哪个 CPU,然后将中断发给这个CPU。中间的函数很简单,大家可以自己看。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40284
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10858

    浏览量

    211670
  • Linux
    +关注

    关注

    87

    文章

    11300

    浏览量

    209403
  • 子系统
    +关注

    关注

    0

    文章

    109

    浏览量

    12397
收藏 人收藏

    评论

    相关推荐

    PCB布局的关键:开关节点走线尺寸满足电流?(3)

    PCB布局的关键:开关节点走线尺寸满足电流?|深圳比创达EMC(3)
    的头像 发表于 08-08 11:00 1366次阅读

    电源技巧#7:通过更好的去耦减少开关节点振铃

    高电流,负载点(POL)降压转换器利用金属氧化物半导体场效应晶体管(MOSFET)为输出滤波器提供脉冲宽度调制(PWM)脉冲序列。降压转换器功率级元件的布局将直接影响开关节点上的振铃幅度,如果控制
    发表于 09-26 10:43

    控制同步降压转换器中的开关节点振铃

    控制同步降压转换器中的开关节点振铃
    发表于 09-26 10:47

    关节点的振铃

    就“开关节点的振铃”来验证其主要原因。在设计实际的布线图形时,对寄生成分等的处理无处不在。本章中还就以下项目进行说明,要理解各项目需要参考前后相关项目,因此下面列出包括计划在内的项目一览。降压型转换器
    发表于 12-03 14:33

    方波波形开关节点概述

    所有功率级设计者期望在开关节点看到完美的方波波形。快速上升/下降边降低了开关损耗,而低过冲和振铃最小化功率FET上的电压应力。采用TI最新的GaN威廉希尔官方网站 设计,图1a所示的功率级开关节点波形真的引人瞩目
    发表于 08-26 04:45

    无线传感器网络的普通节点和网关节点怎么实现?

    的限制。以此超低功耗单片机MSP430为核心,结合无线收发模块nRF24E1,对无线传感器网络的普通节点和网关节点进行了设计。
    发表于 10-18 07:28

    STM32系统时钟配置操作的一些关节点

    本文,使用一问一答的方式,解说STM32系统时钟配置操作的一些关节点。不讨论配置的过程、步骤,网上不缺絮絮叨叨的各种教程。一句话:过程高深,使用简单.详细代码解释下载
    发表于 08-11 07:17

    Arm Linux中断子系统相关资料分享

    1. Arm Linux 中断子系统1.1. 中断硬件系统3个组成部分:外设(中断源)、
    发表于 05-23 15:21

    方波波形开关节点为什么受欢迎

    采用TI最新的GaN威廉希尔官方网站 设计,图1a所示的功率级开关节点波形真的引人瞩目。其在120V / ns转换速率下,从0V升到480V,并具有小于50V的过冲。 图1:TI 600V半桥功率级——开关波形
    发表于 11-15 06:43

    基于Cortex_M3的多功能楼宇控制系统关节点设计

    基于Cortex_M3的多功能楼宇控制系统关节点设计
    发表于 09-25 13:07 7次下载
    基于Cortex_M3的多功能楼宇控制<b class='flag-5'>系统</b>网<b class='flag-5'>关节点</b>设计

    方波波形开关节点大受欢迎

    方波波形开关节点大受欢迎
    发表于 11-02 08:16 0次下载
    方波波形开<b class='flag-5'>关节点</b>大受欢迎

    使用RC缓冲电路去除开关节点谐波噪声

    引言:降压转换器IC的开关节点容易产生很多高次谐波噪声,缓冲电路作为除去这些高次谐波噪声的手段之一,本节简述如何使用RC缓冲电路去除开关节点谐波噪声。
    的头像 发表于 06-28 15:56 2485次阅读
    使用RC缓冲电路去除开<b class='flag-5'>关节点</b>谐波噪声

    PCB布局的关键:尽量缩短开关节点走线长度?

    PCB布局的关键:尽量缩短开关节点走线长度?|深圳比创达EMC(2)
    的头像 发表于 08-07 11:20 1009次阅读
    PCB布局的关键:尽量缩短开<b class='flag-5'>关节点</b>走线长度?

    如何使用RC缓冲电路去除开关节点谐波噪声

    降压转换器IC的开关节点容易产生很多高次谐波噪声,缓冲电路作为除去这些高次谐波噪声的手段之一,本节简述如何使用RC缓冲电路去除开关节点谐波噪声。
    发表于 04-30 14:46 1135次阅读
    如何使用RC缓冲电路去除开<b class='flag-5'>关节点</b>谐波噪声

    减小反激式转换器开关节点电压尖峰的流程

    电子发烧友网站提供《减小反激式转换器开关节点电压尖峰的流程.pdf》资料免费下载
    发表于 09-20 11:19 0次下载
    减小反激式转换器开<b class='flag-5'>关节点</b>电压尖峰的流程