| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2022-02-15 | |||
| 11:44:54 | gibi | just the host_id | |
| 11:45:04 | gibi | but I think that is OK | |
| 11:45:14 | sean-k-mooney | https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/portbindings_extended.py#L75-L105 yes | |
| 11:45:44 | sean-k-mooney | so that is why updating the host-id in the cold migrat case set the vif_type to unbound and then to the correct vif | |
| 11:45:59 | sean-k-mooney | it first unbindign the port in the ml2 driver then binds it again | |
| 11:46:13 | sean-k-mooney | potentially to a different ml2 driver | |
| 11:46:52 | sean-k-mooney | e.g. from linux bridge to ovs or whatever if both dirver supprot the vnic_type and you have different ones on different hosts | |
| 11:47:17 | sean-k-mooney | gibi when it the neutron meeting | |
| 11:47:59 | gibi | 14:00 UTC today | |
| 11:48:02 | gibi | afaik | |
| 11:48:04 | sean-k-mooney | i can try and attend but i think we are more or less on teh same page | |
| 11:48:21 | sean-k-mooney | ok so basicaly just over 2 hours form now | |
| 11:50:51 | gibi | no worries | |
| 11:51:08 | gibi | I agree that we are on the same page | |
| 11:51:55 | sean-k-mooney | is this something you will have time to work on | |
| 11:52:58 | sean-k-mooney | i have not booted the old servers i used to use for sriov work in the better part of a year maybe more so not sure if they are still working. i can review and maybe try and test the fix at some point but likely not until after FF | |
| 11:53:26 | sean-k-mooney | we will see how much progress i make on the health checks this week/next | |
| 11:53:52 | sean-k-mooney | im not sure if they will get done before FF but if not im hoping early next cycle they can land | |
| 11:54:50 | sean-k-mooney | gibi: by the way there is a slim change i can partly test dmitriis off-path code too. | |
| 11:55:46 | sean-k-mooney | i dont have bluefield 2 nics but i have a conectx-6 and if i lie to ovn and nova about it beign remote managed i should be able to test it end to end | |
| 11:56:06 | sean-k-mooney | but again likely wont get to that until FF has passed but im hoping to do it before RC1 | |
| 11:56:33 | gibi | sean-k-mooney: I have priority on this bug now from downstream I will work on it. But it should not effect me reviewing patches before FF | |
| 11:56:57 | gibi | so if you have anything just link me up | |
| 11:57:20 | dmitriis | sean-k-mooney: I am looking into adding more func tests and into doing a multi-node test. Unfortunately, SR-IOV is hidden by the QEMU's VFIO layer when PFs are passed through to a VM so I cannot reuse 2 PFs on the same host to fake 2 computes. | |
| 11:57:25 | dmitriis | brb in ~ 1h | |
| 11:57:42 | sean-k-mooney | dmitriis: yep it is | |
| 11:57:44 | gibi | I cannot test dmitriis patch I have only old SRIOV capable PFs | |
| 11:58:01 | sean-k-mooney | dmitriis: you can pass the PF to the vm but it nologner has the sriov extion | |
| 11:58:08 | dmitriis | Still there in recent versions of QEMU: https://github.com/qemu/qemu/blob/v6.2.0/hw/vfio/pci.c#L2094-L2097 | |
| 11:58:08 | dmitriis | https://git.qemu.org/?p=qemu.git;a=commitdiff;h=e37dac06dc4e85a2f46c24261c0dfdf2a30b50e3 | |
| 11:58:27 | dmitriis | this landed upstream https://lore.kernel.org/linux-pci/20200319184653.6c10638b.cohuck@redhat.com/T/ but the QEMU limitation is still there | |
| 11:58:28 | sean-k-mooney | oh.. | |
| 11:59:08 | dmitriis | (jumped into a meeting) | |
| 11:59:08 | opendevreview | Merged openstack/nova stable/xena: libvirt: Add announce-self post live-migration workaround https://review.opendev.org/c/openstack/nova/+/825064 | |
| 11:59:30 | sean-k-mooney | i wonder what happens if you jsut remove the sriov case there | |
| 12:01:37 | sean-k-mooney | /* Read-only VF BARs confuse OVMF */ implies its a uefi limitation | |
| 12:02:35 | sean-k-mooney | https://github.com/qemu/qemu/commit/e37dac06dc4e85a2f46c24261c0dfdf2a30b50e3 | |
| 13:03:01 | opendevreview | David Hill proposed openstack/nova master: Validate burst value is equal or smaller than 4194303 https://review.opendev.org/c/openstack/nova/+/829064 | |
| 13:14:47 | dmitriis | https://github.com/tianocore/edk2/blame/c095122d4b5f3152417cd97dabecfe31cc3b6508/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c#L1554-L1578 | |
| 13:14:47 | dmitriis | https://github.com/tianocore/edk2/blame/c095122d4b5f3152417cd97dabecfe31cc3b6508/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c#L494-L502 | |
| 13:14:47 | dmitriis | sean-k-mooney: yeah, the commit message says "OVMF tries to size the VF BARs and comes up with absurd results, ending with an assert". Haven't looked at the OVMF in-depth but I suspect it might be around this code which haven't seen much change besides automatic style fixes in 13 years: | |
| 13:35:31 | opendevreview | Jonathan Race proposed openstack/nova master: driver/secheduler/docs for Adds Pick guest CPU architecture based on host arch in libvirt driver support https://review.opendev.org/c/openstack/nova/+/822053 | |
| 13:35:31 | opendevreview | Jonathan Race proposed openstack/nova master: object/notification for Adds Pick guest CPU architecture based on host arch in libvirt driver support https://review.opendev.org/c/openstack/nova/+/828369 | |
| 13:35:32 | opendevreview | Jonathan Race proposed openstack/nova master: zuul-job for Adds Pick guest CPU architecture based on host arch in libvirt driver support https://review.opendev.org/c/openstack/nova/+/828372 | |
| 13:43:32 | opendevreview | Jonathan Race proposed openstack/nova master: object/notification for Adds Pick guest CPU architecture based on host arch in libvirt driver support https://review.opendev.org/c/openstack/nova/+/828369 | |
| 13:43:33 | opendevreview | Jonathan Race proposed openstack/nova master: zuul-job for Adds Pick guest CPU architecture based on host arch in libvirt driver support https://review.opendev.org/c/openstack/nova/+/828372 | |
| 13:43:33 | opendevreview | Jonathan Race proposed openstack/nova master: driver/secheduler/docs for Adds Pick guest CPU architecture based on host arch in libvirt driver support https://review.opendev.org/c/openstack/nova/+/822053 | |
| 13:46:46 | dmitriis | where 0000:82:00.0 and 0000:82:00.1 are PF addresses. | |
| 13:46:46 | dmitriis | `passthrough_whitelist = {"vendor_id":"*", "product_id":"15b3", "address": "0000:82:00.1", "physical_network": null, "remote_managed": "true"}` | |
| 13:46:46 | dmitriis | `passthrough_whitelist = {"vendor_id":"*", "product_id":"15b3", "address": "0000:82:00.0", "physical_network": null, "remote_managed": "true"}` | |
| 13:46:46 | dmitriis | have passthrough_whitelist to use "VFs of a PF" type of config in two different containers: | |
| 13:46:46 | dmitriis | sean-k-mooney: One other way of working around this which might work is using two containers for Nova compute services (I've certainly ran Libvirt even in unprivileged containers before https://dshcherb.github.io/2017/12/04/qemu-kvm-virtual-machines-in-unprivileged-lxd.html). PCI device access isn't namespaced: we'd need privileged containers and | |
| 13:49:35 | dmitriis | That should give us two "compute hosts" with different hostnames. We would be able to test the control plane path at least while faking the notion of a different host. In the live migration case a QEMU process would migrate locally into a different container and get a VF allocated from a different PF. | |
| 13:51:17 | sean-k-mooney | dmitriis: ya you can do that | |
| 13:51:33 | sean-k-mooney | but its not quite the same as a real live migration to differnt hosts | |
| 13:51:40 | sean-k-mooney | however it would work | |
| 13:52:51 | sean-k-mooney | that is proably more work then i want to do to do some testing but i have a 2 port connectx-6 so i could consider it | |
| 13:53:19 | sean-k-mooney | you woudl need two copies of libvirt too | |
| 13:53:30 | sean-k-mooney | with different hostnames in each contaienr | |
| 13:53:55 | sean-k-mooney | its doable but a lot of work. hopefully you have access to 2 hosts and can test this properly | |
| 13:53:56 | dmitriis | sean-k-mooney: yeah, a UTS namespace should give me that. IPC is namespaced too so shouldn't run into an issue with unix sockets. | |
| 13:54:08 | dmitriis | sean-k-mooney: agreed, just testing the control path in this case. I have a host with ConnectX5 as well that can be used for the live migration case (from BF2 to ConnectX 5). | |
| 13:54:22 | sean-k-mooney | dmitriis: by the way are you working on updating the melonox sriov ci to test this | |
| 13:54:34 | sean-k-mooney | i think it proably should be extended to test this | |
| 13:54:56 | sean-k-mooney | dmitriis: well in production that would not work | |
| 13:55:08 | sean-k-mooney | live migration form BF2 to connectx 5 | |
| 13:55:19 | sean-k-mooney | they woudl use differnt vnic types form a neutorn point of view | |
| 13:55:34 | sean-k-mooney | so that is not a capablity you will be able to leverage in an openstack env | |
| 13:55:41 | dmitriis | sean-k-mooney: I was hoping to get some clarity on the mellanox CI last week but that was postponed, I'm still pursuing it though | |
| 13:55:43 | sean-k-mooney | even though it could be made work | |
| 13:55:51 | sean-k-mooney | ack | |
| 13:56:28 | dmitriis | sean-k-mooney: I could configure the remote-managed feature to work with connectx as well since it's not mandatory to have networking agents on a different host | |
| 13:56:55 | dmitriis | i.e. I could tell Nova that a VF is remote-managed but run ovs-vswitchd and ovn-controller locally | |
| 13:56:59 | sean-k-mooney | technically however i dont think we shoudl really support that | |
| 13:57:08 | sean-k-mooney | we certenly should not document it in any upstream docs | |
| 13:57:25 | sean-k-mooney | except perhaps a developer docs | |
| 13:57:26 | dmitriis | yes, I don't intend to to avoid a clash with the existing approach | |
| 13:58:24 | sean-k-mooney | well its not so much that it would be a clash its more that its semanticaly incorrect. im also not sure what would add teh representor vf to ovs in that case | |
| 13:58:34 | sean-k-mooney | since os-vif wont do that nor will nova | |
| 13:58:46 | dmitriis | sean-k-mooney: that would be ovn-controller with ovn-vif | |
| 13:58:47 | sean-k-mooney | ovn would have to do that | |
| 13:58:49 | sean-k-mooney | ya | |
| 13:58:58 | sean-k-mooney | so you would have to also deploy that | |
| 13:58:58 | dmitriis | yep, much like we do on BF2 | |
| 13:59:03 | dmitriis | yes | |
| 13:59:17 | sean-k-mooney | so for a dev setup it coudl be used to fake a BF2 | |
| 13:59:34 | dmitriis | yes, exactly. ConnectX devices also have a VPD | |
| 13:59:35 | sean-k-mooney | but we dont want operators doing that really becasue we should not assuem that will always work | |
| 14:00:08 | dmitriis | sean-k-mooney: ack, agreed | |
| 14:00:08 | sean-k-mooney | dmitriis: ya i think there are some broadcom cards that have it too not sure about intel | |
| 14:00:28 | sean-k-mooney | in princiapl vpd is all that is needed | |
| 14:00:57 | sean-k-mooney | well and switch deve prot representer netdevs i guess for ovs-vif | |
| 14:01:01 | sean-k-mooney | *ovn-vif | |
| 14:01:05 | dmitriis | yes | |
| 14:01:40 | sean-k-mooney | hopefully other manufactures will implement both and they can just be enabeld using the work you already did | |
| 14:02:05 | dmitriis | sean-k-mooney: for now the switchdev-capable NIC kernel driver. Plenty of drivers in DPDK support representors so we are looking into that too | |
| 14:02:26 | sean-k-mooney | the dpdk ones are userspace only however | |
| 14:02:32 | sean-k-mooney | we dont have support for them in openstack | |
| 14:02:50 | sean-k-mooney | so you would have to add supprot for that end to end in a similar way | |
| 14:03:17 | sean-k-mooney | although i assume they just use vhost-user on the qemu side | |