It turns out I was using DPDK virtio, with help from Moshin I changed the 
configuration and tried to repeat the tests using VPP native virtio, results 
are similar but there are some interesting new observations, sharing them here 
in case they are useful to others or trigger any ideas.

After configuring both instances to use VPP native virtio, I used the built-in 
echo test to see what throughput I would get, and I got the same results as the 
modified external tcp_echo, i.e. about 600 Mbps:

* Added *dpdk { no-pci }* to startup.conf and configured the interface using 
*create int virtio <pci-address>* as per instructions from Moshin, confirmed 
settings with *show virtio pci* command
* Ran the built-in test echo application to transfer 1 GB of data and got the 
following results:

*vpp# test echo clients gbytes 1 uri tcp://10.0.0.153/5556*
1 three-way handshakes in 0.00 seconds 2288.06/s
Test started at 1255.753237
Test finished at 1272.863244
1073741824 bytes (1024 mbytes, 1 gbytes) in 17.11 seconds
62755195.55 bytes/second full-duplex
*.5020 gbit/second full-duplex*

* I then used iperf3 with VCL on both sides and got roughly the same results 
(620 Mbps)
* Then I rebooted the client VM and use native Linux networking on the client 
side with VPP on the server side, and try to repeat the iperf test

* When I use VPP-native virtio on the server side, the iperf test fails, 
packets are dropped on the server (VPP) side, doing a trace shows packets are 
dropped because of "bad tcp checksum"
* I then switch the server side to use DPDK virtio, the iperf test works and I 
get 3 Gbps throughput

So, the big performance problem is on the client (sender) side, with VPP only 
able to get around 600 Mbps out for some reason, even when using the built-in 
test echo application. I'm continuing my investigation to see where the 
bottleneck is, any other ideas on where to look would be greatly appreciated.

Also, there may be a checksum bug in the VPP-native virtio driver since the 
packets are not dropped on the server side when using the DPDK virtio driver. 
I'd be happy to help gather more details on this, create a JIRA ticket and even 
contribute a fix but wanted to check before going down that road, any thoughts 
or comments?

Thanks again for all the help so far!

Regards,
Dom
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#14801): https://lists.fd.io/g/vpp-dev/message/14801
Mute This Topic: https://lists.fd.io/mt/65863639/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to