| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-03-22 | |||
| 21:03:37 | sean-k-mooney | option 2 patch the cpu model xml and to use the old values | |
| 21:03:45 | rouk | its not in the xml. | |
| 21:04:01 | rouk | its added higher up, in qemu cpu.c | |
| 21:04:02 | sean-k-mooney | no one sec | |
| 21:04:18 | sean-k-mooney | i mean /usr/share/libvirt/cpu_map/x86_EPYC-IBPB.xml | |
| 21:04:24 | rouk | yeah, it doesnt mention these features. | |
| 21:04:37 | sean-k-mooney | yep you could add them and set them disabled | |
| 21:04:43 | rouk | ah | |
| 21:04:54 | rouk | didnt see an arg for disabled on any of the existing lines. | |
| 21:04:59 | sean-k-mooney | then make a copy of the file as normal with a new name | |
| 21:05:05 | sean-k-mooney | and update the nova.conf to use that for new vms | |
| 21:05:21 | rouk | will nova know to use the old name on migrate? | |
| 21:05:36 | sean-k-mooney | yes because that is in the xml which we dont update | |
| 21:05:47 | rouk | ah yeah | |
| 21:06:13 | rouk | its quite the hack, but... i can do it pretty trivially. | |
| 21:06:28 | rouk | just make it part of my nova build. | |
| 21:06:47 | sean-k-mooney | ya so basically mv <file>.xml <file>_v2.xml | |
| 21:06:57 | sean-k-mooney | well cp | |
| 21:07:04 | sean-k-mooney | and then edit <file.xml> | |
| 21:07:16 | sean-k-mooney | you could do that as a layer in the nova-libvirt container | |
| 21:08:02 | sean-k-mooney | if you want new vms to use the new defintion just set cpu_model=eypc-ibpb-v2 | |
| 21:08:17 | sean-k-mooney | new vms will get that but migrated ones wont until you hard reboot | |
| 21:08:55 | sean-k-mooney | basically with a kolla build overried file you would be patching in the versioning that libvirt should have done | |
| 21:10:28 | sean-k-mooney | rouk: 3 is we figure out how to do this in code which could take a little while to do | |
| 21:10:44 | sean-k-mooney | rouk: have you filed a bug? | |
| 21:11:14 | sean-k-mooney | rouk: its not really a nova bug but we could workaround it i think | |
| 21:13:09 | sean-k-mooney | we would need to create a functional repoducer first as while i undersatd why this happended its really not due to an external change that we cant contol | |
| 21:14:07 | rouk | i havnt filed a bug, no. | |
| 21:14:33 | rouk | but yeah, ill build a nova-libvirt with another model. | |
| 21:15:55 | sean-k-mooney | actully i think there is something else you could try | |
| 21:16:42 | sean-k-mooney | so they added teh "fix" for this to https://github.com/qemu/qemu/blob/1b507e55f8199eaad99744613823f6929e4d57c6/hw/i386/pc.c#L125-L147 | |
| 21:16:59 | rouk | yeah whats this compat, i googled it on friday | |
| 21:17:01 | sean-k-mooney | you might be able to use a versioned machinve type for this | |
| 21:17:17 | rouk | i couldnt find any docs for how these compat versions work. | |
| 21:17:23 | sean-k-mooney | so i have nver looked at this before but i think it might eb related to machine tyeps | |
| 21:18:38 | rouk | i just have no idea what arg or config i need to do to activate this 3.1 compat | |
| 21:20:36 | rouk | i cant find a single note of documentation on it | |
| 21:21:49 | sean-k-mooney | so these are the machine type i have on centos they are disto specific | |
| 21:21:51 | sean-k-mooney | http://paste.openstack.org/show/803804/ | |
| 21:22:04 | sean-k-mooney | im going to check a ubuntu vm | |
| 21:22:25 | rouk | oh... that notation, i saw some stuff for that in virt-manager before. | |
| 21:22:33 | rouk | wonder if it has it listed | |
| 21:23:44 | sean-k-mooney | http://paste.openstack.org/show/803805/ | |
| 21:23:53 | sean-k-mooney | that is ubuntu 20.04 | |
| 21:24:34 | sean-k-mooney | i wonder if you can use pc-i440fx-3.1 | |
| 21:24:38 | rouk | pc-i440fx-3.1 Standard PC (i440FX + PIIX, 1996) | |
| 21:24:40 | rouk | yeah | |
| 21:24:54 | rouk | can nova set machine type... sec | |
| 21:25:01 | sean-k-mooney | yep | |
| 21:25:19 | sean-k-mooney | 1 of two ways. in the image which wont help and in the nova.conf which should | |
| 21:25:31 | rouk | yeah, libvirt.hw_machine_type | |
| 21:25:37 | rouk | can do that, that sounds a lot cleaner. | |
| 21:25:39 | sean-k-mooney | https://docs.openstack.org/nova/latest/configuration/config.html#libvirt.hw_machine_type | |
| 21:25:59 | sean-k-mooney | yep so add x86_64=pc-i440fx-3.1 | |
| 21:26:03 | rouk | ill get that tested after some food, been at this issue most of the day, heh. | |
| 21:26:55 | rouk | thanks for all the help, even though its not nova's fault, at least the knowledge that this dumb editing can happen from qemu means nova can defend against it. | |
| 21:27:31 | sean-k-mooney | ya. if using the version machine type fixes it then great | |
| 21:27:52 | rouk | maybe that needs to be a default thing thats recommended to set, idk | |
| 21:27:53 | sean-k-mooney | that would at least give use time to think about what to do in nova if anything in the futrue | |
| 21:28:06 | sean-k-mooney | well there are two camps | |
| 21:28:17 | sean-k-mooney | one camp is alwasy uses the versioned machine type | |
| 21:28:29 | sean-k-mooney | and ooo/ redhat openstack does this by default | |
| 21:28:42 | sean-k-mooney | the other camp is alwasy use the latest one | |
| 21:28:55 | sean-k-mooney | so that you get the latest fixes/abi | |
| 21:29:02 | rouk | sure, that works great till qemu screws you | |
| 21:29:19 | rouk | with machine type though, we cant really move to the new instructions well | |
| 21:29:46 | rouk | the xml change would at least persist in the vm config and be fixed on reboot. | |
| 21:30:07 | rouk | version, we just delay till nova can handle it, i guess. | |
| 21:30:17 | rouk | not sure which is better. | |
| 21:30:29 | sean-k-mooney | https://github.com/qemu/qemu/blob/c40ae5a3ee387b13116948cbfe7824f03311db7e/hw/i386/pc_piix.c#L510-L525 | |
| 21:30:32 | sean-k-mooney | there we go | |
| 21:31:07 | sean-k-mooney | so yes those are the version machine type defintions | |
| 21:31:15 | rouk | is there any way to make nova migrate between versions on reboot? | |
| 21:31:31 | rouk | or will i need to use a custom model to do that | |
| 21:31:47 | sean-k-mooney | am nova used too but we now wont | |
| 21:32:06 | rouk | so i guess the custom model is better | |
| 21:32:20 | rouk | at least then i can get everyone to move organically next time they reboot without breaking migrations | |
| 21:32:37 | sean-k-mooney | rouk: https://specs.openstack.org/openstack/nova-specs/specs/wallaby/approved/libvirt-stash-instance-machine-type.html | |
| 21:32:37 | rouk | even if its a dirtier fix | |
| 21:33:09 | sean-k-mooney | well no so on ussuri you could set the machine type explcitly | |
| 21:33:13 | sean-k-mooney | migrate all teh vms | |
| 21:33:30 | sean-k-mooney | then set it back to pc which is the default or leave it unset | |
| 21:33:36 | sean-k-mooney | then they would update on hard reboot | |
| 21:33:46 | rouk | but their migrations will break. | |
| 21:33:59 | rouk | or once its migrated once, it will stick in the config. | |
| 21:34:01 | sean-k-mooney | not unless this happens again | |
| 21:34:19 | rouk | hmm, i guess thats an okay upgrade plan | |
| 21:34:27 | rouk | as long as im not stranded on a setting forever. | |
| 21:34:37 | sean-k-mooney | so what the new spec say | |
| 21:34:54 | sean-k-mooney | is going forward we will recored the machinve type a vm boots with the first time | |
| 21:34:58 | sean-k-mooney | and it will have that forever | |
| 21:35:00 | sean-k-mooney | unless | |
| 21:35:23 | sean-k-mooney | you use the new nova-manage update_machine_type | |
| 21:35:27 | sean-k-mooney | command to change it | |
| 21:35:51 | sean-k-mooney | rouk: before that we would use what ever was in the config when generting the xml | |
| 21:36:30 | sean-k-mooney | if unset it would default to pc | |
| 21:37:41 | sean-k-mooney | anyway i need to grab food too | |
| 21:37:59 | sean-k-mooney | hopefully that hels and you can use a machine-type or update the cpu model for now | |
| 21:38:47 | sean-k-mooney | the reason you hit this issue is 1 you are not using a version machine type today and 2 qemu backported that abi break | |
| 22:27:07 | rouk | sean-k-mooney: with the option set, still breaks. | |