Re: [iccrg] [tcpm] 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: 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 622F8C169406 for <iccrg@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: -2.094
X-Spam-Level:
X-Spam-Status: No, score=-2.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_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=ham 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 mVK8PQT--gk9 for <iccrg@ietfa.amsl.com>; Thu, 28 Mar 2024 10:09:27 -0700 (PDT)
Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com [IPv6:2607:f8b0:4864:20::72b]) (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 14EA8C151557 for <iccrg@irtf.org>; Thu, 28 Mar 2024 10:09:27 -0700 (PDT)
Received: by mail-qk1-x72b.google.com with SMTP id af79cd13be357-78a5f7269e3so201546085a.1 for <iccrg@irtf.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=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=TeoryuZJAp11y1SMjM59PET6kcqH9aeVaPb7ji6iX50=; b=JfQsBWd8xmp5AGe/N61qbShixVuEHtqSQV4pOi/p3tGWwCRxtp/LeLeInnA+kMkZVc nOJDGe3qMVunp8oDR3hl0rRTRqGHCdxhZusqHcflRKT3HL9z864hwZFqpLDQV7Vde2A3 O59etwglhwf5wR09F4Nv5g5wcsYN0BtmDw7Gj7FQ5lMTHTDFApKcnGjbi5M3ONNAg/ZG pfZH4RjltcEIj9R5hXLXWyLQVXSbx/slubqyJlYRvlVQ32aPnvlq/JYs6jH9klosf53D hs7wwcgu47mypjKYOcFinEDlz2kHvjG9iIqCUYduexc0xJXUsT/qf4ioi0l/30iZ3h9g h2hQ==
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=R3GZEeHzVLSSJVcROmy6/y8Pweug27J0U4dp5mWKyXQK2MRmQ9nRSZeephotfq+1tH wOZNdZPD9GHFtIVVR+IEy+skpl5kcD0dNmUe8ncggvMjIY0245syacEg5n3Yvzlff8aR SpLnOob/ZKldSq/ph/1vNwQ3yiSYeCmNuer1WMzBrLHw/B+z9AkNG4nRcQEI5QEM4l7B E99PnAkHJBz0a/VgyNBuuNhwp2a4NPTEPKmlT5O4uCZ9jv9eAA9GqfuQ6x05tYI7yf6i /9o4LmzM6tR+U28QGaPGY36uEr6NLOyuDuQmvc9RWOPdWDk0lscLCbxI/qXG5Mr9N6IS DZRw==
X-Forwarded-Encrypted: i=1; AJvYcCUrv16DXSSsF3mXWKefAnevGxNcgKCUkyjKh8syzG/qOW/Gr9OBKfDHzm7y7VEtmiZQNRU53RZcUZmeZp8ueg==
X-Gm-Message-State: AOJu0YwG3Ci7blepkZCTrWELfD5QY5h3zWQrVC+bSGoDCssPOvRcXMSA OerfocvxuUcarVMNkG4dBY/LZj5+nxiIAgLRBcgDG9d+3tjcYNh+UjKOID+F7kzYUFOl5MGU+N5 Rjz7wIE7Ui8PEuV/4KvhL18yskn8=
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/iccrg/zRwn_JjCrnaW9tknR80fAmALOQQ>
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: 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
>