| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-03-10 | |||
| 17:57:04 | dansmith | it's sourced from the control services, so if they put 1.x in there until everyone is upgraded, | |
| 17:57:06 | dansmith | it should be fine | |
| 17:57:56 | sean-k-mooney | ya again just raised this because i was trying to under stand when we can adress the Do X in next major version comments that are in some objects | |
| 17:58:07 | sean-k-mooney | many of which have been there for years at this point | |
| 18:01:40 | sean-k-mooney | https://github.com/openstack/nova/commit/1337890ace918fa2555046c01c8624be014ce2d8 was the instance one so i guess reviewing that is a good start. | |
| 18:02:46 | sean-k-mooney | oh ya i rembere the obj_relationships stuff | |
| 18:05:05 | sean-k-mooney | oh i see we had a _BaseInstance and InstanceV1 and InstanceV2 class for a cycle kind of like the proxy for rpc | |
| 18:06:18 | sean-k-mooney | then that patch actully drop V1 after we were shoudl everytin supported v2 | |
| 18:07:47 | sean-k-mooney | i vaguely remeber this happening https://github.com/openstack/nova/commit/713d8cb0777afb9fe4f665b9a40cac894b04aacb added 2 objects. | |
| 19:18:04 | openstackgerrit | Stephen Finucane proposed openstack/nova master: objects: Add 'VDPA' to 'PciDeviceType' https://review.opendev.org/c/openstack/nova/+/777481 | |
| 19:18:04 | openstackgerrit | Stephen Finucane proposed openstack/nova master: add constants for vnic type vdpa https://review.opendev.org/c/openstack/nova/+/770474 | |
| 19:18:05 | openstackgerrit | Stephen Finucane proposed openstack/nova master: libvirt: Add guest generation for vDPA https://review.opendev.org/c/openstack/nova/+/770532 | |
| 19:18:05 | openstackgerrit | Stephen Finucane proposed openstack/nova master: libvirt: Add vDPA nodedev parsing https://review.opendev.org/c/openstack/nova/+/770533 | |
| 19:18:06 | openstackgerrit | Stephen Finucane proposed openstack/nova master: pci: Add vDPA vnic to PCI request mapping and filtering https://review.opendev.org/c/openstack/nova/+/778350 | |
| 19:18:07 | openstackgerrit | Stephen Finucane proposed openstack/nova master: add hw:mlock extra spec https://review.opendev.org/c/openstack/nova/+/778347 | |
| 19:18:08 | openstackgerrit | Stephen Finucane proposed openstack/nova master: libvirt: Move PCI host device parsing to 'host' https://review.opendev.org/c/openstack/nova/+/779851 | |
| 19:18:11 | stephenfin | sean-k-mooney: there you go | |
| 19:22:49 | sean-k-mooney | thanks. ill take a look and test it out shortly. | |
| 19:31:18 | openstackgerrit | Stephen Finucane proposed openstack/nova master: libvirt: Move PCI host device parsing to 'host' https://review.opendev.org/c/openstack/nova/+/779851 | |
| 19:31:18 | openstackgerrit | Stephen Finucane proposed openstack/nova master: objects: Add 'VDPA' to 'PciDeviceType' https://review.opendev.org/c/openstack/nova/+/777481 | |
| 19:31:19 | openstackgerrit | Stephen Finucane proposed openstack/nova master: libvirt: Add vDPA nodedev parsing https://review.opendev.org/c/openstack/nova/+/770533 | |
| 19:31:20 | openstackgerrit | Stephen Finucane proposed openstack/nova master: libvirt: Add guest generation for vDPA https://review.opendev.org/c/openstack/nova/+/770532 | |
| 19:31:21 | openstackgerrit | Stephen Finucane proposed openstack/nova master: add hw:mlock extra spec https://review.opendev.org/c/openstack/nova/+/778347 | |
| 19:31:21 | openstackgerrit | Stephen Finucane proposed openstack/nova master: pci: Add vDPA vnic to PCI request mapping and filtering https://review.opendev.org/c/openstack/nova/+/778350 | |
| 20:12:54 | openstackgerrit | Merged openstack/nova master: libvirt: Stop passing around virt_type, caps https://review.opendev.org/c/openstack/nova/+/775689 | |
| 20:13:31 | openstackgerrit | Merged openstack/nova master: libvirt: Add missing type hints https://review.opendev.org/c/openstack/nova/+/775688 | |
| 20:23:14 | openstackgerrit | sean mooney proposed openstack/nova master: Support per port numa policies with SR-IOV https://review.opendev.org/c/openstack/nova/+/773792 | |
| 20:24:45 | sean-k-mooney | artom: ^ im having troble getting the socket test i addded here working https://review.opendev.org/c/openstack/nova/+/773792/10/nova/tests/functional/libvirt/test_pci_sriov_servers.py#1254 | |
| 20:31:28 | artom | sean-k-mooney, I wonder if it's because I set the 'socket' attribute on the pools in my filter method | |
| 20:31:45 | artom | And the pools that get passed to remove_device() don't have it | |
| 20:31:54 | artom | So it fails the equality test | |
| 20:32:23 | sean-k-mooney | its there in the host state object {"physnets": [], "tunneled": false}, "nova_object.changes": ["physnets", "tunneled"]}, "socket": 1}, | |
| 20:32:58 | sean-k-mooney | actully ill copy this to pastbin that not waht i wanted | |
| 20:34:04 | sean-k-mooney | http://paste.openstack.org/show/803443/ | |
| 20:34:09 | artom | del pool_keys['socket'] | |
| 20:34:09 | artom | if 'socket' in pool_keys: | |
| 20:34:09 | artom | del pool_keys['devices'] | |
| 20:34:09 | artom | Hrmm, yeah, if I add: | |
| 20:34:22 | artom | In _find_pool() | |
| 20:34:25 | artom | It makes the tests pass | |
| 20:34:28 | artom | OK, I have to run | |
| 20:34:37 | artom | Hopefully that helped a little bit, talk in ~1 hour | |
| 20:35:19 | sean-k-mooney | ok ya that might be the issue | |
| 20:36:17 | sean-k-mooney | but if it is your current patch might break neutron sriov ports? ill do some testing locally and try and see if its just a functest issue or a real one | |
| 20:37:34 | sean-k-mooney | the other polices do work however so i dont know it might just be an edgecase i need to fix to make both work correctly | |
| 20:38:07 | artom | I suspect it's a logic error in my patches | |
| 20:38:17 | artom | Though I do wonder how come my own functional tests passed...? | |
| 21:15:44 | sean-k-mooney | artom: i get the error on real hardware too. | |
| 21:31:08 | artom | sean-k-mooney, I wonder if if has something to do with VFs and PFs? | |
| 21:34:01 | sean-k-mooney | im not sure | |
| 21:34:12 | sean-k-mooney | did you test your code on real hardware | |
| 21:35:47 | sean-k-mooney | hum if i do some hacking in /sys to put all my nics on numa 0 i can boot again | |
| 21:36:20 | sean-k-mooney | basiclly echo 0 | sudo tee /sys/class/net/eth*/device/numa_node | |
| 21:36:34 | sean-k-mooney | then stop nova compute and libvirt fully and start them again | |
| 21:36:39 | artom | I didn't | |
| 21:37:06 | sean-k-mooney | when that was -1 it was failing i hadd to add pool_keys.pop('socket', None) | |
| 21:37:16 | sean-k-mooney | to find_pool | |
| 21:37:27 | sean-k-mooney | ill try removing that again | |
| 21:39:23 | sean-k-mooney | i can test it with pci alis too i guess i just need to spend some time to do it | |
| 21:40:51 | artom | That's the thing, I wasn't touching /sys, or indeed the PCI devices | |
| 21:41:13 | artom | Besides calculating the socket and saving it in pool['socket'] | |
| 21:41:29 | sean-k-mooney | ya well this is what is printign for the final resouce view | |
| 21:41:31 | sean-k-mooney | PciDevicePool(count=1,numa_node=0,product_id='10c9',tags={dev_type='type-PF',physical_network='public'},vendor_id='8086'), PciDevicePool(count=7,numa_node=0,product_id='10ca',tags={dev_type='type-VF',parent_ifname='eth1',physical_network='public'},vendor_id='8086')] | |
| 21:41:50 | sean-k-mooney | so the socket is not being added there incorerctly | |
| 21:43:02 | sean-k-mooney | a pic dev look more or less normal too | |
| 21:43:24 | sean-k-mooney | {"dev_id": "pci_0000_01_11_3", "address": "0000:01:11.3", "product_id": "10ca", "vendor_id": "8086", "numa_node": 0, "label": "label_8086_10ca", "dev_type": "type-VF", "parent_addr": "0000:01:00.1", "parent_ifname": "eth1", "capabilities": {"network": ["rx", "tx", "sg", "tso", "gso", "gro", "rxvlan", "txvlan", "txudptnl"]}} | |
| 21:45:02 | sean-k-mooney | strange it seam to be workign without the pop(socket ,none) | |
| 21:45:04 | artom | sean-k-mooney, hrmm, I really think it's the parent PF issue | |
| 21:45:10 | artom | It doesn't have the socket | |
| 21:45:40 | sean-k-mooney | ya maybe althou it shoudl | |
| 21:45:55 | sean-k-mooney | well in the same way the VF will | |
| 21:45:59 | artom | The logging I added to remove_device() and _find_pool() logs what I expect with your tests | |
| 21:46:05 | artom | But not with my functional tests | |
| 21:46:22 | artom | Meaning - it's never called, because in my func tests it only tests PFs (or "standard" PCI) | |
| 21:46:26 | artom | (Not sure which) | |
| 21:46:38 | artom | By testing with VFs and their parent PFs, you've uncovered an issue | |
| 21:46:52 | sean-k-mooney | standard is not a PF | |
| 21:47:03 | artom | But it has no parent, is my point | |
| 21:47:03 | sean-k-mooney | standard is a device that does not supprot sriov | |
| 21:47:09 | sean-k-mooney | a PF is type-PF | |
| 21:47:16 | sean-k-mooney | standard is type-PCI | |
| 21:47:36 | artom | The point is not the type, it's the parent device (or lack thereof) | |
| 21:48:26 | sean-k-mooney | correct you do not have to mark the parent as unavaible | |
| 21:48:30 | sean-k-mooney | as we do with VFs | |
| 21:48:49 | sean-k-mooney | or the child as unaviable with PFs | |
| 21:49:36 | sean-k-mooney | so you are not calling _handle_device_dependents | |
| 21:49:39 | sean-k-mooney | in your tests | |
| 21:49:48 | artom | Nope :) | |
| 21:49:56 | sean-k-mooney | well you might be but its a noop for you | |
| 21:49:56 | artom | Not that it as intentional | |
| 21:50:00 | artom | Or that I was aware it existed | |
| 21:50:26 | sean-k-mooney | you are calling it | |
| 21:50:51 | sean-k-mooney | but i does nothing for STANDARD/type-PCI | |
| 21:51:56 | artom | del pool['socket'] | |
| 21:51:56 | artom | if 'socket' in pool: | |
| 21:51:56 | artom | Yeah, if I do for pool in pools: | |
| 21:52:01 | artom | At the end of my new filter | |
| 21:52:05 | artom | It fixes your func tests | |
| 21:52:39 | artom | I guess you've made your point about being purely functional and not having side effects ;) | |
| 21:53:49 | sean-k-mooney | making it it a pure fucntion may or may not have caught it depending on if we wrote the test right | |