|
From: | Steven Sistare |
Subject: | Re: [PATCH V2 06/11] migration: fix mismatched GPAs during cpr |
Date: | Sat, 20 Jul 2024 17:28:07 -0400 |
User-agent: | Mozilla Thunderbird |
On 7/19/2024 12:28 PM, Peter Xu wrote:
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 does not occur during normal migration.
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..
I will continue this thread later and explain more fully. - Steve
[Prev in Thread] | Current Thread | [Next in Thread] |