qemu-devel
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]