| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-04-15 | |||
| 12:26:40 | gibi | lyarwood: I will do the rebase and the adaptation to your fix either today or tomorrow | |
| 12:26:40 | gibi | lyarwood: I will do the rebase and the adaptation to your fix either today or tomorrow | |
| 12:27:38 | lyarwood | gibi: ack thanks, I'll go over the rest of the series later in more detail but clicking through it LGTM at the moment | |
| 12:27:38 | lyarwood | gibi: ack thanks, I'll go over the rest of the series later in more detail but clicking through it LGTM at the moment | |
| 12:27:59 | gibi | cool, I will +A your fix soon | |
| 12:27:59 | gibi | cool, I will +A your fix soon | |
| 13:12:28 | mnaser | bauzas: https://bugs.launchpad.net/nova/+bug/1900800 have you thought about how this can be resolved? We are running into this often :( | |
| 13:12:29 | mnaser | bauzas: https://bugs.launchpad.net/nova/+bug/1900800 have you thought about how this can be resolved? We are running into this often :( | |
| 13:12:32 | openstack | Launchpad bug 1900800 in OpenStack Compute (nova) "VGPUs is not recreated on host reboot" [Low,Confirmed] - Assigned to Sylvain Bauza (sylvain-bauza) | |
| 13:41:18 | bauzas | mnaser: sorry I was on a meeting | |
| 13:41:18 | bauzas | mnaser: sorry I was on a meeting | |
| 13:41:52 | bauzas | mnaser: well, maybe we would need to ask the operator to create the mdevs after rebooting | |
| 13:41:52 | bauzas | mnaser: well, maybe we would need to ask the operator to create the mdevs after rebooting | |
| 13:49:12 | openstackgerrit | Qiu Fossen proposed openstack/nova-specs master: Allow migrating PMEM's data https://review.opendev.org/c/openstack/nova-specs/+/785563 | |
| 13:51:32 | sean-k-mooney | bauzas: the mdevs should be create in init_host today | |
| 13:51:32 | sean-k-mooney | bauzas: the mdevs should be create in init_host today | |
| 13:51:57 | sean-k-mooney | oh | |
| 13:51:57 | sean-k-mooney | oh | |
| 13:52:10 | bauzas | sean-k-mooney: the problem is that we don't know which mdev type they usze | |
| 13:52:10 | bauzas | sean-k-mooney: the problem is that we don't know which mdev type they usze | |
| 13:52:49 | sean-k-mooney | well we should no? | |
| 13:52:49 | sean-k-mooney | well we should no? | |
| 13:53:05 | sean-k-mooney | the mdevs should still be in the domins | |
| 13:53:05 | sean-k-mooney | the mdevs should still be in the domins | |
| 13:53:12 | sean-k-mooney | this should be running before we start the vms | |
| 13:53:12 | sean-k-mooney | this should be running before we start the vms | |
| 13:53:22 | sean-k-mooney | oh the type is not recorded | |
| 13:53:22 | sean-k-mooney | oh the type is not recorded | |
| 13:53:33 | sean-k-mooney | so if you have multiple devices that would be an issue | |
| 13:53:33 | sean-k-mooney | so if you have multiple devices that would be an issue | |
| 13:54:02 | sean-k-mooney | although we would be abel to look at the vgpu request in the flavor if you had a traits request | |
| 13:54:02 | sean-k-mooney | although we would be abel to look at the vgpu request in the flavor if you had a traits request | |
| 13:54:12 | sean-k-mooney | or better yet the allocation summeries | |
| 13:54:12 | sean-k-mooney | or better yet the allocation summeries | |
| 13:55:29 | sean-k-mooney | we can look up the RP form which the allocation came from and then identify the partent device and use that to look up the mdev type in the config | |
| 13:55:29 | sean-k-mooney | we can look up the RP form which the allocation came from and then identify the partent device and use that to look up the mdev type in the config | |
| 13:55:42 | sean-k-mooney | bauzas: that should work right ^ | |
| 13:55:42 | sean-k-mooney | bauzas: that should work right ^ | |
| 13:55:50 | bauzas | sean-k-mooney: the problem is that the traits are optional | |
| 13:55:50 | bauzas | sean-k-mooney: the problem is that the traits are optional | |
| 13:55:58 | sean-k-mooney | we dont need the traits | |
| 13:55:58 | sean-k-mooney | we dont need the traits | |
| 13:56:20 | sean-k-mooney | use allcotion to figure out partent device use parent device to look up mdev type in nova.conf | |
| 13:56:20 | sean-k-mooney | use allcotion to figure out partent device use parent device to look up mdev type in nova.conf | |
| 13:56:23 | sean-k-mooney | then recreate it | |
| 13:56:23 | sean-k-mooney | then recreate it | |
| 13:56:51 | bauzas | sean-k-mooney: https://github.com/openstack/nova/blob/450213f/nova/virt/libvirt/driver.py#L816 | |
| 13:56:51 | bauzas | sean-k-mooney: https://github.com/openstack/nova/blob/450213f/nova/virt/libvirt/driver.py#L816 | |
| 13:57:33 | bauzas | here, we would then need to call placement | |
| 13:57:33 | bauzas | here, we would then need to call placement | |
| 13:57:40 | sean-k-mooney | yes | |
| 13:57:54 | sean-k-mooney | unless we have the allocation summeries saved somewhere | |
| 13:57:54 | sean-k-mooney | unless we have the allocation summeries saved somewhere | |
| 13:58:11 | sean-k-mooney | i.e. in the nova db but we dont as far as i know | |
| 13:58:11 | sean-k-mooney | i.e. in the nova db but we dont as far as i know | |
| 13:58:12 | bauzas | ok, but then we would see VGPU allocations | |
| 13:58:12 | bauzas | ok, but then we would see VGPU allocations | |
| 13:58:23 | bauzas | for RP | |
| 13:58:23 | bauzas | for RP | |
| 13:58:25 | bauzas | for a RP | |
| 13:58:25 | bauzas | for a RP | |
| 13:58:32 | bauzas | which is a pGPU | |
| 13:58:32 | bauzas | which is a pGPU | |
| 13:58:52 | bauzas | so then we would need to look at the conf option to know which type it uses | |
| 13:58:52 | bauzas | so then we would need to look at the conf option to know which type it uses | |
| 13:58:59 | sean-k-mooney | yep | |
| 13:59:03 | bauzas | that *could* work | |
| 13:59:03 | bauzas | that *could* work | |
| 13:59:23 | bauzas | but that's a long change I think | |
| 13:59:23 | bauzas | but that's a long change I think | |
| 13:59:55 | sean-k-mooney | you mean complex to write/test | |
| 13:59:55 | sean-k-mooney | you mean complex to write/test | |
| 14:00:19 | sean-k-mooney | i think its what is required though unless we start storing the infor in the nova db in the resouces table for example | |
| 14:00:19 | sean-k-mooney | i think its what is required though unless we start storing the infor in the nova db in the resouces table for example | |
| 14:00:52 | sean-k-mooney | those are our two options caulate it form plamcnet or record mdevs in the db like pmem or pcidevices | |
| 14:00:52 | sean-k-mooney | those are our two options caulate it form plamcnet or record mdevs in the db like pmem or pcidevices | |
| 14:01:17 | sean-k-mooney | so that we can just look it up | |
| 14:01:17 | sean-k-mooney | so that we can just look it up | |
| 14:03:12 | bauzas | I can try to help | |
| 14:03:12 | bauzas | I can try to help | |
| 14:05:01 | sean-k-mooney | mnaser: it would be a bit of a hack but you could proably fix this with a bash script executed by a systemd service file tempoarlly | |
| 14:05:01 | sean-k-mooney | mnaser: it would be a bit of a hack but you could proably fix this with a bash script executed by a systemd service file tempoarlly | |
| 14:05:29 | sean-k-mooney | basically implemented the same logic | |
| 14:05:29 | sean-k-mooney | basically implemented the same logic | |
| 14:06:37 | sean-k-mooney | loop over the domains and for each with an mdev look up the placment allocation and get the rp with the vgpu resouces | |
| 14:06:37 | sean-k-mooney | loop over the domains and for each with an mdev look up the placment allocation and get the rp with the vgpu resouces | |
| 14:07:11 | sean-k-mooney | then get the mdev type and create it with the same mdev uuid as the xml currenly has | |
| 14:07:11 | sean-k-mooney | then get the mdev type and create it with the same mdev uuid as the xml currenly has | |
| 14:08:04 | sean-k-mooney | you could use systemd's "before" and "after" requirements to ensure it runs before nova-compute and after libvirt start | |
| 14:08:04 | sean-k-mooney | you could use systemd's "before" and "after" requirements to ensure it runs before nova-compute and after libvirt start | |
| 14:08:58 | sean-k-mooney | really nova should do that but that the bug your hitting i guess. | |
| 14:08:58 | sean-k-mooney | really nova should do that but that the bug your hitting i guess. | |
| 14:16:48 | mnaser | sean-k-mooney / bauzas: i guess if i'm understanding correctly, the instance <=> mdev mapping is not stored inside nova anywhere so we rely on the state in the libvirt domain | |
| 14:16:48 | mnaser | sean-k-mooney / bauzas: i guess if i'm understanding correctly, the instance <=> mdev mapping is not stored inside nova anywhere so we rely on the state in the libvirt domain | |
| 14:17:05 | bauzas | that's right | |
| 14:17:05 | bauzas | that's right | |
| 14:17:17 | bauzas | there is an existing tool tho | |
| 14:17:17 | bauzas | there is an existing tool tho | |
| 14:17:31 | bauzas | mnaser: https://github.com/mdevctl/mdevctl | |
| 14:17:31 | bauzas | mnaser: https://github.com/mdevctl/mdevctl | |