[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/6] migration/postcopy: count target page number to decide t
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [PATCH 3/6] migration/postcopy: count target page number to decide the place_needed |
Date: |
Wed, 6 Nov 2019 19:59:37 +0000 |
User-agent: |
Mutt/1.12.1 (2019-06-15) |
* Wei Yang (address@hidden) wrote:
> In postcopy, it requires to place whole host page instead of target
> page.
>
> Currently, it relies on the page offset to decide whether this is the
> last target page. We also can count the target page number during the
> iteration. When the number of target page equals
> (host page size / target page size), this means it is the last target
> page in the host page.
>
> This is a preparation for non-ordered target page transmission.
>
> Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> ---
> migration/ram.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/migration/ram.c b/migration/ram.c
> index f59e3fe197..5c05376d8d 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -4017,6 +4017,7 @@ static int ram_load_postcopy(QEMUFile *f)
> void *postcopy_host_page = mis->postcopy_tmp_page;
> void *last_host = NULL;
> bool all_zero = false;
> + int target_pages = 0;
>
> while (!ret && !(flags & RAM_SAVE_FLAG_EOS)) {
> ram_addr_t addr;
> @@ -4051,6 +4052,7 @@ static int ram_load_postcopy(QEMUFile *f)
> ret = -EINVAL;
> break;
> }
> + target_pages++;
> matches_target_page_size = block->page_size == TARGET_PAGE_SIZE;
> /*
> * Postcopy requires that we place whole host pages atomically;
> @@ -4082,8 +4084,10 @@ static int ram_load_postcopy(QEMUFile *f)
> * If it's the last part of a host page then we place the host
> * page
> */
> - place_needed = (((uintptr_t)host + TARGET_PAGE_SIZE) &
> - (block->page_size - 1)) == 0;
> + if (target_pages == (block->page_size / TARGET_PAGE_SIZE)) {
> + place_needed = true;
> + target_pages = 0;
> + }
> place_source = postcopy_host_page;
> }
> last_host = host;
> --
> 2.17.1
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH 3/6] migration/postcopy: count target page number to decide the place_needed,
Dr. David Alan Gilbert <=