From: Simon Schippers <simon.schippers@tu-dortmund.de>
To: hawk@kernel.org, netdev@vger.kernel.org,
"Jonas Köppeler" <j.koeppeler@tu-berlin.de>
Cc: kernel-team@cloudflare.com,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Simon Horman" <horms@kernel.org>,
"Chris Arges" <carges@cloudflare.com>,
"Mike Freemon" <mfreemon@cloudflare.com>,
"Toke Høiland-Jørgensen" <toke@toke.dk>,
"Breno Leitao" <leitao@debian.org>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"John Fastabend" <john.fastabend@gmail.com>,
"Stanislav Fomichev" <sdf@fomichev.me>,
bpf@vger.kernel.org
Subject: Re: [PATCH net-next v7 0/5] veth: add Byte Queue Limits (BQL) support
Date: Tue, 15 Sep 2026 16:30:54 +0200 [thread overview]
Message-ID: <3a3a99dc-b554-4b5d-a004-67454e66e5e0@tu-dortmund.de> (raw)
In-Reply-To: <ed63c31c-0d05-4532-bed6-23b7608ec5e2@tu-dortmund.de>
On 8/10/26 15:25, Simon Schippers wrote:
> On 6/12/26 10:35, hawk@kernel.org wrote:
>> From: Jesper Dangaard Brouer <hawk@kernel.org>
>>
>> This series adds BQL (Byte Queue Limits) to the veth driver, reducing
>> latency by dynamically limiting in-flight packets in the ptr_ring and
>> moving buffering into the qdisc where AQM algorithms can act on it.
>
> Hi :)
>
> I worked on my implementation of DQL coalescing that lives in
> dynamic_queue_limits.{h,c} and wanted to share it so we can consider it
> for the next cycle. This is because in the next cycle I would
> like to add BQL support for tun/tap as well, in addition to veth.
> Is that fine for you?
>
> I think it is in good shape. It uses the same logic as the v7, but
> every new field fits inside the existing dql struct, and drivers only
> need to call the usual netdev_tx_sent_queue() and
> netdev_tx_completed_queue() to use it. Patch 3, 5 and 6 are the same
> as before, only 1, 2 and 4 are new. Benchmarks looked fine for me.
>
> There should be no regressions for other DQL/BQL users. I paid close
> attention not to break the dql cache lines or other logic.
> coal_usecs is now configurable per queue via sysfs and also via ethtool
> as usual.
>
> While working on this, I found a missing barrier in v7:
> There was no smp_rmb() pairing the smp_wmb() in __ptr_ring_produce()
> before dql_completed() reads dql->num_queued. This happens to be safe
> on x86, but on other platforms the read of dql->num_queued could be
> reordered before __ptr_ring_consume(), triggering a BUG_ON() in
> dql_completed(). Fixed by adding the missing smp_rmb() in veth_xdp_rcv()
> before completing.
>
> Would love to hear your thoughts on the implementation!
>
> Thanks,
> Simon
Hi! Any thoughts on this? Do you want to continue this series?
Thanks!
next prev parent reply other threads:[~2026-09-15 14:31 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-12 8:35 [PATCH net-next v7 0/5] veth: add Byte Queue Limits (BQL) support hawk
2026-06-12 8:35 ` [PATCH net-next v7 1/5] net: add dev->bql flag to allow BQL sysfs for IFF_NO_QUEUE devices hawk
2026-06-12 8:35 ` [PATCH net-next v7 2/5] veth: implement Byte Queue Limits (BQL) for latency reduction hawk
2026-06-12 8:35 ` [PATCH net-next v7 3/5] veth: add tx_timeout watchdog as BQL safety net hawk
2026-06-12 8:35 ` [PATCH net-next v7 4/5] net: sched: add timeout count to NETDEV WATCHDOG message hawk
2026-06-12 8:35 ` [PATCH net-next v7 5/5] veth: time-based BQL completion coalescing via ethtool tx-usecs hawk
2026-06-13 14:14 ` Simon Schippers
2026-06-30 14:00 ` Jonas Köppeler
2026-06-30 19:07 ` Simon Schippers
2026-07-09 10:03 ` Jonas Köppeler
2026-06-12 14:10 ` [PATCH net-next v7 0/5] veth: add Byte Queue Limits (BQL) support Simon Schippers
2026-06-12 17:21 ` Jonas Köppeler
2026-06-13 13:57 ` Simon Schippers
2026-06-16 1:53 ` Jakub Kicinski
2026-08-10 13:25 ` Simon Schippers
2026-09-15 14:30 ` Simon Schippers [this message]
2026-09-16 6:45 ` Jesper Dangaard Brouer
2026-09-16 8:14 ` Simon Schippers
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=3a3a99dc-b554-4b5d-a004-67454e66e5e0@tu-dortmund.de \
--to=simon.schippers@tu-dortmund.de \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=carges@cloudflare.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=horms@kernel.org \
--cc=j.koeppeler@tu-berlin.de \
--cc=john.fastabend@gmail.com \
--cc=kernel-team@cloudflare.com \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=mfreemon@cloudflare.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@fomichev.me \
--cc=toke@toke.dk \
/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