Re: [PATCH RFC 1/2] virtio-net: bql support

From: Jason Wang
Date: Tue Jan 01 2019 - 22:30:34 EST

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
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.

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@xxxxxxxxxx>
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:
ÂÂÂ Suggested-by: Jason Wang <jasowang@xxxxxxxxxx>
ÂÂÂ Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx>
ÂÂÂ Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
ÂÂÂ Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>