此外,需要注意的是,在旧内核中,IRQ number和硬件的连接有一定的关系,但是,在引入irq domain后,IRQ number已经变成一个单纯的number,和硬件没有任何关系。 三、中断描述符数据结构 1、底层irq chip相关的数据结构 中断描述符中应该会包括底层irq chip相关的数据结构,linux kernel中把这些数据组织在一起,形成struct i...
参考IRQD_xxxxstructirq_chip*chip;---该中断描述符对应的irqchip数据结构structirq_domain*domain;---该中断描述符对应的irqdomain数据结构void*handler_data;---和外设specifichandler相关
此外,需要注意的是,在旧内核中,IRQ number和硬件的连接有一定的关系,但是,在引入irq domain后,IRQ number已经变成一个单纯的number,和硬件没有任何关系。 三、中断描述符数据结构 1、底层irq chip相关的数据结构 中断描述符中应该会包括底层irq chip相关的数据结构,linux kernel中把这些数据组织在一起,形成struct i...
系统中每一个连接外设的中断线(irq request line)用一个中断描述符来描述,每一个外设的interrupt request line分配一个中断号(irq number),系统中有多少个中断线(或者叫做中断源)就有多少个中断描述符(struct irq_desc)。NR_IRQS定义了该硬件平台IRQ的最大数目。 总之,一个静态定义的表格,irq number作为index,每...
包括每个中断的名字、中断号 IRQ number、每个中断的触发次数、在哪个CPU核处理的、是边沿触发还是电平触发,属于哪个中断控制器,都会打印出来。 /proc/irq/… 进入这个目录。会看到以中断号命名的文件夹,每个中断号文件夹下面都有几个节点,存储了这个中断的信息,比如 smp_affinity、affinity_hint、spurious等。smp_aff...
一、概述 在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断: 1、IRQ number。CPU需要为每一个外设中断编号,我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外设中断。 2、HW i
Linux里面引入IRQ domain来管理分布式的中断控制器的情况,具体参见The irq_domain interrupt number mapping library.还有Linux中断子系统分析之(三):irq domain 首先从PCI-MSI这个角度来分析,查阅Linux的相关文档,MSI需要分配vector,而这个vector相当于GICv3里面的SPI INTID,而这个分配工作应该是由MSI的irq_domain来负责...
在上述示例中,IRQ 0在CPU0上运行,IRQ 1在CPU0上运行,IRQ 8在CPU0上运行,IRQ 9没有绑定到任何一个CPU。 2. lshw:该命令用于显示系统硬件信息,包括IRQ和对应的CPU。在命令行中输入lshw,然后查找IRQ相关的信息即可。 3. cat /proc/irq/IRQ_NUMBER/smp_affinity:将IRQ_NUMBER替换为要查询的IRQ号,该命令可以...
cat 这个节点,会打印系统中所有的中断信息,包括每个中断的名字、中断号 IRQ number、每个中断的触发次数、在哪个CPU核处理的、是边沿触发还是电平触发,属于哪个中断控制器,都会打印出来。 Linux 中断相关节点 /proc/interrupts cat 这个节点,会打印系统中所有的中断信息,如果是多核CPU,每个核都会打印出来。
1、底层irq chip相关的数据结构 中断描述符中应该会包括底层irq chip相关的数据结构,linux kernel中把这些数据组织在一起,形成struct irq_data,具体代码如下: struct irq_data { u32 mask;---TODO unsigned int irq;---IRQ number unsigned long hwirq...