Bug 1404318

Summary: [RFE][TestOnly] virtio-blk/scsi polling mode (RHV) - with RHEL 7.4
Product: Red Hat Enterprise Virtualization Manager Reporter: Ademar Reis <areis>
Component: RFEsAssignee: Martin Tessun <mtessun>
Status: CLOSED CURRENTRELEASE QA Contact: meital avital <mavital>
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: chayang, eberman, juzhang, libvirt-maint, lsurette, michen, mtessun, qzhang, rbalakri, srevivo, stefanha, virt-bugs, virt-maint, wquan, yama, ykaul, ylavi
Target Milestone: ovirt-4.1.4Keywords: FutureFeature, Performance, TestOnly
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 1404308 Environment:
Last Closed: 2017-07-06 14:47:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1404303, 1404308    
Bug Blocks:    

Description Ademar Reis 2016-12-13 15:16:19 UTC
Benchmarks have shown substantial performance improvements in some scenarios when using this patch. This is a work-in-progress, currently being refined and discussed both upstream and downstream.

+++ This bug was initially created as a clone of Bug #1404308 +++

+++ This bug was initially created as a clone of Bug #1404303 +++

From the patch over letter:

Recent performance investigation work done by Karl Rister shows that the
guest->host notification takes around 20 us.  This is more than the "overhead"
of QEMU itself (e.g. block layer).

One way to avoid the costly exit is to use polling instead of notification.
The main drawback of polling is that it consumes CPU resources.  In order to
benefit performance the host must have extra CPU cycles available on physical
CPUs that aren't used by the guest.

This is an experimental AioContext polling implementation.  It adds a polling
callback into the event loop.  Polling functions are implemented for virtio-blk
virtqueue guest->host kick and Linux AIO completion.

The -object iothread,poll-max-ns=NUM parameter sets the number of nanoseconds
to poll before entering the usual blocking poll(2) syscall.  Try setting this
parameter to the time from old request completion to new virtqueue kick.  By
default no polling is done so you must set this parameter to get busy polling.

Current patch series (v4):
https://lists.gnu.org/archive/html/qemu-devel/2016-12/msg00148.html

Comment 4 Yaniv Kaul 2017-03-12 08:21:58 UTC
Based on https://bugzilla.redhat.com/show_bug.cgi?id=1404308#c2 there is nothing RHV needs to do here, so changing to TestOnly .

Comment 9 Gil Klein 2017-07-06 14:47:02 UTC
Closing after a discussion with mtessun. No extra effort is required from RHV QE side.