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>