netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: linux-kernel@vger.kernel.org, maxime.coquelin@redhat.com,
	tiwei.bie@intel.com, wexu@redhat.com, jfreimann@redhat.com,
	"David S. Miller" <davem@davemloft.net>,
	virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org
Subject: Re: [PATCH RFC 1/2] virtio-net: bql support
Date: Thu, 17 Jan 2019 21:09:30 +0800	[thread overview]
Message-ID: <a8f84698-9a60-93ac-c2ee-3634f6ba5cf7@redhat.com> (raw)
In-Reply-To: <20190102083202-mutt-send-email-mst@kernel.org>


On 2019/1/2 下午9:54, Michael S. Tsirkin wrote:
> On Wed, Jan 02, 2019 at 11:30:11AM +0800, Jason Wang wrote:
>> On 2018/12/31 上午2:48, Michael S. Tsirkin wrote:
>>> On Thu, Dec 27, 2018 at 06:04:53PM +0800, Jason Wang wrote:
>>>> On 2018/12/26 下午11:22, Michael S. Tsirkin wrote:
>>>>> On Thu, Dec 06, 2018 at 04:17:36PM +0800, Jason Wang wrote:
>>>>>> On 2018/12/6 上午6:54, Michael S. Tsirkin wrote:
>>>>>>> When use_napi is set, let's enable BQLs.  Note: some of the issues are
>>>>>>> similar to wifi.  It's worth considering whether something similar to
>>>>>>> commit 36148c2bbfbe ("mac80211: Adjust TSQ pacing shift") might be
>>>>>>> benefitial.
>>>>>> I've played a similar patch several days before. The tricky part is the mode
>>>>>> switching between napi and no napi. We should make sure when the packet is
>>>>>> sent and trakced by BQL,  it should be consumed by BQL as well.
>>>>> I just went over the patch again and I don't understand this comment.
>>>>> This patch only enabled BQL with tx napi.
>>>>>
>>>>> Thus there's no mode switching.
>>>>>
>>>>> What did I miss?
>>>> Consider the case:
>>>>
>>>>
>>>> TX NAPI is disabled:
>>>>
>>>> send N packets
>>>>
>>>> turn TX NAPI on:
>>>>
>>>> get tx interrupt
>>>>
>>>> BQL try to consume those packets when lead WARN for dql.
>>>>
>>>>
>>>> Thanks
>>> Can one really switch tx napi on and off? How?
>>> While root can change the napi_tx module parameter, I don't think
>>> that has any effect outside device probe time. What did I miss?
>>>
>>>
>>>
>> We support switch the mode through ethtool recently. See
>>
>> commit 0c465be183c7c57a26446df6ea96d8676b865f92
>> Author: Jason Wang <jasowang@redhat.com>
>> Date:   Tue Oct 9 10:06:26 2018 +0800
>>
>>      virtio_net: ethtool tx napi configuration
>>
>>      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 setting tx-frames. So as to not interfere
>>      with possible future interrupt moderation, value 1 means tx napi while
>>      value 0 means not.
>>
>>      Only allow the switching when device is down for simplicity.
>>
>>      Link: https://patchwork.ozlabs.org/patch/948149/
>>      Suggested-by: Jason Wang <jasowang@redhat.com>
>>      Signed-off-by: Willem de Bruijn <willemb@google.com>
>>      Signed-off-by: Jason Wang <jasowang@redhat.com>
>>      Signed-off-by: David S. Miller <davem@davemloft.net>
>>
>> Thanks
>
> It's disabled when device is up - isn't that enough?


Consider the case:

1) tx napi is disabled

2) send packets

3) tx napi is enabled through ethtool

4) get tx interrupt

5) BQL may start to consume packet that was sent when tx napi is 
disabled which will trigger BUG or WARN in dql

Thanks



  reply	other threads:[~2019-01-17 13:09 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-05 22:54 [PATCH RFC 0/2] virtio-net: interrupt related improvements Michael S. Tsirkin
2018-12-05 22:54 ` [PATCH RFC 1/2] virtio-net: bql support Michael S. Tsirkin
2018-12-06  8:17   ` Jason Wang
2018-12-06  8:31     ` Jason Wang
2018-12-26 15:15     ` Michael S. Tsirkin
2018-12-27  9:56       ` Jason Wang
2018-12-26 15:19     ` Michael S. Tsirkin
2018-12-27 10:00       ` Jason Wang
2018-12-30 18:45         ` Michael S. Tsirkin
2019-01-02  3:28           ` Jason Wang
2019-01-02 13:59             ` Michael S. Tsirkin
2019-01-07  2:14               ` Jason Wang
2019-01-07  3:17                 ` Michael S. Tsirkin
2019-01-07  3:51                   ` Jason Wang
2019-01-07  4:01                     ` Michael S. Tsirkin
2019-01-07  6:31                       ` Jason Wang
2019-01-07 14:19                         ` Michael S. Tsirkin
2019-01-08 10:06                           ` Jason Wang
2018-12-26 15:22     ` Michael S. Tsirkin
2018-12-27 10:04       ` Jason Wang
2018-12-30 18:48         ` Michael S. Tsirkin
2019-01-02  3:30           ` Jason Wang
2019-01-02 13:54             ` Michael S. Tsirkin
2019-01-17 13:09               ` Jason Wang [this message]
2018-12-05 22:54 ` [PATCH RFC 2/2] virtio_net: bulk free tx skbs Michael S. Tsirkin

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=a8f84698-9a60-93ac-c2ee-3634f6ba5cf7@redhat.com \
    --to=jasowang@redhat.com \
    --cc=davem@davemloft.net \
    --cc=jfreimann@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxime.coquelin@redhat.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=tiwei.bie@intel.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=wexu@redhat.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).