Re: [tcpm] [iccrg] A description of Linux pacing

Martin Duke <martin.h.duke@gmail.com> Thu, 28 March 2024 17:09 UTC

Return-Path: <martin.h.duke@gmail.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 BD7AFC151557 for <tcpm@ietfa.amsl.com>; Thu, 28 Mar 2024 10:09:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.094
X-Spam-Level:
X-Spam-Status: No, score=-7.094 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 smBqRUU-CjUX for <tcpm@ietfa.amsl.com>; Thu, 28 Mar 2024 10:09:27 -0700 (PDT)
Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com [IPv6:2607:f8b0:4864:20::72a]) (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 2CCFDC169405 for <tcpm@ietf.org>; Thu, 28 Mar 2024 10:09:27 -0700 (PDT)
Received: by mail-qk1-x72a.google.com with SMTP id af79cd13be357-78a5f7269e3so201546285a.1 for <tcpm@ietf.org>; Thu, 28 Mar 2024 10:09:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711645766; x=1712250566; 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=TeoryuZJAp11y1SMjM59PET6kcqH9aeVaPb7ji6iX50=; b=lDoYefYjupwr+C2jAwO0u6LeLlzfB50F3gTjJ8WlovYRBXwOh1ko7vQH7nH18G50d9 QG9Z7+O5aTZF54x7HOo7CbZjmZVJPHV/QQmkO5+HbeRBXGtSi8IUN7R6f/x0yqP4EcTL LutfA0Qves+hsQskpS/00/BwNzpR/yebq5Ottj3y35I8vtHT69AVDQkeBo8XI2jhIZHf Gw9FI7N2d5ylhBTfRsK1FoqendTi5AJsjB1zI4KxajE6SiyNSorullLL3Rwp2Wtv/sOg 7YpAjqpk+jm+3NgzaaO1k3lRTzlaL9uS6+IOdZy+cfJyxWhxb/8iCvW5Wr0Er2z4ABZw 1QQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711645766; x=1712250566; 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=TeoryuZJAp11y1SMjM59PET6kcqH9aeVaPb7ji6iX50=; b=vkWsqUOFxU/4DJAlv39mYQwvJGyYs2HhZhPjTbbeDL7PIP9b2RtvfDH1BhKvr0SzFN CePRvQzyT6x8A85gLydrlegu88V3d6m33n+MNoYyStjxm+ZdUKvfPMXumeg7Fz9wDuID UlZm22WQJypueO3Ne4CKJ8qRjqrMfrhWR9UM8gytRWWu1V0NC297c3xVpalZY9617ADP RgSD8PFANg6KAlo3bTfmEa/TXya56Qd4mLXnSPZBTgYAuZeSX28ZSXnKfcZSPMe5u/6d TwA8ZVT6EMX9RF+HIps5hmPeIa2+Fj+lnB4av2hpmS2erT2kgRa1NVouVlOKOgDC4DK3 ODFw==
X-Forwarded-Encrypted: i=1; AJvYcCU9qWLs1JsdUbk/olVcIM5sd0h2sK8e7710xUcuoXidWoV7IFFML05rcBSQFeRWKXldHat/LXMKjEFoUbbg
X-Gm-Message-State: AOJu0YwtstMYEQHq/6tDN5/DmY3jhVv6V+FsMMnzmW/zCUC+OJDdaj27 DSb/CP1p7g/nL8oX9rZQo2FUvJ/o0NSfA97u8trYnDFUJ0xqUNjbsylDOyZIbEtCNHZHVWLPZzh lTKdDtau8gcPkF/tlXaaYRpknhhs=
X-Google-Smtp-Source: AGHT+IEz+tekjtozrIMKriK8xPLKHj2D58P7T/wjsCSR9uvAy4i4UnfLbJ5Giu7R/0rTPTEn3D9mI3rsUjggjVEZmTs=
X-Received: by 2002:a05:620a:4005:b0:78b:c152:11f9 with SMTP id h5-20020a05620a400500b0078bc15211f9mr2613222qko.14.1711645765735; Thu, 28 Mar 2024 10:09:25 -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> <CAK6E8=ejDxfWH2Q295mTRPxWO712M2U0fSyWVC5b+0LDvafTjQ@mail.gmail.com>
In-Reply-To: <CAK6E8=ejDxfWH2Q295mTRPxWO712M2U0fSyWVC5b+0LDvafTjQ@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 28 Mar 2024 10:09:12 -0700
Message-ID: <CAM4esxRhxLTUH_eNW2SusQr=XJhQwajQ6345tgVP6YrO5=v6zw@mail.gmail.com>
To: Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org>
Cc: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>, 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="000000000000d920fd0614bb954b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/M9pASIdymK6DEU9guQsy_rjMDNQ>
Subject: Re: [tcpm] [iccrg] 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: Thu, 28 Mar 2024 17:09:31 -0000

Code is great, but for licensing reasons many developers cannot simply look
at the Linux code and port it over to their platform.

On Fri, Mar 22, 2024 at 1:07 PM Yuchung Cheng <ycheng=
40google.com@dmarc.ietf.org> wrote:

> 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
>>
>>
>>
> _______________________________________________
> iccrg mailing list
> iccrg@irtf.org
> https://mailman.irtf.org/mailman/listinfo/iccrg
>