unsigned long page;
/* Set once we wrap around */
bool complete_round;
+ /* Whether current page is explicitly requested by postcopy */
+ bool postcopy_requested;
};
typedef struct PageSearchStatus PageSearchStatus;
*/
static bool find_dirty_block(RAMState *rs, PageSearchStatus *pss, bool *again)
{
+ /* This is not a postcopy requested page */
+ pss->postcopy_requested = false;
+
pss->page = migration_bitmap_find_dirty(rs, pss->block, pss->page);
if (pss->complete_round && pss->block == rs->last_seen_block &&
pss->page >= rs->last_page) {
* really rare.
*/
pss->complete_round = false;
+ pss->postcopy_requested = true;
}
return !!block;