Revisão | 258f5c9825a9fb77aeae8a9d8c0877e714c090e2 (tree) |
---|---|
Hora | 2022-01-28 23:38:23 |
Autor | Peter Xu <peterx@redh...> |
Commiter | Juan Quintela |
migration: No off-by-one for pss->page update in host page size
We used to do off-by-one fixup for pss->page when finished one host huge page
transfer. That seems to be unnecesary at all. Drop it.
Cc: Keqian Zhu <zhukeqian1@huawei.com>
Cc: Kunkun Jiang <jiangkunkun@huawei.com>
Cc: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
@@ -1617,7 +1617,7 @@ static int ram_save_release_protection(RAMState *rs, PageSearchStatus *pss, | ||
1617 | 1617 | /* Check if page is from UFFD-managed region. */ |
1618 | 1618 | if (pss->block->flags & RAM_UF_WRITEPROTECT) { |
1619 | 1619 | void *page_address = pss->block->host + (start_page << TARGET_PAGE_BITS); |
1620 | - uint64_t run_length = (pss->page - start_page + 1) << TARGET_PAGE_BITS; | |
1620 | + uint64_t run_length = (pss->page - start_page) << TARGET_PAGE_BITS; | |
1621 | 1621 | |
1622 | 1622 | /* Flush async buffers before un-protect. */ |
1623 | 1623 | qemu_fflush(rs->f); |
@@ -2230,7 +2230,7 @@ static int ram_save_host_page(RAMState *rs, PageSearchStatus *pss) | ||
2230 | 2230 | offset_in_ramblock(pss->block, |
2231 | 2231 | ((ram_addr_t)pss->page) << TARGET_PAGE_BITS)); |
2232 | 2232 | /* The offset we leave with is the min boundary of host page and block */ |
2233 | - pss->page = MIN(pss->page, hostpage_boundary) - 1; | |
2233 | + pss->page = MIN(pss->page, hostpage_boundary); | |
2234 | 2234 | |
2235 | 2235 | res = ram_save_release_protection(rs, pss, start_page); |
2236 | 2236 | return (res < 0 ? res : pages); |