On Mon, Jan 21, 2013 at 03:10:00PM +0900, Simon Horman wrote: > In general the network devices don't change very often. > By caching the lookup made by netdev_linux_miimon_run() > calls to shash_add() and shash_destroy() destroy are avoided > reducing the use of malloc(), free() and hash_bytes(). > > In my test environment this increased the rate at > which packets could be received from ~23.3kpps to ~24.4kpps. > > Signed-off-by: Simon Horman <ho...@verge.net.au>
The comment on netdev_dev_get_devices() needs an update. However the main problem I see with this is that netdev_dev_get_devices() is supposed to return a different list on a per-netdev_class basis, but this code maintains only a single static list, which might be for any arbitrary netdev_class because of the caching technique in use, so it's likely to randomly segfault if there's more than one netdev_dev class around. Another simple way to speed this up might be for netdev_dev_get_devices() to just return the global netdev_dev_shash and require the callers to skip netdev_devs that belong to others' classes. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev