On Thu, 29 Jan 2026, Peter Maydell wrote:
On Thu, 29 Jan 2026 at 19:08, BALATON Zoltan <[email protected]> wrote:
On Thu, 29 Jan 2026, Peter Maydell wrote:
On Thu, 29 Jan 2026 at 17:20, BALATON Zoltan <[email protected]> wrote:
On Thu, 29 Jan 2026, Peter Maydell wrote:
On Thu, 29 Jan 2026 at 16:21, BALATON Zoltan <[email protected]> wrote:
This is a migration compatibility break, because the
memory_region_init_rom() function registers the MR
for migration via vmstate_register_ram(), which picks
an ID string for the memory that includes the path
of the device, whereas vmstate_register_ram_global()
picks an ID string for the memory that does not include
the path of any device. It is this difference that is the
reason why they're still using the _nomigrate functions.
I thought it might be the case but wasn't sure. How was this handled in
all other machines where they were converted to not use _nomigrate? Only
some Sun machines still seem to use this and this may be a good
opportunity to bring them inline with all other machines.
If I remember correctly, we converted all the machines where
we were happy at the time to have a compat break. The remainder
are not only Sun machines -- you can see in your patch 4 that xtensa
and vga are also affected.
Well, almost all of the usages are because of the Sun machines and those
could be easily converted accepting one time migration break. The VGA one
seems to be because of isa cards which may not have been QOM'ified so
could not be converted before but maybe could be now but I haven't checked
We can't change the the vga usage, because it's a migration compat
break, and you can use vga on x86 PC machines, where we do care
about not breaking migration.
I think pc machines use PCI which would not change so it would only break
isapc where we probably don't care but I don't intend to change that now.
Just getting rid of what we can do safely to simplify the
memory_region_init API is enough for me. The remaining few can be
considered later but we will likely need some _nomigrate option for
backends/hostmem-ram.c so we probably can't get rid of them all.
Regards,
BALATON Zoltan