From owner-freebsd-net@FreeBSD.ORG Tue Apr 28 08:40:52 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 71130106566C; Tue, 28 Apr 2009 08:40:52 +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 C58998FC16; Tue, 28 Apr 2009 08:40:51 +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 B35B31CD08; Tue, 28 Apr 2009 10:10:01 +0200 (CEST) Message-Id: From: Fabien Thomas To: barney_cordoba@yahoo.com In-Reply-To: <160513.83122.qm@web63904.mail.re1.yahoo.com> Content-Type: multipart/signed; boundary=Apple-Mail-148-605993175; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v930.3) Date: Tue, 28 Apr 2009 10:09:57 +0200 References: <160513.83122.qm@web63904.mail.re1.yahoo.com> X-Mailer: Apple Mail (2.930.3) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-net@freebsd.org, Ed Maste 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 08:40:52 -0000 --Apple-Mail-148-605993175 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit To share my results: I have done at work modification to the polling code to do SMP polling (previously posted to this ml). SMP polling (dynamic group of interface binded to CPU) does not significantly improve the throughput (lock contention seems to be the cause here). The main advantage of polling with modern interface is not the PPS (which is nearly the same) but the global efficiency of the system when using multiple interfaces (which is the case for Firewall). The best configuration we have found with FreeBSD 6.3 is to do polling on one CPU and keep the other CPU free for other processing. In this configuration the whole system is more efficient than with interrupt where all the CPU are busy processing interrupt thread. Regards, Fabien --Apple-Mail-148-605993175--