[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 14/17] migration: Create thread infrastructure f
From: |
Juan Quintela |
Subject: |
Re: [Qemu-devel] [PATCH 14/17] migration: Create thread infrastructure for multifd recv side |
Date: |
Mon, 13 Feb 2017 17:56:26 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
"Dr. David Alan Gilbert" <address@hidden> wrote:
> * Juan Quintela (address@hidden) wrote:
>> We make the locking and the transfer of information specific, even if we
>> are still receiving things through the main thread.
>>
>> Signed-off-by: Juan Quintela <address@hidden>
>> ---
>> migration/ram.c | 77
>> +++++++++++++++++++++++++++++++++++++++++++++++++--------
>> 1 file changed, 67 insertions(+), 10 deletions(-)
>>
>> diff --git a/migration/ram.c b/migration/ram.c
>> index ca94704..4e530ea 100644
>> --- a/migration/ram.c
>> +++ b/migration/ram.c
>> @@ -523,7 +523,7 @@ void migrate_multifd_send_threads_create(void)
>> }
>> }
>>
>> -static int multifd_send_page(uint8_t *address)
>> +static uint16_t multifd_send_page(uint8_t *address, bool last_page)
>> {
>> int i, j, thread_count;
>> bool found = false;
>> @@ -538,8 +538,10 @@ static int multifd_send_page(uint8_t *address)
>> pages.address[pages.num] = address;
>> pages.num++;
>>
>> - if (pages.num < (pages.size - 1)) {
>> - return UINT16_MAX;
>> + if (!last_page) {
>> + if (pages.num < (pages.size - 1)) {
>> + return UINT16_MAX;
>> + }
>> }
>
> This should be in the previous patch?
> (and the place that adds the last_page parameter below)?
ok.
>> @@ -2920,10 +2980,7 @@ static int ram_load(QEMUFile *f, void *opaque, int
>> version_id)
>>
>> case RAM_SAVE_FLAG_MULTIFD_PAGE:
>> fd_num = qemu_get_be16(f);
>> - if (fd_num != 0) {
>> - /* this is yet an unused variable, changed later */
>> - fd_num = fd_num;
>> - }
>> + multifd_recv_page(host, fd_num);
>
> This is going to be quite tricky to fit into ram_load_postcopy
> in this form; somehow it's going to have to find addresses to use for place
> page
> and with anything with a page size != target page size it gets messy.
What do you have in mind?
Later, Juan.