Monday, 2019-06-10

*** takashin has quit IRC00:39
*** takashin has joined #openstack-placement01:24
*** edleafe has quit IRC02:17
*** irclogbot_2 has quit IRC02:17
*** altlogbot_0 has quit IRC02:19
*** irclogbot_3 has joined #openstack-placement02:20
*** altlogbot_2 has joined #openstack-placement02:21
*** dklyle has joined #openstack-placement03:22
*** dklyle has quit IRC03:37
*** dklyle has joined #openstack-placement03:37
*** yikun has joined #openstack-placement06:41
*** helenafm has joined #openstack-placement07:40
*** e0ne has joined #openstack-placement08:51
*** takashin has left #openstack-placement09:33
*** cdent has joined #openstack-placement10:02
cdentstephenfin: if you're around could you have a look at https://review.opendev.org/#/c/661922/ . Might be something that's on your consciousness since you've been looking at nova's api config10:03
*** jaypipes has joined #openstack-placement11:02
*** ttsiouts has joined #openstack-placement11:35
*** ttsiouts has quit IRC11:37
*** ttsiouts has joined #openstack-placement11:37
*** openstackgerrit has joined #openstack-placement11:40
openstackgerritMerged openstack/placement master: Add olso.middleware.cors to conf generator  https://review.opendev.org/66176911:40
*** ttsiouts has quit IRC11:42
*** jroll has quit IRC11:54
*** jroll has joined #openstack-placement11:54
*** edleafe has joined #openstack-placement12:13
cdentfor something that used to be 17s, .5s is a pretty nice improvement http://logs.openstack.org/45/662245/6/check/placement-perfload/ce03da1/logs/placement-perf.txt.gz12:30
*** artom has quit IRC13:16
*** yikun has quit IRC13:41
*** mriedem has joined #openstack-placement13:54
efriedsean-k-mooney: You okay with https://review.opendev.org/#/c/658852/ at this point?14:57
efriedcdent: to what do you attribute that ~30x improvement?14:57
efriedremoval of null root provider ID handling?14:57
cdentefried: the 17s was months and months ago, and was the thing that inspired the creation of perfload, we went from 17s to around 2 or 3 fixing some naive sql that I can't remember now14:58
cdentgoing from 2 to 1 ish was removing ovo14:58
cdentand since then it is removing null stuff, and some of tetsuro's cleanups14:59
sean-k-mooneyefried: yes its still rather long but im fine with it14:59
sean-k-mooneyefried: i would prefer if we did not need it15:00
sean-k-mooneybut since we do i think its fine15:00
sean-k-mooneyefried: ideally we would stop using the netdev names and jsut use pci address15:00
*** artom has joined #openstack-placement15:01
efriedsean-k-mooney: I don't understand the infrastructure terribly well (the whole bw rp thing happened during my "blip" when IBM had me working on non-openstack).15:02
efriedsean-k-mooney: In a world where all PCI devices are being reported in placement, where would this datum (identifier of the parent device) go?15:03
efriedWould it be part of the RP name, like what we're doing for VGPUs? Would there be a parent provider (possibly with no resources, just a placeholder) associated with the parent device? Would this potentially tie into information supplied by the admin via providers.yaml?15:04
cdentI know we're already sometimes doing this but if we can avoid putting meaning in names, that would be great15:06
sean-k-mooneyefried: it could be the RP name yes15:10
efriedcdent: assuming you mean "provider names" specifically, ++. If you've been following the providers.yaml spec, one of the things I noted in there was that it could be used to get rid of the need to encode information in provider names.15:10
sean-k-mooneywe are planning to have 1 RP per PF anyway so that shoudl work fine15:10
cdentefried: in practice, provider names, yes. But in general using names in a way that is to be interpreted by something is bad news: identifiers are preferred and in order for something to be a successful (that is persistent/long-lived) identifier it has to be meaningless.15:12
cdentor worms15:12
efriedcdent: which kind of begs the question why we should need both a name and a uuid15:12
cdenti've wondered that from the start15:13
cdentand it is for the same reason as always: humans15:13
efriedI'm a fan of name from a human debuggability standpoint, yes.15:13
sean-k-mooneythe uuid are not easy to retrofit15:13
cdentand it works out okay as long as the names are only used as labels15:13
efriedBut it seems like these days we wind up using UUIDs as (at least part of) the name anyway.15:13
sean-k-mooneynova currently passes a pci address to neutron to indicate which vf or pf will be asigned to the guest15:14
efriedanyway, I wasn't trying to get off onto a philosophical tangent here. I'm just trying to understand where this "SRIOV VF parent name reporting" thing will happen in the utopian future where the SRIOV device is modeled in placement.15:14
efriedokay, what does neutron do with that information?15:14
sean-k-mooneyin the case of a VF it can perform action such as applying qos or ther things to the prot15:15
efriedneutron goes and messes with the hardware?15:16
sean-k-mooneythe sriov nic agent does15:16
sean-k-mooneyit used to manage the link state on the vf15:16
efried(where "hardware" could be software of course)15:16
efriedokay15:16
sean-k-mooneyso if you set the neuton port down it would aftully set the linkstate down15:17
efriedbut in this case15:17
efriedwe're talking about sending neutron a) the identity of the VF (or rather, its parent, since that's where the qos would be established??) and b) the QoS info itself (bw limits) - which are already part of the port's metadata since gibi's bw work.15:18
sean-k-mooneyin the case of min bandwith it does not need to do anything15:18
sean-k-mooneyneutron basically messed up the api15:18
efriedFor SRIOV VF, does the qos get established at the PF level, or can it handle individual VFs?15:18
sean-k-mooneythe neutron config and the nova one used the pci addres to whitelist things and nova tell neutron what vf it is with the pci address too but for some reason they decided to use the PF netdave name and encode it in the RP name15:19
sean-k-mooneyefried: it configred via the PF per vf15:19
sean-k-mooneythe bandwith rps created by neutron encode a special meaning into the RP name15:20
efriedso neutron needs to be told *both* the VF and the PF PCI addresses15:20
sean-k-mooneyi belive its <hostname>:<agent name>:<PF netdev name>15:20
efriedmaybe I need to back up a little bit: The bw qos support in stein, is that SRIOV-capable at all?15:21
sean-k-mooneyefried: no it can workout the PF name form the VF15:21
sean-k-mooney/name/address15:21
efried...then why do we need this trait?15:21
sean-k-mooneyefried: yes it is15:21
efriedSRIOV only with direct PF, but not yet with VF?15:21
sean-k-mooneyi am not sure why gibi wanted this trait15:22
efriedWell, it sounds like he wants to use it to do prefiltering15:22
sean-k-mooneyi think it was to avoid host that dont support it but the invetoryes do that already15:22
sean-k-mooneysee prefiltering does not make sense to me15:23
sean-k-mooneythe bandwith inventories only exist if you manully configure the bandwith in the neutron config15:23
sean-k-mooneythe only nova that would be able to report this trait would be new enough to not need too15:24
efriedOkay. I'm going to no-vote (in case I'm just thick) and chat with gibi about it when he's available.15:26
efriedThnaks for the talk sean-k-mooney15:26
efriedcdent: You +2'd, do you understand what's going on here?15:27
efried(talking about https://review.opendev.org/#/c/658852/)15:27
sean-k-mooneyi think gibi was trying to gaurd against upgrade issues with migration but we are only going to allow migration between nodes that are alredy runing train and since libvirt report the pf assocation form stine its not really an issue15:28
sean-k-mooneyand on hyperviors that are not libvirt you just dont define the neutron config options15:29
cdentefried: I took the need for it as given, based on some of the other warts present in the network related stuff. I don't really have a problem with creating a trait that we then don't use. The issue is more with creating something that is -wrong- from the outset15:31
cdent"as given" in the sense of "if gibi says this is needed, I guess we probably do"15:31
efriedokay15:35
*** helenafm has quit IRC15:43
sean-k-mooneyefried: cdent this is why we need the pf name by the way currently https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L2125-L214015:45
sean-k-mooneyits really fragile sicne we dont know the agent name and there are case wher eyou can have two agents managing  the same PF15:46
sean-k-mooneye.g. where the PF is used by ovs and the VF are used for sriov15:46
efriedlovely15:47
sean-k-mooneyim not sure if we can change neutron to report the RP differently but really we need a mapping service somewhere to avoid this15:48
efriedIf we had traits like CUSTOM_IFNAME_FOO and CUSTOM_AGENTNAME_BAR on the provider...15:48
sean-k-mooneyi think this can go away entirly with newer palcement15:48
sean-k-mooneyefried: i think this is working around the fact we didnt know how to map the allcoation candiate back to the rp15:49
efried...then we would have to find them:15:49
efriedfor t in placement.get_all_traits(rp_uuid):15:49
efried    if t.startswith('CUSTOM_IFNAME_'): ...15:49
efried    if t.startswith('CUSTOM_AGENTNAME_'): ...15:49
efriedyup, so mappings will help, and providers.yaml will help.15:49
sean-k-mooneyefried: this was unrealted to the provider.yaml and was related to provider summiries or allocation candiate not having all the info you need15:50
efriedit's both really15:50
sean-k-mooneyim refering to the feature where we need to be able to map allocations back to resouce groups that requested tehm15:51
efriedYes. Encoding info into the provider name to help derive the mapping which tells you which PCI device is associated.15:51
sean-k-mooneyfor both cycborg and neutorn ports15:51
efriedhaving the mapping in GET /a_c response is only half of the puzzle.15:52
efriedWith just that, you still need things encoded into the RP name.15:52
sean-k-mooneyyes but i think its what forced us to use the name in stien15:52
efriedsure.15:52
efriedBut with providers.yaml, you've gotten the "RP to real thing" mapping given by the admin.15:53
efriedso you don't need to encode in the rp name anymore15:53
sean-k-mooneywell you dont. if we have that mapping nova never need to decode teh RP name15:53
efriedright15:53
efriedproviders.yaml doesn't exist yet :)15:53
sean-k-mooneybut you dont need the provder yaml for that15:53
efriedwhere else do you get the "RP to real thing" mapping?15:53
sean-k-mooneyyou dont unlesss you have an api for it i guess15:54
sean-k-mooneythe issue with bandwith for sriov is we have two service trying to manage different aspect of the same hardware15:55
sean-k-mooneynova will own the inventory of VFs on the PF RP and neuton want to own the bandwtih of the PF15:55
efriedMm. That's kind of problematic.15:56
efriedI can handle it mentally if different services wholly own different RPs.15:56
sean-k-mooneywe havent pick back up the work to report the PCI devices in placement from 2 cycles ago but we need to get back aroudn to that15:56
efriedBut having different services own different inventories on the same RP... that'll take me a minute to grasp.15:56
efriedsean-k-mooney: Yes, we need providers.yaml for that, because we don't want to try to retrofit [pci]passthrough_whitelist into placement.15:57
sean-k-mooneywell today nova select the vf from the devices we track in the pci tracker and tell netuon this is the one you get15:57
sean-k-mooneywe are using the Parent PF name to corralted to the value in the pci_devices table15:58
sean-k-mooneyand we get teh parent pf name form the allocation the bandwith came form by parsing the RP name15:58
sean-k-mooneywhich is all supper messy15:58
sean-k-mooneybecause when placment select the bandwith inventory we dont know if the numa affint is correct for the vf or if there is still a vf free on that pf15:59
sean-k-mooneythe provider.yaml could help if neutron also used it to know how much bandeith each pf should have.16:00
sean-k-mooneyor rather if we just didnt set the neutron config values and only used the provdier.yaml16:00
cdentpresumably putting everything in provider.yaml is not going to be ideal as that file is on the compute node and some of the stuff neutron cares-about/controls is not.16:15
openstackgerritChris Dent proposed openstack/placement master: Implement allocation candidate mappings  https://review.opendev.org/66224516:16
cdentefried, sean-k-mooney ^ that is ready for real review. spec has merged. and it helps with some of the above discussions16:17
*** e0ne has quit IRC16:22
sean-k-mooneycdent: right that is the feature i was refering to that fixes half of the issue16:27
sean-k-mooney* spec -> feature16:28
efriedcdent: Did we forget reshaper?16:45
cdentmeh!16:45
cdenthow much do I hate reshaper?16:45
cdent|-------------------------| < at least that much16:46
* cdent fixes16:46
cdentcan't we just get rid of reshaper instead?16:47
efriedcdent: Oh, sure, do that instead.16:47
cdent\o/16:47
efriedcdent: Don't fix up too quickly, ima leave a couple other minor comments on this pass.16:48
* cdent mumbles something about legacy providers16:48
cdentaye16:48
* cdent grumbles some more about reshaper17:02
* edleafe notices that cdent is especially grumbly today17:03
efriedcdent: Finished, have at r.17:09
cdentthanks17:10
openstackgerritMerged openstack/placement master: Modernize CORS config and setup  https://review.opendev.org/66192217:12
openstackgerritChris Dent proposed openstack/placement master: Implement allocation candidate mappings  https://review.opendev.org/66224517:31
cdentefried: that might be better now, but I probably added some other typo17:34
efriedack17:34
efriedcdent: What's the incantation to see request & response payloads in gabbi?17:35
cdentfor one test add 'verbose: True'17:35
efriedthx17:35
cdentfor all the tests in one file you can add it to defaults17:36
*** amodi has quit IRC17:40
*** e0ne has joined #openstack-placement18:02
efriedcdent: Can we confirm our respective understandings of (d), please?18:06
*** e0ne has quit IRC18:07
efriedIt may help or it may hurt for you to read my latest comment.18:07
* cdent experiences fear18:08
cdentefried: I'm going to have to read that multiple times, because I don't agree with your statements about how it works today nor about the concepualization of what would change to make d true18:10
cdent but that's only after an initial read18:10
efriedcdent: Okay, cool, cause I tested the way it works today, so that's the only part I'm pretty sure about.18:10
cdentthen it is _extremely_ likely that we are using the similar terms to mean different things18:11
cdentwhen you say "there is *no* interaction between the unsuffixed group and other groups" my brain flips to "of course there is an interaction, they must be on the same compute host"18:12
cdent(i.e., share a root)18:12
efriedokay, let me put it a different way: the unsuffixed group has the same effect on the result within the same tree regardless of what happens in the other request groups.18:15
cdentyes18:15
efriedwhat we're talking about with (d) will change that paradigm.18:16
efriedagree?18:16
*** mriedem has quit IRC18:17
* cdent thinks18:17
*** mriedem has joined #openstack-placement18:19
cdentefried: can you re-state why the ideas thus far must "change the behavior for unsuffixed+resourced;"18:22
efriedWas just about to say:18:23
efriedI think the first thing to clear up is that we're talking about making resourceless+unsuffixed a special case. Because any attempt to define behavior that applies to unsuffixed for both resourced and resourceless would change behavior for the former.18:23
cdentokay, if you re-explain that, I may understand where you are coming from better18:24
cdentbecause in my digging around in the code we're already pretty weird about how traits and aggregates work compared to how inventory works18:24
efriedBecause today the trait component of unsuffixed+resourced only applies to providers that satisfy the inventory component.18:24
efried...of the same group18:25
efriedwhich is nonsensical (or would simply be a no-op) if extended to resourceless18:25
cdentwhich is how we ended up with "traits and aggregates flow down" and we all agreed (in denver) that that's how it should have been all along, and yes it changes things18:26
cdent(and it avoids cousins)18:27
cdent(distant cousins)18:27
efriedokay, I was under the impression we had ultimately decided *not* to do "flow down".18:27
cdentyou did18:27
efriedbecause we didn't wind up needing it.18:27
efried...until (maybe) now18:28
cdentyou said "if we have substree we don't need flow down"18:28
efriedthough I thought through "flow down" and I still don't see how it helps the situation here.18:28
cdentcan you give the simplest overview of "the situation here"?18:29
efriedwow, "though I thought through". English sucks18:29
cdentI suspect it is a modelling problem we might be able to get around...18:29
efriedWhat is the meaning (in English) of unsuffixed+resourceless+forbidden?18:30
cdentokay, that (to me) is a ncie succinct statement18:31
* cdent thinks18:31
cdentthe straightforward answer is: that trait doesn't show up in any of the proposed providers: it's a late check18:32
efriedBy the same token, unsuffixed+resourceless+required => the trait must show up in at least one of the proposed providers.18:33
cdentit's not going to exactly mirror required because of the nature of forbidden: it's always forbidden18:33
efriedright18:34
efriedwhich *kind of* maps, because today unsuffixed+resourced+forbidden means "trait must not show up in *any* of the providers contributing to the *inventory* in the *same* (unsuffixed) group"18:34
cdentif you do [t 7sBF] you get cousins contributing when they shouldn't, which is why you need to choose wisely on where the trait is18:34
purplerbot<efried> By the same token, unsuffixed+resourceless+required => the trait must show up in at least one of the proposed providers. [2019-06-10 18:33:50.290394] [n 7sBF]18:34
cdentso if you flow down, instead, you avoid an e.g. nic accidentally contributing in a complex tree18:35
efriedno, [t 7sBF] means cousins don't contribute *unless* they also contribute resources, right?18:35
purplerbot<efried> By the same token, unsuffixed+resourceless+required => the trait must show up in at least one of the proposed providers. [2019-06-10 18:33:50.290394] [n 7sBF]18:35
cdentwhat do you mean by proposed providers? I mean any of the providers in the tree, not those contributing inventory18:36
cdents/not/not just/18:36
efriedoh18:37
cdentso "proposed providers" means "the providers that show up in provider summaries"18:37
cdentwhich is superset of those that show up in allocation requests18:37
*** amodi has joined #openstack-placement18:38
cdentI've run out of time for today. I think we're probably closer to something workable than we think because: a) our terms are getting closer, b) we agree that some change in behavior is okay18:38
efriedum18:39
efriedat least b) not so18:39
efriedI think changing the behavior for resourced is a baaad idea.18:39
efriedBut okay, let's reconvene tomorrow.18:40
cdentresource_d_ or resource_s_?18:40
efriedPerhaps we can encourage tetsuro to be present for Wednesday office hours and hash this out.18:40
cdentseems a good idea. Do you ever see him? I usually do not?18:40
efriedresourced. Changing behavior for request groups containing a 'resources*' component is a bad idea IMO.18:40
efriedI don't, no. His hours seem to be the exact reverse of ours.18:41
cdentit's something that we talked about quite a bit during the pre-ptg and in denver: pretty much everybody wanted something like X flows down18:41
cdentregardless of resourced or unresourced18:42
efriedwell18:42
cdentyou might go back over the mail archives to see if there's anything in there to convince you differently (or conversely to strengthen your arguments)18:42
efriedIf we do that, I think we probably want to do it in its own microversion. I.e. not try to implement resourceless at the same microversion.18:42
cdentthat sounds painful18:43
efriedsrsly?18:43
cdentsince we're struggling to conceptualize how resourceless works without it18:43
cdentwe want a unified conceptual shift, where possible18:43
efriedI'm struggling to conceptualize how it works without bringing resourceless into the mix18:43
efriedwhich is why I think it should ride on its own.18:44
efried"how does this affect what we do today?"18:44
cdentagain, our prepositions may be losing us: I'm not entirely sure what you mean by "it"18:44
efried"flow down"18:44
efriedIntroducing "flow down" to what we already have established (at microversion 1.33, say) is going to be a mindfuck, at least for me.18:44
cdenthmm. I am confused, because above I thought we were discussing "we can't figure out how to do resourceless well unless we introduce something like flow down"18:45
efriedso I want to be able to grasp it independently, before putting another really confusing thing like resourceless into the mix.18:45
efried^ it = "flow down"18:45
cdentoh. you're saying flow down _first_18:45
efriedyes18:45
cdentI read it the other way, and couldn't grok how that would work18:46
efriedyeah, no, that wouldn't make any sense18:46
cdentthis is why I hate anything under 10,000 words18:46
cdentanyway: i must go. I do think I chew over the pre-ptg discussion would likely do us both some good for the next round18:46
cdentif you get a brainwave, put it on the spec18:47
cdentespecially because that appears to be the best way to engage tetsuro and he's got some clear thinking on this stuff18:47
efriedperhaps the way to go is to enumerate explicitly some use cases and what we want them to mean in English; then try to come up with a unified definition (or set of definitions, if we need special cases) that satisfies them.18:48
efriedhave a good evening o/18:48
* cdent has no use cases, which makes this a harder problem18:50
cdentmy use cases are18:50
cdentdestroy nested and the reshaper18:50
cdentno wait18:50
cdentgood night all18:52
*** cdent has quit IRC18:52
*** amodi has quit IRC19:21
*** jaypipes has quit IRC20:06
*** jaypipes has joined #openstack-placement20:06
*** amodi has joined #openstack-placement20:25
*** artom has quit IRC21:19
*** mriedem has quit IRC22:08
*** artom has joined #openstack-placement22:33
*** efried has quit IRC22:39
*** efried has joined #openstack-placement22:41
*** takashin has joined #openstack-placement23:37

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!