[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V2 06/11] migration: fix mismatched GPAs during cpr
From: |
Peter Xu |
Subject: |
Re: [PATCH V2 06/11] migration: fix mismatched GPAs during cpr |
Date: |
Fri, 19 Jul 2024 12:28:09 -0400 |
On Sun, Jun 30, 2024 at 12:40:29PM -0700, Steve Sistare wrote:
> For new cpr modes, ramblock_is_ignored will always be true, because the
> memory is preserved in place rather than copied. However, for an ignored
> block, parse_ramblock currently requires that the received address of the
> block must match the address of the statically initialized region on the
> target. This fails for a PCI rom block, because the memory region address
> is set when the guest writes to a BAR on the source, which does not occur
> on the target, causing a "Mismatched GPAs" error during cpr migration.
Is this a common fix with/without cpr mode?
It looks to me mr->addr (for these ROMs) should only be set in PCI config
region updates as you mentioned. But then I didn't figure out when they're
updated on dest in live migration: the ramblock info was sent at the
beginning of migration, so it doesn't even have PCI config space migrated;
I thought the real mr->addr should be in there.
I also failed to understand yet on why the mr->addr check needs to be done
by ignore-shared only. Some explanation would be greatly helpful around
this area..
Thanks,
--
Peter Xu
- Re: [PATCH V2 06/11] migration: fix mismatched GPAs during cpr,
Peter Xu <=