On Wed, Mar 07, 2018 at 12:44:59PM +0100, Sergio Lopez wrote: > Commit 5b2ffbe4d99843fd8305c573a100047a8c962327 ("virtio-blk: dataplane: > notify guest as a batch") deferred guest notification to a BH in order > batch notifications, with purpose of avoiding flooding the guest with > interruptions. > > This optimization came with a cost. The average latency perceived in the > guest is increased by a few microseconds, but also when multiple IO > operations finish at the same time, the guest won't be notified until > all completions from each operation has been run. On the contrary, > virtio-scsi issues the notification at the end of each completion. > > On the other hand, nowadays we have the EVENT_IDX feature that allows a > better coordination between QEMU and the Guest OS to avoid sending > unnecessary interruptions. > > With this change, virtio-blk/dataplane only batches notifications if the > EVENT_IDX feature is not present. > > Some numbers obtained with fio (ioengine=sync, iodepth=1, direct=1): > - Test specs: > * fio-3.4 (ioengine=sync, iodepth=1, direct=1) > * qemu master > * virtio-blk with a dedicated iothread (default poll-max-ns) > * backend: null_blk nr_devices=1 irqmode=2 completion_nsec=280000 > * 8 vCPUs pinned to isolated physical cores > * Emulator and iothread also pinned to separate isolated cores > * variance between runs < 1% > > - Not patched > * numjobs=1: lat_avg=327.32 irqs=29998 > * numjobs=4: lat_avg=337.89 irqs=29073 > * numjobs=8: lat_avg=342.98 irqs=28643 > > - Patched: > * numjobs=1: lat_avg=323.92 irqs=30262 > * numjobs=4: lat_avg=332.65 irqs=29520 > * numjobs=8: lat_avg=335.54 irqs=29323 > > Signed-off-by: Sergio Lopez <s...@redhat.com> > --- > hw/block/dataplane/virtio-blk.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-)
Thanks, applied to my block tree! I merged this quickly because I don't want to forget this patch for the upcoming QEMU 2.12 release. If anyone has questions or wants to discuss, please go ahead and I can hold back the patch. https://github.com/stefanha/qemu/commits/block Stefan
signature.asc
Description: PGP signature