Re: [PATCH 1/2] net: ipv4: igmp: optimize ____ip_mc_inc_group() using mc_hash
From: Eric Dumazet
Date: Mon Oct 07 2024 - 15:06:38 EST
On Mon, Oct 7, 2024 at 4:17 PM Jonas Rebmann <jre@xxxxxxxxxxxxxx> wrote:
>
> The runtime cost of joining a single multicast group in the current
> implementation of ____ip_mc_inc_group grows linearly with the number of
> existing memberships. This is caused by the linear search for an
> existing group record in the multicast address list.
>
> This linear complexity results in quadratic complexity when successively
> adding memberships, which becomes a performance bottleneck when setting
> up large numbers of multicast memberships.
>
> If available, use the existing multicast hash map mc_hash to quickly
> search for an existing group membership record. This leads to
> near-constant complexity on the addition of a new multicast record,
> significantly improving performance for workloads involving many
> multicast memberships.
>
> On profiling with a loopback device, this patch presented a speedup of
> around 6 when successively setting up 2000 multicast groups using
> setsockopt without measurable drawbacks on smaller numbers of
> multicast groups.
>
> Signed-off-by: Jonas Rebmann <jre@xxxxxxxxxxxxxx>
> ---
Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>