From: Jason Wang <jasowang@redhat.com>
To: Willem de Bruijn <willemdebruijn.kernel@gmail.com>, f.fainelli@gmail.com
Cc: Network Development <netdev@vger.kernel.org>,
David Miller <davem@davemloft.net>,
caleb.raitto@gmail.com, "Michael S. Tsirkin" <mst@redhat.com>,
"Jon Olson (Google Drive)" <jonolson@google.com>,
Willem de Bruijn <willemb@google.com>
Subject: Re: [PATCH net-next] virtio_net: ethtool tx napi configuration
Date: Thu, 13 Sep 2018 17:04:04 +0800 [thread overview]
Message-ID: <c67d5ce9-d6b4-737c-6b7e-ddb9906ddacd@redhat.com> (raw)
In-Reply-To: <CAF=yD-+Aqe=9GbKGo_n748D97W2rJHdsYL+cay1gyR4eA2Hc=w@mail.gmail.com>
On 2018年09月13日 03:11, Willem de Bruijn wrote:
> On Wed, Sep 12, 2018 at 2:16 PM Florian Fainelli <f.fainelli@gmail.com> wrote:
>>
>>
>> On 9/12/2018 11:07 AM, Willem de Bruijn wrote:
>>> On Wed, Sep 12, 2018 at 1:42 PM Florian Fainelli <f.fainelli@gmail.com> wrote:
>>>>
>>>>
>>>> On 9/9/2018 3:44 PM, Willem de Bruijn wrote:
>>>>> From: Willem de Bruijn <willemb@google.com>
>>>>>
>>>>> 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.
>
>>> Configurable napi-tx is not a common feature across devices. We really
>>> want virtio-net to also just convert to napi-tx as default, but need a
>>> way to gradually convert with application opt-out if some workloads
>>> see regressions.
>> The rationale makes sense, no questions about it.
>>
>>> There is prior art in interpreting coalesce values as
>>> more than a direct mapping to usec. The e1000 is one example.
>>>
>> Looked at both e1000 and e1000e and they both have a similar programming
>> of the HW's interrupt target rate register, which is relevant to
>> interrupt coalescing, what part of these drivers do you see as doing
>> something not quite coalescing related?
> It's all coalescing related, for sure. e1000_set_coalesce just does not
> translate the tx-usecs values into microsecond latency directly.
>
> It modifies both the interrupt throttle rate adapter->itr and interrupt mode
> adapter->itr_setting, which are initially set in e1000_check_options from
> module param InterruptThrottleRate.
>
> Value 0 disables interrupt moderation. 1 and 3 program a dynamic mode.
> 2 is an illegal value as is 5..9. 10..10000 converts from usec to interrupt
> rate/sec.
>
> I took tx-napi to be a similar interrupt related option as, say, dynamic
> conservative mode interrupt moderation.
Consider we may have interrupt moderation in the future, I tend to use
set_coalesce. Otherwise we may need two steps to enable moderation:
- tx-napi on
- set_coalesce
Thanks
prev parent reply other threads:[~2018-09-13 14:12 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-09 22:44 [PATCH net-next] virtio_net: ethtool tx napi configuration Willem de Bruijn
2018-09-10 6:01 ` Jason Wang
2018-09-10 13:35 ` Willem de Bruijn
2018-09-11 0:45 ` Jason Wang
2018-09-11 1:14 ` Willem de Bruijn
2018-09-12 3:35 ` Jason Wang
2018-09-12 13:43 ` Willem de Bruijn
2018-09-13 9:05 ` Jason Wang
2018-09-12 17:42 ` Florian Fainelli
2018-09-12 18:07 ` Willem de Bruijn
2018-09-12 18:16 ` Florian Fainelli
2018-09-12 19:11 ` Willem de Bruijn
2018-09-12 23:27 ` Willem de Bruijn
2018-09-13 9:02 ` Jason Wang
2018-09-13 14:58 ` Willem de Bruijn
2018-09-14 3:27 ` Jason Wang
2018-09-14 3:40 ` Willem de Bruijn
2018-09-14 3:53 ` Jason Wang
2018-09-14 4:46 ` Willem de Bruijn
2018-09-14 8:08 ` Jason Wang
2018-09-27 8:50 ` Jason Wang
2018-09-27 13:53 ` Willem de Bruijn
2018-09-27 23:39 ` Jason Wang
2018-09-13 9:04 ` Jason Wang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c67d5ce9-d6b4-737c-6b7e-ddb9906ddacd@redhat.com \
--to=jasowang@redhat.com \
--cc=caleb.raitto@gmail.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=jonolson@google.com \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=willemb@google.com \
--cc=willemdebruijn.kernel@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).