| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-04-18 | |||
| 17:32:38 | openstackgerrit | Merged openstack/nova master: libvirt: set device address tag only if setting disk unit https://review.openstack.org/611974 | |
| 17:59:26 | efried | aspiers: Re-reviewed SEV spec | |
| 17:59:57 | aspiers | efried: thanks | |
| 17:59:58 | efried | cdent: I tried to explain there ^ why we don't ever remove things from os-traits, even if they're trash. | |
| 18:00:14 | efried | perhaps you can reinforce/augment | |
| 18:00:25 | cdent | efried: looking | |
| 18:05:12 | aspiers | efried, cdent: To "The pathological theoretical case is where somebody (not limited to nova) is on 0.11.0 or 0.12.0, sees the trait and uses it for $whatever", my question is: what could $whatever possibly be? Literally there is zero code which uses it. | |
| 18:06:05 | efried | I'm basically saying it doesn't matter | |
| 18:06:06 | aspiers | And even if they somehow concocted some way to use it, that couldn't possibly relate to SEV in any way, because again there is zero SEV code merged which uses it anywhere. | |
| 18:06:32 | cdent | aspiers, efried : the additional aspect is that whenever a placement service sees a new version of os-traits it syncs up its database with the strings that are in the package, creating a row in the traits table, with an id that becomes a foreign key in other tables | |
| 18:06:40 | cdent | s/becomes/can become/ | |
| 18:06:44 | aspiers | Ahah | |
| 18:06:52 | aspiers | Now that sounds like it could be a good reason | |
| 18:06:55 | cdent | nothing is present is in placement to do a reverse sync | |
| 18:07:02 | aspiers | Gotcha | |
| 18:07:25 | aspiers | In any case, it's trivial to ditch the removal from the spec, and I'm happy to do that | |
| 18:07:40 | cdent | that wasn't the reason why we can't remove, but once we decided we -weren't- going to remove, then it became safe for the sync mechanism to be that | |
| 18:07:40 | aspiers | I just wanted to understand the rationale out of curiosity ;-) | |
| 18:07:52 | openstackgerrit | melanie witt proposed openstack/nova master: Set [quota]count_usage_from_placement = True in nova-next https://review.openstack.org/653146 | |
| 18:07:52 | openstackgerrit | melanie witt proposed openstack/nova master: Count instances from mappings and cores/ram from placement https://review.openstack.org/638073 | |
| 18:07:53 | aspiers | Yep that makes sense | |
| 18:07:53 | openstackgerrit | melanie witt proposed openstack/nova master: Use instance mappings to count server group members https://review.openstack.org/638324 | |
| 18:08:18 | cdent | but the general ideas was simply: an extensible only enumeration is easier to manage than one than can be shrunk | |
| 18:08:32 | aspiers | Sure | |
| 18:08:39 | aspiers | OK, so it stays | |
| 18:08:49 | aspiers | In that case I'll just need to amend the docs to say not to use it for anything | |
| 18:08:58 | cdent | yeah, that's probably a good idea | |
| 18:09:02 | efried | Yeah, I kept trying to phrase that in terms of this specific trait, where it doesn't necessarily apply. That wasn't the most convincing approach. | |
| 18:09:15 | efried | thanks for the save cdent | |
| 18:09:18 | efried | :* | |
| 18:09:29 | cdent | :hugs: | |
| 18:09:53 | cdent | It does suggest that we probably need some kind of "are you really really sure" mechanism when we start adding traits | |
| 18:10:06 | cdent | when these went by I don't remember them seeming bad or suspect in any way | |
| 18:10:06 | sean-k-mooney | i am trying to think is there still a usecase for the trait but with the resouce class approch not really | |
| 18:10:20 | cdent | so it _might_ be that they are still okay in general, just not for this use | |
| 18:10:25 | sean-k-mooney | the only one i have is a forbiden trait | |
| 18:10:27 | aspiers | efried: Your idea of combining the resources: extra spec with an AMD trait is a nice idea. We're into bikeshedding territory now which is probably not ideal when formulating specs, but it is *conceivable* (if not likely) that in the future AMD might release another memory encryption technology - I dunno, maybe SEV2 or something | |
| 18:10:39 | sean-k-mooney | e.g. i have only a few host that support SEV so please avoaid them | |
| 18:10:48 | aspiers | In that case, not having an SEV-specific resource class would be problematic | |
| 18:11:28 | aspiers | sean-k-mooney: that's an interesting idea. Maybe could be done with anti-affinity scheduler somehow? | |
| 18:11:35 | efried | aspiers: Well now, this could be an argument for use of the trait :) | |
| 18:11:39 | efried | in the future | |
| 18:12:01 | aspiers | ... based on the premise that you can do anti-affinity for traits but not resources? | |
| 18:12:07 | sean-k-mooney | aspiers: well if we report both the inventory of the sev resouce class + add the sev trait to the RP | |
| 18:12:32 | sean-k-mooney | then operators can do it by just adding a forbidon trait to there non sev flavor | |
| 18:12:33 | cdent | Having provided a tiny bit of useful information, I think I'm going to bow out. Since those of you who will be in denver, in denver. | |
| 18:12:42 | openstackgerrit | Matt Riedemann proposed openstack/nova stable/pike: Move legacy-grenade-dsvm-neutron-multinode-live-migration in-tree https://review.openstack.org/640207 | |
| 18:12:45 | cdent | s/Since/See/ | |
| 18:12:46 | aspiers | sean-k-mooney: I'm fine with that (the trait provision code is already written) | |
| 18:12:49 | cdent | sigh | |
| 18:12:50 | aspiers | cdent: looking forward to it! | |
| 18:12:58 | sean-k-mooney | cdent: o/ | |
| 18:12:59 | efried | I care that my memory encryption is done specifically with SEV2: resources:MEM_ENCRYPT_CONTEXT=1,trait:HW_CPU_AMD_SEV2=required | |
| 18:13:23 | aspiers | efried: right, so we're back to traits then ;-) | |
| 18:13:44 | aspiers | Playing devil's advocate, are there any downsides to sort of duplicating info between a resource class and a trait? | |
| 18:13:45 | sean-k-mooney | please dont call it MEM_ENCRYPT_CONTEXT | |
| 18:13:51 | efried | For now, since there's only one way to do it, we don't need to use the trait | |
| 18:14:16 | aspiers | efried: OK, so we could just declare the trait as reserved for potential future use? | |
| 18:14:23 | sean-k-mooney | actully i was going to say that was confusing with intels SGX | |
| 18:14:23 | efried | just so. | |
| 18:14:33 | sean-k-mooney | but SGX does not encrypt | |
| 18:14:52 | efried | aspiers: As for the duplication question: IMO it would be nice to strive to not duplicate anything ever. | |
| 18:15:01 | aspiers | sean-k-mooney: right, Intel has MKTME instead | |
| 18:15:20 | sean-k-mooney | ya | |
| 18:15:25 | aspiers | efried: +1 ;-) | |
| 18:16:00 | sean-k-mooney | ok im going to have dinner ill try and review the sepc again before i sign off for the long weekend | |
| 18:16:19 | aspiers | sean-k-mooney: thanks! | |
| 18:16:19 | sean-k-mooney | aspiers: efried i take it taht we are close however on the spec? | |
| 18:16:32 | aspiers | it feels close to me but I'm usually over-optimistic | |
| 18:16:39 | efried | aspiers: The inventory (resource class) is telling you how many of a thing your provider can give. The trait is telling you characteristics of the provider. I don't really see a difference between VCPU:1&HW_CPU_X86_AVX512F:required and MEM_ENC_CTX:1&HW_CPU_AMD_SEV:required | |
| 18:17:03 | efried | aspiers: I feel we're close on the bits I understand, yes :) | |
| 18:17:08 | aspiers | hehe | |
| 18:17:21 | sean-k-mooney | efried: yes that is a fair comparison | |
| 18:17:51 | aspiers | I see a big difference actually | |
| 18:17:54 | sean-k-mooney | so we could have MEM_ENC_CTX:1&HW_CPU_INTEL_MKTME:required also | |
| 18:17:56 | sean-k-mooney | maybe | |
| 18:18:09 | efried | sean-k-mooney: exactly | |
| 18:18:26 | efried | if you don't care which technology you use, omit the traits | |
| 18:18:53 | efried | If you want to restrict to one (or more - I think we implemented traits=in:[list], didn't we?) use traits. | |
| 18:19:05 | sean-k-mooney | aspiers: i forget does the guest need to do anything to use sev | |
| 18:19:18 | sean-k-mooney | e.g. would an app in the guest care | |
| 18:19:29 | aspiers | The difference is that the presence of HW_CPU_AMD_SEV implies MCM_ENC_CTX, whereas HW_CPU_X86_AVX512F doesn't imply VCPU:1 (because AFAIK you can't have a guest without a vcpu) | |
| 18:19:33 | sean-k-mooney | or is it jsut something that the host/qemu need to care about | |
| 18:20:02 | aspiers | sean-k-mooney: just the host I think, apart from UEFI boot | |
| 18:20:07 | efried | aspiers: say wha? What sense would HW_*CPU*_X86_AVX512F make if you weren't using any CPUs? | |
| 18:20:44 | aspiers | efried: I didn't explain it very well, but my point was that VCPU:1 is essentially a no-op | |
| 18:21:01 | aspiers | s/1/2/ and my point is much clearer | |
| 18:21:20 | efried | nope, sorry, not following you. | |
| 18:21:23 | sean-k-mooney | i see you point but form a placement point of view a VCPU and SEV context are both jsut resouces | |
| 18:21:32 | sean-k-mooney | it doesnt care | |
| 18:21:38 | sean-k-mooney | and traits are jsut strings | |
| 18:21:49 | aspiers | sure, but efried was saying we should avoid duplication | |
| 18:22:08 | aspiers | HW_CPU_AMD_SEV implies MEM_ENC_CTX:1 therefore there is duplication | |
| 18:22:18 | aspiers | whereas with VCPU:2&HW_CPU_X86_AVX512F there is none | |
| 18:22:25 | aspiers | both constraints are needed in the latter, but not in the former | |
| 18:22:45 | efried | I've said I want two VCPUs. They have to support x86 AVX 512F. If I just say "I want x86 AVX 512F", you still don't know how many VCPUs I want. I could theoretically have made HW_CPU_X86_AVX512F a resource class so I could just say HW_CPU_X86_AVX512F=2 | |
| 18:22:55 | sean-k-mooney | we are ratholeing i think :) | |
| 18:22:55 | efried | but then I would need a separate flavor for every possible flag | |
| 18:23:03 | mriedem | melwitt: heh you said the same as i did before i could post it https://review.openstack.org/#/c/653145/ | |
| 18:23:19 | efried | and couldn't ever say "I'll accept any one of these variants" | |