All of lore.kernel.org
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: David Miller <davem@davemloft.net>
Cc: shemminger@linux-foundation.org, netdev@vger.kernel.org
Subject: Re: [ANN] Unified dynamic storage for different socket types instead of separate hash tables.
Date: Thu, 22 Mar 2007 22:09:40 +0300	[thread overview]
Message-ID: <20070322190939.GA18792@2ka.mipt.ru> (raw)
In-Reply-To: <20070322.120346.41643926.davem@davemloft.net>

On Thu, Mar 22, 2007 at 12:03:46PM -0700, David Miller (davem@davemloft.net) wrote:
> From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
> 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

  reply	other threads:[~2007-03-22 19:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-22 18:09 [ANN] Unified dynamic storage for different socket types instead of separate hash tables Evgeniy Polyakov
2007-03-22 18:43 ` Stephen Hemminger
2007-03-22 18:59   ` Evgeniy Polyakov
2007-03-22 19:03     ` David Miller
2007-03-22 19:09       ` Evgeniy Polyakov [this message]
2007-03-22 19:14         ` David Miller
2007-03-22 19:20           ` Evgeniy Polyakov
2007-03-22 19:14       ` Evgeniy Polyakov
2007-03-22 19:21         ` David Miller
2007-03-22 19:30           ` Evgeniy Polyakov
2007-03-22 19:36             ` David Miller
2007-03-22 19:40               ` Evgeniy Polyakov
2007-03-27 14:23           ` Andi Kleen
2007-03-27 13:35             ` Evgeniy Polyakov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070322190939.GA18792@2ka.mipt.ru \
    --to=johnpol@2ka.mipt.ru \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.