Earlier  
Posted Nick Remark
#openstack-nova - 2021-08-04
13:33:06 sean-k-mooney to a degree at least
13:33:38 sean-k-mooney anyway this is a know issue that we just have not focused on so sorry your are hitting it
13:34:16 aarents "could contocut as much data as we can and pass incompelte objects" <- I try that but it needs details like vif_type bridge name this info are no more available when port is deleted, I don't know how regenerate that
13:35:03 sean-k-mooney ah yes we do need those
13:35:25 sean-k-mooney which may or may not be still in the info cache as you have found
13:35:59 opendevreview Merged openstack/nova master: Add functional test for bug 1937375 https://review.opendev.org/c/openstack/nova/+/802011
13:36:27 sean-k-mooney its its a hack but we might be able to reconstuct the required data by inspecting the libvirt xml but i would prefer to avoid that
13:38:38 aarents sean-k-mooney: yes.. it was the workaround I was considering, kind of detach_device_by_mac, we intereate on interfaces nad deleted the good one
13:39:27 sean-k-mooney ya by mac works for most things excption sriov pfs but in that case you can kind of still figure it out in some cases
13:39:47 sean-k-mooney it really depend on how much of the db info we have acess too
13:40:33 sean-k-mooney we cant get the pci address form the port since its gone and the info cache may be empty but we recently started recoring the neutron port uuid as the requester id in the pci_devices table i belive
13:41:13 aarents the info we can grab in db are entry in virtuales_interfaces:
13:41:14 sean-k-mooney which means we should be able to get the pci adress by the port uuid
13:41:30 aarents +---------------------+------------+------------+----+--------------------------------------------------------+------------+--------------------------------------+--------------------------------------+---------+------+
13:41:35 aarents | created_at | updated_at | deleted_at | id | address | network_id | uuid | instance_uuid | deleted | tag |
13:41:39 aarents +---------------------+------------+------------+----+--------------------------------------------------------+------------+--------------------------------------+--------------------------------------+---------+------+
13:41:43 aarents | 2021-08-03 15:44:23 | NULL | NULL | 62 | fa:16:3e:fb:2d:7b/4ae693fd-23fb-46c6-a8a5-369270029fc6 | NULL | 4ae693fd-23fb-46c6-a8a5-369270029fc6 | d07df8d0-fc98-4087-9b25-3b4a55cdcac4 | 0 | NULL |
13:41:47 aarents +---------------------+------------+------------+----+--------------------------------------------------------+------------+--------------------------------------+--------------------------------------+---------+------+
13:41:54 sean-k-mooney yep
13:42:01 opendevreview Sylvain Bauza proposed openstack/nova master: Expose the mdev class https://review.opendev.org/c/openstack/nova/+/801743
13:42:01 opendevreview Sylvain Bauza proposed openstack/nova master: WIP: Cleanup GPU vs. mdev wording https://review.opendev.org/c/openstack/nova/+/803379
13:42:51 sean-k-mooney so with that info and the pci_devices table we can with some effort constuct most of what we need to inpect the xml and then figure out what the vif_type ectra was to unplug
13:43:12 sean-k-mooney but since the virt dirvers are not really ment to tlak to the db that is tricky to do
13:43:41 sean-k-mooney we would have to implement a new fuction in the compute manager ot do that more then likely
13:43:58 sean-k-mooney and then extend thet virt driver api
13:44:18 sean-k-mooney well it depend on how we approch it
13:54:33 aarents sean-k-mooney: it is good to know the topic is open with neutron, in short term I will find a hack to detach interface with few info I have in db
13:55:16 aarents sean-k-mooney: thks!
14:00:01 kashyap sean-k-mooney: Remind me again, why did you suggest to leave this as-is to 'cirrus'? - https://review.opendev.org/c/openstack/nova/+/798680/3/nova/virt/libvirt/config.py
14:00:23 sean-k-mooney because we only want to change the behavior for new instnaces
14:00:39 sean-k-mooney also for most code paths this get overriden
14:01:13 sean-k-mooney none might actully be a better default
14:01:31 sean-k-mooney i dont think this will ever get used currently at least not on x86
14:01:57 kashyap sean-k-mooney: I'm actually going to do a bunch of migration tests with a variant of this patch to see if there's *actual* breakage or are we talking only theoretical stuff
14:03:26 sean-k-mooney well what we approved ot proceed was no change to existing instnaces
14:03:47 sean-k-mooney if you want to change the default of exisitng instance then we should disssu this cahgne again with the wider team
14:03:57 kashyap Well, let's see what breaks, if anything. "What was approved" was all based on theory. I'd like to see some actual evidence
14:03:59 sean-k-mooney so i think you should leave it at cirrus or defer this to yoga
14:04:52 kashyap Don't worry, I am concerned as much as you to not break any valid cases or upgrades, etc.
14:09:04 kashyap Oh, totally forgot: I said this befoere but I've gotten a Red Hat QE to do some tests w/ Cirrus and VirtIO to change for existing instances - for Windows and Linux.
14:09:25 kashyap I'll add a note in the review
14:10:02 sean-k-mooney they would need to test both migration and hard reboots after the fact withthe updated xmls
14:10:38 sean-k-mooney for live migration obviolys we cant change teh device model, it could change on a hard reboot after the migration but we generally want to avoid that
14:10:46 kashyap sean-k-mooney: Right, the test that was done so far was this:
14:10:55 kashyap Have a Linux and Windows guest on source with 'cirrus', change the video model to 'virtio'; reboot the guest, and then live-migrate -- it all succeeds
14:11:59 sean-k-mooney ack. we had discussed that in some cases default to virtio might be fine due to the vga fallback
14:12:10 sean-k-mooney have you test this where we have specifed vram
14:12:17 sean-k-mooney or other extra specs
14:12:34 sean-k-mooney * other image properteis
14:12:38 kashyap And on hard-reboot, a guest can pick up new device-related bits some times; can't avoid it in some cases
14:12:58 kashyap sean-k-mooney: Can you spell out a bit more on what do you want tested with the vRAM?
14:13:02 sean-k-mooney right personally i feel like that is a bug when that happens
14:13:25 kashyap (I mean, it's a bug if it breaks anything user-visible; if not, I'd say it's fine)
14:13:45 sean-k-mooney depends on who you talk too
14:13:59 kashyap sean-k-mooney: Likewise, what props you want to test in this case? How are these other image props related?
14:14:10 sean-k-mooney some customer treat it as a bug since they would require recertifcation of the workload other dont care
14:14:36 sean-k-mooney hw_video_ram
14:14:49 sean-k-mooney i belive virtio is limited to 8MB
14:14:56 sean-k-mooney cirrus i think is larger
14:15:23 sean-k-mooney i think crrus can support 24-64 mb somethign in that region
14:15:47 sean-k-mooney kashyap: that is hte main one im concerned about currently
14:16:02 kashyap sean-k-mooney: You mean hw_video_ram is the thing you're concerned about?
14:16:09 sean-k-mooney yes
14:16:16 kashyap sean-k-mooney: Sure, adding a note to test that too (and summarizing what we talked here on the change)
14:16:26 sean-k-mooney i think the max vram that you can use with virtio is less then that for cirrus
14:16:48 sean-k-mooney https://github.com/openstack/nova/blob/master/nova/objects/image_meta.py#L417
14:18:04 kashyap sean-k-mooney: What I'm not clear is the impact of hw_video_ram on the switch to virtio
14:20:42 kashyap Maybe virtio doesn't need that max vRAM. Anyway, to be tested :)
14:20:49 sean-k-mooney kashyap: if you had it set to 16 with cirrus it would work but when you swich to virtio you vm would not boot
14:21:15 sean-k-mooney kashyap: lets concirm since i tought the virt team said it did no that downstream mail thread today
14:21:17 kashyap Another q. is In what scenarios would one bother to set this at all?
14:21:49 kashyap Yes, I will ask the virt graphics maintainer about it
14:21:53 sean-k-mooney to improve guest performacne
14:22:22 sean-k-mooney it allow more frame buffers to be created in the graphic device which is need for higher resolutions
14:23:13 sean-k-mooney without a large enough vram allocation you can do double or triple buffing in the graphic device and xrog has to fall back to copying buffers to/from guest ram
14:24:05 kashyap I see; I really wonder how many users actually know this, and how many, if any at all, change this..
14:24:44 sean-k-mooney kashyap: from greg " - vga compatibility mode is limited when compared to stdvga. It has
14:24:46 sean-k-mooney 8 MB fixed video memory, whereas stdvga has 16 MB by default can
14:24:48 sean-k-mooney can be configured to have more if needed (for example in case you
14:24:50 sean-k-mooney want use 4k).
14:24:52 sean-k-mooney "
14:24:55 sean-k-mooney that was in context of virtio-vga
14:25:04 sean-k-mooney vs plain vga
14:25:15 sean-k-mooney but i think cirrus also support more the 8MB
14:25:22 sean-k-mooney as does QXL
14:25:30 kashyap Let's confirm if Cirrus actually does
14:26:42 sean-k-mooney looking at https://libvirt.org/formatdomain.html#video-devices yes at least 16MB
14:26:55 sean-k-mooney For a guest of type "kvm", the default video is: type with value "cirrus", vram with value "16384" and heads with value "1".
14:27:59 kashyap sean-k-mooney: Ah, yep
14:31:02 sean-k-mooney lookign at https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/#qxl-vga by the way qxl defaults to 64MB which was one of the reasons it perfromed better in the past then other options i know much of the improvemnts have now been surpassed by virtio-gpu or std vga
14:33:07 sean-k-mooney actully from the std vga section
14:33:10 sean-k-mooney "The linux driver supports page-flipping, so having room for 3-4 framebuffers is a good idea. The driver can leave the framebuffers in vram then instead of swapping them in and out. FullHD (1920x1080) for example needs a bit more than 8 MB for a single framebuffer, so 32 or 64 MB would be a good choice for that. "
14:33:29 sean-k-mooney you can see that 8MB is not quite large enough for 1080p
14:34:34 sean-k-mooney so without the virtio gpu driver you perfromace would likely regress goign form cirrus to virtio-vga if you tried to use a 1080p resolution today
14:43:42 kashyap sean-k-mooney: Back ... reading
14:45:02 kashyap I really doubt the seriousness of the "regression" from performance going from 'cirrus' to 'virtio-vga'. If people want performance, you better make sure you're not using deadly-old Linux, and got the virtio-gpu driver.
14:48:28 kashyap I'll check w/ Gerd (the author of the above post) and post my summary on the change
14:49:08 sean-k-mooney ack
14:56:20 gibi aarents: sean-k-mooney: here is the neutron drivers meeting log about deleting bound ports https://meetings.opendev.org/meetings/neutron_drivers/2021/neutron_drivers.2021-07-02-14.00.log.html#l-67
14:57:41 gibi the agreement was that it needs specs

Earlier   Later