Thread (59 messages) 59 messages, 5 authors, 2018-10-30

Re: [PATCH 11/14] irq: add support for allocating (and affinitizing) sets of IRQs

From: Thomas Gleixner <hidden>
Date: 2018-10-30 17:46:17
Also in: linux-scsi, lkml

On Tue, 30 Oct 2018, Jens Axboe wrote:
On 10/30/18 11:25 AM, Thomas Gleixner wrote:
quoted
Jens,

On Tue, 30 Oct 2018, Jens Axboe wrote:
quoted
On 10/30/18 10:02 AM, Keith Busch wrote:
quoted
pci_alloc_irq_vectors_affinity() starts at the provided max_vecs. If
that doesn't work, it will iterate down to min_vecs without returning to
the caller. The caller doesn't have a chance to adjust its sets between
iterations when you provide a range.

The 'masks' overrun problem happens if the caller provides min_vecs
as a smaller value than the sum of the set (plus any reserved).

If it's up to the caller to ensure that doesn't happen, then min and
max must both be the same value, and that value must also be the same as
the set sum + reserved vectors. The range just becomes redundant since
it is already bounded by the set.

Using the nvme example, it would need something like this to prevent the
'masks' overrun:
OK, now I hear what you are saying. And you are right, the callers needs
to provide minvec == maxvec for sets, and then have a loop around that
to adjust as needed.
But then we should enforce it in the core code, right?
Yes, I was going to ask you if you want a followup patch for that, or
an updated version of the original?
Updated combo patch would be nice :)

Thanks

	lazytglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help