This series introduces an optimization for vsock/virtio to reduce latency and increase the throughput: When the guest sends a packet to the host, and the workqueue is empty, if there is enough space, the packet is put directly in the virtqueue.
v2->v3 - Performed more experiments using iperf3 using multiple streams - Handling of reply packets removed from virtio_transport_send_skb, as is needed just by the worker. - Removed atomic_inc/atomic_sub when queuing directly to the vq. - Introduced virtio_transport_send_skb_fast_path that handles the steps for sending on the vq. - Fixed a missing mutex_unlock in error path. - Changed authorship of the second commit - Rebased on latest net-next v1->v2 In this v2 I replaced a mutex_lock with a mutex_trylock because it was insidea RCU critical section. I also added a check on tx_run, so if the module is being removed the packet is not queued. I'd like to thank Stefano for reporting the tx_run issue. Applied all Stefano's suggestions: - Minor code style changes - Minor commit text rewrite Performed more experiments: - Check if all the packets go directly to the vq (Matias' suggestion) - Used iperf3 to see if there is any improvement in overall throughput from guest to host - Pinned the vhost process to a pCPU. - Run fio using 512B payload Rebased on latest net-next To: Stefan Hajnoczi <stefa...@redhat.com> To: Stefano Garzarella <sgarz...@redhat.com> To: David S. Miller <da...@davemloft.net> To: Eric Dumazet <eduma...@google.com> To: Jakub Kicinski <k...@kernel.org> To: Paolo Abeni <pab...@redhat.com> Cc: k...@vger.kernel.org Cc: virtualizat...@lists.linux.dev Cc: net...@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luigi Leonardi <luigi.leona...@outlook.com> --- Luigi Leonardi (1): vsock/virtio: avoid queuing packets when work queue is empty Marco Pinna (1): vsock/virtio: refactor virtio_transport_send_pkt_work net/vmw_vsock/virtio_transport.c | 143 +++++++++++++++++++++++++-------------- 1 file changed, 93 insertions(+), 50 deletions(-) --- base-commit: 58f9416d413aa2c20b2515233ce450a1607ef843 change-id: 20240711-pinna-49bf0ab09909 Best regards, -- Luigi Leonardi <luigi.leona...@outlook.com>