tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Musings on MSI
On Aug 17, 2011, at 12:11 PM, David Young wrote:
> On Wed, Aug 17, 2011 at 11:52:18AM -0700, Matt Thomas wrote:
>> On Aug 17, 2011, at 9:35 AM, David Young wrote:
>>>> int pci_msi_type(pci_chipset_tag_t pc, pci_msi_handle_t msih);
>>>>
>>>> return the type of msi allocated (PCI_CAP_MSI or PCI_CAP_MSIX). In the
>>>> latter case MSI vectors may not be contiguous.
>>>
>>> Does it matter to the driver whether or not the vectors are contiguous?
>>> Presumably there are no gaps in the available msirq?
>>
>> MSIX doesn't matter, MSI it does.
>
> Can you give an example where a user of this API has to care whether the
> vectors are contiguous or not?
MSI requires contiguous vectors. Period.
MSIX doesn't since each vector has a separate MSIX table entry.
>>>> void pci_msi_disestablish(pci_chipset_tag_t pc, void *ih);
>>>>
>>>> Disestablishes but does not free the MSI.
>>>
>>> You mean, pci_msi_disestablish() does not free to the MSI handle's pool?
>>> Why not?
>>
>> It does. But not to the system pool. pci_msi_free does that.
>
> Does pci_msi_free() give back "excess" msirqs to the system pool? Can
> you give an example of how/why it is used?
It gives all back. You can't release a portion, it's all or nothing.
Home |
Main Index |
Thread Index |
Old Index