Re: [tcpm] A description of Linux pacing

Yuchung Cheng <ycheng@google.com> Fri, 22 March 2024 20:07 UTC

Return-Path: <ycheng@google.com>
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 700BCC180B7B for <tcpm@ietfa.amsl.com>; Fri, 22 Mar 2024 13:07:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.607
X-Spam-Level:
X-Spam-Status: No, score=-17.607 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=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, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 f1nutzWIb3-a for <tcpm@ietfa.amsl.com>; Fri, 22 Mar 2024 13:07:49 -0700 (PDT)
Received: from mail-yw1-x1134.google.com (mail-yw1-x1134.google.com [IPv6:2607:f8b0:4864:20::1134]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 959DAC151093 for <tcpm@ietf.org>; Fri, 22 Mar 2024 13:07:49 -0700 (PDT)
Received: by mail-yw1-x1134.google.com with SMTP id 00721157ae682-60a0a1bd04eso27618707b3.1 for <tcpm@ietf.org>; Fri, 22 Mar 2024 13:07:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1711138068; x=1711742868; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=oMUR8JqsaoKXRiAll+31snAta8f8VRC3sdxwDMJ9Uhg=; b=xPOFhb+AZCW+koWunVkftxK+8boXtcLJ2AfempfSzVBnwVXZKhMhlOF8DHL44Ta2Cj 0F00N7ficP8SEMbrBJ6KkzI6jobq8GEAvc1QxERZhNbGFFKjlgN4OFuuyv6B3OAz/xmc QXv+MwaO45IuZlb4ke+M7FhPpLtmCHRMI8QzGJ9+UiEuYDwy+hOZMJuaPQZnnUumtRIt WShWIgETtjb3zOkSwiDLKC1ZcCSRui4oeEQeiZ2NYGvot5S4+DTTEpXGAn+y2bzleW9f tmGknHkJoMwCVsOH88XbB9ZJzfj9v4i36OC7Hp9uQ78zjXi00PVFMXVSf//5WE+OWJQj BLjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711138068; x=1711742868; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=oMUR8JqsaoKXRiAll+31snAta8f8VRC3sdxwDMJ9Uhg=; b=GWdoOkkaw+qC3aHz1tmgWLCsDqCPGdqf3HSnn8xpTzgIOgSJBIcP+r6DeOVWlIH67f b3eoETUInJqxiP5b5nB2v9ZnKAPvWLuGN8NCI1BrGXl/SIGDjTPzq0ghpw44Qrsw3Pyv 4lcBrRNqq/8MoEw+pP2wHqTM90gjVgU3J0VYXv46jUTdy9+czdOUm8F7Vfcu0AxOfXMa /m39veOjMpQ9661gWEhejjzq1kDF2ViCGOtuOFaR1gd6W4sRZkSj1zs9njMSE+YiXYqs sn0Pqx2O5YAue8E2CXlRQ/biMEnUGFZZBKpKct4N4rDhwxF9wcS+ZlPitUjyMqwkxc3b +xPA==
X-Forwarded-Encrypted: i=1; AJvYcCUMXskNNm6L+xRypinm+Q8Sz0I8p531kBKbRyb69Rf8R+pfvOKAG6P4mooJ7X3IskvdEUu0EEpi0erKs/Lr
X-Gm-Message-State: AOJu0Yzq+Je9Dt0MfZng1vNlfvGIragXJJdPp58Rb0QXxO1B1k8aQ2zn s6CmqRO8iHM1AGWBNmDKwY2FvEAjadwnqzqQopBKKyelarDgUUX+NEFOn6cxROGW44bQ4xh2Loh ryFj5HSnyCrM0eTaA6cL2hE4ZNRAFiDrifJuf
X-Google-Smtp-Source: AGHT+IG43c3MfUcQvdZ+l8DtscBUYOB/cjWfNun41Lll24EyB8FonLRkJuB0QJj8ZgrAKiTfmyWn4viZHCHkCegiSrg=
X-Received: by 2002:a0d:ead6:0:b0:60a:2f27:a78c with SMTP id t205-20020a0dead6000000b0060a2f27a78cmr796081ywe.22.1711138068036; Fri, 22 Mar 2024 13:07:48 -0700 (PDT)
MIME-Version: 1.0
References: <AE83F8F4-7D71-4034-93E7-365E1CD701F5@ifi.uio.no> <CAM4esxQg=MmBMJ-2dyWLX0HCy9yBCCaVBaWof31MFNBC-37ajQ@mail.gmail.com> <16FCCC7E-7F2E-453D-AD9B-BA6942C7B2F9@ifi.uio.no> <CAK6E8=e8zKtnKKinu3d81Wpk2gYRa8iPMO+Z9ynSd8PSP0Fp0A@mail.gmail.com> <587F9123-886F-49B2-9145-B7BEBD0CDF73@ifi.uio.no> <3913cc016a774fb5b1f262232ad97a25@hs-esslingen.de>
In-Reply-To: <3913cc016a774fb5b1f262232ad97a25@hs-esslingen.de>
From: Yuchung Cheng <ycheng@google.com>
Date: Fri, 22 Mar 2024 13:07:06 -0700
Message-ID: <CAK6E8=ejDxfWH2Q295mTRPxWO712M2U0fSyWVC5b+0LDvafTjQ@mail.gmail.com>
To: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
Cc: Michael Welzl <michawe@ifi.uio.no>, Eric Dumazet <edumazet@google.com>, "tcpm@ietf.org" <tcpm@ietf.org>, "iccrg@irtf.org" <iccrg@irtf.org>
Content-Type: multipart/alternative; boundary="000000000000b5548b06144560c6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/YINLDtxM7BVuwTqTDb3wsBXbtqE>
Subject: Re: [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: Fri, 22 Mar 2024 20:07:54 -0000

my 2c: Linux is open source. nothing is better than the code itself to
fully understand how it works in the most current form.

A BCP on pacing design could be informational on pros and cons of various
SW/HW approaches on pacing. But it should not be Linux-specific or
generally implementation specific. In that regard, TSO/GRO BCP seems more
critical than pacing, as I continue to see HW or smart-NIC support has bugs.

On Fri, Mar 22, 2024 at 12:52 PM Scharf, Michael <
Michael.Scharf@hs-esslingen.de> wrote:

> Hi all,
>
>
>
> While this is probably not really useful to understand the current
> state-of-the-art, here is an old pointer:
>
>
>
> Almost 17 years ago there was a TSVAREA presentation about an experiment
> with pacing in the Linux kernel:
> https://www.ietf.org/proceedings/69/slides/tsvarea-3.pdf
>
>
>
> (More details were published later in
> https://content.ikr.uni-stuttgart.de/en/Content/Publications/Archive/Sf_QuickStartTCP-LNCS_36636.pdf
> )
>
>
>
> Quick-Start TCP was IMHO one of the first proposals that mandated pacing
> (only in the first RTT). At least in the Linux kernel we were not aware of
> much related work on pacing back then.
>
>
>
> Well, this is very old stuff. But +1 that documenting the current
> state-of-the-art could make sense.
>
>
>
> Michael
>
>
>
> *From:* tcpm <tcpm-bounces@ietf.org> *On Behalf Of *Michael Welzl
> *Sent:* Friday, March 22, 2024 7:47 AM
> *To:* Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org>
> *Cc:* Eric Dumazet <edumazet@google.com>; tcpm@ietf.org; iccrg@irtf.org
> *Subject:* Re: [tcpm] A description of Linux pacing
>
>
>
> This is useful indeed, many thanks for the pointer!  (*I* knew about it,
> but still).
>
>
>
> This said, I found this reference, and others, to be too "high-level" for
>  my own purposes. I wanted to understand what I see at a finer detail, and
> I think that this is the kind of documentation that’s missing IMO.  (e.g.,
> the initial burst limit of 10 (not IW, but hard-coded 10) packets, which
> took me by surprise, and will probably surprise others who were unaware;
> how micro bursts are used to implement a rate at a ~ 1ms granularity, with
> upper and lower bounds; the divergence from this for hosts that are less
> than 3ms away, …).
>
>
>
> Cheers,
>
> Michael
>
>
>
>
>
>
>
> On Mar 20, 2024, at 7:55 PM, Yuchung Cheng <
> ycheng=40google.com@dmarc.ietf.org> wrote:
>
>
>
> Neal and I have a short paper on Linux pacing, which integrates TSQ, and
> TSO autosizing. it has evolved over the years but the core design remains.
>
> https://netdevconf.info/1.2/papers/bbr-netdev-1.2.new.new.pdf
>
>
>
> On Wed, Mar 20, 2024 at 12:42 AM Michael Welzl <michawe@ifi.uio.no> wrote:
>
> Hi,
>
>
>
> and thanks for your feedback!
>
>
>
> I agree; I can write this up in time for the Vancouver IETF. As for
> documenting other implementations, I don’t know internals of any others…
> but I’m very willing to involve others in such an I-D - if any expert on a
> different OS is interested, get in touch!
>
>
>
> Else, I could just make a start with this and see where it goes. It’s not
> much work, I can keep it short and simple.
>
>
>
> Cheers,
>
> Michael
>
>
>
>
>
> On 12 Mar 2024, at 23:08, Martin Duke <martin.h.duke@gmail.com> wrote:
>
>
>
> Speaking as an individual, it's a bummer we don't have a real RFC about
> pacing, this would be a decent Informational RFC for a way to do pacing,
> that is also a useful reference for how an important implementation does it.
>
>
>
> Even more ambitious, one could document the approaches of several major
> implementations.
>
>
>
> On Mon, Feb 19, 2024 at 6:06 AM Michael Welzl <michawe@ifi.uio.no> wrote:
>
> 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
>
>
>
> 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
>
>
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>
>
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>
>
>