From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [PATCH net-next] virtio_net: ethtool tx napi configuration Date: Thu, 13 Sep 2018 17:02:23 +0800 Message-ID: <4a3d69be-8651-e36d-bc14-5a3f1f23d155@redhat.com> References: <20180909224449.203593-1-willemdebruijn.kernel@gmail.com> <2fd8d46f-7466-e507-af31-c587693beb6e@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Cc: Network Development , David Miller , caleb.raitto@gmail.com, "Michael S. Tsirkin" , "Jon Olson (Google Drive)" , Willem de Bruijn To: Willem de Bruijn , f.fainelli@gmail.com Return-path: Received: from mx1.redhat.com ([209.132.183.28]:58382 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726855AbeIMOLE (ORCPT ); Thu, 13 Sep 2018 10:11:04 -0400 In-Reply-To: Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 2018年09月13日 07:27, Willem de Bruijn wrote: > On Wed, Sep 12, 2018 at 3:11 PM Willem de Bruijn > wrote: >> On Wed, Sep 12, 2018 at 2:16 PM Florian Fainelli wrote: >>> >>> >>> On 9/12/2018 11:07 AM, Willem de Bruijn wrote: >>>> On Wed, Sep 12, 2018 at 1:42 PM Florian Fainelli wrote: >>>>> >>>>> >>>>> On 9/9/2018 3:44 PM, Willem de Bruijn wrote: >>>>>> From: Willem de Bruijn >>>>>> >>>>>> Implement ethtool .set_coalesce (-C) and .get_coalesce (-c) handlers. >>>>>> Interrupt moderation is currently not supported, so these accept and >>>>>> display the default settings of 0 usec and 1 frame. >>>>>> >>>>>> Toggle tx napi through a bit in tx-frames. So as to not interfere >>>>>> with possible future interrupt moderation, use bit 10, well outside >>>>>> the reasonable range of real interrupt moderation values. >>>>>> >>>>>> Changes are not atomic. The tx IRQ, napi BH and transmit path must >>>>>> be quiesced when switching modes. Only allow changing this setting >>>>>> when the device is down. >>>>> Humm, would not a private ethtool flag to switch TX NAPI on/off be more >>>>> appropriate rather than use the coalescing configuration API here? >>>> What do you mean by private ethtool flag? A new field in ethtool >>>> --features (-k)? >>> I meant using ethtool_drvinfo::n_priv_flags, ETH_SS_PRIV_FLAGS and then >>> ETHTOOL_GFPFLAGS and ETHTOOL_SPFLAGS to control the toggling of that >>> private flag. mlx5 has a number of privates flags for instance. >> Interesting, thanks! I was not at all aware of those ethtool flags. >> Am having a look. It definitely looks promising. > Okay, I made that change. That is indeed much cleaner, thanks. > Let me send the patch, initially as RFC. > > I've observed one issue where if we toggle the flag before bringing > up the device, it hits a kernel BUG at include/linux/netdevice.h:515 > > BUG_ON(!test_bit(NAPI_STATE_SCHED, &n->state)); This reminds me that we need to check netif_running() before trying to enable and disable tx napi in ethtool_set_coalesce(). Thanks