[libvirt] [PATCH v3 00/16] qemu: migration: show disks stats for nbd migration

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Fri Jul 14 06:51:48 UTC 2017


ping

On 11.04.2017 10:39, Nikolay Shirokovskiy wrote:
> diff from v2:
> ============
> 
> 1. Fix style issues.
> 2. Rework patch for fetching job info 
>    (save logic to use temporary variable when drop vm lock)
> 3. Update disk stats when block jobs are canceled.
> 4. Adress a few more corner cases.
> 
> This patch series add disks stats to domain job info(stats) as
> well as to migration completed event in case nbd scheme is used.
> 
> There is little nuisance with qcow2 disks (which is the main scenario
> I guess) tied to the way qemu reports stats for this type of disks.
> For example if we have 64G disk filled only to 1G then stats
> start from 63G and will grow up to 64G on completion. The same way disk stats
> will be reported by this patch.
> 
> I guess the better way to express the situation is to say we have 64G 'total',
> and have 'processed' field grow from 0G to 1G, like in case of memory
> stats. [1] is the example of completed memory stats of empty guest
> domain, which show difference between processed and total.
> 
> There can be a workaround like getting initial blockjob offset position
> as a zero but is is rather ugly and racy and like uses undocumented
> behaviour.
> 
> [1] memory migration stats example
> Memory processed: 3.307 MiB
> Memory remaining: 0.000 B
> Memory total:     1.032 GiB
> 
> The above is applied to qemu 2.6 at least.
> 
> Patches that were explicitly ACKed in previous review
> (up to style issues) marked with A.
> 
> Nikolay Shirokovskiy (16):
>   qemu: drop code for VIR_DOMAIN_JOB_BOUNDED and timeRemaining
> A qemu: introduce qemu domain job status
> A qemu: introduce QEMU_DOMAIN_JOB_STATUS_POSTCOPY
> A qemu: drop QEMU_MIGRATION_COMPLETED_UPDATE_STATS
> A qemu: drop excessive zero-out in qemuMigrationFetchJobStatus
>   qemu: refactor fetching migration stats
> A qemu: simplify getting completed job stats
>   qemu: fail querying destination migration statistics always
>   qemu: start all async job with job status active
>   qemu: introduce migrating job status
>   qemu: always get job condition on getting job stats
>   qemu: migrate: show disks stats on job info requests
>   qemu: support getting disks stats during stopping block jobs
>   qemu: migation: resolve race on getting job info and stopping block jobs
>   qemu: migrate: copy disks stats to completed job
>   qemu: migration: don't expose incomplete job as complete
> 
>  src/qemu/qemu_blockjob.c         |   1 +
>  src/qemu/qemu_domain.c           |  38 +++++--
>  src/qemu/qemu_domain.h           |  16 ++-
>  src/qemu/qemu_driver.c           |  95 ++++++++--------
>  src/qemu/qemu_migration.c        | 236 ++++++++++++++++++++++++++-------------
>  src/qemu/qemu_migration.h        |  15 ++-
>  src/qemu/qemu_migration_cookie.c |   7 +-
>  src/qemu/qemu_monitor.c          |   5 +-
>  src/qemu/qemu_monitor.h          |   4 +-
>  src/qemu/qemu_monitor_json.c     |   4 +-
>  src/qemu/qemu_process.c          |  10 +-
>  tests/qemumonitorjsontest.c      |   1 +
>  12 files changed, 273 insertions(+), 159 deletions(-)
> 




More information about the libvir-list mailing list