RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 633394 - [6.1 FEAT] virtio-blk ioeventfd support
Summary: [6.1 FEAT] virtio-blk ioeventfd support
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.1
Hardware: x86_64
OS: All
low
medium
Target Milestone: rc
: 6.1
Assignee: Michael S. Tsirkin
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks: 538808 580954 698340
TreeView+ depends on / blocked
 
Reported: 2010-09-13 17:25 UTC by IBM Bug Proxy
Modified: 2013-01-09 23:08 UTC (History)
17 users (show)

Fixed In Version: qemu-kvm-0.12.1.2-2.135.el6
Doc Type: Enhancement
Doc Text:
The qemu-kvm virtio-blk code now support for ioeventfd, which results in improved performance and scalability by decoupling guest code execution from virtio hardware emulation. This decoupling allows the guest CPU and I/O to run in parallel and ensures that less time is taken from the guest.
Clone Of:
Environment:
Last Closed: 2011-05-19 11:34:22 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
IBM Linux Technology Center 67241 0 None None None 2019-03-13 16:43:50 UTC
Red Hat Product Errata RHSA-2011:0534 0 normal SHIPPED_LIVE Important: qemu-kvm security, bug fix, and enhancement update 2011-05-19 11:20:36 UTC

Description IBM Bug Proxy 2010-09-13 17:25:04 UTC
1. Feature Overview:
Feature Id: [67241]
a. Name of Feature: [6.1 FEAT] virtio-blk ioeventfd support
b. Feature Description
Virtio ioeventfd increases performance and scalability by decoupling guest code execution from
virtio hardware emulation, reducing the amount of time stolen from the guest and allowing guest CPU
and I/O to run in parallel.

2. Feature Details:
Sponsor: LTC Open Virtualization
Architectures:  x86_64, 

Arch Specificity: purely common code
Affects Kernel Modules: Field does not exist
Delivery Mechanism: Direct from Community
Category: other
Request Type: Package - Update Version
d. Upstream Acceptance: Field does not exist
Sponsor Priority P3
f. Severity: normal
IBM Confidential: No
Code Contribution: IBM code
g. Component Version Target:---

3. Business Case
Improved performance of virtio-blk and virtio-net devices in KVM VMs to better compete with other
industry hypervisor solutions.

4. Primary contact at Red Hat:
John Jarvis jjarvis

5. Primary contacts at Partner:
Project Management Contact:
Michael W. Wortman, wortman.com

Technical contact(s):
Stefan Hajnoczi, stefan.hajnoczi.com

Comment 2 John Jarvis 2010-09-21 21:20:39 UTC
What is the component for this and is it upstream?  Please provide more details about is being requested here.

Comment 3 IBM Bug Proxy 2010-09-22 09:20:39 UTC
------- Comment From stefan.hajnoczi.com 2010-09-22 05:18 EDT-------
The component is userspace QEMU.  Patches will be sent for upstream soon, the code is written.

Comment 4 IBM Bug Proxy 2010-10-04 16:37:58 UTC
------- Comment From rsisk.com 2010-10-04 10:40 EDT-------
Code Upstream Status: Not evaluated

Comment 5 IBM Bug Proxy 2010-11-15 13:21:23 UTC
------- Comment From stefan.hajnoczi.com 2010-11-15 08:17 EDT-------
Apologies, the status should be OPEN.  I have submitted patches upstream but they have not been merged and I have not provided a backport yet.

Comment 9 RHEL Program Management 2011-01-07 04:30:47 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unfortunately unable to
address this request at this time. Red Hat invites you to
ask your support representative to propose this request, if
appropriate and relevant, in the next release of Red Hat
Enterprise Linux. If you would like it considered as an
exception in the current release, please ask your support
representative.

Comment 10 Suzanne Logcher 2011-01-07 16:13:35 UTC
This request was erroneously denied for the current release of Red Hat
Enterprise Linux.  The error has been fixed and this request has been
re-proposed for the current release.

Comment 12 John Jarvis 2011-01-13 20:15:50 UTC
IBM is signed up to test and provide feedback.

Comment 15 John Jarvis 2011-01-15 00:20:48 UTC
This enhancement request was evaluated by the full Red Hat Enterprise Linux 
team for inclusion in a Red Hat Enterprise Linux minor release.   As a 
result of this evaluation, Red Hat has tentatively approved inclusion of 
this feature in the next Red Hat Enterprise Linux Update minor release.   
While it is a goal to include this enhancement in the next minor release 
of Red Hat Enterprise Linux, the enhancement is not yet committed for 
inclusion in the next minor release pending the next phase of actual 
code integration and successful Red Hat and partner testing.

Comment 19 Stefan Hajnoczi 2011-03-14 13:39:02 UTC
I have successfully tested RHEL6.1 qemu-kvm 0.12.1.2 2.148.el6 with libvirt 0.8.7 7.el6.

ioeventfd is functioning as expected.  Here are the tests I performed on a -smp 2 guest:
1. RHEL6 install to 100 GB virtio-blk raw file.
2. RHEL6 install to 100 GB virtio-blk qcow2 file.
3. ffsb benchmark with 8 thread I/O profiles on both raw file and qcow2 file.
4. Check that 10 virtio-blk qcow2 files, 10 GB each, are accessible and behave correctly.  This ensures that more than 6 ioeventds works and that vhost-net is not impacted by adding many virtio-blk devices using ioeventfd.
5. Stephen Tweedie's verify-data on a 10 virtio-blk qcow2 file striped LVM volume.
6. Ensured that virtio-blk-pci devices are defaulting to ioeventfd=on.

Comment 20 Eduardo Habkost 2011-05-05 14:30:06 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: no ioeventfd support on virtio-blk.

Consequence: lower performance and scalability than what is possible if using ioeventfd.

Change: ioeventfd support include on qemu-kvm virtio-blk code.

Result: higher performance and scalability by decoupling guest code execution from virtio hardware emulation, reducing the amount of time stolen from the guest and allowing guest CPU and I/O to run in parallel.

Comment 21 Misha H. Ali 2011-05-12 01:23:22 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1,7 +1 @@
-Cause: no ioeventfd support on virtio-blk.
+The qemu-kvm virtio-blk code now support for ioeventfd, which results in improved performance and scalability by decoupling guest code execution from virtio hardware emulation. This decoupling allows the guest CPU and I/O to run in parallel and ensures that less time is taken from the guest.-
-Consequence: lower performance and scalability than what is possible if using ioeventfd.
-
-Change: ioeventfd support include on qemu-kvm virtio-blk code.
-
-Result: higher performance and scalability by decoupling guest code execution from virtio hardware emulation, reducing the amount of time stolen from the guest and allowing guest CPU and I/O to run in parallel.

Comment 22 errata-xmlrpc 2011-05-19 11:34:22 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0534.html

Comment 23 errata-xmlrpc 2011-05-19 12:48:24 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0534.html

Comment 24 Ayal Baron 2011-06-23 08:32:24 UTC
Michael, is this enabled or disabled by default?
Are there cases where we think this would harm performance?

Comment 26 Stefan Hajnoczi 2011-07-04 12:42:09 UTC
Ayal: to my knowledge it is enabled by default for virtio-blk.  For other virtio devices it is not enabled by default.

You can override ioeventfd by setting it on the -device virtio-net-pci|virtio-blk-pci,ioeventfd=on|off command-line.


Note You need to log in before you can comment on or make changes to this bug.