| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-08-23 | |||
| 12:28:02 | mriedem | cdent: ^ | |
| 12:28:05 | mriedem | http://paste.openstack.org/show/728679/ | |
| 12:29:14 | mriedem | well best_matches = req.accept.acceptable_offers(types) is clearly in placement code | |
| 12:29:21 | cdent | zigo, looks webob | |
| 12:29:30 | mriedem | yeah | |
| 12:29:30 | sahid | moshele: hum... it's complicated, because if you set it to None, the LibvirtConfig will not generate the tx/rx args | |
| 12:29:42 | cdent | acceptable_offer is new in webob 1.8.x I think | |
| 12:30:02 | mriedem | sahid: but it looks like we default to vhost if rx/tx is configured https://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/vif.py#L166-L176 | |
| 12:30:10 | mriedem | so driver_name will always be at least vhost? | |
| 12:30:25 | mriedem | which doesn't work for net_type == 'hostdev'? | |
| 12:30:42 | cdent | zigo: my guess is that the webob is not up to date with minimum requirements? | |
| 12:30:53 | zigo | cdent: Yeah, that should be it, thanks! | |
| 12:31:05 | mriedem | https://github.com/openstack/nova/blob/master/lower-constraints.txt#L170 fwiw | |
| 12:31:08 | mriedem | 1.8.2 | |
| 12:31:09 | zigo | Debian version is 1:1.7.3-2 | |
| 12:31:11 | cdent | zigo: I'm glad it was that easy :) | |
| 12:31:12 | zigo | Thanks guys. | |
| 12:31:14 | zigo | Will update it. | |
| 12:31:22 | sahid | yes yes, it's just i don't think we should specically set it to vfio, i think we should not set it at all for hostdev | |
| 12:31:40 | sahid | but if we do that tx/rx are then ignored | |
| 12:31:54 | jroll | mriedem: ykarel: I'm looking at this, I'm confused what is special about tripleo jobs here, as this works fine in our ironic jobs | |
| 12:32:08 | sahid | https://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/config.py#L1390 | |
| 12:32:17 | jroll | oh wait, it's probably the flavors | |
| 12:32:24 | mriedem | sahid: yup | |
| 12:33:13 | mriedem | but if rx is configured, | |
| 12:33:15 | mriedem | and driver is None, | |
| 12:33:20 | mriedem | we hard-code to vhost | |
| 12:33:21 | mriedem | https://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/vif.py#L169 | |
| 12:33:39 | mriedem | : libvirtError: unsupported configuration: Unknown PCI device <driver name='vhost'/> has been specified | |
| 12:33:39 | mriedem | but apparently that doesn't work | |
| 12:33:45 | mriedem | http://paste.openstack.org/show/728666/ | |
| 12:34:14 | sahid | can't we do something like that? https://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/vif.py#L432 | |
| 12:34:53 | mriedem | heh, that TODO is overwriting the thing done in get_base_config which is based on another TODO | |
| 12:35:28 | mriedem | and here https://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/vif.py#L519 | |
| 12:35:42 | moshele | sahid.mriedem : we can skip it for vnic_type direct in https://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/vif.py#L166-L176 | |
| 12:35:48 | mriedem | sahid: which vnic_type did you test the rx queue stuff with? | |
| 12:36:04 | jroll | ykarel: posted a comment on the bug | |
| 12:36:07 | moshele | sahid, mriedem ^ | |
| 12:36:13 | ykarel | jroll, checking | |
| 12:36:27 | mriedem | moshele: but what about the other sriov types? https://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/network/model.py#L111 | |
| 12:36:35 | sahid | get_config_vhostuser and _set_config_VIFHostUser are the same thing, one is native Nova the other for os-vif | |
| 12:36:45 | mriedem | i know | |
| 12:37:01 | sahid | ah sorry i did not have undersdoot the qustion so | |
| 12:37:11 | mriedem | so are direct and macvtap the only supported vnic types for rx/tx queues? | |
| 12:37:29 | moshele | mriedem: they are got beacuse the macvtap is also virtio and also the virtio forwarder | |
| 12:37:40 | moshele | mriedem: s/got/good | |
| 12:37:46 | sahid | all vnic that are using virtio | |
| 12:37:56 | sahid | can have rc/tx queues | |
| 12:38:12 | moshele | sahid: SR-IOV passthrough is not virtio | |
| 12:38:25 | moshele | sahid: meaning vnic_type direct | |
| 12:38:39 | sahid | yes, but you are talking about SRIOV+mactap right? | |
| 12:38:39 | mriedem | alright, i'm clearly in over my head here in the nfv waters. my main concern is today is rc3 and it doesn't sound like we know what the correct solution is. so i'm wondering if we should just release note a known limitation and put something in the rx/tx config option help saying it's only supported by one specifiv vnic_type for now based on the one we know that works | |
| 12:38:42 | moshele | sahid: also direct_physocal should work | |
| 12:38:56 | mriedem | i would rather release rocky stating *what we know works* | |
| 12:39:03 | mriedem | not what *should* or *might* work | |
| 12:39:12 | moshele | sahid: not it breack SR-IOV passthoght | |
| 12:39:33 | moshele | mriedem: agree we need more time on this to find a good solution | |
| 12:39:38 | sahid | yes | |
| 12:40:26 | mriedem | so what do we know works? vnic_type='macvtap'? | |
| 12:41:08 | moshele | mriedem: I will check it with Mellanox QA hope to have answer next week | |
| 12:41:56 | moshele | mriedem: as I see it we need to skip such config for vnic_type direct and physical_direct, but I will check to be sure ... | |
| 12:42:50 | ykarel | jroll, flavors created like: https://logs.rdoproject.org/openstack-periodic/git.openstack.org/openstack-infra/tripleo-ci/master/legacy-periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset002-master-upload/9a25ebd/logs/undercloud/home/zuul/overcloud_prep_images.log.txt.gz#_2018-08-21_13_14_01 | |
| 12:42:57 | ykarel | jroll, is that wrong ? | |
| 12:43:27 | moshele | sahid, mriedem: I have to go I will update you guys next week | |
| 12:44:37 | jroll | ykarel: hm, that looks right. looks like maybe there's a bug in nova that doesn't override flavor.ram with flavor.properties['resources:MEMORY_MB']? this definitely used to work | |
| 12:44:49 | jroll | ykarel: I don't have time to dig into that code right now though, sorry | |
| 12:44:53 | ykarel | jroll, what can be reason for phys_ram=0:- phys_ram=0MB used_ram=0MB phys_disk=0GB used_disk=0GB total_vcpus=0 used_vcpus=0 pci_stats=[] | |
| 12:45:09 | openstackgerrit | Merged openstack/nova master: [placement] Regex consts for placement schema https://review.openstack.org/591863 | |
| 12:45:12 | ykarel | jroll, no issue, ^^ | |
| 12:45:22 | jroll | ykarel: baremetal resources no longer report ram/cpu/disk, we only rely on resource classes | |
| 12:45:44 | ykarel | jroll, in devstack ironic i saw phys_ram=384 | |
| 12:46:21 | jroll | ykarel: on master? I'd like to see that :) | |
| 12:46:51 | ykarel | jroll, yes http://logs.openstack.org/42/588942/1/check/ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/4e2e0d5/logs/subnode-2/screen-n-cpu.txt.gz#_Aug_22_03_30_57_227367 | |
| 12:47:29 | mriedem | ok so moshele said rx/tx isn't support for vnic_type direct* is what i heard | |
| 12:47:30 | jroll | ykarel: that's a stable/pike patch | |
| 12:47:36 | ykarel | :( | |
| 12:47:42 | sean-k-mooney | jroll: the code works the otherway in nova. we calulate teh resources dictionary from flavor if not set not the other way around | |
| 12:47:55 | ykarel | jroll, okk, will check some master one :) | |
| 12:48:44 | jaypipes | mriedem: weird how vif plugging succeeds before the libvirt XML file is even defined...? | |
| 12:48:57 | jroll | sean-k-mooney: we explicitly agreed at some point that those resource classes in the flavor's properties would override the direct flavor properties. so I say it's a bug, if nova agrees that it isn't a bug, then ironic has docs bugs and ironic flavors have a UX problem :( | |
| 12:49:14 | jroll | sean-k-mooney: and the code did work this way in the past | |
| 12:49:32 | jaypipes | sean-k-mooney: I trust whatever jroll says and remembers. | |
| 12:50:09 | jroll | jaypipes: I'm putting that on my wall and will remember it in the future :D | |
| 12:50:14 | sean-k-mooney | im not that familar with the ironic code path so your proably right | |
| 12:50:27 | ykarel | jroll, correct in master phys_ram=0, jroll ok will try to understand placement now :) and see i can find anything there | |
| 12:50:38 | ykarel | then | |
| 12:50:44 | jaypipes | jroll: deal. :) | |
| 12:51:21 | mriedem | i also remember the flavor override thing | |
| 12:51:27 | ykarel | jroll, can this be the possible cause:- Details: There are no compute resource providers in the Placement | | |
| 12:51:28 | ykarel | | See | |
| 12:51:28 | ykarel | | Placement service and need to be upgraded and/or fixed. | | |
| 12:51:28 | ykarel | | This means no compute nodes are reporting into the | | |
| 12:51:28 | ykarel | | service but there are 2 compute nodes in the deployment. | | |
| 12:51:33 | mriedem | not sure if it was in a spec though, if not - probably in some old ptg etherpad | |
| 12:51:35 | jroll | whoops | |
| 12:52:04 | mriedem | i'm pretty sure edleafe had included the flavor overwrite stuff in the utility method for this... | |
| 12:52:28 | jroll | ykarel: the cause is a bug in the code that does overrides in the flavor, I'm sure of it :) | |
| 12:52:46 | jroll | in the short term you can remove the top-level ram/cpu/disk properties from your flavor to work around it | |
| 12:52:47 | mriedem | i'd be in this path https://github.com/openstack/nova/blob/master/nova/scheduler/utils.py#L367 | |
| 12:52:54 | jroll | which is fine for CI, but not awesome for users | |