| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2025-05-22 | |||
| 05:30:30 | sean-k-mooney | in the hacking repo so we can share it acrross other repos | |
| 05:30:33 | mikal | It would also make the transition largely transparent... People do a git review, land a new version of the hook automatically, and blam they're compliant. Much more fun than herding cats. | |
| 05:31:09 | sean-k-mooney | we can add a new hook there and then enable it in the relevent repos https://github.com/openstack/hacking/blob/master/.pre-commit-hooks.yaml | |
| 05:31:42 | mikal | Although... Other projects also use signed-off-by to track who reviewed and approved a change. Is there any intent to do that as well? | |
| 05:34:25 | sean-k-mooney | mikal: that actully a missues of it | |
| 05:34:36 | sean-k-mooney | mikal: there are other standared lables for that | |
| 05:35:04 | sean-k-mooney | mikal: so no not currently however you can actully config gerrit to auto ammend the commit with that info to some degree | |
| 05:35:24 | sean-k-mooney | we had that enabeld downstream untile they moved use to gitlab..... | |
| 05:35:41 | mikal | I kind of like the history being all in one place to be honest. | |
| 05:36:30 | mikal | So yeah, review history in the commit would be cool. I don't really care what labels are used to be honest. I do agree the kernel seems to use "Signed-off-by", "Tested-by", "Reviewed-by", etc. | |
| 05:37:36 | sean-k-mooney | your ment to use Reviewed-by, Acked-by and Tested-by instead of sgined-off by to track that | |
| 05:38:33 | sean-k-mooney | so you coudl update the comit with the review vots and add acted by for the person that +w'd and tested-by by zuul (the verifed label votes) | |
| 05:39:17 | sean-k-mooney | however to do that gerrit would have to be sett to cerry pick mode which will alwasy cheryy pick the commit on to the target branch changign it git sha | |
| 05:39:38 | sean-k-mooney | which will mean you will not be able to knwo the sha to use for backportign until after it has merged because it will alwasy change | |
| 05:40:10 | sean-k-mooney | so to do that we loose our current cherry-picked form workflow/lines when backporting | |
| 05:42:49 | sean-k-mooney | mikal: the convetions for the by lines alll come form teh linke kernel and are part of there patch submission process https://github.com/torvalds/linux/blob/master/Documentation/process/submitting-patches.rst#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes | |
| 07:07:37 | sean-k-mooney | bauzas: just so your aware i rebased your mtty_suppot sersie and moved my patch to the bottom. | |
| 07:08:06 | sean-k-mooney | bauzas: with it i was able to fix the error you were hitting but there is a bug in your first patch https://review.opendev.org/c/openstack/nova/+/898100/11 | |
| 07:08:29 | sean-k-mooney | the error i got with my fix was libvirt.libvirtError: Requested operation is not valid: mediated device /sys/bus/mdev/devices/6dc8d190-2bc9-45ed-a4b8-d4f0708f92bb is in use by driver QEMU, domain instance-00000001 | |
| 07:09:56 | sean-k-mooney | so somehow nova tired to reuse the same mdev between to vms. i assuem that is a bug in https://review.opendev.org/c/openstack/nova/+/898100/11 that only affect virutal mdev device if not that woudl be a real bug in our current mdev supprot | |
| 07:10:26 | sean-k-mooney | i suspect it has somthign to do wtth how your trackign the virutal ones given they do not have a pci adress but im not sure | |
| 07:27:32 | mikal | sean-k-mooney: when you have a moment, I feel like the state of the VDI patches has fallen out of my brain. Are you now happy enough with the first two patches in the series that I could squash them into one and then do the compute protection change to the other set of extra specs? | |
| 07:29:44 | sean-k-mooney | i share your oxidation. ill need to quickly load context | |
| 07:30:11 | sean-k-mooney | you asking about squashing https://review.opendev.org/c/openstack/nova/+/940770/9 and the patch before it | |
| 07:30:14 | sean-k-mooney | or all 3 | |
| 07:31:19 | sean-k-mooney | mikal: i know dan prefers if we sepreate the object change form the driver change | |
| 07:32:12 | sean-k-mooney | so i think there overall prefence woudl be have the first patch containe the object and noticicaton object change. then move the rest of the changes in that to the "Protect older compute managers from sound model requests." change | |
| 07:32:18 | mikal | So at the moment the chain is: sound device extra spec -> compute manager protection for sound -> usb controller extra spec -> compute manager protection for USB (this last one not yet done) | |
| 07:32:43 | mikal | I had thought you'd want the first two squashed so you get the extra spec and the compute protection at the same time. | |
| 07:33:11 | sean-k-mooney | yes i want that btu we geneally prefer to have the object chagns in there won patch | |
| 07:33:24 | sean-k-mooney | so it would still be 4 patchees | |
| 07:33:27 | mikal | I think you're saying for those first two you'd instead prefer to see the first to squashed into one, which becomes the second patch, with the object and notification changes sitting before it? | |
| 07:33:53 | mikal | So: sound objs and notifications -> rest of sound -> usb objs and notifications -> rest of usb? | |
| 07:34:03 | sean-k-mooney | "add object changes for sound" -> "support soudn device" -> "add object changes for usb" "supprot usb" | |
| 07:34:09 | sean-k-mooney | yes | |
| 07:34:39 | mikal | Cool. I can do that. Are you happy with the content of the first two patches, just not the way they're presented? Or are there other changes that need to be made too? | |
| 07:35:02 | sean-k-mooney | mikal: in the unlikely case we need to revert this its easy to rever the driver change but we can really revert the object change | |
| 07:35:17 | sean-k-mooney | so having it be seperate just makes taht edge case or backport a littel simpler | |
| 07:35:47 | mikal | sean-k-mooney: that's fair. I'll do that refactor ASAPish if you're otherwise happy with the code. | |
| 07:36:39 | sean-k-mooney | ill need to look at the detail but i think i can review this series today | |
| 07:36:50 | sean-k-mooney | i dont think there was anything major last time i looked | |
| 07:37:05 | sean-k-mooney | so i dont really expect there to be any thing that need to be changed | |
| 07:37:09 | mikal | Yeah, certainly I can't see anything major in the comments unless I've missed something. | |
| 07:37:29 | mikal | Ok cool. I will do the refactor then and implement the compute manager protection for USB as well. | |
| 09:23:25 | noonedeadpunk | Hey folks! Got a question. Today realized that quite an unexpected behaviour is happening with live migrations. So on memory-intense VMs migration seems to fail on post-migration step. | |
| 09:23:57 | noonedeadpunk | The weird/enexpected thing, that as a result VM keeps shut down on both hosts and it moves to ERROR state | |
| 09:24:22 | noonedeadpunk | so decided to ask if this is smth quite well known? | |
| 09:24:44 | noonedeadpunk | As right now I think it's related to `live_migration_permit_auto_converge = true` | |
| 09:25:32 | noonedeadpunk | as issue happens only on memory intense VMs. So if you run stress inside VM - it will 99% end up in ERROR and shut down. If there's some reasonable applucation running - it's fine | |
| 09:26:17 | noonedeadpunk | So my guess is that if live_migration_permit_auto_converge kicks in, libvirt simply incapable to resume the VM on thye destination, but I'm not really sure if that is true | |
| 09:26:57 | noonedeadpunk | Thus before going to this rabbit hole wanted to ask if you might now anything about that :) | |
| 09:30:15 | frickler | noonedeadpunk: I assume you checked the nova-compute logs without success? how about the libvirt instance logs? but maybe wait for sean-k-mooney to chime in first | |
| 09:31:00 | sean-k-mooney | sorry was looking at something else reading back | |
| 09:32:09 | sean-k-mooney | noonedeadpunk: do you have post_copy migration enabeld? | |
| 09:32:44 | sean-k-mooney | auto converge just add cpu puases so that is very unlikely to be a factor | |
| 09:34:37 | sean-k-mooney | noonedeadpunk: for what its worth if there is high ram load it basically imposibel to migrate without post-copy migration. auto converge si not entough to supprot that usecase | |
| 09:34:52 | sean-k-mooney | it just slightly chagne wehre the live mgiration will fall over | |
| 09:36:00 | sean-k-mooney | auto converge is still a type of "pre-copy" migration when qemu copes all the memroy first , pauses the vm on the dest copyies the detal and resuses it on the souce | |
| 09:36:12 | noonedeadpunk | no, post_copy is disabled | |
| 09:36:16 | noonedeadpunk | only converge is | |
| 09:36:47 | sean-k-mooney | the difference betwen live_migration_permit_auto_converge = true and false is if its set to true. the qemu on the souce is allwo to micro pause the souce vm cpus before switching to the dest | |
| 09:37:10 | noonedeadpunk | yes, right, and that used to work nicely | |
| 09:37:27 | sean-k-mooney | in your case if your getting to post_live_migration that mean libvirt told nova the migration was complete | |
| 09:37:29 | noonedeadpunk | and I think regardless that should not end up with VM jsut being down on both sides? | |
| 09:37:45 | noonedeadpunk | jsut a sec, I'll re-paste logs | |
| 09:38:03 | sean-k-mooney | at which point the vm on the souce is not need any mroe and shoudl be terminate by libvirt | |
| 09:38:10 | sean-k-mooney | as you cant rool back at that point | |
| 09:38:18 | noonedeadpunk | it;s from source https://paste.openstack.org/show/bSc55xr9LSgCXiaj1uo1/ | |
| 09:38:33 | noonedeadpunk | and that's destination: https://paste.openstack.org/show/boBhuqrR8mYDoqCjYxex/ | |
| 09:39:01 | noonedeadpunk | the only very suspicious thing I've spotted, is that I also do see a libvirt reseted communication to qemu | |
| 09:40:25 | sean-k-mooney | i knwo you said this but the vm is activly runing right it not paused when you live migrated it right | |
| 09:40:30 | noonedeadpunk | so it feels that during unpause things crash unobviously | |
| 09:40:41 | noonedeadpunk | it's running, yes | |
| 09:40:46 | noonedeadpunk | I mean paused on destination | |
| 09:41:22 | sean-k-mooney | the reaons im asking is this is sort of similar to https://issues.redhat.com/browse/RHEL-48801 but that about live migrating a puased instance twice | |
| 09:41:59 | sean-k-mooney | qemu was not probly handling something in the block storage layer in that case | |
| 09:42:00 | noonedeadpunk | there's also no block migration as storage is ceph | |
| 09:42:10 | sean-k-mooney | ack that also good to know | |
| 09:43:03 | noonedeadpunk | but yeah, trying out post_copy was my next step to try | |
| 09:43:15 | noonedeadpunk | Was jsut a bit afraid of it tbh | |
| 09:43:20 | sean-k-mooney | noonedeadpunk: can you check the qemu instance logs and see if there is an error on the source or dest | |
| 09:43:36 | sean-k-mooney | for the block device one we saw a message like this | |
| 09:43:39 | sean-k-mooney | qemu-kvm: ../block.c:6979: int bdrv_inactivate_recurse(BlockDriverState *): Assertion `!(bs->open_flags & BDRV_O_INACTIVE)' failed. | |
| 09:43:41 | sean-k-mooney | 2024-07-16 13:29:55.795+0000: shutting down, reason=crashed | |
| 09:44:30 | sean-k-mooney | noonedeadpunk: post-copy is more robust to activly loaded vms and is effectivly requried if your using 1G hugepages | |
| 09:45:04 | sean-k-mooney | you can kind of get vms with 2M hugepages to migate without it but 1G hugepages guests are very hard to make function | |
| 09:45:32 | noonedeadpunk | I did not configure hugepages explicitly tbh | |
| 09:45:32 | sean-k-mooney | it woudl be woth trying but i suspect your hiting a qemu but and post copy might help you work around that but im not sure | |
| 09:45:49 | sean-k-mooney | noonedeadpunk: if you didnt then its not a factor | |
| 09:45:59 | sean-k-mooney | the kernel might be using transparent hugepages | |
| 09:46:06 | sean-k-mooney | but if that the case it wont impact the migration | |
| 09:46:19 | noonedeadpunk | yeah, let me try to reproduce one more time as original VM was dropped apparently | |
| 09:46:23 | sean-k-mooney | the issue with explcit hugepages is if you dirty the page qemu has to copy the entire page again | |
| 09:46:42 | sean-k-mooney | mean a 1 byte write requrie 1G of data to be copied again | |
| 09:47:42 | noonedeadpunk | so what would be suggested value? 1G? | |
| 09:48:03 | sean-k-mooney | sorry can you say that again | |
| 09:48:27 | sean-k-mooney | are you askign what i recomemnd if you choosoe to use hugepages? | |
| 09:48:48 | noonedeadpunk | Yeah :) I';d need to read about them more, but maybe you have a suggestion from your experience | |
| 09:49:06 | sean-k-mooney | if so i recommend 2MB hugepages for vms and if you happen ot use ovs-dpdk or have some other use for hugepages in teh ssytem then use 1G hugepages for those but not for the nova vms | |
| 09:49:23 | noonedeadpunk | ok, right | |