migration: Unify reset of last_rb on destination node when recover
commitcc5ab87200257199eba91aba9baf141ae0e91d0c
authorPeter Xu <peterx@redhat.com>
Mon, 2 Nov 2020 15:30:09 +0000 (2 10:30 -0500)
committerDr. David Alan Gilbert <dgilbert@redhat.com>
Mon, 2 Nov 2020 18:25:39 +0000 (2 18:25 +0000)
treeb83d80c48dc0ff3c316c434ba9e75dc17fc8e5c1
parentb139d11ae198aba0e009daddf7a3370ce84b2d09
migration: Unify reset of last_rb on destination node when recover

When postcopy recover happens, we need to reset last_rb after each return of
postcopy_pause_fault_thread() because that means we just got the postcopy
migration continued.

Unify this reset to the place right before we want to kick the fault thread
again, when we get the command MIG_CMD_POSTCOPY_RESUME from source.

This is actually more than that - because the main thread on destination will
now be able to call migrate_send_rp_req_pages_pending() too, so the fault
thread is not the only user of last_rb now.  Move the reset earlier will allow
the first call to migrate_send_rp_req_pages_pending() to use the reset value
even if called from the main thread.

(NOTE: this is not a real fix to 0c26781c09 mentioned below, however it is just
 a mark that when picking up 0c26781c09 we'd better have this one too; the real
 fix will come later)

Fixes: 0c26781c09 ("migration: Sync requested pages after postcopy recovery")
Tested-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20201102153010.11979-2-peterx@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
migration/postcopy-ram.c
migration/savevm.c