Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jul 2013 13:04:37 -0700
From:      trafdev <trafdev@mail.ru>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        Sepherosa Ziehau <sepherosa@gmail.com>, freebsd-net@freebsd.org
Subject:   Re: SO_REUSEPORT: strange kernel balancer behaviour
Message-ID:  <51E455D5.2090403@mail.ru>
In-Reply-To: <CAJ-VmomHHfhExa4g63tT_sf0hTPa2T7jPKQGHrD0fchq=-k%2B=g@mail.gmail.com>
References:  <51E0E2AF.7090404@mail.ru> <CAMOc5cz6gP2N62T4QhbTdVar94O4FSdPDsqktD_9vJ0mYVqt_Q@mail.gmail.com> <51E44E2F.8060700@mail.ru> <CAJ-VmomHHfhExa4g63tT_sf0hTPa2T7jPKQGHrD0fchq=-k%2B=g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Yep I think it's wasting of resources, poll manager should somehow be 
configured to update only one process/thread.
Anyone know how to do that?
Thanks.

On Mon Jul 15 12:53:55 2013, Adrian Chadd wrote:
> i've noticed this when doing this stuff in a threaded program with
> each thread listening on the same port.
>
> All threads wake up on each accepted connection, one thread wins and
> the other threads get EAGAIN.
>
>
>
> -adrian
>
> On 15 July 2013 12:31, trafdev <trafdev@mail.ru> wrote:
>> Thanks for reply.
>>
>> This approach produces lot of "resource temporary unavailable" (eagain) on
>> accept-ing connections in N-1 processes.
>> Is this possible to avoid this by e.g. tweaking kqueue?
>>
>>
>> On Sun Jul 14 19:37:59 2013, Sepherosa Ziehau wrote:
>>>
>>> On Sat, Jul 13, 2013 at 1:16 PM, trafdev <trafdev@mail.ru> wrote:
>>>>
>>>> Hello.
>>>>
>>>> Could someone help with following problem of SO_REUSEPORT.
>>>
>>>
>>> The most portable "load balance" between processes listening on the
>>> same TCP addr/port probably is:
>>>
>>> s=socket();
>>> bind(s);
>>> listen(s);
>>> /* various socketopt and fcntl as you needed */
>>> pid=fork();
>>> if (pid==0) {
>>>       server_loop(s);
>>>       exit(1);
>>> }
>>> server_loop(s);
>>> exit(1);
>>>
>>> Even in Linux or DragonFly SO_REUSEPORT "load balance" between
>>> processes listening on the same TCP addr/port was introduced recently,
>>> so you probably won't want to rely on it.
>>>
>>> Best Regards,
>>> sephe
>>>
>> _______________________________________________
>> freebsd-net@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51E455D5.2090403>