Hello experts, Hope you can help me to understand my results with vhost-net emulation. I did a small test with kvm machine (receiving and sending TCP packets from/to the external simulators) pinned to one core and vhost-net emulation pinned to another one. Packets start to get dropped at tx when vhost-net occupies ~25% of the core cycles. Creating a 2nd application interface, binding it to 2nd vhost-net pinned to the same core with 1st vhost-net and load-sharing the traffic between them, boosts the performance for 20% (actually reaching the application limit). I'm trying to understand why 1 vhost becomes a bottleneck already at 25% of cpu occupancy (why can't it use more??) and why a 2nd vhost (pinned to the same core as the first one) increases the performance? When the application limit is reached, vhosts use ~31% of cpu core (top command also indicates ~19% sy and ~12% si occupancy, the rest idle). Does this mean that if application would be capable of processing more packets, adding additional vhosts and load-haring would boost the performance further? Looking forward to your feedback! Some additional info that my be of interest: Packet size is small (150 - 330 bytes). Packets are pushed at tx randomly in 1- (~30) packets batch. Application polls packets from rx virtqueue. Cheers, Damir