Thread (23 messages) flat view 23 messages, 8 authors, 2012-03-12

Re: [PATCH 1/2] vhost: allow multiple workers threads

From: Shirley Ma <hidden>
Date: 2012-02-21 05:42:53

On Tue, 2012-02-21 at 05:21 +0200, Michael S. Tsirkin wrote:
On Mon, Feb 20, 2012 at 05:04:10PM -0800, Shirley Ma wrote:
quoted
On Mon, 2012-02-20 at 23:00 +0200, Michael S. Tsirkin wrote:
quoted
The point was really to avoid scheduler overhead
as with tcp, tx and rx tend to run on the same cpu.
We have tried different approaches in the past, like splitting vhost
thread to separate TX, RX threads; create per cpu vhost thread
instead
quoted
of creating per VM per virtio_net vhost thread... 

We think per cpu vhost thread is a better approach based on the data
we
quoted
have collected. It will reduce both vhost resource and scheduler
overhead. It will not depend on host scheduler, has less various.
The
quoted
patch is under testing, we hope we can post it soon.

Thanks
Shirley
Yes, great, this is definitely interesting. I actually started with
a per-cpu one - it did not perform well but I did not
figure out why, switching to a single thread fixed it
and I did not dig into it.
The patch includes per cpu vhost thread & vhost NUMA aware scheduling

It is very interesting. We are collecting performance data with
different workloads (streams, request/response) related to which VCPU
runs on which CPU, which vhost cpu thread is being scheduled, and which
NIC TX/RX queues is being used. The performance were different when
using different vhost scheduling approach for both TX/RX worker. The
results seems pretty good: like 60 UDP_RRs, the results event more than
doubled in our lab. However the TCP_RRs results couldn't catch up
UDP_RRs.

Thanks
Shirley
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help