Earlier  
Posted Nick Remark
#openstack-nova - 2020-06-17
18:25:14 sean-k-mooney melwitt: i always use virtio
18:25:17 melwitt sean-k-mooney: ok, how to get an already existing instance to pick that up without rebuilding it?
18:25:32 sean-k-mooney melwitt: db edit
18:25:57 melwitt ok, so db edit instead of a virsh edit.. and then hard reboot the instance?
18:26:03 sean-k-mooney add img_hw_video_memory=virtio in the system_metadata table
18:26:08 sean-k-mooney yep
18:26:30 melwitt ok. guh
18:26:37 sean-k-mooney img_hw_video_model=virtio not memory
18:27:24 sean-k-mooney melwitt: is this for a customer or you?
18:27:26 melwitt we're defaulting to the deprecaed 'cirrus' on master even, so I think that needs to change https://github.com/openstack/nova/blob/6ed556f4adfd8a98fae2e91204f1ce0484f5dd9d/nova/virt/libvirt/config.py#L1949
18:27:33 melwitt customer
18:27:46 sean-k-mooney ah then rebuild
18:28:25 sean-k-mooney we also just added docs for this in OSP and no one metioned the deprecate or asked us to not sure that docs appies
18:28:46 sean-k-mooney that is for base rhel not the advance virt stream which we use in osp
18:28:47 melwitt sean-k-mooney: do you happen to know which value would be an appropriate default being that cirrus is deprecated? the choices in the aforementioned 8.2 release notes give choices of stdvga, virtio-vga, or qxl
18:29:19 sean-k-mooney the only one of those 3 that would work is qxl that doc is for using kvm directly
18:29:32 sean-k-mooney *libvirt not kvm
18:29:34 melwitt ah good to know
18:29:56 melwitt yeah, the customer is working around by setting hw_video_model=qxl but obvs that only works for new instances
18:30:09 melwitt *setting in image meta
18:30:41 sean-k-mooney what release is it
18:30:44 openstack bugzilla.redhat.com bug 1714508 in openstack-nova "[RFE] add support for virtio-gpu" [Low,Verified] - Assigned to smooney
18:30:44 sean-k-mooney https://bugzilla.redhat.com/show_bug.cgi?id=1714508
18:30:49 melwitt sean-k-mooney: what were you saying earlier about we just added docs for this in OSP? can you point me to what you're talking about
18:30:54 melwitt sean-k-mooney: stein
18:30:54 sean-k-mooney that was traicking the virtio-gpu supprot added in train
18:31:15 sean-k-mooney ya so stein they should use qxl
18:31:57 sean-k-mooney melwitt: yep we just added docs an im looking for them now
18:33:04 melwitt sean-k-mooney: does this mean you don't think this is something we need to change upstream too for the default? I would have thought if the default is deprecated in qemu we should have a default that works for all distros?
18:34:24 sean-k-mooney virtio does not work for windows by default
18:34:33 sean-k-mooney but it is the default we shoudl use
18:34:43 sean-k-mooney qxl works for linux and windows guests
18:34:47 melwitt does that mean qxl doesn't work on windows?
18:35:00 melwitt ok. I was thinking maybe the default should be qxl
18:35:12 sean-k-mooney but while its the best of the non virto option im not sure we should default to it
18:35:24 sean-k-mooney qxl was developed to have a better gpu for spice
18:35:25 melwitt but defaulting to a deprecated thing?
18:35:33 sean-k-mooney it work with novnc too
18:35:53 sean-k-mooney melwitt: without recored the current gpu we could break people on upgrade
18:36:06 sean-k-mooney so if we want to chang eit we need to record the current value
18:36:29 sean-k-mooney were recordign the current value is just popluating that value in the system metadata table
18:37:16 melwitt guh, I don't know enough about this stuff to understand what needs to be done here. all I know is the cirrus default messes up novnc
18:37:28 melwitt on rhel 8.2
18:37:32 sean-k-mooney melwitt: as of when because it used to work
18:37:52 melwitt it works, it's just greyscale and low res
18:37:53 sean-k-mooney ah so its a rhel 8.2 issue with what the qemu version we use or no vnc
18:38:09 melwitt yeah
18:38:16 sean-k-mooney that sound like a qemu bug
18:38:43 sean-k-mooney basically if we change the default and you upgrade then hard reboot
18:38:51 sean-k-mooney the gpu pci device would change
18:39:11 sean-k-mooney if you dont have the qxl driver then the console would not work right
18:39:39 sean-k-mooney qxl has a vga comapatible interface to the generic window vga driver will work with it an dit should work on linux out of the box
18:39:47 melwitt I see
18:44:36 sean-k-mooney melwitt: are we setting a default graphic model if you dont request one?
18:44:54 sean-k-mooney or are we currently leaving it to libvirt/qemu
18:45:18 melwitt yeah, the link I posted earlier https://github.com/openstack/nova/blob/6ed556f4adfd8a98fae2e91204f1ce0484f5dd9d/nova/virt/libvirt/config.py#L1949 we set cirrus
18:50:59 sean-k-mooney melwitt: ya we proably should just remove that line
18:51:25 melwitt ok. I'll do some local tests to see what happens when I remove it
18:52:17 sean-k-mooney well we need to set it to none i guess and only populate the xml atribute if its set
18:52:51 sean-k-mooney we also have another place we defualt it i think
18:53:14 sean-k-mooney we should not be defaulting it in that file in anycase
18:53:26 melwitt in driver.py we set it special based on things like virt_type or guest arch or spice
18:53:42 sean-k-mooney yep that is what im thinking of
18:53:52 melwitt but in the customer's case it's cirrus because of what's in the default config.py
18:54:09 sean-k-mooney we should only be adding this if you have a vnc/spice console too
18:54:32 melwitt "this" meaning what, qxl?
18:55:27 sean-k-mooney the graphics device
18:55:43 melwitt oh that config section altogether you mean
18:55:59 sean-k-mooney ya if you use the serial console you should not have a graphics device
18:56:25 melwitt ah yeah, we are actually only doing it for certain consoles in driver.py
18:56:31 sean-k-mooney if you use novnc or spice then we auto add a graphic element to provide the frame buffer
18:56:33 melwitt I just didn't see that earlier
18:56:52 melwitt yeah we're only doing for novnc and spice
18:57:03 sean-k-mooney yep which is correct
18:57:05 melwitt that we add that xml section for the video device
18:57:11 sean-k-mooney well i guess we would do it for RDP
18:57:13 sean-k-mooney maybe?
18:57:23 sean-k-mooney oh RDP is only supported with hyperv
18:57:23 melwitt I don't see rdp in here
18:57:31 melwitt yeah it's hyperv
18:57:50 melwitt ok, so sounds like everything is good except we shouldn't be setting a default and just let qemu/kvm handle it
18:58:07 sean-k-mooney https://github.com/openstack/nova/blob/6ed556f4adfd8a98fae2e91204f1ce0484f5dd9d/nova/virt/libvirt/driver.py#L5989-L5998
18:58:26 sean-k-mooney melwitt: that would alow them to contol the default and or deprecation
18:58:35 melwitt make sense
18:58:36 sean-k-mooney but the downside is we loose contol over that
18:58:45 sean-k-mooney so our guest abi will alter with theres
18:59:03 sean-k-mooney that is ok i guess since you can use the image property if you care
18:59:16 melwitt and yeah that's the code I was looking and the helper function being called there
19:00:21 sean-k-mooney ya so this https://github.com/openstack/nova/blob/6ed556f4adfd8a98fae2e91204f1ce0484f5dd9d/nova/virt/libvirt/driver.py#L5351-L5367 is basically working around libvit/qemu not doing the right thing by default
19:01:43 sean-k-mooney well and the fact we set a default in the xml generation class
19:01:51 sean-k-mooney so if we remove that default
19:02:02 sean-k-mooney then we might not need all those specal cases
19:02:37 melwitt ok, well one step at a time I guess :P
19:02:52 melwitt I do some local tests to see what happens when I remove the default
19:02:57 melwitt *I'll
19:03:45 sean-k-mooney ok let me know an i can review. https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/ is a review of some to the option and recomendations
19:04:21 sean-k-mooney i need to remove the gop device i added by mistake last cycle and add https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/#bochs-display
19:04:21 melwitt thanks
19:04:45 sean-k-mooney apparently gop is only for the bhve hypervior but the libvirt doc did not mention that
19:06:40 sean-k-mooney bochs implements a uefi graphic output protocol (gop) device for kvm

Earlier   Later