Earlier  
Posted Nick Remark
#openstack-nova - 2018-12-05
17:37:22 mriedem today we default to send both, versioned and unversioned, which kills rpc
17:37:27 mriedem s/kills/doesn't help/
17:37:39 mriedem if nothing is consuming versioned yet, then that is a shitty default imo
17:38:02 mriedem i know we want to get people off the old stuff, but no one is doing that
17:38:18 sean-k-mooney ya just readign that makes sense but im kind of reluctent to default to old
17:38:32 mriedem and honestly without a schema that consumers can use, it's probably not really something they care about
17:38:37 mriedem since they can't do version negotiation
17:39:27 sean-k-mooney can we default to versioned going forward instead and tell peopel to enable both/unversions if they have a service that uses them?
17:39:45 mriedem we can do whatever
17:40:00 mriedem me? i'm going to go make lunch and try to think about something else.
17:40:21 sean-k-mooney ok :)
17:54:19 cfriesen sean-k-mooney: I replied to your comments on https://review.openstack.org/#/c/620959/
17:55:33 sean-k-mooney cfriesen: yep i know the feature flags are already in placement but they currently mean find ma a host wtih X not enable X on the vm
17:55:53 sean-k-mooney cfriesen: qemu does not always requrie the host to have X to enable X for the guest
17:56:27 sean-k-mooney AVX is an exampel you can enable AVX in a guest as long as the host has SSE4 suport
17:56:28 cfriesen sean-k-mooney: not quite true. according to the spec the exposed traits represent the features of the CPU model that you would get in the guest.
17:57:01 sean-k-mooney the new spec
17:57:20 cfriesen In https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/report-cpu-features-as-traits.html it says "The libvirt virt-driver should only return the CPU features which are available to the guest."
17:57:49 sean-k-mooney cfriesen: we currently report all cpu feature on the host i belive
17:58:00 sean-k-mooney i dont think we filter by the configured cpu model
17:59:15 cfriesen sean-k-mooney: see _get_cpu_traits() in virt/libvirt/driver.py
17:59:28 openstackgerrit Merged openstack/nova master: Add a bug tag for nova doc https://review.openstack.org/619434
18:00:24 cfriesen sean-k-mooney: "if mode is 'custom', use cpu_model to generate CPU features"
18:02:28 sean-k-mooney when the traits were defiend in os tratis they were ment to model the host capablity though
18:02:32 cfriesen so on x86-64 specifying a trait currently *should* result in a guest with the specified CPU feature present, as far as I can tell
18:02:55 sean-k-mooney cfriesen: that seams to be the case but that was not the intent of the trait
18:02:59 cfriesen why would you care whether a host has a feature if you can't get it in the guest?
18:03:27 sean-k-mooney the trait was ment to allow you to ensure it was not emulated in software
18:04:11 sean-k-mooney the way it currently works i could get avx emulated in software using sse4 which will allow the application to run but will have worese perfromance
18:04:17 cfriesen so I guess you'd need to still use the ComputeCapabilitiesFilter for that?
18:04:34 cfriesen combine that with requesting the trait in the flavor, and you'd get both, no?
18:06:00 sean-k-mooney it still misses the point that HW_CPU_X86_AVX is ment to only be used if the host support it in hardware
18:07:22 cfriesen sean-k-mooney: if ComputeCapabilitiesFilter fails hosts that don't have it in hardware, and specifying the trait requests that it's available in the guest, that seems like it'd work.
18:07:49 cfriesen The other option is to simply not specify CPU models with features unsupported by your hardware...which is up to the operator.
18:08:11 sean-k-mooney it would work but i realy dislike that we are not useing the HW e.g. hardware namespace to model only hardware things
18:08:22 cfriesen sean-k-mooney: have you got any specs/docs for the intent of the trait?
18:09:41 sean-k-mooney that was my intent when i asked for namespacing in os traits https://github.com/openstack/os-traits/commit/23d81d4451dd29c23150b29b8fa9d3025ee8878f#diff-f290aedb8b7fdc21b2b04be76222f6c3
18:10:23 sean-k-mooney the HW namespace was for hardware features
18:10:42 cfriesen we use the "hw" namespace for all sorts of virtual hardware stuff
18:11:10 sean-k-mooney we only started doing that this cylce with the vtpm spec
18:11:12 cfriesen number of numa nodes, cpu distribution between numa nodes, etc
18:11:19 cfriesen oh, you mean for trait
18:11:23 sean-k-mooney yes
18:12:10 sean-k-mooney anyway looks like we approved and implmented https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/report-cpu-features-as-traits.html#libvirt so we are stuck with it
18:13:04 sean-k-mooney i was hopping not to make the same mistakes we did with flavors in os-traits but if i can rely on traits to modele this correctly i will always need filters
18:13:16 cfriesen I think it'd be worth adding something to the release notes warning operators to consider this when adding CPU models to the list.
18:13:55 cfriesen In practice, I would expect that most operators advertising high-performance would not want emulated features, no?
18:14:16 sean-k-mooney ya or better to the config option so its in the docs for setting the models/extra flags
18:14:27 cfriesen right, that makes sense
18:14:51 sean-k-mooney cfriesen: yes but as a tenat i can no longer rely on it being a hardware feature in a public cloud
18:15:15 sean-k-mooney i get the opertor usecase but this originally came form the mano folks
18:15:51 cfriesen gotta run for lunch
18:15:59 sean-k-mooney o/
18:16:08 sean-k-mooney ill comment back on the spec.
18:16:21 sean-k-mooney since we are already missuing them wwe might as well continue
18:45:17 openstackgerrit Matt Riedemann proposed openstack/nova-specs master: Per aggregate scheduling weight (spec) https://review.openstack.org/599308
18:46:35 mriedem_away johnthetubaguy: bauzas: ^ when you're around, i'm +2 on ^ now - seems like a good compromise from the per-flavor weights it started from
18:46:49 mriedem_away mgagne_: since you said you had something like this downstream already ^ it would be good if you can ack that works for you as well
18:52:31 mgagne_ mriedem: done. thanks
19:32:06 openstackgerrit Jack Ding proposed openstack/nova master: Preserve UEFI NVRAM variable store https://review.openstack.org/621646
21:09:26 efried jaypipes, mriedem: Are you waiting for CERN to deploy on ironic nodes before reviewing series at https://review.openstack.org/#/c/615677/ ?
21:10:56 mriedem efried: not really
21:11:02 mriedem i'm not intentionally avoiding it
21:11:34 efried Cool, I know you're stretched pretty thin.
21:11:46 mriedem but my waist line continues to grow
21:13:57 mriedem here is an easy gate related fix https://review.openstack.org/#/c/623011/
21:15:40 mriedem efried: i've been ignoring some other stuff for awhile so trying to burn that list down first
21:15:49 mriedem reviewing your series will be my xmas gift to you
21:15:52 efried mriedem: +2 on the tempest timeout
21:15:54 mriedem thanks
21:15:56 efried Thanks :)
21:38:38 efried mriedem: reserved=total for which resource? And how do you stop the virt driver from overwriting that? (Re ML post about CERN workaround for low alloc candidates limit)
21:40:24 mriedem VCPU? all of them?
21:40:27 dansmith for the compute node
21:40:35 dansmith for all of them yeah
21:40:57 mriedem the compute would probably need to know if it's service is disabled and if so, not ovewrite it
21:41:04 dansmith mriedem: I think we discussed just having an rpc cast to compute to have it do it, vs. a periodic
21:41:04 mriedem *its
21:41:22 mriedem dansmith: sure, but the next update_available_resource periodic would overwrite it
21:41:30 mriedem when reporting inventory
21:41:34 dansmith the compute can stop calling the virt driver's update method if it's disabled I would think
21:41:36 sean-k-mooney efried: the virt dirver really should not be touching the reserved value excpet when its first creating the RP
21:41:46 mriedem sean-k-mooney: the ironic driver does all the time
21:41:49 dansmith sean-k-mooney: uh, why?
21:41:49 mriedem when the node is being cleaned
21:41:57 dansmith the reserved amount is owned by the virt driver, IMHO
21:42:02 mriedem that's exactly why the placement api change was made so that reserved can equal total
21:42:04 dansmith only the virt driver knows what it should be
21:42:25 sean-k-mooney dansmith: well for the same reason as teh have the cpu allocation ratios vs inital cpu allocation ratios spec
21:42:28 efried agreed, all the inventory values ought to be owned by the virt driver, period. We start making exceptions, we end up with messes like allocation ratio... and reserved.
21:42:36 sean-k-mooney controling via api or config
21:42:57 efried but making that contract stick for this kind of workaround is going to be tricksy.
21:42:58 dansmith sean-k-mooney: that's not an example that helps your case I think :)
21:43:24 mriedem the alternative was a trait i think
21:43:32 mriedem and a pre-request placement filter in nova-scheduler
21:43:32 efried unless we do it with a handy-dandy provider config yaml file https://review.openstack.org/#/c/612497/
21:43:35 mriedem or something like that
21:43:51 mriedem this isn't blues clues
21:43:55 dansmith mriedem: yeah, that's also an option
21:44:28 mriedem so api sets a trait (or removes it), virt doesn't overwrite it, and scheduler filters on it (essentially it becomes the ComputeFilter)

Earlier   Later