netdev-linux: Skip miimon execution when disabled
authorJoe Stringer <joestringer@nicira.com>
Fri, 1 Nov 2013 23:34:29 +0000 (16:34 -0700)
committerBen Pfaff <blp@nicira.com>
Sun, 3 Nov 2013 03:53:10 +0000 (20:53 -0700)
commit19c8e9c11bcd441a42ababb8439bc7b24e9e435c
tree6008247f35b7d408bacfabc6896b77cdcbf3d0a3
parent7cb279c20248abe8e1c3f0c3639c107acac40380
netdev-linux: Skip miimon execution when disabled

When dealing with a large number of ports, one of the performance
bottlenecks is that we loop through all netdevs in the main loop. Miimon
is a contributor to this, checking all devices even if it has never been
enabled.

This patch introduces a counter for the number of netdevs with miimon
configured. If this is 0, then we skip miimon_run() and miimon_wait().
In a test environment of 5000 internal ports and 50 tunnel ports with
bfd, this reduces CPU usage from about 50% to about 45%.

Signed-off-by: Joe Stringer <joestringer@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/netdev-linux.c