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. Just my two cents. Thanks!