- 博客(2)
- 收藏
- 关注
原创 msix中断 pci_alloc_irq_vectors_affinity 简单分析
这里主要操作在于,irq_affinity决定了有哪些中断不需要affinity,所以这里判断了一个逻辑min(cpus, vecs),比如我是8核处理器,申请10个中断,其中2个中断不需要绑核,这样刚刚好,但是我要是申请11个中断,其中两个中断不需要绑核,那就有一个需要绑核的中断无核可绑(禁止ntr),所以系统建议,最多只申请10个中断。在这里面,irq_create_affinity_masks 非常重要,因为正是这里,真正意义上准备好了绑核。先看irq_calc_affinity_vectors。
2023-12-04 16:29:40 1225
原创 msix 中断解析
中有request irq的操作,也就是绑定irq和handle,但是在这之前需要先申请irq,因为irq自然不是自己随便设个值就能用的,是需要内核进行管理,也就是pci_alloc_irq_vectors_affinity要做的事情,这个函数做的事情有很多,大体上可以总结为,分配好irq, 每个irq对应一个msg,或者叫 entry ,比如申请了8个中断,就把这些msg信息一项一项写到pci设备对应的bar里面,这些信息的头一般叫做 msix table。一般中断,只需要通知到一个cpu就可以了!
2023-11-29 15:10:47 1053 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人