Date: Sat, 7 Jun 2014 12:06:37 -0400 From: Adrian Chadd <adrian@freebsd.org> To: Igor Mozolevsky <igor@hybrid-lab.co.uk> Cc: Daniel Janzon <janzon@gmail.com>, Hackers freeBSD <freebsd-hackers@freebsd.org>, Dirk Engling <erdgeist@erdgeist.org> Subject: Re: Best practice for accepting TCP connections on multicore? Message-ID: <CAJ-Vmonm3aZr=kP293x90Am7VzWQQ65cTE8fiTZ6KAECegoZGQ@mail.gmail.com> In-Reply-To: <CADWvR2gkeNaeVPizq_VubWhEHy3ywURJOdv9C=6PNybwYyFqRg@mail.gmail.com> References: <CAAGHsvDhaqQbwir5P%2BoaH_Qa8VZ0aj9A2SGrn%2B2shJMQ21B6Jw@mail.gmail.com> <alpine.BSF.2.00.1406070252270.21531@erdgeist.org> <CADWvR2gkeNaeVPizq_VubWhEHy3ywURJOdv9C=6PNybwYyFqRg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7 June 2014 10:19, Igor Mozolevsky <igor@hybrid-lab.co.uk> wrote: > On 7 June 2014 01:53, Dirk Engling <erdgeist@erdgeist.org> wrote: > >> >> On Sat, 7 Jun 2014, Daniel Janzon wrote: >> >> Is there any better way than doing the accept() call in one thread and >>> then >>> dispatch it to a thread on another core with any user space method? >>> >> > See C10K problem [1]. > > > Why use accept() and not kevent()? You need to keep it portable? >> > > Has anyone rebutted the threads better than events paper[2] yet? > > > > 1. http://www.kegel.com/c10k.html > > 2. > https://www.usenix.org/legacy/events/hotos03/tech/full_papers/vonbehren/vonbehren.pdf Not likely; but that paper talks about a threading model that isn't currently in use in popular UNIX operating systems. It also compares a lightweight thread implementation with a lightweight server to an event driven system with worker threads that acted pretty badly, causing extremely bad memory use and context switching. We've all gotten better at programming since then. -a
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmonm3aZr=kP293x90Am7VzWQQ65cTE8fiTZ6KAECegoZGQ>