2024-05-10 14:15:42

by Keith Busch

[permalink] [raw]
Subject: [PATCH 1/2] genirq/affinity: remove rsvd check against minvec

From: Keith Busch <[email protected]>

The reserved vectors are just the desired vectors that don't need to be
managed.

Signed-off-by: Keith Busch <[email protected]>
---
kernel/irq/affinity.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
index 44a4eba80315c..74b7cccb51a16 100644
--- a/kernel/irq/affinity.c
+++ b/kernel/irq/affinity.c
@@ -113,9 +113,6 @@ unsigned int irq_calc_affinity_vectors(unsigned int minvec, unsigned int maxvec,
unsigned int resv = affd->pre_vectors + affd->post_vectors;
unsigned int set_vecs;

- if (resv > minvec)
- return 0;
-
if (affd->calc_sets) {
set_vecs = maxvec - resv;
} else {
--
2.43.0



2024-05-10 15:16:20

by Ming Lei

[permalink] [raw]
Subject: Re: [PATCH 1/2] genirq/affinity: remove rsvd check against minvec

On Fri, May 10, 2024 at 07:14:58AM -0700, Keith Busch wrote:
> From: Keith Busch <[email protected]>
>
> The reserved vectors are just the desired vectors that don't need to be
> managed.
>
> Signed-off-by: Keith Busch <[email protected]>
> ---
> kernel/irq/affinity.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
> index 44a4eba80315c..74b7cccb51a16 100644
> --- a/kernel/irq/affinity.c
> +++ b/kernel/irq/affinity.c
> @@ -113,9 +113,6 @@ unsigned int irq_calc_affinity_vectors(unsigned int minvec, unsigned int maxvec,
> unsigned int resv = affd->pre_vectors + affd->post_vectors;
> unsigned int set_vecs;
>
> - if (resv > minvec)
> - return 0;
> -

This behavior is introduced in 6f9a22bc5775 ("PCI/MSI: Ignore affinity if pre/post
vector count is more than min_vecs"), which is one bug fix.

Thanks,
Ming


2024-05-10 16:48:00

by Keith Busch

[permalink] [raw]
Subject: Re: [PATCH 1/2] genirq/affinity: remove rsvd check against minvec

On Fri, May 10, 2024 at 11:15:54PM +0800, Ming Lei wrote:
> On Fri, May 10, 2024 at 07:14:58AM -0700, Keith Busch wrote:
> > From: Keith Busch <[email protected]>
> >
> > The reserved vectors are just the desired vectors that don't need to be
> > managed.
> >
> > Signed-off-by: Keith Busch <[email protected]>
> > ---
> > kernel/irq/affinity.c | 3 ---
> > 1 file changed, 3 deletions(-)
> >
> > diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
> > index 44a4eba80315c..74b7cccb51a16 100644
> > --- a/kernel/irq/affinity.c
> > +++ b/kernel/irq/affinity.c
> > @@ -113,9 +113,6 @@ unsigned int irq_calc_affinity_vectors(unsigned int minvec, unsigned int maxvec,
> > unsigned int resv = affd->pre_vectors + affd->post_vectors;
> > unsigned int set_vecs;
> >
> > - if (resv > minvec)
> > - return 0;
> > -
>
> This behavior is introduced in 6f9a22bc5775 ("PCI/MSI: Ignore affinity if pre/post
> vector count is more than min_vecs"), which is one bug fix.

Thanks for the pointer. Probably best I avoid messing with irq code just
for this use case, so I can have the driver disable the PCI_IRQ_AFFINTY
flag instead ... assuming hch doesn't "nak" it. :)