Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Oct 2012 13:06:11 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Garrett Cooper <yanegomi@gmail.com>
Cc:        freebsd@chrysalisnet.org, freebsd-current@freebsd.org, Gleb Smirnoff <glebius@freebsd.org>
Subject:   Re: sysctl kern.ipc.somaxconn limit 65535 why?
Message-ID:  <CAJ-VmomZDhJpvj0VjFbzvXDOVzT2goC%2Bp5GULDap1V=2d%2Bf3zg@mail.gmail.com>
In-Reply-To: <CAGH67wRY6cJkVRTzQ_QMt=a0F%2Bk9oyVUs_tyOAsY5ZbUaRySDA@mail.gmail.com>
References:  <03e101cda197$326dc240$974946c0$@org> <CAGH67wRY6cJkVRTzQ_QMt=a0F%2Bk9oyVUs_tyOAsY5ZbUaRySDA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3 October 2012 13:01, Garrett Cooper <yanegomi@gmail.com> wrote:
>
> Here's where it's being held at 65535 (sys/kern/kern_uipc.c):
>
> 3276 static int
> 3277 sysctl_somaxconn(SYSCTL_HANDLER_ARGS)
> 3278 {
> 3279         int error;
> 3280         int val;
> 3281
> 3282         val = somaxconn;
> 3283         error = sysctl_handle_int(oidp, &val, 0, req);
> 3284         if (error || !req->newptr )
> 3285                 return (error);
> 3286
> 3287         if (val < 1 || val > USHRT_MAX)
> 3288                 return (EINVAL);
> 3289
>
> More details about the need for this limit are in
> http://svnweb.freebsd.org/base?view=revision&revision=140730 .
>
> It looks like this needs to be enhanced to support more than
> USHRT_MAX, which will require socket structure changes and other fun
> things, but should be possible... I've CCed glebius for comment on
> this.

Again, somaxconn is _not the number of sockets_. It's the backlog
allowed in the incoming connection queue for a given socket. That's
it.

If you pass listen a backlog value of -1 or greater than somaxconn,
then the queue depth gets pinned at somaxconn.

There's something else going on..


Adrian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmomZDhJpvj0VjFbzvXDOVzT2goC%2Bp5GULDap1V=2d%2Bf3zg>