From owner-freebsd-hackers@FreeBSD.ORG Sat Jun 7 18:38:49 2014 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1BE02EB5; Sat, 7 Jun 2014 18:38:49 +0000 (UTC) Received: from mail-qa0-x22e.google.com (mail-qa0-x22e.google.com [IPv6:2607:f8b0:400d:c00::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A8F0425EA; Sat, 7 Jun 2014 18:38:48 +0000 (UTC) Received: by mail-qa0-f46.google.com with SMTP id w8so6039062qac.33 for ; Sat, 07 Jun 2014 11:38:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=FbUDRmXjkA8ufzhvUcR/RT/i5PL5iS6Q3hcZAoOe2pE=; b=kLH1Ej6y+FVb/e+q0Nak4Man19v8pF3SFvdosTf++vmMHcjtxLYwUvORrGf/Chjdko CXeegXoW6sDYLIq5WQ7VcpS9tC4c5JGGbuS0lU6yKyqrmU7UsUBqq42dNT6azimMugSm 3N92QNf4p2R6RrwVl9DJ+yM+2GYjaoec+1azcmdf95KqeQ4fxrF6ieqS7Lg9+Ah6sIVO Ao8uUPyqRuMfSOSLjzpP5uhDmSnHyz+rp+9FeoRba2Lw+tmF82PH2afxJOxzFlxyW+jb 3NNslNN1SNs3wndrCtKwSELO4hzryzyrdUtJr4V95ck8Rqy/i3dUGc6/YFsRPPXy9+am pr7Q== X-Received: by 10.140.30.161 with SMTP id d30mr18790613qgd.62.1402166327768; Sat, 07 Jun 2014 11:38:47 -0700 (PDT) MIME-Version: 1.0 Sender: mozolevsky@gmail.com Received: by 10.224.100.72 with HTTP; Sat, 7 Jun 2014 11:38:07 -0700 (PDT) In-Reply-To: <1402159374.20883.160.camel@revolution.hippie.lan> References: <1402159374.20883.160.camel@revolution.hippie.lan> From: Igor Mozolevsky Date: Sat, 7 Jun 2014 19:38:07 +0100 X-Google-Sender-Auth: VRXZQOAFFoybZdb5NPaGm0c0gjw Message-ID: Subject: Re: Best practice for accepting TCP connections on multicore? To: Ian Lepore Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: Hackers freeBSD , Adrian Chadd , Daniel Janzon , Dirk Engling X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jun 2014 18:38:49 -0000 On 7 June 2014 17:42, Ian Lepore wrote: > On Sat, 2014-06-07 at 12:06 -0400, Adrian Chadd wrote: > > On 7 June 2014 10:19, Igor Mozolevsky wrote: > > > On 7 June 2014 01:53, Dirk Engling 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. > > Yeah, when I glanced at the link and saw it was a cite of a 2003 paper, > my gut reaction was "Yeah, it has been rebutted by 11 years of everyone > just getting on with their lives and evolving absolutely everything that > was tested into something completely different now." > I can't possibly argue with that sort of scientific method, but back in 2008, someone did some stuff with Java and got interesting results[1]. 1. http://www.mailinator.com/tymaPaulMultithreaded.pdf -- Igor M.