* [Starlink] on BQL -- Byte Queue Limits
@ 2021-06-21 9:01 Dave Taht
2021-06-21 9:03 ` Dave Taht
0 siblings, 1 reply; 2+ messages in thread
From: Dave Taht @ 2021-06-21 9:01 UTC (permalink / raw)
To: starlink
Have been in the linux kernel since version 3.3, but it requires about
6 lines of calls within each
device driver to effectively enable. What BQL does is supply one
interrupt's worth of data backpressure
to the overlying queuing discipline (qdisc) to do more magic, where we
had first put latency sensitive
qdiscs like fq_codel. At 100Mbit (without TSO), this is typically 3-8k
of data living on the device tx ring
where prior to the development of BQL and awareness of bufferbloat as
a problem, this had hit numbers as large as 64k*4096...
Anything that can supply backpressure to the qdisc before it enters the device
driver's ring buffers can be used however - high/low watermarks are
still pretty common - but because
BQL uses byte limits, rather than variably sized (64-64k) packet
limits, and bytes == time on most media, BQL is the best thing going
"down there" in the Linux kernel. BSD has no equivalent functionality
as yet.
Linux AQL - Airtime queue limits - is closely related, but for wifi.
There is an extension, called XMIT_MORE that helps on batchier
transfers from the qdisc.
We never wrote BQL up in "bufferbloat and beyond" because it was
already well established when toke
started his MsC thesis, even though it was the breakthrough algorithm
that made all our debloating
work feasible.
There's a link to a paper and a tutorial about BQL in this old
presentation to broadcom here:
And a detailed, often ranty but chock full of links to other good old
papers, over here:
https://conferences.sigcomm.org/sigcomm/2014/doc/slides/137.pdf
IPQ8014 does appear to have a BQL'd ethernet driver, but haven't
looked deeply yet.
PS Writing this stuff up because this list is largely a new audience
for the bufferbloat related APIs in
the linux kernel
--
Latest Podcast:
https://www.linkedin.com/feed/update/urn:li:activity:6791014284936785920/
Dave Täht CTO, TekLibre, LLC
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Starlink] on BQL -- Byte Queue Limits
2021-06-21 9:01 [Starlink] on BQL -- Byte Queue Limits Dave Taht
@ 2021-06-21 9:03 ` Dave Taht
0 siblings, 0 replies; 2+ messages in thread
From: Dave Taht @ 2021-06-21 9:03 UTC (permalink / raw)
To: starlink
oops: broadcom preso here: http://www.taht.net/~d/broadcom_aug9_2018.pdf
On Mon, Jun 21, 2021 at 2:01 AM Dave Taht <dave.taht@gmail.com> wrote:
>
> Have been in the linux kernel since version 3.3, but it requires about
> 6 lines of calls within each
> device driver to effectively enable. What BQL does is supply one
> interrupt's worth of data backpressure
> to the overlying queuing discipline (qdisc) to do more magic, where we
> had first put latency sensitive
> qdiscs like fq_codel. At 100Mbit (without TSO), this is typically 3-8k
> of data living on the device tx ring
> where prior to the development of BQL and awareness of bufferbloat as
> a problem, this had hit numbers as large as 64k*4096...
>
> Anything that can supply backpressure to the qdisc before it enters the device
> driver's ring buffers can be used however - high/low watermarks are
> still pretty common - but because
> BQL uses byte limits, rather than variably sized (64-64k) packet
> limits, and bytes == time on most media, BQL is the best thing going
> "down there" in the Linux kernel. BSD has no equivalent functionality
> as yet.
>
> Linux AQL - Airtime queue limits - is closely related, but for wifi.
>
> There is an extension, called XMIT_MORE that helps on batchier
> transfers from the qdisc.
>
> We never wrote BQL up in "bufferbloat and beyond" because it was
> already well established when toke
> started his MsC thesis, even though it was the breakthrough algorithm
> that made all our debloating
> work feasible.
>
> There's a link to a paper and a tutorial about BQL in this old
> presentation to broadcom here:
>
> And a detailed, often ranty but chock full of links to other good old
> papers, over here:
> https://conferences.sigcomm.org/sigcomm/2014/doc/slides/137.pdf
>
> IPQ8014 does appear to have a BQL'd ethernet driver, but haven't
> looked deeply yet.
>
> PS Writing this stuff up because this list is largely a new audience
> for the bufferbloat related APIs in
> the linux kernel
>
> --
> Latest Podcast:
> https://www.linkedin.com/feed/update/urn:li:activity:6791014284936785920/
>
> Dave Täht CTO, TekLibre, LLC
--
Latest Podcast:
https://www.linkedin.com/feed/update/urn:li:activity:6791014284936785920/
Dave Täht CTO, TekLibre, LLC
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-06-21 9:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-21 9:01 [Starlink] on BQL -- Byte Queue Limits Dave Taht
2021-06-21 9:03 ` Dave Taht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox