summaryrefslogtreecommitdiffstats
path: root/include/net/inet_hashtables.h
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2009-11-12 07:44:25 +0000
committerDavid S. Miller <davem@davemloft.net>2009-11-13 20:46:55 -0800
commiteec4df9885f7822cdeca82577a25cac4598fa7cf (patch)
tree36295f78f105e3f69b571edb3b2feddaf99dfb73 /include/net/inet_hashtables.h
parent342bde1b70c79bfc8509b017b3987f3c7541ff8e (diff)
downloadop-kernel-dev-eec4df9885f7822cdeca82577a25cac4598fa7cf.zip
op-kernel-dev-eec4df9885f7822cdeca82577a25cac4598fa7cf.tar.gz
ipv4: speedup inet_dump_ifaddr()
Stephen Hemminger a écrit : > On Thu, 12 Nov 2009 15:11:36 +0100 > Eric Dumazet <eric.dumazet@gmail.com> wrote: > >> When handling large number of netdevices, inet_dump_ifaddr() >> is very slow because it has O(N^2) complexity. >> >> Instead of scanning one single list, we can use the NETDEV_HASHENTRIES >> sub lists of the dev_index hash table, and RCU lookups. >> >> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > > You might be able to make RCU critical section smaller by moving > it into loop. > Indeed. But we dump at most one skb (<= 8192 bytes ?), so rcu_read_lock holding time is small, unless we meet many netdevices without addresses. I wonder if its really common... Thanks [PATCH net-next-2.6] ipv4: speedup inet_dump_ifaddr() When handling large number of netdevices, inet_dump_ifaddr() is very slow because it has O(N2) complexity. Instead of scanning one single list, we can use the NETDEV_HASHENTRIES sub lists of the dev_index hash table, and RCU lookups. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Acked-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/inet_hashtables.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud