qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 0/3] Fix "stop" draining block jobs


From: Fam Zheng
Subject: [Qemu-devel] [PATCH 0/3] Fix "stop" draining block jobs
Date: Fri, 3 Apr 2015 18:38:59 +0800

Stopping the vm will drive the block job all the way to the end, because the
sleep duration is too short, which means the block_job_sleep_ns in the block
jobs are unhelpful. That is because the timer will fire too soon, even before
the aio_poll in bdrv_drain_all returns.

Lengthen the sleep and add a test case to catch this issue in the future.

It's not perfect, because the aio_poll returning point could still be far
enough that we wake up the job earlier, but this patch is already making it
better in common cases - setting up a timer with timeout=0 was definitely too
short anyway.

A complete solution would be adding a "sleep until next iteration" timer/BH
API, but I'm not sure that is worth the complexity.

Please review!

Fam

Fam Zheng (3):
  blockjob: Don't sleep meaninglessly short
  qemu-iotests: Test that "stop" doesn't drain block jobs
  blockjob: Update function name in comments

 block/backup.c             |  2 +-
 block/mirror.c             |  2 +-
 blockjob.c                 |  3 +-
 include/block/blockjob.h   |  6 +++-
 tests/qemu-iotests/129     | 86 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/129.out |  5 +++
 tests/qemu-iotests/group   |  1 +
 7 files changed, 101 insertions(+), 4 deletions(-)
 create mode 100644 tests/qemu-iotests/129
 create mode 100644 tests/qemu-iotests/129.out

-- 
2.1.0




reply via email to

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