Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
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 1561921

Summary: [NetKVM] Investigate possible performance improvements for high speed network hosts, small packets and multi-queue
Product: Red Hat Enterprise Linux 7 Reporter: Yvugenfi <yvugenfi>
Component: virtio-winAssignee: Sameeh Jubran <sjubran>
virtio-win sub component: virtio-win-prewhql QA Contact: Quan Wenli <wquan>
Status: CLOSED ERRATA Docs Contact:
Severity: medium    
Priority: medium CC: ailan, ddepaula, jherrman, juzhang, lijin, michen, pezhang, sjubran, wquan, wyu
Version: 7.6Keywords: RFE
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Windows   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
This update implements a number of improvements for virtio-win handling of small network packets. This significantly improves the network performance of Windows guests that use small-packet traffic.
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-30 16:21:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1558125    

Description Yvugenfi@redhat.com 2018-03-29 07:58:30 UTC
Description of problem:

Performance of virtio-net on Windows when the host uses high-speed networking is not optimal:
https://github.com/virtio-win/kvm-guest-drivers-windows/issues/167

Also, Windows network performance is behind Linux with small packets.

Let's see what can be done to improve it.

Topics for investigations:
1. Introduce lockless queue on TX path to hold packets that we should hold when virtio queue is full

2. Optimize TX "waiting list" handling

3. Introduce lockless queue on RX path (if needed)

4. Possible offload of RSS to host

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Yvugenfi@redhat.com 2018-03-29 08:04:20 UTC
Commits so far:
* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/26e49c2c654e46594f0784e32e217eb48d18c746

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/5af4347f9d30a092e22776efdfea085332b43c60

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/e8f319fdc09837dc27fce1b8abb3496593e9dc10

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/ce2c35fe6dc1bf2131f04a326cf48431062b9057

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/b3fd592cf883cd7b9ae3024255ca057f17295639

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/6a7e7ca1e85d2597ee18e193fbbe51498e3b1d37

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/9589d9bc590e86384dff79b021ffee90f40bedc4

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/2512898321d410f23fee586bd5e5477a58e9c27b

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/6976f63c9249ddccbc9479d739e9bb0ae50a2e31

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/4837781496314580b07824885d9dbeca6152a297

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/59573a0e5d212b61c1cb87d9ad15e18a7dc41563

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/42f683e08c4f62529c54f3bcdb678d81d1607c70

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/62e1992d19e1832c5692b329f096b70b5f2b8d03

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/4958022b0eb21be99728c4ea5ca94d6b7923c5f2

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/ed203e7e099053516a4dfdfbdd1a89bda8a2fae3

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/68d43f42c11315ab96d8ea5dcecc4a57696419b9

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/3d2ab967f8dac507710eb9ffab9842d35c595a91

* https://github.com/virtio-win/kvm-guest-drivers-windows/commit/fbd4ada2d434006d1db411c3fe56937a540fd4f9

Comment 5 Sameeh Jubran 2018-04-26 09:14:01 UTC
How to reproduce:

1. Run qemu with virtio-net on any Windows and install the Netkvm driver
2. Perform hibernation from within Windows
3. Go to the script and remove virtio-net from the script
4. start the VM and the BSOD should occur

Comment 6 Sameeh Jubran 2018-04-26 09:17:33 UTC
P(In reply to Sameeh Jubran from comment #5)
> How to reproduce:
> 
> 1. Run qemu with virtio-net on any Windows and install the Netkvm driver
> 2. Perform hibernation from within Windows
> 3. Go to the script and remove virtio-net from the script
> 4. start the VM and the BSOD should occur

Please ignore the previous comment it is meant for a different BZ.

There is nothing that should be tested in terms of actual testing, the were development bugs in the code and I have fixed them. They are not directly related to the BZ however they are as result of my changes to improve the performance of NetKVM.

So to test this BZ I'd suggest running several performance tests that compare the latest release of the driver to build 145 for example.

Do you have any test plan for testing the performance of NetKVM?

Comment 9 lijin 2018-05-02 01:58:49 UTC
Hi wenli,

Could you do the netkvm performance testing between virtio-win-1.9.4-2.el7(base) and virtio-win-prewhql-0.1-151?

Thanks

Comment 10 Quan Wenli 2018-05-02 02:29:41 UTC
(In reply to lijin from comment #9)
> Hi wenli,
> 
> Could you do the netkvm performance testing between
> virtio-win-1.9.4-2.el7(base) and virtio-win-prewhql-0.1-151?
> 
> Thanks

ok, on which windows guest would be better ?

Comment 11 lijin 2018-05-02 02:39:46 UTC
(In reply to Quan Wenli from comment #10)
> (In reply to lijin from comment #9)
> > Hi wenli,
> > 
> > Could you do the netkvm performance testing between
> > virtio-win-1.9.4-2.el7(base) and virtio-win-prewhql-0.1-151?
> > 
> > Thanks
> 
> ok, on which windows guest would be better ?

Hi Sameeh, do you have any suggestion?

Comment 12 Sameeh Jubran 2018-05-02 13:36:04 UTC
(In reply to lijin from comment #11)
> (In reply to Quan Wenli from comment #10)
> > (In reply to lijin from comment #9)
> > > Hi wenli,
> > > 
> > > Could you do the netkvm performance testing between
> > > virtio-win-1.9.4-2.el7(base) and virtio-win-prewhql-0.1-151?
> > > 
> > > Thanks
> > 
> > ok, on which windows guest would be better ?
> 
> Hi Sameeh, do you have any suggestion?

Win2012R2 should be good.

Comment 35 Sameeh Jubran 2018-09-16 12:49:04 UTC
(In reply to Quan Wenli from comment #34)
> > > I thinks build 160 is ok as we ship build160 for rhel7.6.
> > > And build 161 is upstream build not target for rhel(latest verison for
> > > virtio-win-prewhql is build 160[1]).
> > > 
> > > Sameeh, Could you have a confirm?
> > True, let's go for 160.
> 
> Here is results about 145 versus 160 with 4 queues with scenario guest to
> external host. we could see some improvement with build 160 in some tests. 
> 
> 1.TCP STREAM test
> 
> http://kvm-perf.englab.nay.redhat.com/results/request/Bug1561921/2018-9-13-
> 4QL/Win2012.x86_64.r2.io-github-autotest-qemu.netperf.with_jumbo.host_guest.
> html
> 
This file doesn't exist

> 2.Latency test
> 
> http://kvm-perf.englab.nay.redhat.com/results/request/Bug1561921/2018-9-13-
> 4Q/Win2012.x86_64.r2.io-github-autotest-qemu.netperf.default.host_guest.html

Comment 37 lijin 2018-09-17 05:35:42 UTC
Hi Danilo,

This bug need to add to virtio-win errata, could you help to do it?

Thanks.


Hi wenli,

Can we set this bug as verified?

Comment 40 Danilo de Paula 2018-09-17 12:43:07 UTC
(In reply to lijin from comment #37)
> Hi Danilo,
> 
> This bug need to add to virtio-win errata, could you help to do it?
> 
> Thanks.
> 
> 
> Hi wenli,
> 
> Can we set this bug as verified?

As soon as this is marked as verified we can include it.

Comment 41 Quan Wenli 2018-09-18 03:28:21 UTC
According to comment #39, set it to verified.

Comment 43 errata-xmlrpc 2018-10-30 16:21:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:3413