Re: crypto/cavium MSI-X fixups

From: Christoph Hellwig
Date: Wed Feb 22 2017 - 02:28:06 EST

On Tue, Feb 21, 2017 at 09:36:04AM -0800, David Daney wrote:
> With respect to pci_enable_msix(), what do you recommend as a replacement?

pci_alloc_irq_vectors. In fact I have a tree ready for after -rc1
that removes pci_enable_msix() entirely.

> For the crypto/cavium driver, you recommend pci_alloc_irq_vectors(), which
> works well if the required MSI-X indexes are contiguous starting at zero.
> What would be used for a device that has 184 MSI-X, but only a sparse
> subset (fewer than half) of these are required for the driver operation.
> It would waste system resources to use an API that forces us to allocate
> 184 when only 80 are required.

Currently we don't have a good API for that. I've not been through all
users of pci_enable_msix_{range,exact} yet, but so far I've only found
one user not using all vectors from 0 to some limit. Depending how many
such users we have and how they'll look I will have to look into an API
to support that use case.