From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Alexey Perevalov <a.perevalov@samsung.com>
Cc: qemu-devel@nongnu.org, peterx@redhat.com, i.maximets@samsung.com,
quintela@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 1/3] migration: postcopy_place_page factoring out
Date: Fri, 16 Jun 2017 17:24:16 +0100 [thread overview]
Message-ID: <20170616162416.GC2179@work-vm> (raw)
In-Reply-To: <1497544575-18628-2-git-send-email-a.perevalov@samsung.com>
* Alexey Perevalov (a.perevalov@samsung.com) wrote:
> Need to mark copied pages as closer as possible to the place where it
> tracks down. That will be necessary in futher patch.
>
> Reviewed-by: Juan Quintela <quintela@redhat.com>
> Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> migration/postcopy-ram.c | 13 ++++++++-----
> migration/postcopy-ram.h | 4 ++--
> migration/ram.c | 4 ++--
> 3 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
> index c8c4500..743ca6c 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -566,9 +566,10 @@ int postcopy_ram_enable_notify(MigrationIncomingState *mis)
> * returns 0 on success
> */
> int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from,
> - size_t pagesize)
> + RAMBlock *rb)
> {
> struct uffdio_copy copy_struct;
> + size_t pagesize = qemu_ram_pagesize(rb);
>
> copy_struct.dst = (uint64_t)(uintptr_t)host;
> copy_struct.src = (uint64_t)(uintptr_t)from;
> @@ -597,10 +598,12 @@ int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from,
> * returns 0 on success
> */
> int postcopy_place_page_zero(MigrationIncomingState *mis, void *host,
> - size_t pagesize)
> + RAMBlock *rb)
> {
> + size_t pagesize;
> trace_postcopy_place_page_zero(host);
>
> + pagesize = qemu_ram_pagesize(rb);
> if (pagesize == getpagesize()) {
> struct uffdio_zeropage zero_struct;
> zero_struct.range.start = (uint64_t)(uintptr_t)host;
> @@ -631,7 +634,7 @@ int postcopy_place_page_zero(MigrationIncomingState *mis, void *host,
> memset(mis->postcopy_tmp_zero_page, '\0', mis->largest_page_size);
> }
> return postcopy_place_page(mis, host, mis->postcopy_tmp_zero_page,
> - pagesize);
> + rb);
> }
>
> return 0;
> @@ -694,14 +697,14 @@ int postcopy_ram_enable_notify(MigrationIncomingState *mis)
> }
>
> int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from,
> - size_t pagesize)
> + RAMBlock *rb)
> {
> assert(0);
> return -1;
> }
>
> int postcopy_place_page_zero(MigrationIncomingState *mis, void *host,
> - size_t pagesize)
> + RAMBlock *rb)
> {
> assert(0);
> return -1;
> diff --git a/migration/postcopy-ram.h b/migration/postcopy-ram.h
> index 52d51e8..78a3591 100644
> --- a/migration/postcopy-ram.h
> +++ b/migration/postcopy-ram.h
> @@ -72,14 +72,14 @@ void postcopy_discard_send_finish(MigrationState *ms,
> * returns 0 on success
> */
> int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from,
> - size_t pagesize);
> + RAMBlock *rb);
>
> /*
> * Place a zero page at (host) atomically
> * returns 0 on success
> */
> int postcopy_place_page_zero(MigrationIncomingState *mis, void *host,
> - size_t pagesize);
> + RAMBlock *rb);
>
> /* The current postcopy state is read/set by postcopy_state_get/set
> * which update it atomically.
> diff --git a/migration/ram.c b/migration/ram.c
> index 8dbdfdb..f50479d 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -2465,10 +2465,10 @@ static int ram_load_postcopy(QEMUFile *f)
>
> if (all_zero) {
> ret = postcopy_place_page_zero(mis, place_dest,
> - block->page_size);
> + block);
> } else {
> ret = postcopy_place_page(mis, place_dest,
> - place_source, block->page_size);
> + place_source, block);
> }
> }
> if (!ret) {
> --
> 1.9.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2017-06-16 16:24 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20170615163628eucas1p29770ee263d64d3ad254c1fbaa43a46b2@eucas1p2.samsung.com>
2017-06-15 16:36 ` [Qemu-devel] [PATCH v2 0/3] Add bitmap for received pages in postcopy migration Alexey Perevalov
2017-06-15 16:36 ` [Qemu-devel] [PATCH v2 1/3] migration: postcopy_place_page factoring out Alexey Perevalov
2017-06-16 8:46 ` Peter Xu
2017-06-16 16:24 ` Dr. David Alan Gilbert [this message]
2017-06-15 16:36 ` [Qemu-devel] [PATCH v2 2/3] migration: introduce qemu_ufd_copy_ioctl helper Alexey Perevalov
2017-06-16 8:49 ` Peter Xu
2017-06-16 16:39 ` Dr. David Alan Gilbert
2017-06-15 16:36 ` [Qemu-devel] [PATCH v2 3/3] migration: add bitmap for received page Alexey Perevalov
2017-06-16 9:06 ` Peter Xu
2017-06-16 11:55 ` Alexey Perevalov
2017-06-16 17:20 ` Dr. David Alan Gilbert
2017-06-16 17:14 ` Dr. David Alan Gilbert
2017-06-16 17:38 ` Alexey Perevalov
2017-06-16 18:46 ` Dr. David Alan Gilbert
2017-06-16 19:14 ` Alexey Perevalov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170616162416.GC2179@work-vm \
--to=dgilbert@redhat.com \
--cc=a.perevalov@samsung.com \
--cc=i.maximets@samsung.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.