From owner-freebsd-net@FreeBSD.ORG Tue Apr 28 09:49:29 2009 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A44801065679 for ; Tue, 28 Apr 2009 09:49:29 +0000 (UTC) (envelope-from fabien.thomas@netasq.com) Received: from netasq.netasq.com (netasq.netasq.com [213.30.137.178]) by mx1.freebsd.org (Postfix) with ESMTP id 1F2B08FC1C for ; Tue, 28 Apr 2009 09:49:28 +0000 (UTC) (envelope-from fabien.thomas@netasq.com) Received: from [10.2.1.5] (unknown [10.0.0.126]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (Client did not present a certificate) by netasq.netasq.com (Postfix) with ESMTP id B172A722F7; Tue, 28 Apr 2009 11:49:27 +0200 (CEST) Message-Id: <36906055-E1AE-486B-BA77-D260E0609BBB@netasq.com> From: Fabien Thomas To: Paolo Pisati In-Reply-To: <49F6C6B4.4080108@oltrelinux.com> Content-Type: multipart/signed; boundary=Apple-Mail-154-611962325; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v930.3) Date: Tue, 28 Apr 2009 11:49:27 +0200 References: <160513.83122.qm@web63904.mail.re1.yahoo.com> <49F6C6B4.4080108@oltrelinux.com> X-Mailer: Apple Mail (2.930.3) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: FreeBSD Net Subject: Re: Interrupts + Polling mode (similar to Linux's NAPI) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: fabient@freebsd.org List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Apr 2009 09:49:30 -0000 --Apple-Mail-154-611962325 Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Le 28 avr. 09 =E0 11:04, Paolo Pisati a =E9crit : > Fabien Thomas wrote: >> >> To share my results: >> >> I have done at work modification to the polling code to do SMP =20 >> polling (previously posted to this ml). >> >> SMP polling (dynamic group of interface binded to CPU) does not =20 >> significantly improve the throughput (lock contention seems to be =20 >> the cause here). >> The main advantage of polling with modern interface is not the PPS =20= >> (which is nearly the same) but the global efficiency of the system =20= >> when using multiple interfaces (which is the case for Firewall). >> The best configuration we have found with FreeBSD 6.3 is to do =20 >> polling on one CPU and keep the other CPU free for other =20 >> processing. In this configuration the whole system >> is more efficient than with interrupt where all the CPU are busy =20 >> processing interrupt thread. > out of curiosity: did you try polling on 4.x? i know it doesn't =20 > "support" SMP over there, but last time i tried polling on 7.x (or =20 > was it 6.x? i don't remember...) > i found it didn't gave any benefit, while switching the system to =20 > 4.x showed a huge improvement. > yes rewriting the core polling code started at half because the =20 polling code on 6.x and up perform badly (in our env) regarding =20 performance. today 4.x is unbeatable regarding network perf (6.2 -> 7.0 at least, =20= i need to do more test on 7_stable and 8). the other half of the work was to explore the SMP scaling of the =20 polling code to gain what we loose with fine grained SMP kernel. > --=20 > > bye, > P. > > --Apple-Mail-154-611962325--