All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH iproute2-next v2 0/3] Improve batch and dump times by caching link lookups
@ 2019-02-14  0:22 David Ahern
  2019-02-14  0:22 ` [PATCH iproute2-next v2 1/3] ll_map: Add function to remove link cache entry by index David Ahern
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: David Ahern @ 2019-02-14  0:22 UTC (permalink / raw)
  To: stephen; +Cc: netdev, David Ahern

From: David Ahern <dsahern@gmail.com>

Many commands convert device names to an index using ll_name_to_index and
the reverse from an index to a name using ll_index_to_name.

At the moment both of the ll_ functions use the ioctl based helpers from
glibc which involves opening socket, calling ioctl and then closing the
socket on each device lookup. When using a batch file or dumping large
number of routes this means the same device lookups can be done repeatedly
adding unnecessary overhead to both operations.

This series adds a new function, ll_link_get, to send a netlink based
RTM_GETLINK. If successful, the result is cached in idx_head and name_head
so future lookups can re-use the entry. iproute2's ll_map functions are
updated to use ll_link_get over the glibc functions. The result is a
significant speed up in both batch and dumps with negligible overhead if
ip is invoked for single operations.

The first 2 patches add a means to drop an entry from the cache and updates
iplink_modify to use that new function to drop entries on device changes.
This forces the cache to re-learn device information if a batch file has a
mix of link set operations with other commands - such as adding a route.

v2
- changed the second patch to drop cache entry on any link changes
- added ll_link_get to index to name conversion improving dumps

David Ahern (3):
  ll_map: Add function to remove link cache entry by index
  ip link: Drop cache entry on any changes
  Improve batch and dump times by caching link lookups

 include/ll_map.h |  1 +
 ip/iplink.c      |  3 +++
 lib/ll_map.c     | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 69 insertions(+), 1 deletion(-)

-- 
2.11.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-14  0:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-14  0:22 [PATCH iproute2-next v2 0/3] Improve batch and dump times by caching link lookups David Ahern
2019-02-14  0:22 ` [PATCH iproute2-next v2 1/3] ll_map: Add function to remove link cache entry by index David Ahern
2019-02-14  0:22 ` [PATCH iproute2-next v2 2/3] ip link: Drop cache entry on any changes David Ahern
2019-02-14  0:22 ` [PATCH iproute2-next v2 3/3] Improve batch and dump times by caching link lookups David Ahern

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.