| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2023-11-02 | |||
| 13:20:23 | greatgatsby | again, really appreciate getting help in here, can be tough banging ones head against the desk for too long | |
| 13:20:25 | sean-k-mooney | the reason tha tis good to refence is for co installablity | |
| 13:20:32 | sean-k-mooney | if you stay to the version in that list | |
| 13:20:44 | sean-k-mooney | then we are commiting to keepign them co installable | |
| 13:20:56 | sean-k-mooney | if you deviate form that you might have compitbality issues | |
| 13:21:08 | sean-k-mooney | but i f you are using osc on your laptop in its own venv | |
| 13:21:14 | sean-k-mooney | you dont need to really consider that | |
| 13:21:33 | greatgatsby | sorry what do you mean by co installability? Just want to pass this info on and not get pushback | |
| 13:21:34 | sean-k-mooney | so we maintain that list mainly for distro packagers | |
| 13:21:57 | sean-k-mooney | the ablity to install all the release artifacts in the same python envionment | |
| 13:22:15 | greatgatsby | I see, ok, thanks again | |
| 13:22:40 | opendevreview | Merged openstack/nova master: Fix rebuild compute RPC API exception for rolling-upgrades https://review.opendev.org/c/openstack/nova/+/899235 | |
| 13:23:07 | sean-k-mooney | we test for co-installablity in our ci system and partly enforce that with upper-constraints.txt in the requirements repo for external deps | |
| 13:32:34 | opendevreview | sean mooney proposed openstack/nova master: Use centos-9-stream for functional-py39 job https://review.opendev.org/c/openstack/nova/+/899959 | |
| 13:32:34 | opendevreview | sean mooney proposed openstack/nova master: add pyproject.toml to support pip 23.1 https://review.opendev.org/c/openstack/nova/+/899753 | |
| 13:34:13 | opendevreview | sean mooney proposed openstack/nova master: add pyproject.toml to support pip 23.1 https://review.opendev.org/c/openstack/nova/+/899753 | |
| 13:36:41 | dansmith | bauzas: are you around to explain something to me about the RP patch | |
| 13:36:42 | dansmith | ? | |
| 13:36:49 | bauzas | dansmith: yup, I'm here now | |
| 13:36:58 | bauzas | thanks for having started to look at it, btw. | |
| 13:37:12 | bauzas | (me also needs to look at your spec) | |
| 13:37:20 | dansmith | yeah sorry I forgot you were off yesterday until after I pinged | |
| 13:37:21 | bauzas | so, shoot your questions | |
| 13:37:31 | bauzas | have you seen the bug report btw.? | |
| 13:37:43 | bauzas | I tried to summarize the problem in there | |
| 13:37:48 | dansmith | my questions are actually *about* the stuff in the bug :) | |
| 13:37:52 | bauzas | https://bugs.launchpad.net/nova/+bug/2041519 | |
| 13:37:58 | bauzas | okay | |
| 13:38:10 | bauzas | and why I did that, I guess ? | |
| 13:38:23 | dansmith | so I get the inventory before, then after one allocation, one RP goes to zero | |
| 13:38:37 | bauzas | more than one RP but yeah | |
| 13:38:48 | dansmith | no, only one according to your report | |
| 13:38:57 | bauzas | and this is not exacly *always* after | |
| 13:39:23 | bauzas | the fact is that we automatically create a mdev if none of them are not used yet | |
| 13:39:25 | dansmith | but what i don't get is why after the second allocation they *all* go to zero.. that would imply we're using inventory wrong | |
| 13:39:43 | bauzas | okay, gonna clarify | |
| 13:39:56 | bauzas | we are not counting mdevs for inventories | |
| 13:40:31 | bauzas | what we count as VGPU resources are *either unused mdevs *or* available_instances* | |
| 13:40:44 | dansmith | oh, hang on | |
| 13:40:46 | bauzas | which means something you can allocate to a guest | |
| 13:41:08 | dansmith | re-reading this with fresh eyes, I think I was confusing the very similar sysfs and placement dumps | |
| 13:41:25 | dansmith | so it's the mdev availability that goes off a cliff | |
| 13:42:29 | bauzas | https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L8090-L8133 | |
| 13:42:38 | bauzas | that's where we calculate inventories | |
| 13:42:53 | dansmith | yep | |
| 13:43:08 | bauzas | available_instances is a value that the kernel driver gives | |
| 13:43:12 | bauzas | but, | |
| 13:43:13 | dansmith | right | |
| 13:43:24 | bauzas | once you create a mdev, the value decreases by 1 | |
| 13:43:33 | bauzas | that doesn't mean that the mdev will be used by a guest | |
| 13:43:53 | sean-k-mooney | bauzas: yep shich is why you are ment to be internally tracking which devices the mdev are created form | |
| 13:43:56 | bauzas | if you basically precreate all mdev resources, then available_instances is 0 for all the gpus | |
| 13:44:11 | sean-k-mooney | and using that to compute the inventoy total as (aviablie_instnace + mdevs form that device) | |
| 13:44:16 | dansmith | does nvidia-472 imply that more than 1/total share of the card is used? | |
| 13:44:28 | bauzas | but the inventory still tracks that you can bind N vGPUs | |
| 13:44:49 | bauzas | dansmith: that's the crux of the problem | |
| 13:45:01 | bauzas | the number of vGPUs can differ per type | |
| 13:45:04 | sean-k-mooney | bauzas: that problem is sovled by enforcing that the device adress | |
| 13:45:10 | dansmith | that feels like we're using placement incorrectly to have inventory of unequal resources | |
| 13:45:15 | bauzas | nvidia-472 can create up to two vGPUs | |
| 13:45:32 | bauzas | so there are three possibilities | |
| 13:45:41 | bauzas | either available_instances = 2 | |
| 13:45:56 | bauzas | or, available_instances = 1 and one mdev exists that'not used by a guest | |
| 13:46:06 | bauzas | or, there are two mdevs available, which are both unused | |
| 13:46:17 | bauzas | with SR-IOV, things change | |
| 13:46:19 | sean-k-mooney | bauzas: the decreasing inventory behavoir is a nvidia specirci issue with vfs form teh same card | |
| 13:46:54 | bauzas | now, with SR-IOV, instead of having one single pci device that have available_instances = 2 (and then only one RP), | |
| 13:47:11 | bauzas | then we have *two* VFs, each of them having available_instances = 1 | |
| 13:47:15 | bauzas | but,n | |
| 13:47:37 | bauzas | since this is type-dependent, nvidia doesn't create only 2 VFs but 16 | |
| 13:47:44 | bauzas | (for that single GPU) | |
| 13:47:57 | sean-k-mooney | yes | |
| 13:48:01 | bauzas | (if you have A2, IIRC this will create 32 virtual functions) | |
| 13:48:16 | dansmith | can someone answer the question: that's a function of nvidia-472 right? | |
| 13:48:26 | bauzas | so, say you define nvidia-472, this means that only 2 virtual functions have to be used | |
| 13:48:36 | sean-k-mooney | dansmith: the VF can support many mdev types | |
| 13:48:45 | dansmith | and if they are slicing differently with (nvidia-xxx right)? then the math would be different/ | |
| 13:48:55 | bauzas | if you use other type (say nvidia-473), then you could use *four* virtual functions | |
| 13:49:02 | bauzas | dansmith: correct | |
| 13:49:03 | dansmith | yeah | |
| 13:49:09 | sean-k-mooney | dansmith: yep the math change depenign on which mdev type you create | |
| 13:49:15 | sean-k-mooney | but the number of VF is fixed | |
| 13:49:17 | bauzas | the fact is | |
| 13:49:23 | sean-k-mooney | so not all of them can actully be allcoated | |
| 13:49:24 | bauzas | given the type, | |
| 13:49:29 | sean-k-mooney | for all types | |
| 13:49:39 | bauzas | once you create mdevs for all the VFs corresponding to the type, | |
| 13:49:51 | dansmith | right, and could it be some combination of two types? or only one type of slicing per card? | |
| 13:49:52 | bauzas | then other VFs start magically having available_instances=0 | |
| 13:50:00 | sean-k-mooney | dansmith: that depend on the card | |
| 13:50:08 | bauzas | you can't mix types per GPU, nvidia doesn't support it | |
| 13:50:12 | bauzas | well, | |
| 13:50:15 | sean-k-mooney | actully it does | |
| 13:50:16 | bauzas | for time-sliced GPUs | |
| 13:50:31 | bauzas | for MIG GPUs, you can, but that's a waaaaay different matter | |
| 13:50:35 | sean-k-mooney | but only in s specific mode for sepcific type on specific cards | |
| 13:50:40 | sean-k-mooney | yep | |
| 13:50:41 | bauzas | let's not overcomplicate this | |
| 13:50:51 | sean-k-mooney | lol | |
| 13:50:58 | sean-k-mooney | do you have a time machine | |