Re: [PATCH net-next 2/2] vsock/virtio: avoid enqueue packets when work queue is empty
From: Matias Ezequiel Vara Larsen <mvaralar@redhat.com>
Date: 2024-06-21 08:58:35
Also in:
kvm, virtualization
On Tue, Jun 18, 2024 at 07:05:54PM +0200, Luigi Leonardi wrote:
Hi Stefano and Matias, @Stefano Thanks for your review(s)! I'll send a V2 by the end of the week. @Matias Thanks for your feedback!quoted
I think It would be interesting to know what exactly the test doesIt's relatively easy: I used fio's pingpong mode. This mode is specifically for measuring the latency, the way it works is by sending packets, in my case, from the host to the guest. and waiting for the other side to send them back. The latency I wrote in the commit is the "completion latency". The total throughput on my system is around 16 Gb/sec.
Thanks for the explanation!
quoted
if the test is triggering the improvementYes! I did some additional testing and I can confirm you that during this test, the worker queue is never used!
Cool.
quoted
If I understand correctly, this patch focuses on the case in which the worker queue is emptyCorrect!quoted
I think the test can always send packets at a frequency so the worker queue is always empty. but maybe, this is a corner case and most of the time the worker queue is not empty in a non-testing environment.I'm not sure about this, but IMHO this optimization is free, there is no penalty for using it, in the worst case the system will work as usual. In any case, I'm more than happy to do some additional testing, do you have anything in mind?
Sure!, this is very a interesting improvement and I am in favor for that! I was only thinking out loud ;) I asked previous questions because, in my mind, I was thinking that this improvement would trigger only for the first bunch of packets, i.e., when the worker queue is empty so its effect would be seen "only at the beginning of the transmission" until the worker-queue begins to fill. If I understand correctly, the worker-queue starts to fill just after the virtqueue is full, am I right? Matias