From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x134.google.com (mail-il1-x134.google.com [IPv6:2607:f8b0:4864:20::134]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 458853B29E for ; Mon, 21 Jun 2021 05:01:39 -0400 (EDT) Received: by mail-il1-x134.google.com with SMTP id 17so2026799ill.6 for ; Mon, 21 Jun 2021 02:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=0EC7XN3gtzAKSBnt9sYStGq3siPsvEzRItwaA9It66I=; b=oUAn5V85IGATh5m/d+ItGoIh/VkDNHtCPT6u9CkrXsvo6GLCfON8ypkLHXLIQs0fu6 HMszQ2Nwm1qmdJfjInzN5FFMiLMkKHKELCXKSIkeTYFRVx7DIAdSWPn8baPRMEcA/qJu 1u5DnxKLfiI8bJBgZurlLwZF2wxkuxWGC2cRluWRCiAjdrDpMHqajTWF5Yszo/84mxDI qTF73NYw9X9O9GUodTKzRYhbw8Y6NIDtNp7Smwln4N7pli4G83yB3ckipkBLpCfi3zvQ Mdy2njuod129laZDNWSShBRsw5EPjnL6cCUpRTbpBV2SjPr3WDy2hNpIi8MaQy8oyMpH zmmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=0EC7XN3gtzAKSBnt9sYStGq3siPsvEzRItwaA9It66I=; b=CCMcKQqnbZR4nSxp6poOKJd1LRG+gcPDZfQ0la9WehkcAAaRKZ5xtYQdMTEzhSUEk9 tFyPP2q+L8cWzqvDuUfkFElgGBreZmhoqi/eZwwrs6Bl8VM5Cjrk0Xy48GLM2AHn1dkj JqBn6XKSj4hc5qpkNNqKuVh9h/hF6zjYyo1rYbPoyff7NerQXfjKO4WTzAtDrBT0p8A+ lIsM3OCbVduURKz/UVeW95wWp7RdMkhM7OkS+kRqJA3Td7aXEK3K2xcnLpepc0q4K1cj Sbo8CHQHRTtMiZw3ULY4obd2javQvNM1PgTLKL3R4dX69v1BXTugNgRHCqqqjdLEl79S G9zQ== X-Gm-Message-State: AOAM5326u3WDL/YqpcBoDPcyddQB4FPCIZ1Wjl0i55TOnUHhHdjaczbO DOuz/xmxBqtsvmnhqandHHLQrU9ufVVcECd8jWQ4ju/CD0c= X-Google-Smtp-Source: ABdhPJxlgL61l4t1tt7KvN7FgPWNJqgoTLkTwkgUDDMmVCWv/9E2g30gCvzvxzM7TXP2flZSRWl/vUNyBJsACIROHEo= X-Received: by 2002:a92:dc8d:: with SMTP id c13mr1081150iln.287.1624266098309; Mon, 21 Jun 2021 02:01:38 -0700 (PDT) MIME-Version: 1.0 From: Dave Taht Date: Mon, 21 Jun 2021 02:01:26 -0700 Message-ID: To: starlink@lists.bufferbloat.net Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: [Starlink] on BQL -- Byte Queue Limits X-BeenThere: starlink@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Starlink has bufferbloat. Bad." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2021 09:01:39 -0000 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 dev= ice 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 =3D=3D 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 --=20 Latest Podcast: https://www.linkedin.com/feed/update/urn:li:activity:6791014284936785920/ Dave T=C3=A4ht CTO, TekLibre, LLC