| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-08-27 | |||
| 14:19:53 | opendevreview | sean mooney proposed openstack/nova master: Provide the mdev class for every PCI device https://review.opendev.org/c/openstack/nova/+/802918 | |
| 14:19:54 | opendevreview | sean mooney proposed openstack/nova master: Expose the mdev class https://review.opendev.org/c/openstack/nova/+/801743 | |
| 14:19:54 | opendevreview | sean mooney proposed openstack/nova master: Provide and use other RCs for mdevs if needed https://review.opendev.org/c/openstack/nova/+/803233 | |
| 14:19:55 | opendevreview | sean mooney proposed openstack/nova master: [WIP] update vgpu docs to account for generic mdev support https://review.opendev.org/c/openstack/nova/+/806412 | |
| 14:21:29 | artom | Oooohhhh | |
| 14:21:53 | sean-k-mooney | this will be good. why so | |
| 14:21:58 | artom | If something's changed between PSN and PSN+1 that's not actually part of the change itself, it'll show the diff in yellow, not green | |
| 14:22:08 | sean-k-mooney | ah yes | |
| 14:22:10 | sean-k-mooney | it does | |
| 14:22:31 | dansmith | and sometimes blue right? | |
| 14:22:34 | sean-k-mooney | the colours depend on light vs dark mode | |
| 14:22:37 | dansmith | I haven't figured out the pattern | |
| 14:22:39 | dansmith | ah | |
| 14:22:45 | artom | I've only seen yellow so far | |
| 14:23:10 | dansmith | yeah, probably the dark switch, I had one machine in dark the other day | |
| 14:23:19 | artom | Reading the scrollback, what *was* the logic behind PUTing empty allocations instead of outright DELETE? | |
| 14:23:27 | artom | We had consumer generations, so... just because we could? | |
| 14:23:34 | artom | Like, we're deleting, why do races matter? | |
| 14:23:41 | dansmith | artom: well, I'm kinda wondering if it's related to races during move and such | |
| 14:23:53 | dansmith | artom: we delete allocations for all kinds of reasons other than deleting an instance | |
| 14:24:31 | artom | So the idea is - before we delete, make sure we have the latest version so that we can then POST it to a new RP? | |
| 14:24:50 | dansmith | which is why it seems to me like maybe we should only force=true on instance delete, and default to not everywhere else, instead of what is proposed which is always force | |
| 14:25:32 | sean-k-mooney | so just invert the default for force | |
| 14:25:39 | dansmith | we're not really checking the allocations though, so, probably not worth it | |
| 14:26:04 | dansmith | anyway, it just feels like we're removing a fence because it's currently getting in the way :) | |
| 14:26:23 | artom | Yeah - hence the question - why did we put the fence there in the first place? | |
| 14:27:02 | dansmith | well, generations went in to avoid us clobbering allocations all the time | |
| 14:27:10 | dansmith | during things like moves | |
| 14:28:36 | sean-k-mooney | artom: this is the orginial commit that added the put behaivor https://review.opendev.org/c/openstack/nova/+/591597 | |
| 14:28:40 | artom | So, I'm sure there's a legitimate reason for it, but I don't grok it. Even during a move it, why would there be 2 bits of code trying to update allocations concurrently? | |
| 14:28:47 | artom | *move operation | |
| 14:28:54 | sean-k-mooney | it has some motivation for it in the commit but not a fully explanation | |
| 14:30:01 | sean-k-mooney | the main motivation i got form that was to intneionally be able to put the instance into error on delete if it was in an inconsitent state | |
| 14:30:16 | sean-k-mooney | to presumable give the operator or user a change to investigate | |
| 14:30:39 | sean-k-mooney | *chance | |
| 14:30:48 | dansmith | originally before we were using migration allocations I think both sides fought over who was going to claim the resources and delete the other | |
| 14:30:49 | artom | sean-k-mooney, that's for instance deletion, dansmith is talking about moves needing generations | |
| 14:31:12 | dansmith | and of course same-host migrations made that hard | |
| 14:31:19 | artom | ... so we did a thing in placement because Nova was dumb? | |
| 14:31:36 | artom | Ah, resize to same host... | |
| 14:31:38 | sean-k-mooney | isnt that why placment was created :) | |
| 14:31:42 | dansmith | artom: no dude, placement was/is accessed by multiple services at once | |
| 14:31:45 | artom | Hah | |
| 14:32:39 | sean-k-mooney | but here this is a distibuted lock problem | |
| 14:32:50 | sean-k-mooney | in that we dont have one | |
| 14:32:58 | artom | dansmith, right, I know that. So was this something like Nova updating the VCPUs or whatever, while Neutron concurrently tries to update something about the port? | |
| 14:33:00 | dansmith | well, generation is the lock | |
| 14:33:07 | sean-k-mooney | so generations were added ^ yep | |
| 14:33:12 | dansmith | I'm trying to remember how this works, but is the generation on the consumer actually? | |
| 14:33:20 | dansmith | such that one instance moving between two RPs shares a generation? | |
| 14:33:40 | sean-k-mooney | i think the generation is on the allocation | |
| 14:34:02 | sean-k-mooney | i dont know if they share the same generation when we have both in a migration case | |
| 14:35:01 | dansmith | we don't when migration is holding the resources on the other, | |
| 14:35:26 | dansmith | but the generation is on the allocation for the consumer across both compute nodes (if you do it that way) | |
| 14:35:46 | dansmith | so even with both compute nodes being "separate" they both had to update the allocation for the instance, | |
| 14:35:57 | dansmith | to claim resources on incoming and drop the resources from the outgoing | |
| 14:36:26 | dansmith | but this delete is actually _deleting_ the allocation | |
| 14:36:48 | dansmith | so this is from after that concept of a single allocation against both providers | |
| 14:37:23 | sean-k-mooney | ah so we dont have 2 indepented allcoations | |
| 14:37:36 | dansmith | right | |
| 14:37:37 | sean-k-mooney | i tought we used the migration uuid to create an indepent allcoation | |
| 14:37:45 | dansmith | oh we do no, | |
| 14:37:46 | dansmith | *now* | |
| 14:37:58 | sean-k-mooney | ah ok | |
| 14:38:05 | dansmith | I'm saying before we did that, we were creating allocations for the instance against both computes | |
| 14:38:06 | sean-k-mooney | you were discibing your initall implemenation | |
| 14:38:10 | sean-k-mooney | before you refactored it | |
| 14:38:14 | dansmith | which required both to modify it during/after the migration | |
| 14:38:24 | dansmith | not mine, but the, yes | |
| 14:38:30 | dansmith | mine was the "use migration allocation" change | |
| 14:38:54 | sean-k-mooney | right ok that aligns with what i recall | |
| 14:39:20 | sean-k-mooney | so you think this was really only need before the move to seperate allocations? | |
| 14:39:33 | sean-k-mooney | or do you think its still useful now. the put instead of delete | |
| 14:40:35 | dansmith | I think the PUT came after we were already using two separate allocations, but not positive | |
| 14:40:37 | sean-k-mooney | for migrations that is | |
| 14:41:03 | sean-k-mooney | ok im not sure of the time line but that sound right | |
| 14:41:04 | dansmith | gibi wrote that initial patch you linked above to move *away* from delete specifically to get generation stuff, | |
| 14:41:10 | dansmith | and it was part of "nested allocation candidates" | |
| 14:41:20 | sean-k-mooney | the migration allcotion change was a long time ago relitivly speaking | |
| 14:41:34 | dansmith | right | |
| 14:41:50 | sean-k-mooney | oh it was for nested resouce providers | |
| 14:42:08 | sean-k-mooney | so maybe for port resouce requests? | |
| 14:42:34 | dansmith | well, that's kinda what I was eluding to above, | |
| 14:42:43 | dansmith | with multiple things accessing here | |
| 14:42:57 | sean-k-mooney | ack | |
| 14:43:05 | dansmith | like does PUT {} avoid nuking a sub-allocation that neutron hasn't yet cleaned up? | |
| 14:43:30 | sean-k-mooney | i dont think we technially support netron modifying the allocation directly | |
| 14:43:43 | sean-k-mooney | i think nova always handels that on its behalf | |
| 14:43:51 | sean-k-mooney | but valid question | |
| 14:44:05 | dansmith | okay I thought in some cases it would.. wasn't that the point of that blueprint? | |
| 14:44:19 | dansmith | I wasn't really involved in it so I dunno | |
| 14:44:26 | gibi | it was definitely before port resource request as nested a_c is a prerequisite for that | |
| 14:44:30 | sean-k-mooney | so there was the open question about modifying QOS policies for bound ports | |
| 14:44:45 | sean-k-mooney | which could change the allcoaitons | |
| 14:44:46 | gibi | the only case neutorn modifies allocation ^^ | |
| 14:44:55 | sean-k-mooney | but i dont think we support that yet do we | |
| 14:45:01 | gibi | we do | |
| 14:45:05 | sean-k-mooney | oh ok | |
| 14:45:28 | gibi | you can change QoS policy on a bound port, neutron will try to amend the instance allocation according to the new policy | |
| 14:45:35 | sean-k-mooney | so ya change the bandwith or pps qos amount on a bound port would be the only time neutron could modify the allocation i think | |