.org; net...@vger.kernel.org;
> >linux-
> >ker...@vger.kernel.org; linux-r...@vger.kernel.org
> >Cc: Souradeep Chakrabarti ; Paul Rosswurm
> >
> >Subject: [EXTERNAL] [PATCH 3/3] net: mana: add a function to spread IRQs per
> >CPUs
> >
> >[Some people who
Rosswurm
>
>Subject: [EXTERNAL] [PATCH 3/3] net: mana: add a function to spread IRQs per
>CPUs
>
>[Some people who received this message don't often get email from
>yury.no...@gmail.com. Learn why this is important at
>https://aka.ms/LearnAboutSenderIdentification ]
>
Rosswurm
>
>Subject: [EXTERNAL] [PATCH 3/3] net: mana: add a function to spread IRQs per
>CPUs
>
>[Some people who received this message don't often get email from
>yury.no...@gmail.com. Learn why this is important at
>https://aka.ms/LearnAboutSenderIdentification ]
>
On Mon, Dec 18, 2023 at 01:17:53PM -0800, Jacob Keller wrote:
>
>
> On 12/17/2023 1:32 PM, Yury Norov wrote:
> > +static __maybe_unused int irq_setup(unsigned int *irqs, unsigned int len,
> > int node)
> > +{
> > + const struct cpumask *next, *prev = cpu_none_mask;
> > + cpumask_var_t cpus _
On 12/17/2023 1:32 PM, Yury Norov wrote:
> +static __maybe_unused int irq_setup(unsigned int *irqs, unsigned int len,
> int node)
> +{
> + const struct cpumask *next, *prev = cpu_none_mask;
> + cpumask_var_t cpus __free(free_cpumask_var);
> + int cpu, weight;
> +
> + if (!alloc_
Souradeep investigated that the driver performs faster if IRQs are
spread on CPUs with the following heuristics:
1. No more than one IRQ per CPU, if possible;
2. NUMA locality is the second priority;
3. Sibling dislocality is the last priority.
Let's consider this topology:
Node0