| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2023-11-02 | |||
| 14:15:14 | bauzas | I have the PTG summary to write | |
| 14:15:36 | dansmith | I don't love the "quick, delete the provider" approach either, FWIW | |
| 14:15:45 | bauzas | sean-k-mooney: it implies people were lazy enough to not explicitely tell which PCI devices to allocate | |
| 14:16:21 | bauzas | dansmith: that's understandable, but then you're pro-statically defining a list of VFs or an integer counting allocatable VFs | |
| 14:16:26 | sean-k-mooney | bauzas: and we are not internally trackign which device the mdev is allcoated form meaning we are not mapping the allcoations correctly in placment | |
| 14:16:30 | bauzas | (just clarifying the options) | |
| 14:17:17 | sean-k-mooney | removing the rp works if and only if we gurentte that the mdevs are created by packing the RPs | |
| 14:17:20 | bauzas | sean-k-mooney: if you want to have my frank opinion, I'm not a big fan of changing all the allocations we make | |
| 14:17:47 | dansmith | bauzas: I'm for doing better math, and it sounds like some hints for that math (in config) are necessary | |
| 14:17:48 | bauzas | sean-k-mooney: I very humbly think you're wrong on the fact we miscount | |
| 14:18:10 | bauzas | we very correcly count which mdevs against RPs | |
| 14:18:18 | dansmith | still would need to understand the whole picture *and* how we migrate to it, impact to existing people, and whether or not it's worth it if mdevs are going away | |
| 14:18:52 | bauzas | the latter conditional is hard to guess | |
| 14:19:03 | bauzas | but that's fair assumptions | |
| 14:19:37 | bauzas | and I'm not particularly attached to the bugfix itself | |
| 14:20:00 | bauzas | but again, I have my wills : a simple approach not redesigning our placement tracking which would be backportable | |
| 14:20:06 | sean-k-mooney | bauzas: in sriov mode is aviable_instances alway 1 | |
| 14:20:26 | sean-k-mooney | becasue for intels implemation (which they never released) it was not | |
| 14:20:30 | bauzas | see the bug report, yah until all mdevs are created | |
| 14:20:48 | bauzas | I literally wrote that in the bug description | |
| 14:21:10 | sean-k-mooney | what i dont like about that is that is a vendor specific detail | |
| 14:21:32 | bauzas | hell yeah, hence why I wanted to make the fix agnostic | |
| 14:22:09 | bauzas | we're just doing some math in some method that say 'oh look, that inventory is now 0, but meh, I don't care updating it' | |
| 14:22:38 | sean-k-mooney | well your solution does not work if the VF have aviable_instance>1 initally | |
| 14:22:40 | bauzas | this is honestly to me a wrong approach, and at least a LOG warning should tell the operator something weird happened | |
| 14:22:57 | bauzas | beg your pardon ? | |
| 14:23:09 | sean-k-mooney | simple case | |
| 14:23:17 | sean-k-mooney | we have one mdev capable device | |
| 14:23:31 | sean-k-mooney | it has an mdev type that allow 2 allcations total | |
| 14:23:37 | sean-k-mooney | it creats n VF | |
| 14:23:55 | sean-k-mooney | each vf reporst aviabel_invetnory=2 | |
| 14:24:14 | bauzas | (assuming then you're not talking of the nvidia driver then) | |
| 14:24:15 | sean-k-mooney | i allcoate one mdev from two different vfs | |
| 14:24:34 | sean-k-mooney | you can delete the other vf rps | |
| 14:24:56 | sean-k-mooney | but we will would be miss reporting the 2 remain rps | |
| 14:25:09 | bauzas | are you talking of something inexistent now but as a future possibility ? | |
| 14:25:54 | sean-k-mooney | im talkign generically | |
| 14:26:05 | bauzas | again, I don't understand your logic, but let's imagine your scenario for a sec | |
| 14:26:20 | bauzas | say I have 16 VFs, each of them with available_instances=2 | |
| 14:26:42 | bauzas | say now I create one mdev twice, each on a distinct VF | |
| 14:27:00 | bauzas | for 2 VFs, available_instances would be equal to 1 | |
| 14:27:07 | bauzas | two mdevs would exist | |
| 14:27:17 | bauzas | so the inventory wouldn't change for those | |
| 14:27:26 | sean-k-mooney | right but only 2 can be created | |
| 14:27:31 | bauzas | we would still count : total=2 | |
| 14:27:40 | sean-k-mooney | i gues what would happen is that when i allcoate the first mdev | |
| 14:27:49 | sean-k-mooney | the aviable_insstance on all vfs would go to 1 | |
| 14:27:56 | sean-k-mooney | and the second one it would go to 0 | |
| 14:28:05 | bauzas | okay, then it's the driver's responsibility to change available_instances to 0 for all the VFs | |
| 14:28:12 | bauzas | including the two ones we use | |
| 14:28:17 | sean-k-mooney | ya | |
| 14:28:35 | bauzas | total would be one for 2 RP inventories then, right? | |
| 14:28:44 | bauzas | total=1 I mean | |
| 14:28:48 | sean-k-mooney | so the only mdev hardware i have used that supprotes sriov vf did not have that probelm | |
| 14:29:10 | bauzas | anyway, this isn't possible with nvidia SR-IOV, all VFs *have* available_instances=1 | |
| 14:29:42 | bauzas | you lost me, honestly | |
| 14:29:47 | bauzas | if you're talking of T4s | |
| 14:30:01 | bauzas | what we had was a basically non-SRIOV accountancy | |
| 14:30:09 | sean-k-mooney | no im talking about hardware i used at intel and trying to think if it would break | |
| 14:30:23 | sean-k-mooney | i think the delete your are proposing would work | |
| 14:30:49 | sean-k-mooney | but i dont like the idea of us creating and deleting rps in genreal based on workload usage | |
| 14:30:49 | bauzas | tbc, I've experienced a race condition | |
| 14:31:09 | bauzas | since we update resource providers on a periodic | |
| 14:31:29 | bauzas | I was able to create 3 VMs (and allocate three VGPU allocations) | |
| 14:31:43 | bauzas | that's why I added the claim stuff | |
| 14:32:02 | bauzas | so, see, again, I'm not particularly attached to do this | |
| 14:32:19 | bauzas | if we go with statically defining which VFs are going to be used, fair | |
| 14:32:24 | sean-k-mooney | bauzas: we normally run the update avaiabel reosuces call elsewhere | |
| 14:32:32 | bauzas | I have checked | |
| 14:32:40 | sean-k-mooney | bauzas: we expcitly do it form the comptue manager in move claims | |
| 14:32:42 | bauzas | we do run the update *before* the spawn | |
| 14:32:53 | bauzas | not *after* :) | |
| 14:33:05 | dansmith | bauzas: agreed, deleting RPs as a result of allocation feels very wrong | |
| 14:33:26 | sean-k-mooney | dansmith: the only mitigation is we dont delete the mdev after the instance is moved/deleted | |
| 14:33:39 | sean-k-mooney | so provide the compute node is not restated | |
| 14:33:46 | sean-k-mooney | we will do the delete once | |
| 14:33:47 | dansmith | could we set reserved=total instead of deleting maybe? | |
| 14:33:57 | sean-k-mooney | but the extra RPs will get recated after a host reboot | |
| 14:34:15 | bauzas | dansmith: we would need to implement the reverse logic then | |
| 14:34:20 | sean-k-mooney | dansmith: reserved=total is what i was orgianlly thinking but the issue is total is going to 0 | |
| 14:34:26 | sean-k-mooney | and total cant be 0 | |
| 14:34:38 | sean-k-mooney | so we would need to do resrved=total=1 | |
| 14:34:47 | bauzas | and when to unreserve ? | |
| 14:34:57 | bauzas | say I delete my mdev ? | |
| 14:35:11 | bauzas | I'm a stubborn operator that deletes the mdevs, y'know | |
| 14:35:22 | sean-k-mooney | or you do a host reboot | |
| 14:35:39 | bauzas | honestly, I like the config approach | |
| 14:35:43 | sean-k-mooney | so ya the reserved=total approch is more complext then delete | |
| 14:35:56 | dansmith | sean-k-mooney: right I meant reserved=old_total | |
| 14:36:13 | bauzas | if you specific the max VGPUs per type, then we could do htis | |
| 14:36:34 | bauzas | I feel a disturbance in the force when I tell about deleting RPs | |
| 14:36:41 | sean-k-mooney | bauzas: its slightly more complex then that | |
| 14:37:33 | bauzas | I used the term "strawman", I think it was the right wording | |
| 14:37:36 | sean-k-mooney | max mdevs need nova to understand which phsyical deviec the mdevs are form | |
| 14:37:45 | bauzas | that is correct | |
| 14:37:52 | bauzas | we know the parent device | |
| 14:37:56 | bauzas | for a mdev | |
| 14:38:10 | bauzas | we already use this information to track | |
| 14:38:19 | bauzas | in nova today | |
| 14:38:33 | sean-k-mooney | well in the nvidia case the max mdev per type applies to the grandparent device | |