linux/net/tipc
Allan Stephens 672d99e19a tipc: Convert node object array to a hash table
Replaces the dynamically allocated array of pointers to the cluster's
node objects with a static hash table. Hash collisions are resolved
using chaining, with a typical hash chain having only a single node,
to avoid degrading performance during processing of incoming packets.
The conversion to a hash table reduces the memory requirements for
TIPC's node table to approximately the same size it had prior to
the previous commit.

In addition to the hash table itself, TIPC now also maintains a
linked list for the node objects, sorted by ascending network address.
This list allows TIPC to continue sending responses to user space
applications that request node and link information in sorted order.
The list also improves performance when name table update messages are
sent by making it easier to identify the nodes that must be notified.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2011-03-13 16:35:17 -04:00
..
Kconfig tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
Makefile tipc: rename dbg.[ch] to log.[ch] 2011-01-01 13:57:51 -08:00
addr.c tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
addr.h tipc: Add network address mask helper routines 2011-03-13 16:35:16 -04:00
bcast.c tipc: Avoid reliable broadcast preparation for NACK messages 2011-02-23 18:05:23 -05:00
bcast.h tipc: Clean up tracking of node requesting a broadcast retransmit 2011-02-23 18:05:12 -05:00
bearer.c tipc: Remove unused message header field for requested number of links 2011-02-23 18:05:22 -05:00
bearer.h tipc: Combine bearer structure with tipc_bearer structure 2011-02-23 18:05:05 -05:00
config.c tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
config.h tipc: Remove obsolete inclusions of header files 2010-12-02 13:34:02 -08:00
core.c tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
core.h tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
discover.c tipc: Remove unused message header field for requested number of links 2011-02-23 18:05:22 -05:00
discover.h tipc: Remove unused message header field for requested number of links 2011-02-23 18:05:22 -05:00
eth_media.c tipc: remove zeroing assignments to static global variables 2011-01-01 13:57:57 -08:00
handler.c tipc: remove zeroing assignments to static global variables 2011-01-01 13:57:57 -08:00
link.c tipc: Add in missing lock during link initialization 2011-02-23 18:05:19 -05:00
link.h tipc: Improve accuracy of link transmit queue maximum size statistic 2011-02-23 18:05:15 -05:00
log.c tipc: Finish streamlining of debugging code 2011-01-01 13:57:54 -08:00
log.h tipc: update log.h re-include protection to reflect new name 2011-01-01 14:56:18 -08:00
msg.c tipc: Remove unused message header field for requested number of links 2011-02-23 18:05:22 -05:00
msg.h tipc: Remove unused message header field for requested number of links 2011-02-23 18:05:22 -05:00
name_distr.c tipc: Convert node object array to a hash table 2011-03-13 16:35:17 -04:00
name_distr.h [NET] TIPC: Fix whitespace errors. 2007-02-10 23:20:15 -08:00
name_table.c tipc: remove extraneous braces from single statements 2011-01-01 13:57:57 -08:00
name_table.h tipc: cleanup various cosmetic whitespace issues 2011-01-01 13:57:56 -08:00
net.c tipc: Convert node object array to a hash table 2011-03-13 16:35:17 -04:00
net.h tipc: Convert node object array to a hash table 2011-03-13 16:35:17 -04:00
netlink.c genetlink: make netns aware 2009-07-12 14:03:27 -07:00
node.c tipc: Convert node object array to a hash table 2011-03-13 16:35:17 -04:00
node.h tipc: Convert node object array to a hash table 2011-03-13 16:35:17 -04:00
node_subscr.c tipc: Cosmetic changes to node subscription code 2011-03-13 16:35:16 -04:00
node_subscr.h tipc: Cosmetic changes to node subscription code 2011-03-13 16:35:16 -04:00
port.c tipc: Remove support for per-connection message sequence numbering 2011-02-23 18:05:21 -05:00
port.h tipc: Remove support for per-connection message sequence numbering 2011-02-23 18:05:21 -05:00
ref.c tipc: remove zeroing assignments to static global variables 2011-01-01 13:57:57 -08:00
ref.h tipc: cleanup function namespace 2010-10-16 11:13:24 -07:00
socket.c tipc: Add support for SO_RCVTIMEO socket option 2011-03-13 16:35:16 -04:00
subscr.c tipc: Minor optimization to topology service connection establishment 2011-02-23 18:05:17 -05:00
subscr.h Revert d88dca79d3 2010-10-21 04:11:08 -07:00