我不是司机程序员,我没有清楚说明linux如何为pcie设备分配irq号。
从一个NIC驱动程序示例中,似乎Linux已经知道在“probe”或“open”函数被执行之前应该使用哪个irq编号。
err = ixgbe_request_irq(adapter);
ixgbe可以通过使用'adapter'变量的数据来获取irq数,这意味着irq值已经在适配器结构中,它不是生成的数字,它是已经存在的值。
如果从pci / pcie配置空间读取,是不是很容易与其他设备冲突?
如果由内核生成/安排,那么irq编号如何已经在'adapter'变量中? (或者是由BIOS分配的?)
对于MSI的中断,它似乎是由内核生成的?