Re: [Patch v1] i40e: limit the msix vectors based on housekeeping CPUs

From: Nitesh Narayan Lal
Date: Fri Jun 26 2020 - 16:11:51 EST



On 6/16/20 4:03 AM, Christoph Hellwig wrote:
> On Mon, Jun 15, 2020 at 04:21:25PM -0400, Nitesh Narayan Lal wrote:
>> + hk_flags = HK_FLAG_DOMAIN | HK_FLAG_WQ;
>> + mask = housekeeping_cpumask(hk_flags);
>> + cpus = cpumask_weight(mask);
> Code like this has no business inside a driver. Please provide a
> proper core API for it instead. Also please wire up
> pci_alloc_irq_vectors* to use this API as well.
>

Hi Christoph,

I have been looking into using nr_houskeeping_* API that I will be defining
within pci_alloc_irq_vectors* to limit the nr of vectors.
However, I am wondering about a few things:

- Some of the drivers such as i40e until now, use the num_online CPUs to
 restrict the number of vectors that they should create. Will it make sense if
 I restrict the maximum vectors requested based on
 nr_online/housekeeping_cpus (Though I will have to make sure that the
 min_vecs is always satisfied)?

 The other option would be to check for the total available vectors in all
 online/housekeeping CPUs for limiting the maxvecs, this way will probably be
 more accurate?

- Another thing that I am wondering about is the right way to test this change.

Please let me know if you have any suggestions?

--
Nitesh

Attachment: signature.asc
Description: OpenPGP digital signature