Re: [iccrg] [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: iccrg@ietfa.amsl.com
Delivered-To: iccrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4BFA1C151098 for <iccrg@ietfa.amsl.com>; Fri, 22 Mar 2024 13:07:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.606
X-Spam-Level:
X-Spam-Status: No, score=-17.606 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_BLOCKED=0.001, 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=ham 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 XlWgVFQeM5tk for <iccrg@ietfa.amsl.com>; Fri, 22 Mar 2024 13:07:49 -0700 (PDT)
Received: from mail-yw1-x1133.google.com (mail-yw1-x1133.google.com [IPv6:2607:f8b0:4864:20::1133]) (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 3F38AC15106E for <iccrg@irtf.org>; Fri, 22 Mar 2024 13:07:49 -0700 (PDT)
Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-61130dd21c1so1768107b3.2 for <iccrg@irtf.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=irtf.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=Aip5qevnJhiSMcaZvIt6gPSZJrBND2a8HY0ZoxAtslNLdkwD05eEF+sjx01OT96ffh efmka4zRKIoPnQ10a2EbsswOMz/X7Arq5lhT30ZO9f7uGUfjVmKz64bP3oJyhUA75865 1JNQ+gu5MK1+kEvRA88kcCxnLsvtJn1TbmLhtSHvNuFflKul+eczPE8533uIkHdg9CRY 7FJSA1FMVuGp8LNeoZe+1jmAs2YVagBa28SfF7eTKsifrXcMrfmI2aBdX5EKrgSxOmA9 +/X15qorr5eLMfyZf3frsOgMjo20RSDEYAkFx0RCBnfNvpmnVCMJhbcFfu6ZY1QLSjjW DNjg==
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=Q1TA88aWVdsBMJWJ6etvbl+7QRRAuMy28dlKZn6ed2LgS28lGmc0dTniRWg2jEPjux aKLYKyIsuB2S0a8SWulcro6R1jvg8kQ+RN1x2Jf/LVgxeos+aPrclCTr8Qd64jmnnYl2 JTV1bh+1nm6m9rgwS8IjO9XiT3N7MvzR7I+B3dunB4eq3CQPTIGaTd2FM3tQ3q94eYuM oyn9nRF7p/77kOBZbDql5AtWAIxAigdOEAwq5lAblocVoSUVQy8KloDfXg5X+2Zi9iYh AEL17W0r8CDX98j3oKn66jFP28VCHbsuRxFuyuj1zOXG+2AAmn53xkZYGhxv2GPsWxSC QWtw==
X-Forwarded-Encrypted: i=1; AJvYcCUt/YhpV95FNoVfn9V8yBF2VBPSpZfpZ27F24VqktQprJWg//C/oxCkdB++l+twDGEpcFBCy1VBthlxCTgz9A==
X-Gm-Message-State: AOJu0YwIHG/6Pdm9Hy9tdBtkKbejDkkHzLztcEhvqn7uDHhyFWvwqY7E vegKppzT/wTW7LPNLNwGkTppppkq3FqVDztW3yJ0nITO+7DpXdXilYTkXWA9luijGv71VcFpLxa GdyqynMBPpfz4FijKA/Ka582/+U7tk9LIVckX
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/iccrg/YRmEks9fksOPHftkpOxDxAwg-3I>
Subject: Re: [iccrg] [tcpm] A description of Linux pacing
X-BeenThere: iccrg@irtf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Discussions of Internet Congestion Control Research Group \(ICCRG\)" <iccrg.irtf.org>
List-Unsubscribe: <https://mailman.irtf.org/mailman/options/iccrg>, <mailto:iccrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/iccrg/>
List-Post: <mailto:iccrg@irtf.org>
List-Help: <mailto:iccrg-request@irtf.org?subject=help>
List-Subscribe: <https://mailman.irtf.org/mailman/listinfo/iccrg>, <mailto:iccrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Mar 2024 20:07:53 -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
>
>
>