mirror of https://github.com/xemu-project/xemu.git
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>
This commit is contained in:
parent
ae68066880
commit
258f5c9825
|
@ -1617,7 +1617,7 @@ static int ram_save_release_protection(RAMState *rs, PageSearchStatus *pss,
|
||||||
/* Check if page is from UFFD-managed region. */
|
/* Check if page is from UFFD-managed region. */
|
||||||
if (pss->block->flags & RAM_UF_WRITEPROTECT) {
|
if (pss->block->flags & RAM_UF_WRITEPROTECT) {
|
||||||
void *page_address = pss->block->host + (start_page << TARGET_PAGE_BITS);
|
void *page_address = pss->block->host + (start_page << TARGET_PAGE_BITS);
|
||||||
uint64_t run_length = (pss->page - start_page + 1) << TARGET_PAGE_BITS;
|
uint64_t run_length = (pss->page - start_page) << TARGET_PAGE_BITS;
|
||||||
|
|
||||||
/* Flush async buffers before un-protect. */
|
/* Flush async buffers before un-protect. */
|
||||||
qemu_fflush(rs->f);
|
qemu_fflush(rs->f);
|
||||||
|
@ -2230,7 +2230,7 @@ static int ram_save_host_page(RAMState *rs, PageSearchStatus *pss)
|
||||||
offset_in_ramblock(pss->block,
|
offset_in_ramblock(pss->block,
|
||||||
((ram_addr_t)pss->page) << TARGET_PAGE_BITS));
|
((ram_addr_t)pss->page) << TARGET_PAGE_BITS));
|
||||||
/* The offset we leave with is the min boundary of host page and block */
|
/* The offset we leave with is the min boundary of host page and block */
|
||||||
pss->page = MIN(pss->page, hostpage_boundary) - 1;
|
pss->page = MIN(pss->page, hostpage_boundary);
|
||||||
|
|
||||||
res = ram_save_release_protection(rs, pss, start_page);
|
res = ram_save_release_protection(rs, pss, start_page);
|
||||||
return (res < 0 ? res : pages);
|
return (res < 0 ? res : pages);
|
||||||
|
|
Loading…
Reference in New Issue