From owner-freebsd-net@FreeBSD.ORG Mon Sep 23 04:53:01 2013 Return-Path: Delivered-To: net@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 ESMTP id 32934F5A; Mon, 23 Sep 2013 04:53:01 +0000 (UTC) (envelope-from rizzo.unipi@gmail.com) Received: from mail-la0-x229.google.com (mail-la0-x229.google.com [IPv6:2a00:1450:4010:c03::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A92B82BDC; Mon, 23 Sep 2013 04:52:59 +0000 (UTC) Received: by mail-la0-f41.google.com with SMTP id ec20so2184616lab.28 for ; Sun, 22 Sep 2013 21:52:57 -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:date:message-id:subject :from:to:cc:content-type; bh=MeHddLeaytEfYArPlVU1mp/TWDEAnx+W3lRre+4umrg=; b=mLh6Xn3QSQHmiPy/AlwAozxnVJuN8aKo13h01Qfe7NhM1x7Oi1uHpgFvYsiFevA9VE N/oFFLJ1Rq84pzUe9Yk/CRHP3yHNkp3gf07JEd5PK3JDXIMERNhb6EoPlORmNocVSOFU AKa+whlt8rGV0th8mE/6+4xHVw1EJtiYTpLIZi2Hse8N+X0Ty8Wu3RMpmU+4dwZAXpdw wtsyN2jfOZheI/2/VHtya/N8o8Po/BfWidKrQiCZt+KG9W4hSrTwpXax57RgtSAPHf3+ BGIqaeXSl206878+YWdYKnOd68iysTIkf1WIGa9U9YbVaL3+7u9qsTaz0iPVUyEYCK5a o5jQ== MIME-Version: 1.0 X-Received: by 10.152.3.201 with SMTP id e9mr4930591lae.24.1379911977606; Sun, 22 Sep 2013 21:52:57 -0700 (PDT) Sender: rizzo.unipi@gmail.com Received: by 10.114.172.105 with HTTP; Sun, 22 Sep 2013 21:52:57 -0700 (PDT) In-Reply-To: References: <521E41CB.30700@yandex-team.ru> <523F4F14.9090404@yandex-team.ru> Date: Mon, 23 Sep 2013 06:52:57 +0200 X-Google-Sender-Auth: 2EGu8K7yJexNmLEWiHJFpHqzXNA Message-ID: Subject: Re: Network stack changes From: Luigi Rizzo To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "Alexander V. Chernikov" , Luigi Rizzo , Andre Oppermann , "Andrey V. Elsukov" , FreeBSD Net X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Sep 2013 04:53:01 -0000 On Mon, Sep 23, 2013 at 6:42 AM, Adrian Chadd wrote: > Hi! > > > > On 22 September 2013 13:12, Alexander V. Chernikov < > melifaro@yandex-team.ru> wrote: > > >> I'm thinking the same way, but we're stuck with 'forwarding lookup' due >> to problem with egress interface pointer, as I mention earlier. However it >> is interesting to see how much it helps, regardless of locking. >> >> Currently I'm thinking that we should try to change radix to something >> different (it seems that it can be checked fast) and see what happened. >> Luigi's performance numbers for our radix are too awful, and there is a >> patch implementing alternative trie: >> http://info.iet.unipi.it/~**luigi/papers/20120601-dxr.pdf >> http://www.nxlab.fer.hr/dxr/**stable_8_20120824.diff >> >> > So, I can make educated guesses about why this is better for forwarding > workloads. I'd like to characterize it though. So, what's it doing that's > better? better locking? better caching behaviour? less memory lookups? etc. > > locking affects scalability; but dxr and similar algorithms have much fewer memory lookups, not to mention the huge memory footprint of the freebsd radix tree code. Anyways i'd really encourage you to read the dxr paper, it is short and hopefully can give you a better idea of the details (and with data supporting them) than these short notes. cheers luigi