On Thu, Mar 22, 2007 at 12:03:46PM -0700, David Miller ([EMAIL PROTECTED]) wrote: > From: Evgeniy Polyakov <[EMAIL PROTECTED]> > Date: Thu, 22 Mar 2007 21:59:44 +0300 > > > Yes, current code does not support statistics. > > Existing stats run over whole hash table, I do not like such approach, > > so I will introduce a per-protocol lists of all sockets, which can be > > accessed from statistics code, but it is next step. > > We are _NOT_ bloating up the socket structure even more because your > data structure does not support a "iterate over all objects" > operation. > > We got rid of the linked list of all sockets per-protocol precisely > for this reason 10 years ago, you cannot add it back, sorry.
Hmm... My patch _removes_ them from socket structures! --- a/include/net/sock.h +++ b/include/net/sock.h @@ -114,10 +114,12 @@ struct sock_common { volatile unsigned char skc_state; unsigned char skc_reuse; int skc_bound_dev_if; - struct hlist_node skc_node; struct hlist_node skc_bind_node; atomic_t skc_refcnt; +#ifndef CONFIG_MDT_LOOKUP + struct hlist_node skc_node; unsigned int skc_hash; +#endif struct proto *skc_prot; }; I specially have only one hash structure in the socket - skc_bind_node - to be used for statistics and remove hash and skc_node (and for netlink broadcasting too), so this code reduces socket structure by 12 bytes on x86 (20 bytes on x86_64). -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html