Bug 670415

Summary: vhost get TX performance regression when using level triggered IRQ
Product: Red Hat Enterprise Linux 6 Reporter: jason wang <jasowang>
Component: qemu-kvmAssignee: jason wang <jasowang>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 6.1CC: michen, mjenner, mkenneth, mst, tburke, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-04-13 04:23:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description jason wang 2011-01-18 07:14:05 UTC
Description of problem:
When testing performance of vhost with a guest without MSI support, regression of TX performance were found, this because we still need the assistance of qemu to inject non-msi interrupt which cause a relative high irq latency.

Guest -> External Host with a RHEL4.8 guest

TCP_STREAM
     userspace                | vhost
Size|Through  CPU%(S) CPU%(R) | Through  CPU%(V) CPU%(Q)  CPU%(R)
16  |262.60   17.18    1.15   | 323.32    2.11   19.11      2.18
32  |280.77   18.69    1.69   | 416.44    3.68   18.40      2.61
64  |342.17   19.48    2.20   | 500.31    3.94   16.26      2.29
128 |397.85   20.31    1.84   | 719.32    4.61   17.14      2.35
512 |1616.20  24.68    2.43   | 1065.69   4.74   15.67      3.37
1024|1686.69  24.92    4.52   | 1276.48   5.50   13.76      3.55
1472|1702.32  24.77    3.60   | 1300.31   6.18   14.09      4.00
9000|1574.62  21.75    4.98   | 1352.50   5.48   12.37      4.10

UDP_STREAM
     userspace                      | vhost
Size|Through(S/R)   CPU%(Q) CPU%(R) | Through(S/R)   CPU%(V) CPU%(Q) CPU%(R)
16  |46.4/46.4      43.54    6.73   | 76.6/76.6      12.04   12.95     5.34
32  |86.7/86.7      33.82    7.01   | 146.6/146.6    11.95   13.37     5.43
64  |190.8/190.8    24.97    7.56   | 298.1/298.1    11.78   13.29     5.76
128 |370.9/370.9    24.94    7.47   | 581.2/581.2    12.32   13.50     5.80
512 |1434.5/1434.5  24.97    7.92   | 1968.1/1967.9  11.04   13.27     6.25
1024|2312.7/2312.7  25.00    7.57   | 1631.9/1631.8   6.87   11.51     4.29
1472|3789.5/3789.4  24.99    7.63   | 2345.2/2345.2   6.39   12.62     4.37
9000|5043.2/5042.9  20.62    2.32   | 3080.6/3080.5   7.58    9.29     3.57

Version-Release number of selected component (if applicable):

How reproducible:
100%

Steps to Reproduce:
1. Start a guest without MSI support with vhost
2. Run a round of netperf
3. Start a guest without MSI support without vhost
4. Run a round of netperf
5. Compare the result
  
Actual results:
TX performance of vhost is worse than userspace.

Expected results:
TX performance should be better than userspace.

Additional info:
Possible solution:
1. qemu automatically switch to userspace virtio_net when the non-msi interrupt was used
2. eventfd support for injecting level interrupts

Comment 6 Miya Chen 2011-04-13 04:23:17 UTC
confirmed with Jason, this one should be duplicate to https://bugzilla.redhat.com/show_bug.cgi?id=674562

*** This bug has been marked as a duplicate of bug 674562 ***