public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: Stefano Brivio <sbrivio@redhat.com>
To: aerosouund <aerosound161@gmail.com>
Cc: passt-dev@passt.top, eperezma@redhat.com
Subject: Re: [PATCH 0/7] Add vhost-net kernel support to pasta
Date: Thu, 17 Sep 2026 21:36:49 +0200 (CEST)	[thread overview]
Message-ID: <20260917213648.6093b5fe@elisabeth> (raw)
In-Reply-To: <20260904212826.41027-1-aerosound161@gmail.com>

On Sat,  5 Sep 2026 00:28:19 +0300
aerosouund <aerosound161@gmail.com> wrote:

> [...]
>
> The changes reliably yield a roughly 2x speedup on the TX path (container
> to host).
> 
> Numbers were obtained through iperf3 with the following methodology and
> results:
> 
> Pasta command:
> ./pasta -f --runas 0:0 --map-guest-addr 192.168.0.5 
> --vhost-kernel on --config-net 2729785
> 
> Host:
> iperf3 -s1J
> 
> Container:
> iperf3 -c 192.168.0.5 -t 10 -P4 -l 1M -w 32M -i1
> 
> With --vhost-kernel on:
> 
> [SUM]   0.00-10.00  sec  1.36 GBytes  1.17 Gbits/sec  3643 sender
> [SUM]   0.00-10.00  sec  1.16 GBytes   999 Mbits/sec        receiver
> 
> With --vhost-kernel off:
> 
> [SUM]   0.00-10.00  sec   700 MBytes   587 Mbits/sec  3556 sender
> [SUM]   0.00-10.10  sec   495 MBytes   411 Mbits/sec        receiver

Not a review and not a real test but I just quickly ran (once) the usual
perf/pasta_tcp tests with and without this series. Baseline:

> pasta: throughput and latency (connections via tap)
Throughput in Gbps, latency in µs, 2 threads at 3.6 GHz
                                                          MTU: |  1500B |  4000B | 16384B | 65520B |
                                                               |--------|--------|--------|--------|
              TCP throughput over IPv6: ns to host             |    2.7 |    4.2 |    4.5 |   18.7 |
              TCP RR latency over IPv6: ns to host             |      - |      - |      - |     24 |
             TCP CRR latency over IPv6: ns to host             |      - |      - |      - |     84 |
                                                               |--------|--------|--------|--------|
              TCP throughput over IPv4: ns to host             |    2.5 |    4.2 |    2.8 |   16.8 |
              TCP RR latency over IPv4: ns to host             |      - |      - |      - |     25 |
             TCP CRR latency over IPv4: ns to host             |      - |      - |      - |     72 |
                                                               |--------|--------|--------|--------|
              TCP throughput over IPv6: host to ns             |      - |      - |      - |   14.2 |
              TCP RR latency over IPv6: host to ns             |      - |      - |      - |     26 |
             TCP CRR latency over IPv6: host to ns             |      - |      - |      - |     74 |
                                                               |--------|--------|--------|--------|
              TCP throughput over IPv4: host to ns             |      - |      - |      - |   14.3 |
              TCP RR latency over IPv4: host to ns             |      - |      - |      - |     28 |
             TCP CRR latency over IPv4: host to ns             |      - |      - |      - |     82 |
                                                               '--------'--------'--------'--------'

with this series:

> pasta: throughput and latency (connections via tap)
Throughput in Gbps, latency in µs, 2 threads at 3.6 GHz
                                              MTU: |  1500B |  4000B | 16384B | 65520B |
                                                   |--------|--------|--------|--------|
        TCP throughput over IPv6: ns to host       |    9.3 |    5.5 |   22.6 |   25.1 |
        TCP RR latency over IPv6: ns to host       |      - |      - |      - |     35 |
       TCP CRR latency over IPv6: ns to host       |      - |      - |      - |     93 |
                                                   |--------|--------|--------|--------|
        TCP throughput over IPv4: ns to host       |    9.3 |    5.2 |   10.9 |   24.8 |
        TCP RR latency over IPv4: ns to host       |      - |      - |      - |     30 |
       TCP CRR latency over IPv4: ns to host       |      - |      - |      - |     94 |
                                                   |--------|--------|--------|--------|
        TCP throughput over IPv6: host to ns       |      - |      - |      - |   19.2 |
        TCP RR latency over IPv6: host to ns       |      - |      - |      - |     33 |
       TCP CRR latency over IPv6: host to ns       |      - |      - |      - |     90 |
                                                   |--------|--------|--------|--------|
        TCP throughput over IPv4: host to ns       |      - |      - |      - |   17.4 |
        TCP RR latency over IPv4: host to ns       |      - |      - |      - |     35 |
       TCP CRR latency over IPv4: host to ns       |      - |      - |      - |     86 |
                                                   '--------'--------'--------'--------'

...latency increases a little but it still looks pretty good to me.

Throughput wise, for higher MTUs it's definitely an improvement in both
directions, and for lower MTUs we even hit 4x increases, that's quite
impressive.

I haven't checked if we need to tweak iperf3 parameters (or our buffers?)
to make this scale for large MTUs, but I guess that might be the case.

-- 
Stefano


      parent reply	other threads:[~2026-09-17 19:36 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-04 21:28 aerosouund
2026-09-04 21:28 ` [PATCH 1/7] tap: Move the tap_hdr file to a separate file aerosouund
2026-09-05  1:52   ` David Gibson
2026-09-09  8:47   ` Laurent Vivier
2026-09-09  9:10     ` David Gibson
2026-09-09  9:42       ` Laurent Vivier
2026-09-04 21:28 ` [PATCH 2/7] conf: Add context fields, epoll types and --vhost-kernel flag to pasta aerosouund
2026-09-09 12:35   ` Laurent Vivier
2026-09-12 10:57     ` Ammar Yasser
2026-09-14  6:56       ` Laurent Vivier
2026-09-04 21:28 ` [PATCH 3/7] virtio: Add the pasta vhost-net interface and implementation aerosouund
2026-09-09 15:13   ` Laurent Vivier
2026-09-04 21:28 ` [PATCH 4/7] tap: Implement the pasta vhost-net from-guest path aerosouund
2026-09-04 21:28 ` [PATCH 5/7] tap, tcp, udp: Prepare the to-guest path for vhost-net aerosouund
2026-09-04 21:28 ` [PATCH 6/7] tap: Implement the pasta vhost-net to-guest path aerosouund
2026-09-16 14:00   ` Laurent Vivier
2026-09-04 21:28 ` [PATCH 7/7] tap/tcp: Replace tcp_payload_used with a ring buffer style index aerosouund
2026-09-16 14:29   ` Laurent Vivier
2026-09-05 16:25 ` [PATCH 2/7] conf: Add context fields, epoll types and --vhost-kernel flag to pasta aerosouund
2026-09-05 16:25   ` [PATCH 3/7] virtio: Add the pasta vhost-net interface and implementation aerosouund
2026-09-05 16:25   ` [PATCH 4/7] tap: Implement the pasta vhost-net from-guest path aerosouund
2026-09-05 16:25   ` [PATCH 7/7] tap/tcp: Replace tcp_payload_used with a ring buffer style index aerosouund
2026-09-17 19:36 ` Stefano Brivio [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260917213648.6093b5fe@elisabeth \
    --to=sbrivio@redhat.com \
    --cc=aerosound161@gmail.com \
    --cc=eperezma@redhat.com \
    --cc=passt-dev@passt.top \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).