[libvirt] [PATCH v4 06/13] qemu: refactor fetching migration stats

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Thu Sep 7 12:14:35 UTC 2017



On 07.09.2017 14:48, Jiri Denemark wrote:
> On Fri, Sep 01, 2017 at 09:49:24 +0300, Nikolay Shirokovskiy wrote:
>> qemuMigrationFetchJobStatus is rather inconvinient. Some of its
>> callers don't need status to be updated, some don't need to update
>> elapsed time right away. So let's update status or elapsed time
>> in callers instead.
>>
>> This patch drops updating job status on getting job stats by
>> client. This way we will not provide status 'completed' while
>> it is not yet updated by migration routine.
> ...
>> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
>> index e2760d1..a1923c3 100644
>> --- a/src/qemu/qemu_migration.c
>> +++ b/src/qemu/qemu_migration.c
>> @@ -1376,24 +1376,26 @@ qemuMigrationUpdateJobType(qemuDomainJobInfoPtr jobInfo)
>>  
>>  
>>  int
>> -qemuMigrationFetchJobStatus(virQEMUDriverPtr driver,
>> -                            virDomainObjPtr vm,
>> -                            qemuDomainAsyncJob asyncJob,
>> -                            qemuDomainJobInfoPtr jobInfo)
>> +qemuMigrationFetchStats(virQEMUDriverPtr driver,
>> +                        virDomainObjPtr vm,
>> +                        qemuDomainAsyncJob asyncJob,
>> +                        qemuDomainJobInfoPtr jobInfo)
>>  {
>>      qemuDomainObjPrivatePtr priv = vm->privateData;
>> +    qemuMonitorMigrationStats stats;
>>      int rv;
>>  
>>      if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
>>          return -1;
>>  
>> -    rv = qemuMonitorGetMigrationStats(priv->mon, &jobInfo->stats);
>> +    rv = qemuMonitorGetMigrationStats(priv->mon, &stats);
>>  
>>      if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0)
>>          return -1;
>>  
>> -    qemuMigrationUpdateJobType(jobInfo);
>> -    return qemuDomainJobInfoUpdateTime(jobInfo);
>> +    jobInfo->stats = stats = stats;
> 
> One assignment would have been enough :-)
> 
> Jirka
> 

))




More information about the libvir-list mailing list