| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2023-11-02 | |||
| 14:48:12 | bauzas | sounds less bugfix-y, more feature-y than my patch but I can do it | |
| 14:49:19 | bauzas | sean-k-mooney: fwiw, this is where we get information for a mdev cap device https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L8284 | |
| 14:49:22 | sean-k-mooney | bauzas: we should seperate the back protable fix form the final fix | |
| 14:49:48 | sean-k-mooney | bauzas: https://github.com/openstack/nova/blob/master/nova/virt/libvirt/host.py#L1321 is the functilalyt that extracts the pci info form te node dev | |
| 14:50:00 | bauzas | https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L8263 is where we get the capacity | |
| 14:50:10 | bauzas | so sounds easier than originally thought | |
| 14:50:13 | sean-k-mooney | https://github.com/openstack/nova/blob/master/nova/virt/libvirt/host.py#L1351-L1363 | |
| 14:50:21 | sean-k-mooney | that actully where we are parsing it | |
| 14:50:25 | dansmith | so max_mdevs_per_device works only because once you allocate one mdev type from a card, that card is locked into that type for the rest of the allocations right? | |
| 14:50:54 | bauzas | dansmith: you're correct, there is no heterogenous support | |
| 14:50:58 | artom | sean-k-mooney, we never updated the Neutron docs for the socket PCI NUMA affinity policy: https://docs.openstack.org/api-ref/network/v2/index.html#numa-affinity-policy | |
| 14:50:59 | sean-k-mooney | dansmith: in the simple case yes. but we also only support one mdev_type per card in nova | |
| 14:51:18 | bauzas | yup, there is no behavioural change in support | |
| 14:51:20 | sean-k-mooney | artom: we never updated the neutron extention for it | |
| 14:51:33 | sean-k-mooney | artom: its not a docs issue i belive we need an api change | |
| 14:51:40 | dansmith | sean-k-mooney: wait, is that the case even before we allocate? | |
| 14:51:41 | artom | sean-k-mooney, so we can't actually set it on the port at all? | |
| 14:52:06 | sean-k-mooney | dansmith: yes which means we break if tye allocate the wrong type manually | |
| 14:52:09 | bauzas | are we still talking of GPUs or PCI NUMA affinity now ? | |
| 14:52:13 | sean-k-mooney | dansmith: we have had customer do that | |
| 14:52:19 | artom | Anyways, I interrupted a convo with my dumb questions, carry on, I'll go look at the code | |
| 14:52:30 | sean-k-mooney | bauzas: im talkign to artom about something else | |
| 14:52:35 | artom | bauzas, ignore me and PCI policies | |
| 14:52:45 | bauzas | artom: no worries, we're reaching to some agreement soon I guess | |
| 14:53:04 | bauzas | dansmith: assigning a mdev type to a GPU is statically defined in nova | |
| 14:53:40 | sean-k-mooney | artom: https://github.com/openstack/neutron-lib/blob/master/neutron_lib/constants.py#L676-L681 | |
| 14:53:40 | dansmith | okay I'm confused | |
| 14:53:49 | dansmith | I thought ya'll said the opposite earlier | |
| 14:53:52 | bauzas | changing the value once you create mdevs is a breaking change that we don't support | |
| 14:53:57 | sean-k-mooney | artom: so the api will not accpet it and we are missing the osc support too | |
| 14:54:01 | dansmith | right I understand that part | |
| 14:54:18 | dansmith | are we going to gmeet? | |
| 14:54:26 | bauzas | sure I can fire one | |
| 14:54:33 | dansmith | just saying, since artom showed up we | |
| 14:54:37 | dansmith | are all muddy here :) | |
| 14:55:03 | artom | Yep, I barged in like a rhino on a sugar rush, apologies | |
| 14:55:13 | bauzas | https://meet.google.com/hqy-bgjb-muk for people fancy discussing nvidia nightmare | |
| 14:55:24 | sean-k-mooney | dansmith: for what its worth the patch bauzas proposed should work given the hardware that is aviabel to buy today | |
| 14:55:53 | sean-k-mooney | its jsut depening on some asusmintions we have in nova and in how the current hardware works | |
| 16:49:10 | opendevreview | Will Szumski proposed openstack/nova stable/yoga: Ironic nodes with instance reserved in placement https://review.opendev.org/c/openstack/nova/+/867912 | |
| 17:41:27 | jovial | Is the nova-emulation job busted on stable/yoga? Was interested in progressing this patch: https://review.opendev.org/c/openstack/nova/+/898554 | |
| 17:42:31 | bauzas | sean-k-mooney: dansmith: so, if you don't mind, I'm gonna work on the VF filtering case with max_instances config option | |
| 17:42:45 | bauzas | and then we could nitpick on what we want | |
| 17:44:23 | dansmith | yep | |
| 17:44:46 | bauzas | dansmith: fwiw, there is also https://review.opendev.org/c/openstack/nova/+/899406 | |
| 17:45:07 | bauzas | with that patch, pas-ha[m] is forcing operators to explicitely define all the device_addresses | |
| 17:45:35 | bauzas | but I personnally think that adding a max_instances config option is painless for ops | |
| 17:45:41 | bauzas | so we could mix both | |
| 17:46:15 | bauzas | meaning that we would force ops to either explicitelyt specify the device addresses *or* give the number of VFs that nova needs to create | |
| 17:46:22 | bauzas | this sounds very consistent to me | |
| 17:50:21 | dansmith | max_instances seems much more useful to me so people don't have to encode pci device addresses in their config *just* to avoid the broken behavior | |
| 17:51:33 | bauzas | yeah so we will keep the existing behaviour but add another option for automatic discovery | |
| 17:51:45 | bauzas | dansmith: I definitely appreciate your help on that one | |
| 17:52:00 | bauzas | and I really want to give you review credits back on your own series | |
| 17:57:51 | sean-k-mooney | dansmith: i have some concerns with allow config with out pci adresses | |
| 17:58:11 | sean-k-mooney | i.e. if you allow some of your gpus to be used for pci passthogu and other for vgpu | |
| 17:58:36 | dansmith | right, that's a good reason *to* do it, but not a good reason to *require* it, IMHO | |
| 17:58:59 | sean-k-mooney | if you dont use device_address in that case we coudl passthough a device (that was allowed in the pci devspec) but not disalloed in the mdev config section | |
| 17:59:37 | sean-k-mooney | dansmith: i dont know i always felt that its a psudo security isseu to not explcitly list devices we can expose to a guest | |
| 17:59:45 | sean-k-mooney | i get that it sucks to need to be explict | |
| 17:59:54 | sean-k-mooney | but that the trade off | |
| 18:00:40 | dansmith | but in the mdev case you're not just blindly exposing them, | |
| 18:00:42 | sean-k-mooney | to be clear we have this tradeoff in the pci tracker too | |
| 18:00:50 | dansmith | you've already opted into "all devices with this mdev type" right? | |
| 18:01:12 | sean-k-mooney | yep so its the same as just putting vendor_id and product_id in the pci dev_spec | |
| 18:01:22 | sean-k-mooney | aka the pci whitelist | |
| 18:01:28 | dansmith | I don't think that's the same really | |
| 18:01:45 | opendevreview | Stephen Finucane proposed openstack/nova master: docs: Add documentation on server groups https://review.opendev.org/c/openstack/nova/+/899979 | |
| 18:01:46 | dansmith | well, if you do both vendor *and* product I guess it is | |
| 18:01:55 | sean-k-mooney | to me there is no diffence betwen mdev type and *vendor_id and product_id) | |
| 18:01:56 | dansmith | but not like worrying that 8086 is going to allow your root bridge to go through or something | |
| 18:02:16 | dansmith | but I really don't see the problem with that level of specificity | |
| 18:02:34 | stephenfin | bauzas: melwitt: https://review.opendev.org/c/openstack/nova/+/899979 came up as a result of an OpenShift question. I figure you'd both be interested in that addition to our docs | |
| 18:03:03 | sean-k-mooney | dansmith: i think its more an issue with how the config options are arranged more then anything esle | |
| 18:03:08 | stephenfin | I've also proposed helper alias for OSC to make requesting server groups slightly nicer https://review.opendev.org/c/openstack/python-openstackclient/+/899975 | |
| 18:03:12 | stephenfin | *a helper | |
| 18:03:36 | sean-k-mooney | dansmith: we split the mdevs into multipel dynmaic config sections to influcne this | |
| 18:03:45 | bauzas | sean-k-mooney: if we can ease your pain, we can document the fact that max_instances automatically passes *all* GPUs to nova | |
| 18:03:48 | sean-k-mooney | which to me make it harder to know if a device will be allowed or not | |
| 18:04:31 | bauzas | sean-k-mooney: and we could mention to use device_addresses as an alternative for people afraid of passing the whole GPUs | |
| 18:04:37 | sean-k-mooney | bauzas: just make -1 or None the default and use it as a sentanical to mean all. | |
| 18:04:55 | bauzas | lemme provide the patch first | |
| 18:05:08 | sean-k-mooney | bauzas: well i thing we shoudl be recommending device_address as the way peopel shoudl do it in general | |
| 18:05:24 | dansmith | sean-k-mooney: that doesn't work right? that gives us the wrong behavior we have now | |
| 18:05:56 | sean-k-mooney | dansmith: it doesn but i think bauzas was going to have it be wrong out of the box too | |
| 18:06:35 | sean-k-mooney | unless i missunderstood | |
| 18:06:38 | bauzas | tbc I was documenting in the config doc helper that max_instances should be set to the number of mediated devices a device can create | |
| 18:07:24 | sean-k-mooney | but where you going to recommend usign device_addresses as what peopel shoudl do by default? | |
| 18:07:53 | bauzas | we could | |
| 18:08:23 | sean-k-mooney | personally i woudl prefer reuqiring you do do "device_adddress=*" to have use any device with this mdev type behavior by the way | |
| 18:08:42 | sean-k-mooney | or saying you must set | |
| 18:08:51 | sean-k-mooney | either device_addres or max_instances | |
| 18:10:39 | bauzas | yeah those options are conflicting, for sre | |
| 18:10:58 | bauzas | I can mark those this way with oslo.config | |
| 18:11:19 | sean-k-mooney | but can you also make the mutally exclive group required | |
| 18:11:29 | sean-k-mooney | and the dynmic config section requried | |
| 18:12:01 | bauzas | we're on same page | |
| 18:12:32 | sean-k-mooney | well there is one thing im not sure you and i agree on | |
| 18:12:33 | bauzas | [mdev_nvidia-XXX] would become mandatory if we merge https://review.opendev.org/c/openstack/nova/+/899406 | |
| 18:12:40 | sean-k-mooney | ah | |