Re: [PATCH v4 4/4] PCI: Limit pci_alloc_irq_vectors() to housekeeping CPUs
From: Peter Zijlstra
Date: Fri Oct 23 2020 - 04:58:53 EST
On Thu, Oct 22, 2020 at 01:47:14PM -0400, Nitesh Narayan Lal wrote:
> Hi Peter,
>
> So based on the suggestions from you and Thomas, I think something like the
> following should do the job within pci_alloc_irq_vectors_affinity():
>
> + if (!pci_is_managed(dev) && (hk_cpus < num_online_cpus()))
> + max_vecs = clamp(hk_cpus, min_vecs, max_vecs);
>
> I do know that you didn't like the usage of "hk_cpus < num_online_cpus()"
> and to an extent I agree that it does degrade the code clarity.
It's not just code clarity; I simply don't understand it. It feels like
a band-aid that breaks thing.
At the very least it needs a ginormous (and coherent) comment that
explains:
- the interface
- the usage
- this hack
> However, since there is a certain inconsistency in the number of vectors
> that drivers request through this API IMHO we will need this, otherwise
> we could cause an impact on the drivers even in setups that doesn't
> have any isolated CPUs.
So shouldn't we then fix the drivers / interface first, to get rid of
this inconsistency?
> If you agree, I can send the next version of the patch-set.
Well, it's not just me you have to convince.