Fork me on GitHub
侧边栏

随笔分类 -  interrupt

摘要:Interaction of group and individual interrupt enables 在 ARM GICv3和GICv4架构中, GICD_* 和 GICR_* 寄存器 组 决定了处理器元素(PE)能够识别的最高优先级 pending interrupt 。这些寄存器决定PE的 阅读全文
posted @ 2025-05-11 21:03 yooooooo 阅读(43) 评论(0) 推荐(0)
摘要:GIC 各种中断使能配置 在ARM GICv3和GICv4架构中,不同类型的中断(如PPIs、SPIs、SGIs和LPIs)可以通过 不同的 方式进行启用和禁用。 下面详细介绍这些中断的启用和禁用方法: PPIs(每个处理器私有中断) 启用和禁用PPIs :通过向 GICR_ISENABLER0 和 阅读全文
posted @ 2025-05-10 17:03 yooooooo 阅读(264) 评论(0) 推荐(0)
摘要:Enabling the distribution of interrupts 在 ARM GICv3和GICv4体系结构中,中断分发的启用与禁用是通过一系列控制位来实现的。这些控制位分布在不同的控制寄存器中,用于控制中断分组的分发以及CPU接口处的中断分组分发。 GIC Distributor 中 阅读全文
posted @ 2025-04-27 23:09 yooooooo 阅读(62) 评论(0) 推荐(0)
摘要:GIC 中断分类 ARMv9架构继续支持ARMv8引入的中断管理机制,包括 SPI (共享外设中断)、PPI(每处理器中断)和SGI(软件生成的中断)。这些中断类型为不同的应用场景提供了灵活性和高效的中断处理方式。此外,GIC V3中断控制器的组成部分包括:distributor,Redistrib 阅读全文
posted @ 2025-04-27 18:31 yooooooo 阅读(510) 评论(0) 推荐(1)
摘要:1、IPI概况 IPI,全称是Inter-Processor Interrupt,是在soc内多个core之间触发的中断,这一点有别与常见的外设中断,因此内核专门预留了部分中断号给IPI,在arm64架构上是0-15这16个中断号。以常用的gicv3中断控制器驱动为例,IPI中断的处理在如下代码中: 阅读全文
posted @ 2025-04-01 22:13 yooooooo 阅读(646) 评论(0) 推荐(0)
摘要:1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 分析背景 本文分析基于 linux-4.19.157 内核代码分析 3. 问题 在使用全志H3机器时,观察到一个现象,外设中断总是集中在 CPU0 处理 : # cat /proc/interrupts 阅读全文
posted @ 2024-11-27 14:15 yooooooo 阅读(400) 评论(0) 推荐(0)
摘要:本章介绍了符合GICv3架构的中断控制器的基本操作。它还描述了不同的编程接口。 一.中断类型 SPI(Shared Peripheral Interrupt)--共享外设中断 ​ 这是一个全局外设中断,可以路由到指定的PE,或路由到一组PE中的一个。 PPI (Private Peripheral 阅读全文
posted @ 2024-10-19 18:45 yooooooo 阅读(448) 评论(0) 推荐(0)
摘要:GICV3 PE是ARM架构中通用中断控制器(Generic Interrupt Controller)版本3的一个组件,PE代表处理器元素(Processor Element)。 GICV3是ARM提出的中断控制器架构,用于管理和分发系统中的中断。PE是GICV3架构中与每个处理器核心相关联的部分 阅读全文
posted @ 2024-10-19 18:27 yooooooo 阅读(126) 评论(0) 推荐(0)
摘要:GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构)。目前 阅读全文
posted @ 2024-10-13 16:33 yooooooo 阅读(293) 评论(0) 推荐(1)
摘要:前言 在上一篇 LINUX软中断-softirq的描述中,提到过ksoftirqd,这篇文章就介绍ksoftirqd ksoftirqd 是什么? ksoftirqd 是个内核线程,在创建的时候是绑定cpu的,每一个core对应生成一个ksoftirqd 线程 比如当前系统有4个core ~# ps 阅读全文
posted @ 2024-10-09 18:13 yooooooo 阅读(1486) 评论(0) 推荐(0)
摘要:/proc/interrupts 和 /proc/softirqs 两者是相互关联的,但它们各自记录的信息和作用有所不同,反映了硬中断和软中断的两个处理阶段。 两者的关系: 硬中断引发软中断: 硬中断通常由外部设备(如网络卡、键盘等)触发,当 CPU 响应硬中断时,会暂时停止当前正在执行的任务,去处 阅读全文
posted @ 2024-09-27 15:05 yooooooo 阅读(140) 评论(0) 推荐(0)
摘要:one shot本身的意思的只有一次的,结合到中断这个场景,则表示中断是一次性触发的,不能嵌套。对于primary handler,当然是不会嵌套,但是对于threaded interrupt handler,我们有两种选择,一种是mask该interrupt source,另外一种是unmask该 阅读全文
posted @ 2018-04-27 10:08 yooooooo 阅读(7515) 评论(0) 推荐(0)
摘要:Linux kernel的中断子系统之(一):综述 Linux kernel的中断子系统之(二):IRQ Domain介绍 linux kernel的中断子系统之(三):IRQ number和中断描述符 linux kernel的中断子系统之(四):High level irq event hand 阅读全文
posted @ 2018-04-26 18:23 yooooooo 阅读(337) 评论(0) 推荐(0)