]> git.baikalelectronics.ru Git - kernel.git/commit
llc: replace the socket list with a local address based hash
authorOctavian Purdila <opurdila@ixiacom.com>
Sat, 26 Dec 2009 11:51:05 +0000 (11:51 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 27 Dec 2009 04:45:32 +0000 (20:45 -0800)
commitf5dcad31b75afb73611b7e7211004cce3600fa9a
tree9c8d2bf8374570038820a47325a2305bcb83111d
parent92ac30a1af46c76613f5c36a021b81ccfd16129c
llc: replace the socket list with a local address based hash

For the cases where a lot of interfaces are used in conjunction with a
lot of LLC sockets bound to the same SAP, the iteration of the socket
list becomes prohibitively expensive.

Replacing the list with a a local address based hash significantly
improves the bind and listener lookup operations as well as the
datagram delivery.

Connected sockets delivery is also improved, but this patch does not
address the case where we have lots of sockets with the same local
address connected to different remote addresses.

In order to keep the socket sanity checks alive and fast a socket
counter was added to the SAP structure.

Signed-off-by: Octavian Purdila <opurdila@ixiacom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/llc.h
net/llc/llc_conn.c
net/llc/llc_core.c
net/llc/llc_proc.c
net/llc/llc_sap.c