Messages in this thread | | | From | Valentin Schneider <> | Subject | Re: [PATCH 2/2] net/mlx5e: Leverage sched_numa_hop_mask() | Date | Thu, 11 Aug 2022 15:26:59 +0100 |
| |
On 10/08/22 15:57, Tariq Toukan wrote: > On 8/10/2022 1:51 PM, Valentin Schneider wrote: >> Signed-off-by: Valentin Schneider <vschneid@redhat.com> >> --- >> drivers/net/ethernet/mellanox/mlx5/core/eq.c | 16 ++++++++++++++-- >> 1 file changed, 14 insertions(+), 2 deletions(-) >> > > Missing description. > > I had a very detailed description with performance numbers and an > affinity hints example with before/after tables. I don't want to get > them lost. >
Me neither! This here is just a stand-in to show how the interface would be used, I'd much rather have someone who actually knows the code and can easily test it do it :)
> >> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c >> index 229728c80233..2eb4ffd96a95 100644 >> --- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c >> +++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c >> @@ -809,9 +809,12 @@ static void comp_irqs_release(struct mlx5_core_dev *dev) >> static int comp_irqs_request(struct mlx5_core_dev *dev) >> { >> struct mlx5_eq_table *table = dev->priv.eq_table; >> + const struct cpumask *mask; >> int ncomp_eqs = table->num_comp_eqs; >> + int hops = 0; >> u16 *cpus; >> int ret; >> + int cpu; >> int i; >> >> ncomp_eqs = table->num_comp_eqs; >> @@ -830,8 +833,17 @@ static int comp_irqs_request(struct mlx5_core_dev *dev) >> ret = -ENOMEM; >> goto free_irqs; >> } >> - for (i = 0; i < ncomp_eqs; i++) >> - cpus[i] = cpumask_local_spread(i, dev->priv.numa_node); >> + >> + rcu_read_lock(); >> + for_each_numa_hop_mask(dev->priv.numa_node, hops, mask) { > > We don't really use this 'hops' iterator. We always pass 0 (not a > valuable input...), and we do not care about its final value. Probably > it's best to hide it from the user into the macro. >
That's a very valid point. After a lot of mulling around, I've found some way to hide it away in a macro, but it's not pretty :-) cf. other email.
| |