From: Evgeniy Polyakov <zbr@ioremap.net>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: Re: Allowing more than 64k connections and heavily optimize bind(0) time.
Date: Fri, 26 Dec 2008 11:31:07 +0300 [thread overview]
Message-ID: <20081226083107.GA2462@ioremap.net> (raw)
In-Reply-To: <20081224190926.GA3244@ioremap.net>
[-- Attachment #1: Type: text/plain, Size: 916 bytes --]
On Wed, Dec 24, 2008 at 10:09:26PM +0300, Evgeniy Polyakov (zbr@ioremap.net) wrote:
> With simple extension to the binding mechanism, which allows to bind more
> than 64k sockets (or smaller amount, depending on sysctl parameters),
> we have to traverse the whole bind hash table to find out empty bucket.
> And while it is not a problem for example for 32k connections, bind()
> completion time grows exponentially (since after each successful binding
> we have to traverse one bucket more to find empty one) even if we start
> each time from random offset inside the hash table.
>
> So, when hash table is full, and we want to add another socket, we have
> to traverse the whole table no matter what, so effectivelly this will be
> the worst case performance and it will be constant.
>
> Attached picture shows bind() time depending on number of already bound
> sockets.
Really attached.
--
Evgeniy Polyakov
[-- Attachment #2: bind_time.png --]
[-- Type: image/png, Size: 38816 bytes --]
prev parent reply other threads:[~2008-12-26 8:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-24 19:09 Allowing more than 64k connections and heavily optimize bind(0) time Evgeniy Polyakov
2008-12-25 21:29 ` Evgeniy Polyakov
2009-01-10 10:59 ` Evgeniy Polyakov
2009-01-11 7:20 ` David Miller
2009-01-11 12:52 ` Evgeniy Polyakov
2009-01-11 13:03 ` Denys Fedoryschenko
2009-01-11 13:09 ` Evgeniy Polyakov
2009-01-12 7:01 ` David Miller
2009-01-12 9:27 ` Evgeniy Polyakov
2008-12-26 8:31 ` Evgeniy Polyakov [this message]
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=20081226083107.GA2462@ioremap.net \
--to=zbr@ioremap.net \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.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.