Re: [PATCH net-next 0/4] batch calls to fib_flush and arp_ifdown
From: Salam Noureddine <hidden>
Date: 2016-01-12 01:53:17
Any thoughts on the correctness of the patchset? Or a different way to solve this issue leading to long rtnl_lock hold time? Thanks, Salam On Mon, Jan 4, 2016 at 5:12 PM, Salam Noureddine [off-list ref] wrote:
On Mon, Jan 4, 2016 at 4:35 PM, Eric W. Biederman [off-list ref] wrote:quoted
Two things would be very valuable with this patchset. Some numbers on how much your changes have improved the code in the case you care about. I suspect the improvements are not subtle so this should not be hard. Can you please provide a justification for event_list. Just skimming through it appears that event_list because a duplicate of the list of batched network devices that are passed to dev_close_many and friends. If the list is actually a duplicate it appears foolish to create it. EricThe performance test I ran tries to unregister 1000 dummy interfaces with 512K routes in the fib. Without the patch I could unregister 35 interfaces per second and with the patch it jumped to 620 interfaces per second. 512K is a lot of routes but I am assuming we would get a good improvement even with 100K routes in the fib. I am using event_list to put all the net namespaces in the current net_device batch on a list and only call the NETDEV_UNREGISTER_BATCH on those namespaces. It would be possible to just call the notifier for NETDEV_DOWN/UNREGISTER_BATCH for all the devices on the list and rely on the needs_fib_flush flag to only call fib_flush once per namespace but it seems like a waste to me. Salam