[tcpm] A description of Linux pacing

Michael Welzl <michawe@ifi.uio.no> Mon, 19 February 2024 14:06 UTC

Return-Path: <michawe@ifi.uio.no>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E1EBCC14F702 for <tcpm@ietfa.amsl.com>; Mon, 19 Feb 2024 06:06:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.007
X-Spam-Level:
X-Spam-Status: No, score=-2.007 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ifi.uio.no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id v-mboSdMHThg for <tcpm@ietfa.amsl.com>; Mon, 19 Feb 2024 06:06:26 -0800 (PST)
Received: from mail-out02.uio.no (mail-out02.uio.no [IPv6:2001:700:100:8210::71]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 21E5FC14F6FF for <tcpm@ietf.org>; Mon, 19 Feb 2024 06:06:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ifi.uio.no; s=key2309; h=To:Date:Message-Id:Subject:Mime-Version:Content-Type:From:Sender :Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=TpWhxTLWNfmEFX9JJx0aEkaZCZE47e1r5vU6fZnY360=; b=ZxTIo9L9OZCU4Zqe3FIs9v0276 UGkjFrcr1n67qn7T4x9mC0eO8/tlovGYCw/MLbJvh+gbTXV2UhUzQ/grhyrYqoUzGmy/3nWEhGjGW Ef59C2g02Al323CZqLboLRM6vvKW+ImwB4sMDr9a/geKhY8JLivx6pEF1kfA/giddmGhT1G85BcOb CuBZyAWaePlopqs/omi0y6tTi52v75iP4z9GvK3/PG028mORM7sSATpAQDOHY82P3BtTroLybd0EN u15nB+4t0dif2ABTKNX2R6+ubs9NJW0a0h2gz9Gio3D/0AlUF1A+zQi5FSyHOsvgdjk4Cx4kyLUSn uX1X0SKw==;
Received: from mail-mx10.uio.no ([129.240.10.27]) by mail-out02.uio.no with esmtps (TLS1.2) tls TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from <michawe@ifi.uio.no>) id 1rc4Hn-00CHSI-2k; Mon, 19 Feb 2024 15:06:23 +0100
Received: from collaborix.ifi.uio.no ([129.240.69.78] helo=smtpclient.apple) by mail-mx10.uio.no with esmtps (TLS1.2:ECDHE-ECDSA-AES256-GCM-SHA384:256) (Exim 4.96.2) (envelope-from <michawe@ifi.uio.no>) id 1rc4Hn-000Fdg-0w; Mon, 19 Feb 2024 15:06:23 +0100
From: Michael Welzl <michawe@ifi.uio.no>
Content-Type: multipart/alternative; boundary="Apple-Mail=_BE1640D9-DD3A-4F24-84E8-FAFE9055C0C8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
Message-Id: <AE83F8F4-7D71-4034-93E7-365E1CD701F5@ifi.uio.no>
Date: Mon, 19 Feb 2024 15:06:23 +0100
To: tcpm@ietf.org, iccrg@irtf.org
X-Mailer: Apple Mail (2.3696.120.41.1.1)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx10.uio.no: 129.240.69.78 is neither permitted nor denied by domain of ifi.uio.no) client-ip=129.240.69.78; envelope-from=michawe@ifi.uio.no; helo=smtpclient.apple;
X-UiO-Spam-info: not spam, SpamAssassin (score=-4.6, required=5.0, autolearn=disabled, HTML_MESSAGE=0.001, KHOP_HELO_FCRDNS=0.399, T_SCC_BODY_TEXT_LINE=-0.01, UIO_MAIL_IS_INTERNAL=-5)
X-UiO-Scanned: 859D9CF088D04BB491DF9F7B02916F6DBBB34B8D
X-UiOonly: C551C7B0273CA77EA41B50854329FF498DAAEEC1
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/sEz_bBzbQ3oNkhFJU2IBerHmjGY>
Subject: [tcpm] A description of Linux pacing
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 19 Feb 2024 14:06:31 -0000

Dear TCPM and ICCRG (I assume that there’s so much overlap with people in CCWG that it would just be spamming to send it there too?),

Over the last two weeks or so, I have put some effort into trying to understand how Linux pacing *really* works  (I had some descriptions that were somewhat high-level; I wanted to obtain a more precise lower-level understanding).
I wrote a document, just for myself, explaining what goes on in the code, as I can’t even try to follow the Linux kernel without taking notes.

After a first iteration, I shared it with the bufferbloat mailing list, in the hope of getting corrections.
I did!  Most notably (but not only), Neal Cardwell helped me a ton - and now the document should be quite thorough and hopefully correct.

While I only did this for myself and just asked the list for help, several people have in the meantime told me that this document is actually valuable for the community - and so I thought I should share it here, too.
It lives as a Google doc at this URL:
https://docs.google.com/document/d/1-uXnPDcVBKmg5krkG5wYBgaA2yLSFK_kZa7xGDWc7XU/edit?usp=sharing <https://docs.google.com/document/d/1-uXnPDcVBKmg5krkG5wYBgaA2yLSFK_kZa7xGDWc7XU/edit?usp=sharing>

Comments or fixes are very welcome!
Please feel free to forward this as you want.

I know that Google docs is not the format that we people here normally use  :-)   well, if someone thinks that it would indeed be useful to write this up as an I-D (probably skipping all the code details though), please let me know - I can do that, and I can also present it if there’s interest (but in Vancouver, not Brisbane).

Cheers,
Michael