Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Apr 2015 10:31:40 -0400
From:      "George Neville-Neil" <gnn@freebsd.org>
To:        "Gleb Smirnoff" <glebius@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r281276 - head/sys/net
Message-ID:  <1355AB02-F654-4129-BFDE-D3779664286A@freebsd.org>
In-Reply-To: <20150408205501.GW64665@FreeBSD.org>
References:  <201504082025.t38KPqU0019878@svn.freebsd.org> <20150408205501.GW64665@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On 8 Apr 2015, at 16:55, Gleb Smirnoff wrote:

> On Wed, Apr 08, 2015 at 08:25:51PM +0000, George V. Neville-Neil 
> wrote:
> G> Author: gnn
> G> Date: Wed Apr  8 20:25:51 2015
> G> New Revision: 281276
> G> URL: https://svnweb.freebsd.org/changeset/base/281276
> G>
> G> Log:
> G>   Add support for a netisr polling tunable, which allows run time 
> switching of
> G>   device polling rather than having it only be controlled by the 
> compile
> G>   time option.
> G>
> G>   Summary: Rubicon Communications (Netgate)
> G>   Reviewers: #network, hiren
> G>   Reviewed By: #network, hiren
> G>   Subscribers: hiren
> G>   Differential Revision: https://reviews.freebsd.org/D2258
>
> You gave very short time to review it :(
>
> First, the sysctl namespace for device polling is kern.polling.
> The polling(4) has two additional (to hardclock) modes of polling:
> netisr polling and idle polling. The idle polling was always contolled
> by sysctl in kern.polling namespace. Thus, the new sysctl should 
> reside
> in this namespace.
>
> The second important thing is whether sysctl isn't needed at all?
> What does Rubicon Communications (Netgate) need to achieve? My guess
> is that they got DEVICE_POLLING in the kernel, but zero interfaces
> with the IFCAP_POLLING bit set. And they don't want the poll_mtx to
> be locked routinely. If my guess is true, then the patch should be
> simple reverted, and in the kern/kern_poll.c, in the netisr_poll()
> and netisr_pollmore() there should be put:
>
>      if (poll_handlers == 0)
>              return;
>
> And that's all. Note that this is already done for hardclock polling.
>
> Accessing this value without poll_mtx held is entirely okay, since
> we don't care about a race on enabling/disabling polling for NIC.
>
> If my guess is wrong, and Rubicon Communications (Netgate) want
> to run hardclock polling, but have netisr polling disabled, then
> again the patch should be reverted, and then re-applied to 
> kern_poll.c,
> moving the netisr_polling variable there and the checks as well,
> and fixing sysctl namespace.
>

Your guess is correct.  I will revert my change and make the 
modification
to kern_poll.c

Best,
George



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1355AB02-F654-4129-BFDE-D3779664286A>