| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-09-12 | |||
| 11:57:51 | alex_xu | if both PCPU and VCPU on the same host, that VCPU must be for shared cpu | |
| 11:58:22 | sean-k-mooney | right | |
| 11:58:57 | sean-k-mooney | but i did not see code to do that in stephens code | |
| 11:59:08 | sean-k-mooney | that siad i only quickly looked at it | |
| 11:59:27 | alex_xu | yea, nice spot | |
| 11:59:35 | stephenfin | alex_xu: Yeah, we don't have that. Instead we're relying on ordering preventing that from happening | |
| 11:59:43 | stephenfin | I think I should add the filtering, to be safe | |
| 12:00:11 | sean-k-mooney | if we were building a dict of host to allocation candiate we coudl use set_default | |
| 12:00:14 | stephenfin | Scenario: we only have one host that provides both PCPU and VCPU | |
| 12:01:05 | stephenfin | actually, I was going to say the the NUMATopology filter fails the request with PCPUs but passes the VCPU request | |
| 12:01:07 | stephenfin | would that happen? | |
| 12:01:11 | stephenfin | ...though? | |
| 12:01:21 | sean-k-mooney | no | |
| 12:01:29 | stephenfin | I guess something could have changed in the time between the two tests | |
| 12:01:30 | sean-k-mooney | the filter does not operate on requests | |
| 12:01:34 | sean-k-mooney | they operate on hosts | |
| 12:01:50 | stephenfin | yeah, correct | |
| 12:02:16 | stephenfin | so if our order is preserved, we'll have hit that host already due to the allocation request for PCPUs | |
| 12:02:41 | stephenfin | if it failed once, it will fail if we hit it a second time due to the allocation request with VCPUs | |
| 12:02:43 | stephenfin | right? | |
| 12:03:00 | alex_xu | no, the scheduler filtered the hosts by allocation-candidtes first, then iterate the filtered hosts | |
| 12:03:03 | efried | "something could have changed" disregard this, already a window between GET /a_c and PUT /allocs | |
| 12:04:03 | stephenfin | efried: I mean we take the allocation request with PCPUs and try passing that through the NUMATopologyFilter or something and it fails | |
| 12:04:05 | sean-k-mooney | i though we got all the host form all allcoation candiate and looped over them once | |
| 12:04:14 | stephenfin | we then try a load of other hosts, which all fail | |
| 12:04:15 | sean-k-mooney | applying all fiters | |
| 12:04:28 | sean-k-mooney | then passed that to the weighers | |
| 12:04:34 | stephenfin | then we come back to that same original host only using the allocation candidate with VCPUs | |
| 12:04:42 | sean-k-mooney | and finally select a host then find the corresponing allcoaiton candiate | |
| 12:04:43 | alex_xu | stephenfin: maybe we ignore the allocation_request if the rp_uuid already in alloc_reqs_by_rp_uuid https://review.opendev.org/#/c/681719/1/nova/scheduler/manager.py@212 | |
| 12:05:06 | stephenfin | only in the time inbetween, something has changed on the host so the NUMATopologyFilter or whatever passes the request | |
| 12:05:24 | stephenfin | it's going to be such a tiny window but I wonder if it's worth worrying about? | |
| 12:05:47 | sean-k-mooney | stephenfin: if something changes the claim wil fial in placmeent | |
| 12:05:48 | alex_xu | ah, no, I'm wrong, we can't ignore directly, since we have same rp for child rp | |
| 12:05:53 | sean-k-mooney | then we will move on to the next host | |
| 12:06:09 | efried | I wouldn't have thought it was any different than what we're doing now for multiple candidates on one host. | |
| 12:06:27 | stephenfin | no, it's not really actually | |
| 12:06:38 | efried | sean-k-mooney: I think he's talking about if the second one spuriously succeeds | |
| 12:07:01 | efried | but yeah, I don't think this is worth worrying about. | |
| 12:07:05 | sean-k-mooney | my point is i dont think the numa toplogy filter will ever run twice for the same host | |
| 12:07:11 | sean-k-mooney | it will only run once | |
| 12:07:18 | efried | and i think that ^ is what we want | |
| 12:07:19 | alex_xu | ^ agree | |
| 12:07:32 | alex_xu | agree to sean-k-mooney... :) | |
| 12:07:33 | sean-k-mooney | because filter today have no knowadge of allcoation candates | |
| 12:08:14 | efried | because if there are available PCPUs for a host, we want to check that candidate only. But if there aren't any, there will only be (at most) VCPU candidates in the list. | |
| 12:08:47 | sean-k-mooney | if there are free pcpus and vcpus we will pass the host and have two candiates | |
| 12:09:00 | sean-k-mooney | and hopefully rely on orderr to pic the PCPU one | |
| 12:09:14 | efried | Yes exactly. Whole point of this is to make sure the first thing we look at is *either* a PCPU candidate *or* there are no PCPU candidates. | |
| 12:09:29 | sean-k-mooney | ya | |
| 12:09:49 | sean-k-mooney | stephenfin: rather then guessing | |
| 12:09:52 | sean-k-mooney | can you add a test | |
| 12:10:05 | stephenfin | sure. What should the test do? | |
| 12:10:06 | sean-k-mooney | create a host that has inventories fo both | |
| 12:10:15 | sean-k-mooney | and assrt the pcpu inventory was calimed | |
| 12:10:20 | sean-k-mooney | as a functional test | |
| 12:10:36 | stephenfin | I think I have that already | |
| 12:10:40 | sean-k-mooney | if it is we are all good | |
| 12:10:58 | efried | If ordering was random, that would be nondeterministic | |
| 12:11:07 | stephenfin | sean-k-mooney: Yeah, look at https://review.opendev.org/#/c/671801/46/nova/tests/functional/libvirt/test_numa_servers.py@364 | |
| 12:11:10 | alex_xu | If a host have both vcpu and pcpu, then we will get two allocation_request in alloc_reqs_by_rp_uuid https://review.opendev.org/#/c/681719/1/nova/scheduler/manager.py@212 | |
| 12:11:10 | sean-k-mooney | well we coudl do it in a loop | |
| 12:11:15 | sean-k-mooney | bug fair point | |
| 12:11:24 | stephenfin | It's a resize test but it does exactly this | |
| 12:11:25 | alex_xu | then we only claim the PCPU one | |
| 12:11:28 | stephenfin | Lemme run that in a loop | |
| 12:11:29 | efried | alex_xu: exactly | |
| 12:12:14 | alex_xu | so there will be check to found out there two allocation req, one for vcpu and another for pcpu, then only claim for pcpu | |
| 12:14:14 | sean-k-mooney | ok i think ye have that in hand to ill go back to the vpmem reviews | |
| 12:17:34 | openstackgerrit | Ivaylo Mitev proposed openstack/nova master: VMware: Update flavor-related metadata on resize https://review.opendev.org/681004 | |
| 12:18:08 | stephenfin | efried: What was the decision on '.update()' vs. the for-loop again? | |
| 12:21:18 | sean-k-mooney | stephenfin: update is fine | |
| 12:21:36 | sean-k-mooney | the sumaris will be the same | |
| 12:22:15 | sean-k-mooney | efried: the vpmem xml generation patch looks sane to me | |
| 12:22:29 | sean-k-mooney | im starting form the bottom of the seriese now and working my way up | |
| 12:25:00 | openstackgerrit | Merged openstack/nova master: Fix race in _test_live_migration_force_complete https://review.opendev.org/681540 | |
| 12:25:01 | sean-k-mooney | donnyd: thanks for the head up on the mirror issue | |
| 12:26:24 | openstackgerrit | Ivaylo Mitev proposed openstack/nova master: VMware: Update flavor-related metadata on resize https://review.opendev.org/681004 | |
| 12:28:03 | donnyd | sean-k-mooney: I think we have it narrowed down. should be back up in the next couple hours | |
| 12:28:30 | sean-k-mooney | it looks like its the same issue i was having from your conversation on infra | |
| 12:28:41 | sean-k-mooney | you are hitting MTU issue becasue of the tunnel | |
| 12:28:49 | sean-k-mooney | well similar | |
| 12:29:00 | sean-k-mooney | i needed to clamp it on HEs end | |
| 12:29:14 | sean-k-mooney | in your case you need to clamp the mtu in the neutron subnet | |
| 12:29:39 | sean-k-mooney | but same general symptoms of retransmits of large packets | |
| 12:30:24 | sean-k-mooney | by the way i also sit in the infra channel so you can always ping me there if there are issues | |
| 12:30:39 | sean-k-mooney | if you want to notify nova in general then here is fine too | |
| 12:37:42 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Skip querying resource request in revert_resize if no qos port https://review.opendev.org/681513 | |
| 12:38:12 | gibi | bauzas, mriedem: I've finished respinning the bandwidth series | |
| 12:41:45 | openstackgerrit | Thomas Bechtold proposed openstack/nova master: Add nova-status to man-pages list https://review.opendev.org/681733 | |
| 13:05:59 | bauzas | gibi: ack, will look | |
| 13:06:52 | openstackgerrit | Thomas Bechtold proposed openstack/nova master: Add nova-status to man-pages list https://review.opendev.org/681733 | |
| 13:10:35 | sean-k-mooney | luyao: efried stephenfin https://review.opendev.org/#/c/678448/21/nova/objects/base.py i think that is a proablem that should be fixed. it could be a follow up but all_things_equal is not a valid comparison implematnion of == | |
| 13:13:07 | efried | sean-k-mooney: say wha? | |
| 13:13:34 | sean-k-mooney | its not symetic so a == b will not always be the same as b == a | |
| 13:13:47 | sean-k-mooney | and it does not check type | |
| 13:14:17 | sean-k-mooney | so two ovo with the same filed will compare equal if they are complete unrelated types | |
| 13:14:18 | efried | sean-k-mooney: This code is copied in from numa.py | |
| 13:14:38 | efried | a is not None because this is invoked with `self` | |
| 13:14:55 | efried | and I don't care if they're different types. | |