Bug 1295907 - [RFE] add virtio-gpu and virtio-vga support
[RFE] add virtio-gpu and virtio-vga support
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev (Show other bugs)
7.2
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Gerd Hoffmann
Guo, Zhiyi
: FutureFeature
Depends On:
Blocks: 1195176 1326589
  Show dependency treegraph
 
Reported: 2016-01-05 13:33 EST by Ademar Reis
Modified: 2016-11-07 16:46 EST (History)
18 users (show)

See Also:
Fixed In Version: qemu-2.5
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 1195176
Environment:
Last Closed: 2016-11-07 16:46:40 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Ademar Reis 2016-01-05 13:33:30 EST
For completeness, cloning this BZ for qemu-kvm-rhev.

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

Description of problem:

qemu will get support for a family of virtio-based display devices.
libvirt should support these devices.

Opening this bug as early heads-up, will add comments in merge process.

--- Additional comment from Gerd Hoffmann on 2015-02-23 07:35:14 BRT ---

Patch series posted upstream as RfC:
https://lists.gnu.org/archive/html/qemu-devel/2015-02/msg04342.html

--- Additional comment from Jaroslav Suchanek on 2015-03-25 11:50:40 BRT ---

(In reply to Gerd Hoffmann from comment #0)
> Description of problem:
> 
> qemu will get support for a family of virtio-based display devices.
> libvirt should support these devices.
> 
> Opening this bug as early heads-up, will add comments in merge process.

Gerd, is there a qemu bz which can be set as blocker for this? Is it planned for RHEL 7.2?

--- Additional comment from Gerd Hoffmann on 2015-03-25 12:27:05 BRT ---

Qemu patches will probably be merged upstream for 2.4,
so more a 7.3 than a 7.2 target, updated flags.

Guest update: submitted driver for review.

--- Additional comment from Gerd Hoffmann on 2015-06-12 04:57:59 BRT ---

Partly (virtio-gpu-device) merged upstream now.

Remaining bits (virtio-gpu-pci, virtio-vga) are expected to be merged for 2.4 too.

--- Additional comment from Gerd Hoffmann on 2015-06-12 04:58:53 BRT ---

Oh, and btw: The guest driver (linux kernel) is in -next and will probably merged in 4.2

--- Additional comment from Gerd Hoffmann on 2015-06-17 11:31:55 BRT ---

> Remaining bits (virtio-gpu-pci, virtio-vga) are expected to be merged for
> 2.4 too.

Landed in qemu master branch now.

--- Additional comment from Marc-Andre Lureau on 2015-11-24 11:09:04 BRST ---

sent a rfc series: https://www.redhat.com/archives/libvir-list/2015-November/msg00844.html

--- Additional comment from Michal Privoznik on 2015-11-27 13:53:28 BRST ---

Patches pushed upstream:

commit 06198b9c73ff07d70560c4d72f3d73f00e1ef9fa
Author:     Marc-André Lureau <marcandre.lureau@gmail.com>
AuthorDate: Wed Nov 25 09:42:33 2015 +0100
Commit:     Michal Privoznik <mprivozn@redhat.com>
CommitDate: Fri Nov 27 16:48:53 2015 +0100

    qemu: add virtio-gpu virgl support
    
    Check if virtio-gpu provides virgl option, and add qemu command line
    formatter.
    
    It is enabled with the existing accel3d attribute:
    <model type='virtio' heads='1'>
     <acceleration accel3d='yes'/>
    </model>
    
    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
    Signed-off-by: Michal Privoznik <mprivozn@redhat.com>

commit 21373feb4eeb1d447ccbc9a10d28f3927f650c09
Author:     Marc-André Lureau <marcandre.lureau@gmail.com>
AuthorDate: Wed Nov 25 09:42:32 2015 +0100
Commit:     Michal Privoznik <mprivozn@redhat.com>
CommitDate: Fri Nov 27 16:48:53 2015 +0100

    qemu: add virtio video device
    
    qemu 2.5 provides virtio video device.  It can be used with -device
    virtio-vga for primary devices, or -device virtio-gpu for non-vga
    devices. However, only the primary device (VGA) is supported with this
    patch.
    
    Reference:
    https://bugzilla.redhat.com/show_bug.cgi?id=1195176
    
    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
    Signed-off-by: Michal Privoznik <mprivozn@redhat.com>

commit 806ae4993320804b82a6ec1da5237625cc081ad6
Author:     Marc-André Lureau <marcandre.lureau@gmail.com>
AuthorDate: Wed Nov 25 09:42:31 2015 +0100
Commit:     Michal Privoznik <mprivozn@redhat.com>
CommitDate: Fri Nov 27 16:48:53 2015 +0100

    domain: replace bool accel{2d, 3d} with a tristate
    
    Allowing to have the extra undefined/default state.
    
    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
    Signed-off-by: Michal Privoznik <mprivozn@redhat.com>

commit 56a4fe2818beffee0b32e88d61aab39c23a90c24
Author:     Marc-André Lureau <marcandre.lureau@gmail.com>
AuthorDate: Wed Nov 25 09:42:30 2015 +0100
Commit:     Michal Privoznik <mprivozn@redhat.com>
CommitDate: Fri Nov 27 16:48:53 2015 +0100

    Replace support{2d,3d} with accel{2d,3d}
    
    Following the domain XML naming
    
    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>


v1.2.21-168-g06198b9
Comment 2 Guo, Zhiyi 2016-05-18 05:50:55 EDT
Hi Gerd,

I'm trying to verify this bug from qemu side, because of there is no rhel7.3 downstream kernel package available now, I'm testing the basic functions of virtio-vga/virtio-gpu-pci without active guest. I'll run a full virtual desktop test again these gpu devices once downstream kernel available.Do you agree with this verify method?
Below is my test scenarios and test results:
Qemu package use to verify: qemu-kvm-rhev-2.6.0-1.el7.x86_64
lat
1. 
scenario:
verify qemu support new display devices: virtio-vga/virtio-gpu-pci.

result:
All devices can be queried from -device help
#/usr/libexec/qemu-kvm -deivce help
Display devices:
name "virtio-gpu-pci", bus PCI, alias "virtio-gpu"
name "virtio-vga", bus PCI


2.
scenario:
Query properties of virtio-vga/virtio-gpu-pci from qemu-kvm help and qtree from qemu hmp

result: 
Lack of two options than upstream from qemu-kvm help and qtree info, rest of properties are same as upstream:
options lacked from qemu-kvm help
virtio-vga.stats=bool (on/off)
virtio-vga.virgl=bool (on/off)
options lacked from qtree info:
virgl = false
stats = false


3.
scenario:
Verify -device virtio-vga or -vga virtio is primary vga device when only one vga device specify

result:
Launch qemu with option -vga virtio or -device virtio-vga and info qtree from monitor. 
No crash occur and only virtio-vga device present as vga device


4.
scenario:
Verify -device virtio-vga and -device virtio-gpu-pci works with other vga device like qxl and stdvga and also works on all machine type

result:
Launch qemu with option -vga qxl/std and option -device virtio-vga/virtio-gpu-pci and -machine all_machine_type
No crash occur and both devices present in qtree, each vga device will get a display when using option -spice and connect with remote-viewer


5.
scenario:
Verify migration forbidden when virtio vga devices present

result:
Launch qemu with virtio-vga/virtio-gpu-pci and do migration, migration cannot start and message prompt:State blocked by non-migratable device '0000:00:04.0/virtio-gpu'


6.
scenario:
Verify vnc/spice connection to virtio-vga/virtio-gpu-pci device.

result:
Both vnc and spice can display when attaching virtio-vga as primary vga device
Only spice has display when attaching virtio-vga/virtio-gpu-pci as secondary device, vnc cannot init secondary display. 

Please help to confirm the scenarios and results and whether these test can verify this bug, thanks

I suppose only commit 21373feb4eeb1d447ccbc9a10d28f3927f650c09 realted with qemu and others is tracking issues from libvirt side. Is this true? If yes, bugs from libvirt side may be verified by libvirt team.

Guo, Zhiyi
Comment 3 Gerd Hoffmann 2016-05-18 07:54:53 EDT
(In reply to Guo, Zhiyi from comment #2)
> Hi Gerd,
> 
> I'm trying to verify this bug from qemu side, because of there is no rhel7.3
> downstream kernel package available now, I'm testing the basic functions of
> virtio-vga/virtio-gpu-pci without active guest. I'll run a full virtual
> desktop test again these gpu devices once downstream kernel available.Do you
> agree with this verify method?

For the time being you can try fedora.
The F23 live iso comes with virtio-gpu guest drivers.
Comment 4 Guo, Zhiyi 2016-05-19 06:10:31 EDT
Hi Gerd,

I'm trying to use fedora 23 guest to verify basic virtio-vga/gpu functions.
Below is my test scenarios and test results:
1. 
scenario:
Boot fedora 23 guest with primary vga device virtio vga and verify cursor,system layout,keyboard display normally.Shutdown, reboot guest.
result:
cursor,system layout keyboard display well, virtio vga device can be found from lspci -vvn. No crash happen during guest shutdown, reboot.

2.
scenario:
Boot fedora 23 guest with primary vga device virtio vga and second gpu device virtio-gpu-pci, verify cursor,system layout,keyboard display normally at both virtio-vga display and virtio-gpu-pci display.Shutdown, reboot guest.
result:
Guest only stay in login screen ui interface after input password, virtio-gpu-pci display has no output. virtio-vga display will scale up than boot with virtio-vga only. Shutdown button from ui interface also not work. Shutdown, reboot from console is ok, no crash happen.

3.
scenario:
Boot fedora 23 guest with other primary qxl/std device and second gpu device virtio-gpu-pci/virtio-vga, verify cursor,system layout,keyboard display normally at both primary display and virtio-gpu-pci/virtio-vga display.Shutdown, reboot guest.
result:
Screen output will 1st show in virtio-vga/virtio-gpu-pci display and transfer to qxl/std display after a while, then "Waiting for display 2..." will show on virtio-vga/virtio-gpu-pci display. Guest can login to system ui interface, but virtio-gpu-pci/virtio-vga display only display text "waiting for display 2..." after login.Shutdown, reboot from ui interface is ok, no crash happen.

Please help to confirm the scenarios and results and whether these test can verify this bug. Thanks
Comment 5 Guo, Zhiyi 2016-09-08 06:17:46 EDT
Hi Gerd,
   
   QE has finished two virtual desktop test runs against virtio-vga and virtio-gpu, one for rhel7.3 guest and one for latest windows 10 x64 guest. 

No regression issues found and basic functions of devices works great during test execution, some bugs listed here but qe think they should not block the feature's verification:

1. Bug 1374237 - Multi monitors of virtio-vga works abnormally on rhel7.3 guest
2. Bug 1368032 - kernel crash after hot remove virtio-gpu device
3. Bug 1368040 - Qemu-kvm coredump in repeating hotplug/  hot remove virtio-gpu device

The link of test runs:
https://polarion.engineering.redhat.com/polarion/#/project/RedHatEnterpriseLinux7/testrun?id=virtkvmqe-x86-virtual-desktop-virtio-vga-qemu-kvm-rhev-2-6-0-22-windows-10-x86-64
https://polarion.engineering.redhat.com/polarion/#/project/RedHatEnterpriseLinux7/testrun?id=virtkvmqe-x86-virtual-desktop-virtio-vga-qemu-kvm-rhev-2-6-0-22-rhel-7-3-x86-64

Could you confirm whether we can verify this bug? And we also have a bug Bug 1333306 - RFE: Enable virtio-gpu-device, does this can be verified with above test results too?
Comment 6 Gerd Hoffmann 2016-09-08 07:02:46 EDT
> No regression issues found and basic functions of devices works great during
> test execution, some bugs listed here

Great.

> but qe think they should not block the
> feature's verification:

Agree, they are not blockers.

> 1. Bug 1374237 - Multi monitors of virtio-vga works abnormally on rhel7.3
> guest
> 2. Bug 1368032 - kernel crash after hot remove virtio-gpu device
> 3. Bug 1368040 - Qemu-kvm coredump in repeating hotplug/  hot remove
> virtio-gpu device

fyi: virtio-gpu isn't hotpluggable (like all other display adapters), so the fix for 2+3 will be to simply tag the device correctly so qemu will refuse to hotplug it.

> Could you confirm whether we can verify this bug?

Yes, can be verified.

> And we also have a bug Bug
> 1333306 - RFE: Enable virtio-gpu-device, does this can be verified with
> above test results too?

Looking ..., yes, funsamentally the same thing, can be verified too.
Comment 7 Guo, Zhiyi 2016-09-08 07:31:29 EDT
Move to verified per comment 6
Comment 9 errata-xmlrpc 2016-11-07 16:46:40 EST
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://rhn.redhat.com/errata/RHBA-2016-2673.html

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