Subject: Re: [PATCH iproute2] ip link: Do not call ll_name_to_index when creating a new link

From: Stephen Hemminger <[email-masked]>
Date: Thu, 17 May 2018 15:36:04 -0700

On Thu, 17 May 2018 16:22:37 -0600
[email-masked] wrote:

> From: David Ahern <[email-masked]>
> 
> Using iproute2 to create a bridge and add 4094 vlans to it can take from
> 2 to 3 *minutes*. The reason is the extraneous call to ll_name_to_index.
> ll_name_to_index results in an ioctl(SIOCGIFINDEX) call which in turn
> invokes dev_load. If the index does not exist, which it won't when
> creating a new link, dev_load calls modprobe twice -- once for
> netdev-NAME and again for NAME. This is unnecessary overhead for each
> link create.
> 
> When ip link is invoked for a new device, there is no reason to
> call ll_name_to_index for the new device. With this patch, creating
> a bridge and adding 4094 vlans takes less than 3 *seconds*.
> 
> Signed-off-by: David Ahern <[email-masked]>

Yes this looks like a real problem.
Isn't the cache supposed to reduce this?

Don't like to make lots of special case flags.