From nobody Sun Jul 10 08:30:09 2022 X-Original-To: freebsd-virtualization@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 659951CFCC14 for ; Sun, 10 Jul 2022 08:30:22 +0000 (UTC) (envelope-from vmaffione@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4LggFB2Rdgz3SxD for ; Sun, 10 Jul 2022 08:30:22 +0000 (UTC) (envelope-from vmaffione@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1657441822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=OqljEoag7bw4J7GVCNQkPhY6/l8jcMSDU0J8MtYJsSE=; b=jsbYTkRQ+rlcCwlXChqJh7Fc17M0mbDyKUEJloEKpDyxVtz5wXib5I1vCyrll71I6k6OPK TBSaJCUo9roxx5H6UKzWl8gZJuPp5b1Ioh9PadwmHklgZUQaIiVKmJt3m2Ty11xX85f2vu +z6lSZnJPtPWj9CS/0p8DZ439wXmEDHObR+sfmH3s2hvBwf25sPXjlAb4srnzaXeg3BXH8 f+9kL8JqEVJfU3HCD5EBshv6tgrpWNVUvJjn7+nPgHfBQGgFkjDq0+hGW07PKbek+KR7cq afgf+TF0ECKwjzeuUjBSEeRM0G86PdnOx/1t1Fuvf8MPuNA+AV964iPvcPhp1Q== Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) (Authenticated sender: vmaffione) by smtp.freebsd.org (Postfix) with ESMTPSA id 4LggFB1K11z187P for ; Sun, 10 Jul 2022 08:30:22 +0000 (UTC) (envelope-from vmaffione@freebsd.org) Received: by mail-pf1-f177.google.com with SMTP id j3so2469582pfb.6 for ; Sun, 10 Jul 2022 01:30:22 -0700 (PDT) X-Gm-Message-State: AJIora+tpzty0mgIh4Y99dXeipBh4n5Gj12PlBU7puWJwvQkI2wW0onr iwxcR2G/2Op74hdWKjNiq/JVbKQWvu/gjCcZOGk= X-Google-Smtp-Source: AGRyM1u3zUiaFD1eJmvxgmQDKmSw6xLnCEec6gTd4QpWRfFovdAP6H1hnjiSkhuBWg4IGP3hVOvPVYZ5cLhiZqZWU5I= X-Received: by 2002:a63:fa41:0:b0:412:5360:1464 with SMTP id g1-20020a63fa41000000b0041253601464mr10713756pgk.284.1657441821188; Sun, 10 Jul 2022 01:30:21 -0700 (PDT) List-Id: Discussion List-Archive: https://lists.freebsd.org/archives/freebsd-virtualization List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-virtualization@freebsd.org X-BeenThere: freebsd-virtualization@freebsd.org MIME-Version: 1.0 References: In-Reply-To: From: Vincenzo Maffione Date: Sun, 10 Jul 2022 10:30:09 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: bhyve: slow network throughput between guest VM and host (and vice versa)? To: Nils Beyer Cc: FreeBSD virtualization Content-Type: multipart/alternative; boundary="000000000000fce87105e36f3e94" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1657441822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=OqljEoag7bw4J7GVCNQkPhY6/l8jcMSDU0J8MtYJsSE=; b=kbMUfFLMtAYIBnynM8+yd528Vx2QLxyBwAS5SnN9z18QwsjwOKNJkof5inPsanSPfQxlTP aHI+VmSXQqWANCJShW+hHf+vYu90PQ7zRTW7wxY+Qed4SoRgNK1CvmlE+qft4GC9DJHQuK a3/g6Y79d7RFtOHBs31J5tFp8T2Qqer6jTKkCEihc9bgnX/LnGdbIJUkLAmn8/1ELteBBw VUyUZNokjmJ9KYiGU+TnEDQNO83PR4O/j4P+JPB2e3XePVIXFUn+UM+MU7/E6W+FV0u2Ds eI1eTZSeX0KQrh8bz6ZO3GCjDtB4OvBNn+Gy0gYVWQDTCYT6IjuPhwxwEILy2w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1657441822; a=rsa-sha256; cv=none; b=kjtbsVIIonVHI2P1TcN6LAZZ/kxiZbz29UsNTwYjc+wUg8GRuOqCgS43b0vCjrTfNSLu34 Rl6p7ujk4AbTVD4Esyu0pkmAAL9l9QLHwwmbenwXUukvgCBeO7hgIIk2Ah5O9knFSsf35Q zELJ9DfzyXXTXB/6n52evjhA7mJgJCKotuVxAjDrlzy2IMRTo17GRnjHE1GM2ZJSgjApo2 eRYO3uO7OhcUifxY/AufY+K5tApJhoP7/FfWCIV+KTwN0PnFuHGQM+PLhFNHwh5gEE8y/M kr9/Ai4i9aWk3uQ4YDbXOUelEV5wstnISi0e5HpeWOmnwJgQlVO9urQ8Wjstcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N --000000000000fce87105e36f3e94 Content-Type: text/plain; charset="UTF-8" Hi, The trick to achieve larger TCP throughput between the VM and the host (or other co-located VM) is to have TCP Segmentation Offload (TSO) and TCP Checksum Offload enabled along the whole packet data path (virtio-net, bhyve, if_tap, if_bridge, ...). When these offloads are in place, your TCP endpoint will be able to pass around 64K packets (irrespective of virtio interface MTU), never performing TCP segmentation or checksum computation in software. In practice, you would have the same effect that you have if you set MTU=64K along the packet datapath. This is how Linux is able to achieve ~40 Gbps TCP throughput between virtio-net VM and host if_tap (or if_bridge) interface. FreeBSD is still missing such optimizations for bhyve, if_tap and if_bridge. Partly, this is due to virtio-net offload-related specification being designed to match Linux kernel packet metadata (struct sk_buff). FreeBSD metadata is different, and conversion is not cheap, requiring some packet header inspection. Cheers, Vincenzo Il giorno gio 30 giu 2022 alle ore 12:46 Nils Beyer ha scritto: > Hi, > > I've setup a FreeBSD VM and am using a VirtIO network interface within. > Then I've setup > an ip address 192.168.0.2/30 to that VirtIO NIC of the guest using: > > ifconfig vtnet0 192.168.0.2/30 up > > and on the TAP interface of the host an ip address 192.168.0.1/30 using > > ifconfig tap0 192.168.0.1/30 up > > Trying an iperf3-transfer (iperf3-server on the host, iperf3-client on the > guest) with a TCP window size of > 128k I only get around 2.45Gbit/s: > > > # env LD_LIBRARY_PATH=. ./iperf3 -c 192.168.0.1 -w 128k > > Connecting to host 192.168.0.1, port 5201 > > [ 5] local 192.168.0.2 port 25651 connected to 192.168.0.1 port 5201 > > [ ID] Interval Transfer Bitrate Retr Cwnd > > [ 5] 0.00-1.00 sec 314 MBytes 2.63 Gbits/sec 0 1.43 MBytes > > > [ 5] 1.00-2.00 sec 301 MBytes 2.52 Gbits/sec 0 1.43 MBytes > > > [ 5] 2.00-3.00 sec 264 MBytes 2.21 Gbits/sec 0 1.43 MBytes > > > [ 5] 3.00-4.00 sec 284 MBytes 2.38 Gbits/sec 0 1.43 MBytes > > > [ 5] 4.00-5.00 sec 296 MBytes 2.48 Gbits/sec 0 1.43 MBytes > > > [ 5] 5.00-6.00 sec 279 MBytes 2.34 Gbits/sec 0 1.43 MBytes > > > [ 5] 6.00-7.00 sec 280 MBytes 2.35 Gbits/sec 0 1.43 MBytes > > > [ 5] 7.00-8.00 sec 310 MBytes 2.60 Gbits/sec 0 1.43 MBytes > > > [ 5] 8.00-9.00 sec 302 MBytes 2.53 Gbits/sec 0 1.43 MBytes > > > [ 5] 9.00-10.00 sec 333 MBytes 2.79 Gbits/sec 0 1.43 MBytes > > > - - - - - - - - - - - - - - - - - - - - - - - - - > > [ ID] Interval Transfer Bitrate Retr > > [ 5] 0.00-10.00 sec 2.89 GBytes 2.49 Gbits/sec 0 > sender > > [ 5] 0.00-10.00 sec 2.89 GBytes 2.49 Gbits/sec > receiver > > > Switching the roles (iperf3-server on the guest, iperf3-client on the > host) with a TCP windows size of 128k, > I get 4.04Gbit/s: > > > #iperf3 -c 192.168.0.2 -w 128k > > Connecting to host 192.168.0.2, port 5201 > > [ 5] local 192.168.0.1 port 56892 connected to 192.168.0.2 port 5201 > > [ ID] Interval Transfer Bitrate Retr Cwnd > > [ 5] 0.00-1.00 sec 411 MBytes 3.44 Gbits/sec 40 973 KBytes > > > [ 5] 1.00-2.00 sec 483 MBytes 4.05 Gbits/sec 5 1.03 MBytes > > > [ 5] 2.00-3.00 sec 507 MBytes 4.26 Gbits/sec 1 1.21 MBytes > > > [ 5] 3.00-4.00 sec 514 MBytes 4.31 Gbits/sec 15 561 KBytes > > > [ 5] 4.00-5.00 sec 498 MBytes 4.18 Gbits/sec 10 966 KBytes > > > [ 5] 5.00-6.00 sec 491 MBytes 4.12 Gbits/sec 19 841 KBytes > > > [ 5] 6.00-7.00 sec 513 MBytes 4.31 Gbits/sec 0 1.43 MBytes > > > [ 5] 7.00-8.00 sec 504 MBytes 4.23 Gbits/sec 0 1.43 MBytes > > > [ 5] 8.00-9.00 sec 459 MBytes 3.85 Gbits/sec 0 1.43 MBytes > > > [ 5] 9.00-10.00 sec 435 MBytes 3.65 Gbits/sec 0 1.43 MBytes > > > - - - - - - - - - - - - - - - - - - - - - - - - - > > [ ID] Interval Transfer Bitrate Retr > > [ 5] 0.00-10.00 sec 4.70 GBytes 4.04 Gbits/sec 90 > sender > > [ 5] 0.00-10.00 sec 4.70 GBytes 4.04 Gbits/sec > receiver > > > Increasing MTU on the Virtio interface and on the TAP interface to 9000 > helps a little bit: > getting 8.38Gbit/s guest->host and 10.3Gbit/s host->guest. > > Increasing TCP windows size to 1024k only produces more retries and does > nothing on the > throughput. > > Is that expected that I'm not able to get more throughput within the bhyve > network > stack (guest <-> host)? I was expecting way more then 10Gbit/s... > > > > TIA and KR, > Nils > > --000000000000fce87105e36f3e94 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
=C2=A0 The trick to achieve larger TCP = throughput between the VM and the host (or other co-located VM) is to have = TCP Segmentation Offload (TSO) and TCP Checksum Offload enabled along the w= hole packet data path (virtio-net, bhyve, if_tap, if_bridge, ...).
When these offloads are in place, your TCP endpoint will be able to pass = around 64K packets (irrespective of virtio interface MTU), never performing= TCP segmentation or checksum computation in software. In practice, you wou= ld have the same effect that you have if you set MTU=3D64K along the packet= datapath.

This is how Linux is able to achieve ~4= 0 Gbps TCP throughput between virtio-net VM and host if_tap (or if_bridge) = interface.
FreeBSD is still missing such optimizations for bhyve,= if_tap and if_bridge. Partly, this is due to virtio-net offload-related sp= ecification being designed to match Linux kernel packet metadata (struct sk= _buff). FreeBSD metadata is different, and conversion is not cheap, requiri= ng some packet header inspection.

Cheers,
=C2=A0 Vincenzo

Il giorno gio 30 giu 2022 alle ore 12:46 Nil= s Beyer <nbe@vkf-renzel.de> = ha scritto:
Hi,<= br>
I've setup a FreeBSD VM and am using a VirtIO network interface within.= Then I've setup
an ip address 192.168.0.2/30 to that VirtIO NIC of the guest using:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 ifconfig vtnet0 192.168.0.2/30 up

and on the TAP interface of the host an ip address 192.168.0.1/30 using

=C2=A0 =C2=A0 =C2=A0 =C2=A0 ifconfig tap0 192.168.0.1/30 up

Trying an iperf3-transfer (iperf3-server on the host, iperf3-client on the = guest) with a TCP window size of
128k I only get around 2.45Gbit/s:

> # env LD_LIBRARY_PATH=3D. ./iperf3 -c 192.168.0.1 -w 128k
> Connecting to host 192.168.0.1, port 5201
> [=C2=A0 5] local 192.168.0.2 port 25651 connected to 192.168.0.1 port = 5201
> [ ID] Interval=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Transfer=C2=A0 = =C2=A0 =C2=A0Bitrate=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Retr=C2=A0 Cwnd
> [=C2=A0 5]=C2=A0 =C2=A00.00-1.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0314 MByte= s=C2=A0 2.63 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A01.00-2.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0301 MByte= s=C2=A0 2.52 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A02.00-3.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0264 MByte= s=C2=A0 2.21 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A03.00-4.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0284 MByte= s=C2=A0 2.38 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A04.00-5.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0296 MByte= s=C2=A0 2.48 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A05.00-6.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0279 MByte= s=C2=A0 2.34 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A06.00-7.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0280 MByte= s=C2=A0 2.35 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A07.00-8.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0310 MByte= s=C2=A0 2.60 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A08.00-9.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0302 MByte= s=C2=A0 2.53 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A09.00-10.00=C2=A0 sec=C2=A0 =C2=A0333 MBytes=C2= =A0 2.79 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 =C2= =A0 =C2=A0
> - - - - - - - - - - - - - - - - - - - - - - - - -
> [ ID] Interval=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Transfer=C2=A0 = =C2=A0 =C2=A0Bitrate=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Retr
> [=C2=A0 5]=C2=A0 =C2=A00.00-10.00=C2=A0 sec=C2=A0 2.89 GBytes=C2=A0 2.= 49 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= sender
> [=C2=A0 5]=C2=A0 =C2=A00.00-10.00=C2=A0 sec=C2=A0 2.89 GBytes=C2=A0 2.= 49 Gbits/sec=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = receiver


Switching the roles (iperf3-server on the guest, iperf3-client on the host)= with a TCP windows size of 128k,
I get 4.04Gbit/s:

> #iperf3 -c 192.168.0.2 -w 128k
> Connecting to host 192.168.0.2, port 5201
> [=C2=A0 5] local 192.168.0.1 port 56892 connected to 192.168.0.2 port = 5201
> [ ID] Interval=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Transfer=C2=A0 = =C2=A0 =C2=A0Bitrate=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Retr=C2=A0 Cwnd
> [=C2=A0 5]=C2=A0 =C2=A00.00-1.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0411 MByte= s=C2=A0 3.44 Gbits/sec=C2=A0 =C2=A040=C2=A0 =C2=A0 973 KBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A01.00-2.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0483 MByte= s=C2=A0 4.05 Gbits/sec=C2=A0 =C2=A0 5=C2=A0 =C2=A01.03 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A02.00-3.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0507 MByte= s=C2=A0 4.26 Gbits/sec=C2=A0 =C2=A0 1=C2=A0 =C2=A01.21 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A03.00-4.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0514 MByte= s=C2=A0 4.31 Gbits/sec=C2=A0 =C2=A015=C2=A0 =C2=A0 561 KBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A04.00-5.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0498 MByte= s=C2=A0 4.18 Gbits/sec=C2=A0 =C2=A010=C2=A0 =C2=A0 966 KBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A05.00-6.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0491 MByte= s=C2=A0 4.12 Gbits/sec=C2=A0 =C2=A019=C2=A0 =C2=A0 841 KBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A06.00-7.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0513 MByte= s=C2=A0 4.31 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A07.00-8.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0504 MByte= s=C2=A0 4.23 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A08.00-9.00=C2=A0 =C2=A0sec=C2=A0 =C2=A0459 MByte= s=C2=A0 3.85 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 = =C2=A0 =C2=A0
> [=C2=A0 5]=C2=A0 =C2=A09.00-10.00=C2=A0 sec=C2=A0 =C2=A0435 MBytes=C2= =A0 3.65 Gbits/sec=C2=A0 =C2=A0 0=C2=A0 =C2=A01.43 MBytes=C2=A0 =C2=A0 =C2= =A0 =C2=A0
> - - - - - - - - - - - - - - - - - - - - - - - - -
> [ ID] Interval=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Transfer=C2=A0 = =C2=A0 =C2=A0Bitrate=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Retr
> [=C2=A0 5]=C2=A0 =C2=A00.00-10.00=C2=A0 sec=C2=A0 4.70 GBytes=C2=A0 4.= 04 Gbits/sec=C2=A0 =C2=A090=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= sender
> [=C2=A0 5]=C2=A0 =C2=A00.00-10.00=C2=A0 sec=C2=A0 4.70 GBytes=C2=A0 4.= 04 Gbits/sec=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = receiver


Increasing MTU on the Virtio interface and on the TAP interface to 9000 hel= ps a little bit:
getting 8.38Gbit/s guest->host and 10.3Gbit/s host->guest.

Increasing TCP windows size to 1024k only produces more retries and does no= thing on the
throughput.

Is that expected that I'm not able to get more throughput within the bh= yve network
stack (guest <-> host)? I was expecting way more then 10Gbit/s...



TIA and KR,
Nils

--000000000000fce87105e36f3e94--