From: Lei Li <lilei@linux.vnet.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: aarcange@redhat.com, quintela@redhat.com,
mdroth@linux.vnet.ibm.com, mrhines@linux.vnet.ibm.com,
qemu-devel@nongnu.org, anthony@codemonkey.ws,
lagarcia@br.ibm.com, rcj@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 0/8 RFC] migration: Introduce side channel for RAM
Date: Thu, 03 Oct 2013 21:37:41 +0800 [thread overview]
Message-ID: <524D7325.7000403@linux.vnet.ibm.com> (raw)
In-Reply-To: <524D726E.9080501@redhat.com>
On 10/03/2013 09:34 PM, Paolo Bonzini wrote:
> Il 03/10/2013 15:29, Lei Li ha scritto:
>> On 10/03/2013 06:34 PM, Paolo Bonzini wrote:
>>> Il 03/10/2013 12:28, Lei Li ha scritto:
>>>> The load_hook callback is only be called if the RAM_SAVE_FLAG_HOOK is
>>>> received.
>>>> To check this flags, it means there would be a check action first in
>>>> unix_accept_incoming_migration(), like:
>>>>
>>>> f = qemu_fopen_pipe(c, "rb");
>>>> flags = qemu_get_be64(f);
>>>> if (flags == RAM_SAVE_FLAG_HOOK) {
>>>> load_hook();
>>>> ...
>>>> }
>>>>
>>>> Otherwise, the incoming side has no idea whether the special 8-bytes
>>>> record
>>>> (RAM_SAVE_FLAG_HOOK) is sent.
>>> No, ram_load is taking care of checking for RAM_SAVE_FLAG_HOOK. If
>>> before_iterate writes the 8 bytes (followed by passing the fd for the
>>> pipe's read-side via SCM_RIGHTS), ram_load will call load_hook before it
>>> loads any page and load_hook will fetch the fd.
>> If let ram_load take care of checking for RAM_SAVE_FLAG_HOOK, then in
>> unix_accept_incoming_migration(), how to decide which QEMUFile should
>> be opened? Since there would be two types of QEMUFile, one is the original
>> QEMUFile opened by qemu_fopen_socket() for normal Unix migration, the
>> other is opened by qemu_fopen_pipe() for unix-page-flipping migration.
>>
>> Or, were you suggesting replace this qemu_fopen_socket() with the
>> qemu_fopen_pipe(), which also contain the copy of the QEMUFile code for
>> Unix sockets?
> Yes (though I'd call it qemu_fopen_socket_local() or something like that).
>
> On the incoming side, if non-page-flipping was enabled you will use the
> normal RAM loading code, if page-flipping was enabled you will get
> load_hook calls.
Ah, I see. :)
qemu_fopen_socket_local() sounds good, thanks!
> Paolo
>
>>> Subsequent calls to load_hook will match data written by the sender's
>>> save_page hook (so they contain a RAM address, with the 4k page data
>>> sent on the pipe).
>>>
>>> Paolo
>>>
>>
--
Lei
prev parent reply other threads:[~2013-10-03 13:38 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-25 14:32 [Qemu-devel] [PATCH 0/8 RFC] migration: Introduce side channel for RAM Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 1/8] migration-local: add pipe protocol for QEMUFileOps Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 2/8] migration-loca: add qemu_fopen_pipe() Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 3/8] migration-local: add send_pipefd() Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 4/8] migration-local: add recv_pipefd() Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 5/8] QAPI: introduce magration capability unix_page_flipping Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 6/8] migration: add migrate_unix_page_flipping() Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 7/8] migration-unix: side channel support on unix outgoing Lei Li
2013-09-25 14:32 ` [Qemu-devel] [PATCH 8/8] migration-unix: side channel support on unix incoming Lei Li
2013-09-25 15:02 ` [Qemu-devel] [PATCH 0/8 RFC] migration: Introduce side channel for RAM Paolo Bonzini
2013-09-26 12:44 ` Lei Li
2013-09-26 12:54 ` Paolo Bonzini
2013-10-03 4:03 ` Lei Li
2013-10-03 8:23 ` Paolo Bonzini
2013-10-03 10:28 ` Lei Li
2013-10-03 10:34 ` Paolo Bonzini
2013-10-03 13:29 ` Lei Li
2013-10-03 13:34 ` Paolo Bonzini
2013-10-03 13:37 ` Lei Li [this message]
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=524D7325.7000403@linux.vnet.ibm.com \
--to=lilei@linux.vnet.ibm.com \
--cc=aarcange@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=lagarcia@br.ibm.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mrhines@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=rcj@linux.vnet.ibm.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.