Re: [RFC PATCH 1/1] vhost: TX used buffer guest signal accumulation

Michael S. Tsirkin
2010-10-29T08:10:27Z

On Thu, Oct 28, 2010 at 10:14:22AM -0700, Shirley Ma wrote:
>
> > Two ideas:
> > 1. How about writing out used, just delaying the signal?
> > This way we don't have to queue separately.
>
> This improves some performance, but not as good as delaying
> both used and signal. Since delaying used buffers combining
> multiple small copies to a large copy, which saves more CPU
> utilization and increased some BW.

Hmm. I don't yet understand. We are still doing copies into the per-vq
buffer, and the data copied is really small. Is it about cache line
bounces? Could you try figuring it out?

> > 2. How about flushing out queued stuff before we exit
> > the handle_tx loop? That would address most of
> > the spec issue.
>
> The performance is almost as same as the previous patch. I will resubmit
> the modified one, adding vhost_add_used_and_signal_n after handle_tx
> loop for processing pending queue.
>
> This patch was a part of modified macvtap zero copy which I haven't
> submitted yet. I found this helped vhost TX in general. This pending
> queue will be used by DMA done later, so I put it in vq instead of a
> local variable in handle_tx.
>
> Thanks
> Shirley

BTW why do we need another array? Isn't heads field exactly what we need
here?