From owner-freebsd-current@FreeBSD.ORG Thu Jun 7 18:14:43 2007 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C6BDB16A400 for ; Thu, 7 Jun 2007 18:14:43 +0000 (UTC) (envelope-from cswiger@mac.com) Received: from mail-out3.apple.com (mail-out3.apple.com [17.254.13.22]) by mx1.freebsd.org (Postfix) with ESMTP id AC31E13C457 for ; Thu, 7 Jun 2007 18:14:43 +0000 (UTC) (envelope-from cswiger@mac.com) Received: from relay8.apple.com (relay8.apple.com [17.128.113.38]) by mail-out3.apple.com (Postfix) with ESMTP id A311A82423B; Thu, 7 Jun 2007 11:13:45 -0700 (PDT) Received: from relay8.apple.com (unknown [127.0.0.1]) by relay8.apple.com (Symantec Mail Security) with ESMTP id 5D2894010B; Thu, 7 Jun 2007 11:14:43 -0700 (PDT) X-AuditID: 11807126-a0085bb00000081c-8e-46684b13045b Received: from [17.214.13.96] (cswiger1.apple.com [17.214.13.96]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by relay8.apple.com (Apple SCV relay) with ESMTP id 4D30640101; Thu, 7 Jun 2007 11:14:43 -0700 (PDT) In-Reply-To: <499c70c0706070236x28d781e6yb8ba4c8ccd251372@mail.gmail.com> References: <499c70c0706070210v39f7016hbd80e9780902e992@mail.gmail.com> <20070607093027.GA4784@heff.fud.org.nz> <499c70c0706070236x28d781e6yb8ba4c8ccd251372@mail.gmail.com> Mime-Version: 1.0 (Apple Message framework v752.2) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <29EFA5CA-6232-45AA-A10D-0A45BB3E2100@mac.com> Content-Transfer-Encoding: 7bit From: Chuck Swiger Date: Thu, 7 Jun 2007 11:14:42 -0700 To: Abdullah Ibn Hamad Al-Marri X-Mailer: Apple Mail (2.752.2) X-Brightmail-Tracker: AAAAAA== Cc: freebsd-current@freebsd.org, Andrew Thompson Subject: Re: Why not remove polling(4) from 7.0? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2007 18:14:43 -0000 On Jun 7, 2007, at 2:36 AM, Abdullah Ibn Hamad Al-Marri wrote: >> > So why not remove it or switch to adaptive polling as em(4) >> instead of >> > resorting to polling? >> >> Are you just talking about em(4) or removing polling for all >> drivers? It >> is helpful in some cases, for example I run FreeBSD on a Nortel >> contivity 1010 box where interrupts do not work on the fxp >> interface and >> yet its quite usable with polling mode. >> >> Its not enabled by default so its up to the user if they want to make >> use of it. > > I mean can't we use better handeling for nics which is better than > current polling(4)? If a particular NIC supports something like interrupt mitigation, generally it will be enabled by default. Of course, using interrupt mitigation adds latency also, just as using polling does, but the tradeoffs are probably worth it for many cases. However, under other circumstances-- such as continuous or nearly continuous high traffic loads on something like a router or firewall application-- polling tends to handle such load better and avoid livelock and/or excessive context switches to the interrupt handler resulting in lower throughput. The key point to notice is that polling is not the default behavior, it's an option which can be selectively enabled when the admin of a particular machine decides that it might prove to be the better choice. And, as Andrew mentioned, in a few cases you'll find a machine where the NIC doesn't fire interrupts off correctly at all, generally due to some major flaw in the hardware or BIOS config, but polling will still work OK. -- -Chuck