From: Evgeniy Polyakov <zbr@ioremap.net>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Gaspar Chilingarov <gasparch@gmail.com>, netdev <netdev@vger.kernel.org>
Subject: Re: PROBLEM: Linux kernel 2.6.31 IPv4 TCP fails to open huge amount of outgoing connections (unable to bind ... )
Date: Wed, 21 Apr 2010 04:14:48 +0400 [thread overview]
Message-ID: <20100421001448.GA31724@ioremap.net> (raw)
In-Reply-To: <1271806945.7895.581.camel@edumazet-laptop>
Hi.
On Wed, Apr 21, 2010 at 01:42:25AM +0200, Eric Dumazet (eric.dumazet@gmail.com) wrote:
> If you want to check source, its in file net/ipv4/inet_connection_sock.c
>
> function inet_csk_get_port()
>
> you can remove the
>
> if (atomic_read(&hashinfo->bsockets) > (high - low) + 1) {
> spin_unlock(&head->lock);
> snum = smallest_rover;
> goto have_snum;
> }
>
> It will solve your problem (but bind() will probably be slow)
Netcat uses SO_REUSEADDR, so its the code path which generates an error,
but this part actually returns a port number not en error. I suppose
what happend is 'attempts' check faired and thus system failed to find
a small enough bucket which does not conflict. To test this we can
remove 'smallest_size = tb->num_owners;' assignment, but bind() can be
damn slow in this case indeed.
--
Evgeniy Polyakov
next prev parent reply other threads:[~2010-04-21 0:45 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-20 22:17 PROBLEM: Linux kernel 2.6.31 IPv4 TCP fails to open huge amount of outgoing connections (unable to bind ... ) Gaspar Chilingarov
2010-04-20 22:31 ` Eric Dumazet
2010-04-20 23:18 ` Gaspar Chilingarov
2010-04-20 23:42 ` Eric Dumazet
2010-04-21 0:14 ` Evgeniy Polyakov [this message]
2010-04-20 23:07 ` Ben Greear
2010-04-20 23:20 ` Gaspar Chilingarov
2010-04-20 23:20 ` Gaspar Chilingarov
2010-04-20 23:30 ` Ben Greear
2010-04-20 23:35 ` Gaspar Chilingarov
2010-04-20 23:49 ` Ben Greear
2010-04-20 23:57 ` Gaspar Chilingarov
2010-04-21 0:14 ` Eric Dumazet
2010-04-21 0:05 ` Eric Dumazet
2010-04-21 0:12 ` Gaspar Chilingarov
2010-04-21 0:14 ` David Miller
2010-04-21 0:30 ` Evgeniy Polyakov
2010-04-21 2:04 ` David Miller
2010-04-21 5:46 ` Eric Dumazet
2010-04-21 8:25 ` Evgeniy Polyakov
2010-04-21 9:02 ` Eric Dumazet
2010-04-21 9:58 ` Evgeniy Polyakov
2010-04-21 10:21 ` Eric Dumazet
2010-04-21 11:27 ` Eric Dumazet
2010-04-21 16:52 ` George B.
2010-04-21 18:27 ` Evgeniy Polyakov
2010-04-21 18:43 ` Eric Dumazet
2010-04-21 18:58 ` Evgeniy Polyakov
2010-04-21 19:26 ` Eric Dumazet
2010-04-21 20:08 ` Evgeniy Polyakov
2010-04-23 2:06 ` David Miller
2010-04-25 14:26 ` Michael S. Tsirkin
2010-04-25 15:56 ` Evgeniy Polyakov
2010-04-25 16:13 ` Eric Dumazet
2010-04-25 16:21 ` Eric Dumazet
2010-04-25 16:35 ` Michael S. Tsirkin
2010-04-25 22:08 ` David Miller
2010-04-21 19:03 ` Narendra Choyal
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=20100421001448.GA31724@ioremap.net \
--to=zbr@ioremap.net \
--cc=eric.dumazet@gmail.com \
--cc=gasparch@gmail.com \
--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.