- 论坛徽章:
- 0
|
原帖由 eRicBIN 于 2008-11-19 13:00 发表
在PCI规范里有讲
对于驱动来说,MSI和INTx没有区别
Yes, MSI and MSI-X are defined in PCI Conventional spec 3.0
For PCI, both of them are optional; for PCI-E, at least one of them must be implemented. Because MSI has a potential weakness (PVM : Per-Vector masting is optional), most PCI-E devices implements MSI-X directly.
The device vendor can implement both MSI and MSI-X for their device/function, but for the system software(OS kernel, driver), at most one of them can be enabled at the same time.
PCI-E spec 1.1 or 2.0 doesn't talk a lot about MSI/MSI-X, because they are already defined in PCI 3.0
>>对于驱动来说,MSI和INTx没有区别
Not true. Driver should used MSI/MSI-X instead of INT<X> to improve performance. Let's take an example, legacy INT<X> might be shared with other devices/functions, so, on the interrupt the OS will call every handler of this interrupt line to handle it. It's slow, and to some extent, ineffective.
As for MSI/MSI-X, the interrupts are not shared between functions. The device write a MSI/MSI-X message directly to the FSB, even without bothering IO-APIC! Apparently it's a better choice.
*I'm not able to input Chinese words now*. |
|