| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-06-17 | |||
| 17:21:34 | sean-k-mooney | so nova clients behavior change depending on the clinet version and api you are talking too | |
| 17:21:36 | gmann | ah yeah otherway around. | |
| 17:21:47 | sean-k-mooney | osc is consitent regardless of the verion or cloud | |
| 18:02:37 | melwitt | sean-k-mooney: do you know of a way of changing a guest's video model other than virsh editing it? context is the cirrus-vga type got deprecated https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.2_release_notes/deprecated_functionality#deprecated-functionality_virtualization and can result in bad looking low res vnc console | |
| 18:04:52 | melwitt | it used to look fine prior to an upgrade to stein, then looked messed up. so I'm trying to determine how users could update their existing instances | |
| 18:24:54 | sean-k-mooney | melwitt: yes you can use hw_video_model in the image metadata | |
| 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 | sean-k-mooney | https://bugzilla.redhat.com/show_bug.cgi?id=1714508 | |
| 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: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 | sean-k-mooney | that was traicking the virtio-gpu supprot added in train | |
| 18:30:54 | melwitt | sean-k-mooney: stein | |
| 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 | melwitt | I don't see rdp in here | |
| 18:57:23 | sean-k-mooney | oh RDP is only supported with hyperv | |
| 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 | |