[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CADvbK_e0m=kWyJJMWMf_-9bg_OS9aBnsyuRSXpOc6DzZbS2gZQ@mail.gmail.com>
Date: Mon, 16 Sep 2024 11:32:47 -0400
From: Xin Long <lucien.xin@...il.com>
To: Cong Wang <xiyou.wangcong@...il.com>
Cc: network dev <netdev@...r.kernel.org>, "David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>, Eric Dumazet <edumazet@...gle.com>, Paolo Abeni <pabeni@...hat.com>,
Moritz Buhl <mbuhl@...nbsd.org>, Tyler Fanelli <tfanelli@...hat.com>,
Pengtao He <hepengtao@...omi.com>, linux-cifs@...r.kernel.org,
Steve French <smfrench@...il.com>, Namjae Jeon <linkinjeon@...nel.org>,
Stefan Metzmacher <metze@...ba.org>, Paulo Alcantara <pc@...guebit.com>, Tom Talpey <tom@...pey.com>,
kernel-tls-handshake@...ts.linux.dev, Chuck Lever <chuck.lever@...cle.com>,
Jeff Layton <jlayton@...nel.org>, Steve Dickson <steved@...hat.com>, Hannes Reinecke <hare@...e.de>,
Alexander Aring <aahringo@...hat.com>, Sabrina Dubroca <sd@...asysnail.net>,
Marcelo Ricardo Leitner <marcelo.leitner@...il.com>, Daniel Stenberg <daniel@...x.se>,
Andy Gospodarek <andrew.gospodarek@...adcom.com>
Subject: Re: [PATCH net-next 0/5] net: implement the QUIC protocol in linux kernel
On Fri, Sep 13, 2024 at 9:05 PM Cong Wang <xiyou.wangcong@...il.com> wrote:
>
> On Mon, Sep 09, 2024 at 10:30:15PM -0400, Xin Long wrote:
> > 4. Performance testing via iperf
> >
> > The performance testing was conducted using iperf [5] over a 100G
> > physical NIC, evaluating various packet sizes and MTUs:
> >
> > - QUIC vs. kTLS:
> >
> > UNIT size:1024 size:4096 size:16384 size:65536
> > Gbits/sec QUIC | kTLS QUIC | kTLS QUIC | kTLS QUIC | kTLS
> > ────────────────────────────────────────────────────────────────────
> > mtu:1500 1.67 | 2.16 3.04 | 5.04 3.49 | 7.84 3.83 | 7.95
> > ────────────────────────────────────────────────────────────────────
> > mtu:9000 2.17 | 2.41 5.47 | 6.19 6.45 | 8.66 7.48 | 8.90
> >
> > - QUIC(disable_1rtt_encryption) vs. TCP:
> >
> > UNIT size:1024 size:4096 size:16384 size:65536
> > Gbits/sec QUIC | TCP QUIC | TCP QUIC | TCP QUIC | TCP
> > ────────────────────────────────────────────────────────────────────
> > mtu:1500 2.17 | 2.49 3.59 | 8.36 6.09 | 15.1 6.92 | 16.2
> > ────────────────────────────────────────────────────────────────────
> > mtu:9000 2.47 | 2.54 7.66 | 7.97 14.7 | 20.3 19.1 | 31.3
> >
> >
> > The performance gap between QUIC and kTLS may be attributed to:
> >
> > - The absence of Generic Segmentation Offload (GSO) for QUIC.
> > - An additional data copy on the transmission (TX) path.
> > - Extra encryption required for header protection in QUIC.
> > - A longer header length for the stream data in QUIC.
> >
>
> This is not appealing.
>
> However, I can offer you one more possible advantage of in-kernel QUIC.
> You can think about adding iouring support for QUIC socket, because that
> could possibly chain the socket fastpath operations together which opens
> the door for more optimization.
>
I haven't had the chance to try io_uring. From what I understand, it
doesn’t require any changes to the protocol stack (Linux QUIC doesn’t
support MSG_ZEROCOPY at this time).
Thanks for offering this suggestion, it sounds worth exploring when
using the QUIC socket in the future.
Thanks.
Powered by blists - more mailing lists